Pascal 1. Hogyan tudom kiíratni n darab beolvasott számból a legnagyobbat? 2. Bármely beolvasott szám összes osztójának megtalálasa és kiírása
A maximumkiválasztás tétele ismerős? Ha nem, akkor gugli.
Meddig jutottál a feladattal?
Nem is merem a maximumkiválasztás tételét, de még a matrixot sem tanultuk, for/repeat, if/else ciklussal kellene megirni. Meg csak kilencedikes vagyok :-(
program maxim;
uses crt;
var i, n, a, max : integer;
begin
clrscr;
writeln('hany szamunk van? ');
readln(n);
writeln ('kerem a szamokat: ');
for i:=1 to n do
begin
write('a= ');
read(a);
for IDE KENE EGY CIKLUS AMI SORRENDBE TESZI!!!!!!!!
(** if a > b then writeln('a nagyobbik szam: ',a)
else writeln('a nagyobbik szam: ',b); **)
readln;
end;
end.
OK, ez jó kezdet, csak read helyett mindenhol readln.
Mátrix nem is kellene, csak vektor (azaz tömb, amiben tárolhatod a számokat), de így is meg tudod csinálni, csak eltárolni nem tudod, amit beolvastál.
b ugye nem játszik, mert nem olvastad be.
Mivel nem tároltad el a számokat, nincs második ciklus, hiszen mindent az a-ba olvastál be, azaz minden lépésnél eldobod a előző értékét, nincs mire második ciklust írni.
Két lépés kell:
1. Mielőtt a for ciklust elkezdenél írjál egy
max:=MININT;
sort. A MININT a legkisebb használható egész szám (a gépben nincs végtelen). Ha nem mindig ezt írják be, akkor biztos, hogy lesz ennél nagyobb.
Utána minden lépésnél nézd meg egy iffel, hogy az éppen beolvasott a nagyobb-e, mint a max. Ha igen, akkor max:=a az új értéket fogja tárolni. A végén a ciklus után ezt kell kiírni.
Hajrá!
Közben rájöttem, ez a megoldás!
program maxim;
uses crt;
var i, n, a, max : integer;
begin
clrscr;
writeln('hany szamunk van? ');
readln(n);
writeln ('kerem a szamokat: ');
for i:=1 to n do
begin
write('a= ');
read(a);
for IDE KENE EGY CIKLUS AMI SORRENDBE TESZI!!!!!!
(** if a > b then writeln('a nagyobbik szam: ',a)
else writeln('a nagyobbik szam: ',b); **)
readln;
end;
end.
Most az osztókkal kell megbírkóznom :-( Köszi a segítséget!
Jah, bocs rosszul másoltam, ez a Jóóó
program maxim;
uses crt;
var i,
n, a, max, minint :integer;
begin
clrscr;
writeln('hany szamunk van?');
readln(n);
writeln('kerem a szamokat:');
max := a ;
for i:= 1 to n do
begin
write('a= ');
readln(a);
if a > max then max:= a ;
end;
write('a legnagyobb: ',max);
readln;
end.
Majdnem, de még nem egészen. De haladtál.
A MININT egy konstans, ami a programnyelvbe van építve, tehát nem kell deklarálni. Leginkább egy mínusz kétmilliárd körüli szám lehet, de konkrét rendszertől függ, mennyi.
Vedd ki az elejéről.
A max := a ; sor a for előtt nem jó, az a-nak nincs is ott értéke. Teszteld le úgy, hogy csupa negatív számot írsz be, látni fogod.
Helyette az kell, amit írtam, max:=MININT;
Jézusom!
Van még olyan ember aki Pascalban tanít, és pénzt is kap érte?! A Pascalt Noé már régen kihajította a bárka ablakán.
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!