Pascal csillag ki írás, error, miért? (info lent)
Hi!
Pascal programba be írtam ezt, hogy :var n,i:integer;
begin
write('Kerem a kiirando csillagok szamat: ');
readln(n);
for i:=1 to n do write('*');
end.
Ez ki írja a szöveget, de viszont azt nem írja ki h hány csillag van új sorba! Ha pl. nyolcat akarok akkor readln(8);-at írtam, minden n helyére próbáltam 8at be írni, de csomo error, probálgattam, hogy hova kéne, hogy jó legyen de hát nem lett jó, hogy kéne meg csinálni, hogy szöveg alatt ki írná a csillagok számát? pl.
Kerem a kiirando csillagok szamat: 8
********
ez szerintem egy nagyon kezdő és egyszerű program
nemtudom már hogy magyarázni neked, képet is adtam..
szerintem tanulj suliba erről inkább:)
de readln után ne írj számot..
áááh..
pihend ki magad és próbáld meg holnap újból és olvasd el megint mit írtunk..
Nem azzal van a baj, mert a progamod jó... :))
Szóval: van a program, amit itt írtál a kérdésben. Az úgy helyes, csak tegyél egy readln-t vagy egy writeln()-t a végére, az end. elé.
Ez után: elindítod a programot, majd mikor látod, hogy megjelent a képernyőn a "kerem a..." felirat, akkor megnyomod a billentyűzeteden a 8-as számot, majd ez megjelenik a képernyőn is. Most nyomsz egy entert, a program csak ekkor lép a következő utasításra, vagyis a for ciklusba ekkor lép be. Kiírja a program a 8 *-ot, majd továbblép a következő utasításra. Neked a programodban (ami a kérdésben szerepel) nincs több utasítás, vagyis a program a végére ér és kilép. Na most ő kiírta a 8*ot, de te nem láttál belőle semmit, mivel visszajött a FreePascal szerkesztője. Ebben van egy opció a visszanézésre, azt hiszem alt+F5el elérheted. Ott láthatod a kis csillagokat.
Ellenben ha a végére írsz egy readln utasítást, paraméterek nélkül, akkor a csillagok kiírása után ez fog következni, és a program várni fogja az enter billentyűt (mivel a readln ezt teszi, mikor paraméterek nélkül van).
A változókat meg ezeket azért mondtam, mert a readln(9), ami a kérdésedben szerepel, nem működhet, mivel a readln eljárás változókat vár el paraméternek. Hogy miért? A readln beolvas a billentyűzetről (vagy akár máshonnan is, de azt majd később biztosan megtanulod) egy adatot, majd azt letárolja a paraméternek kapott változóban. Most ha a kapott paraméter nem változó, hanem egy konstans érték, vagyis 8, akkor itt jelentkezik a hiba, mivel a readln nem tudja letárolni a 8as számban a másik beolvasott számot, mert akkor már nem lenne 8as a szám.... Remélem érted mit akarok ezzel mondani. A csomó error e miatt volt...
Majd ha van kedved próbáld ki a Geany nevű programot, abban is lehet Pascal programokat fejleszteni, de én valahogy jobban szeretem, mint az alap FreePascal környezetet.... (bár hibakeresésben az utóbbi a jobb :D)
Utána pedig Delphi vagy Lazarus... de ez még nagyon odébb van... :P
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!