Imam problema sa pascalom. naime kad napišem read on mi nakon toga baci pokazivač u novi red. kao da sam napisao readln a ne običan read. ista stvar je i sa write i writeln. i nije mi jasno zašto se program ne zaustavi kad prvi put napišem readln(), već sam u primjeru sa slike morao napisati readln() dva puta.
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Pretpostavljam da korištenjem procedure Read u bufferu ostane Enter. Pa je onda normalno da će kroz prvi sljedeći ReadLn proći kao da ne postoji, jer će biti kao da si stisnuo tipku Enter (ostao onaj Enter otprije).
dali mi možeš preporučiti neki drugi program za paskal? samo privremeno da imam gdje pisat zadatke dok ne riješim ovo? trenutno sam pisao u Dev-Pascal i tamo sam otvorio "new source file". ima nešto slično da se ne moram prilagođavati nečem novom?
pa zašto onda i dalje ne koristiš dev?
dali mi možeš preporučiti neki drugi program za paskal? samo privremeno da imam gdje pisat zadatke dok ne riješim ovo? trenutno sam pisao u Dev-Pascal i tamo sam otvorio "new source file". ima nešto slično da se ne moram prilagođavati nečem novom?
Free Pascal ti je najbolji http://freepascal.org/
pa zašto onda i dalje ne koristiš dev?
pa zbog gore navedenih razloga.
To ti neće prestati ako promjeniš dev nekim drugim.
kako da onda riješi taj probelm?!
Pokušaj umjesto read koristiti readln.
kako da onda riješi taj probelm?!
Teško je reći da je riječ o problemu - program radi ono što si mu rekao da radi.
Što se tiče DevPascala, on kao kompajler koristi FreePascal, samo što se radi o prilično staroj verziji.
Koliko sam skužio, razlika između Read i ReadLn je, barem u Free Pascalu, u tome da kad tražiš više brojeva, da ih pomoću Reada možeš upisati u jednom retku, odvojene razmakom, dok za ReadLn moraš stisnuti Enter.
Znači, ako napišeš kod:
Read(a);
Read(b);
Read(c);
Kad te traži da upišeš brojeve, možeš upisati
3 5 7 [Enter]
Dok kod ReadLn to ne možeš, nego ide:
3 [Enter]
5 [Enter]
7 [Enter]
Ako svom silom hoćeš u jednom redu kombinirati unos i ispis, onda koristi funkcije ReadKey ili ReadChar.
Razlika je u tome da kad imam read, nakon te naredbe pokazivać mi ne skoči u drugi red. dok kod readln mi skoči. to bi trebalo ovako izgledati:
read(a,b,c)--a[enter] b[enter] c[enter];
readln(a,b,c)--a[enter]
b[enter]
c[enter]
Kod mene je probelm što mi kod read-a pokazivač skoči u drugi red, ondosno kao da je read i readln ista naredba.
Razlika je u tome da kad imam read, nakon te naredbe pokazivać mi ne skoči u drugi red. dok kod readln mi skoči. to bi trebalo ovako izgledati:
...
Kod mene je probelm što mi kod read-a pokazivač skoči u drugi red, ondosno kao da je read i readln ista naredba.
Ne kužim što hoćeš reći.
Razlika je u tome da kad imam read, nakon te naredbe pokazivać mi ne skoči u drugi red. dok kod readln mi skoči. to bi trebalo ovako izgledati:
read(a,b,c)--a[enter] b[enter] c[enter];
readln(a,b,c)--a[enter]
b[enter]
c[enter]
Kod mene je probelm što mi kod read-a pokazivač skoči u drugi red, ondosno kao da je read i readln ista naredba.
O tebi ovisi hoće li on skočit u drugi red. Dakle ti možeš napisat sve brojeve u jednom redu i stisnut Enter, a možeš upisivat jedan po jedan broj i nakon svakog pritiskat enter. U prvom slučaju će ti otići u novi red tek kada sve napišeš odn. učitaš dok će ti u drugom slučaju nakon svakog unesenog broja otići u novi red. Mislim da druge solucije nema...
Razlika je u tome da kad imam read, nakon te naredbe pokazivać mi ne skoči u drugi red. dok kod readln mi skoči. to bi trebalo ovako izgledati:
...
Kod mene je probelm što mi kod read-a pokazivač skoči u drugi red, ondosno kao da je read i readln ista naredba.
Ne kužim što hoćeš reći.
Sori, krivo sam se izrazio.
U normalnim okolnositma:
Kad bi napisao "read(a)" i kad bi pokrenuo program te u programu upisao neki broj i potvrdio ga sa enter, pokazivač bi ostao u istom redu, a kad bi napisao "readln(a)" i u programu napisao neki broj i potvrdio ga sa enter, pokazivač bi nakon upisanog broja otišao u drugi red.
Moj čudni slučaj:
Kad napišem "read(a)" i kad u programu upišem neki broj i potvrdim ga sa enter, pokazivač bi nakon tog otišao u drugi red. Dakle, ponaša se kao "readln(a)" u normalnim okolnostima. Mene ne smeta to jako, već mi zadatak nalaže da baš moram u istom redu trebam napisati/učitati nekoliko rečenica/varijabli
Kad bi napisao "read(a)" i kad bi pokrenuo program te u programu upisao neki broj i potvrdio ga sa enter, pokazivač bi ostao u istom redu, a kad bi napisao "readln(a)" i u programu napisao neki broj i potvrdio ga sa enter, pokazivač bi nakon upisanog broja otišao u drugi red.
Moj čudni slučaj:
Kad napišem "read(a)" i kad u programu upišem neki broj i potvrdim ga sa enter, pokazivač bi nakon tog otišao u drugi red. Dakle, ponaša se kao "readln(a)" u normalnim okolnostima. Mene ne smeta to jako, već mi zadatak nalaže da baš moram u istom redu trebam napisati/učitati nekoliko rečenica/varijabli
Normalne okolnosti - što je to? Objasnio sam ti u ovoj poruci kako stvari funkcioniraju u Free Pascalu, a i sam si (dio) toga otkrio. Ako ti ne odgovara, probaj raditi u Turbo Pascalu ili nekom drugom kompajleru. Što se tiče zadatka, objasni osobi koja ti je rekla da napraviš taj zadatak kako stvari funkcioniraju u Free Pascalu (samim tim i u Dev Pascalu pošto taj IDE koristi Free Pascalov kompajler).

