Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB, QB64: QBasic ja tulostuspähkinä

Sivun loppuun

Lipton_green [30.03.2017 19:39:46]

#

Hei. Pitkällä ollaan, mutta nyt piti palata alkuun, en nimittäin millään ymmärrä miten seuraavan pähkinän saa purettua:

DIM kirjtaulu(10, 10, 10) AS STRING
kirjtaulu(1, 1, 1) = "Eka"
kirjtaulu(2, 1, 1) = "Toka"
kirjtaulu(3, 2, 1) = "Kolm"
kirjtaulu(4, 2, 1) = "nelj"
kirjtaulu(5, 5, 1) = "viid"
FOR a = 1 TO 5
    PRINT kirjtaulu(a, 1, 1)
NEXT a

Minä kyllä ymmärrän miten saa tallennettua sellaisia taulukoita jossa on vain yksi arvo(a), mutta entä kun noita on kolme(tämä alla oleva malli ei tallenna kaikkea)???

OPEN "tiedosto.txt" FOR OUTPUT AS #1
FOR a = 1 TO 5
    WRITE #1, kirjtaulu(a, a, a)
NEXT a
CLOSE #1

Auttakaa viisaammat:-)

Metabolix [30.03.2017 19:46:21]

#

Kai ymmärrät, että koodissasi on nyt 10*10*10 tekstiä eli aika monta.

Näiden käsittelyyn silmukassa pitää tehdä monta silmukkaa sisäkkäin: FOR i, FOR j, FOR k, ja sisällä kirjtaulu(i,j,k).

Voisitko yst. opetella käyttämään kooditageja viesteissäsi, jotta koodeja voisi paremmin lukea?

Lipton_green [31.03.2017 08:04:16]

#

Hei ja kiitos viestistäsi. Lupaan opetella käyttämään noita kooditageja heti kun tiedän mitä ne ovat:-)

Voisitko tehdä minulle malliksi tällaiset silmukat, niin ymmärrän mistä on kyse.

Toinen seikka missä tarvitsisin neuvoa on se, että itse ohjelmointinäyttö on täysikokoinen ja pienennettävissä, mutta itse ohjelma toimii vain pienessä mustassa ruudussa, enkä tiedä kuinka saisin kokoa kasvatettua.

Kiitos.

Metabolix [31.03.2017 16:17:38]

#

Lipton_green kirjoitti:

Voisitko tehdä minulle malliksi tällaiset silmukat, niin ymmärrän mistä on kyse.

FOR i = 1 TO 10
	FOR j = 1 TO 10
		FOR k = 1 TO 10
			IF kirjtaulu(i, j, k) <> "" THEN PRINT i, j, k, kirjtaulu(i, j, k)
		NEXT k
	NEXT j
NEXT i

Lipton_green kirjoitti:

Lupaan opetella käyttämään noita kooditageja heti kun tiedän mitä ne ovat:-)

Jos katsot tarkkaan, huomaat ehkä tekstilaatikon yläpuolella linkin keskustelun ohjeisiin sekä laatikon, jossa lukee ”Koodi” ja josta voi valita eri ohjelmointikieliä. Ehkä myös näitä viesteissä olevia koodeja katsomalla voit päätellä jotain kooditagien merkityksestä.

Lipton_green [31.03.2017 18:24:14]

#

Kiitos. Lukeeko tuo silmukkasysteemi kaikki mahdollisuudet tiedostoon. Voisin kuvitella, että se ei tallentaisi esimerkiksi sellaista mahdollisuutta kuin i=3, j=2 ja k=1. Siis luulen taulukon toimivan niin, että tuossa taulukkoavaruudessa on 1000 000 pistettä ja silmukoilla pitäisi tallentaa jokainen piste. Siis en kyllä tiedä asian olevan niin?

Kiitos sinulle vastauksesta. Edelleen kamppailen myös tuon näytön kanssa:-/

Metabolix [31.03.2017 21:37:28]

#

Lipton_green kirjoitti:

Voisin kuvitella, että se ei tallentaisi esimerkiksi sellaista mahdollisuutta kuin i=3, j=2 ja k=1.

Millä perusteella kuvittelet niin? Se on väärin kuviteltu. Kaikki 10 * 10 * 10 eli yhteensä 1000 vaihtoehtoa käydään läpi.

Grez [31.03.2017 21:39:26]

#

Lipton_green kirjoitti:

Siis luulen taulukon toimivan niin, että tuossa taulukkoavaruudessa on 1000 000 pistettä ja silmukoilla pitäisi tallentaa jokainen piste. Siis en kyllä tiedä asian olevan niin?

Jos taulukon koko on (10,10,10) niin silloin siellä on 10x10x10 = 1000 muuttujaa. Miljoona vaatisi jo 100,100,100 dimensioita, joka ei alkuperäisellä QB:llä edes onnistu kun muuttujien max. koko oli 64kt.

Q64W7 [01.04.2017 11:15:39]

#

Mulla muuten sama ongelma Win7:ssa. En ole saanut koskaan ruutua suurennettua. Ilmeisesti se ei ole mahdollista, vaihda ohjelmaa jos häiritsee. Minulle kelpaa pienelläkin ruudulla.

Mod. huom: ÄLÄ KIRJOITA ISOLLA!!!

Lipton_green [02.04.2017 18:53:41]

#

Hei ja kiitos kaikille, olette suureksi avuksi. Minä taisin hieman sählätä noitten lukujen kanssa:-) Omassa taulukossani oli lukemat (100,100,100) tähän avunpyyntöön laitoin nuo kympit, sorry. Täytyypä siis kokeilla Metabolixin ideaa,kiitos:-)

Auta sinä minua Q64W7, uskon että tähän näyttöongelmaan on ratkaisu, olen sen jo osittain ratkaissut. Jos kirjoitat kentän alkuun _FULLSCREEN, niin näyttö on iso, mutta ongelmaa se ei korjaa, koska merkkien kokokin kasvaa samassa suhteessa. Ei se ole helppoa tämä tietotekniikka:-D

Lisäys:

Hei Q64W7. Ongelma ratkaistu, vastaus ongelmiimme on:

SCREEN _NEWIMAGE(1440, 835, 256)

Syötä mieleisesi arvot kahteen ensimmäiseen sarakkeeseen (leveys x korkeus)

Vihdoinkin tuo selvisi:-)

Metabolix [02.04.2017 20:32:17]

#

QB64:n käyttö varmastikin muuttaa tilannetta aika paljon verrattuna ihan oikeaan DOS-aikakauden QBasiciin tai QuickBASICiin. Kannattaisi kertoa kunnolla alusta asti, millä ohjelmoi.

QB64:ssä voi (dokumentaation mukaan) tallentaa ja lukea kokonaisen taulukon yhdellä kertaa:

DIM taulukko(100) AS INTEGER

' Tallennus:
OPEN "taulukko.dat" FOR BINARY AS #1
PUT #1, , taulukko()
CLOSE #1

' Lukeminen:
OPEN "taulukko.dat" FOR BINARY AS #2
GET #2, , taulukko()
CLOSE #2

En testannut, mutta näin dokumentaatiossa asiaa esitellään.

Toki taulukon tulostus ruudulle vaatii edelleenkin erilaisia silmukoita, kuten edellisessä esimerkissäni.

Lipton_green [02.04.2017 21:00:38]

#

Mahtavan upeita ohjeita, täytyy kokeilla myös tuota juuri esittämääsi:-)

Lisäys:

Minulla tuo ei onnistu varmaan siitä syystä, että taulukkoni sisältää tällä hetkellä kirjaimia. Voisiko neuvoasi soveltaa myös tekstiin?

Juu, yritän olla tarkempi:-)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta