Hogy kell ezt megírni pascalban (tömbök)? Többi lenn.
Elkezdtem próbálgatni a tömbös részeket, és eljutottam idáig:
program tomb;
uses crt;
const
max=2015;
var marti: array[1..max] of integer;
gabor: array[1..max] of byte;
i:integer;
szam:integer;
osszeg:integer;
Begin clrscr;
szam:=2010;
osszeg:=0;
for i:=1 to 5 do begin
szam:=szam+1;
write('ruhara koltott penz osszege ',szam,'-es evben '); readln(marti[i]);
osszeg:=osszeg+marti[i];
end;
write('penz ',osszeg);
readln;
end.
Ez kiegészítve jó kellene legyen?
Hát még vérzik egy pár sebből, de kezdetnek.....
A Pascalnak meg van az az előnye, hogy a tömb indexeket beállíthatod magadnak deklaráláskor tehát array[2011..2015]..., ciklusba is mehet i := 2011 to 2015 do... szam:=szam+1; helyett i,
Kapásból ennyi.
Ha már kiküzdötted magad és netalántán :) nem jött volna össze:
program Tomb;
uses Crt;
const max_koltes = 100000;
var
gabor, marti : array[2011..2015] of integer;
i : integer;
lekerdezes : char;
begin
// A hibakezeléseket kihagyom , bár a szíem vérzik
ClrScr;
Randomize;
// Feltöltés, nincs kedvem 10 adatot mindig begépelni
// jöhet helyette a Write... ReadLn(Gabor[i]);....
for i := 2011 to 2015 do
begin
gabor[i] := Random(max_koltes);
WriteLn('Gabor: ', i, ' evben ', gabor[i]:6, ' forintot koltott');
marti[i] := Random(max_koltes);
WriteLn('Marti: ', i, ' evben ', marti[i]:6, ' forintot koltott');
end;
ReadLn;
ClrScr;
// Lekérdezés
repeat
Writeln('"G"abor: G');
Writeln('"M"arti: M');
Writeln('Mind"k"etto: K');
Write('Valassz: ');
lekerdezes := ReadKey;
case UpCase(lekerdezes) of
'G': WriteLn('Gabor koltese');
'M': WriteLn('Marti koltese');
'K': WriteLn('Kettojuk koltese');
end;
Write('Melyik ev - 0 - ra kilep: ');
ReadLn(i);
case UpCase(lekerdezes) of
'G': WriteLn('Gabor koltese ', i, ' evben: ', gabor[i], ' forint');
'M': WriteLn('Marti koltese ', i, ' evben: ', marti[i], ' forint');
'K': WriteLn('Kettojuk koltese ', i, ' evben: ', marti[i] + gabor[i], ' forint');
end;
until i = 0;
end.
Furcsákat írsz, Kérdező, de legalább 4 dolog a javadra írható:
1. Legalább próbálkoztál, és nem adtad fel harc nélkül.
2. Értelmes változóneveket használsz, nem ötletszerű betűjeleket.
3. A változókészletből sejthető, hogy valami dereng arról, mit igényelne a feladat.
4. A programod olyan lett, amilyen, de lefordul, és le is fut, üdítő ellentétben másokéval, akik csak értelmetlenül odahánynak a kedvünkért néhány pascal-kifejezést, ami az agyukban megragadt, aztán annyi a műsor. Akár folytathattad volna némi átgondolás után...
@SimkoL:
Nálam, vélhetőleg az integerek túlcsordulása miatt, mínusz számok is keletkeznek, javaslom a longintet. Módosítottam a programodat kétdimenziós tömbre, hátha Kérdezőnek ez is érdekes, a hibakezelést én is hanyagoltam:
Ez ugyanaz, csak még a színekkel is bohóckodtam, ha már CRT-ben vagyunk:
Nem tudom Linux alatt mik az alap beállítások a Free Pascal, Lazarusnak, nekem Win alatt nem SmallInt-nek 'ismerte fel'. Delphi-ben nincs ilyen gond. Mondjuk már egy párszor tapasztaltam, hogy nem mindegy ha Lazarus konzolos alkalmazást csinálsz vagy simán a Free Pascal-ban írogatsz. Lazarus konzolban alapból bármilyen méretű lehet egy string, alapból érvényes az {$H+}, még ha külön benne is van az elején - mondjuk ez érdekes, hogy miért -, Free Pascal-ban be kell kapcsolni.
Közben megnéztem Turbo Pascal-ban is, ott is SmallInt-nek veszi. Hát legközelebb fel kell idézi a múltat.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!