Kezdőoldal » Számítástechnika » Programozás » Most kezdtem neki Pascal...

Most kezdtem neki Pascal programozásnak, de már az elején elakadtam egy feladatnál.50 számot kell generálni 80 és 1000 között véletlen sorrendbe és ki kell íratni a 100-nál kisebbeket. Mi a hiba?

Figyelt kérdés

program szamozas;


uses crt;


var i,szam,min:word;


BEGIN

Clrscr;

randomize;

min:=100;

writeln('Sz mok 80-t˘l 1000-ig');

writeln;

for szam:=1 to 50 Do begin

i:=random(920)+80;

write(i,', ');


while i<min do begin

min:=i;

end;


end;

writeln;

writeln;


write('Sz mok 100 alatt: ',min,', ');


readln;

END.


én így csináltam. Számokat generál 50 és 1000 között. A 100-nál kisebbeket is kiírja, de csak 1-et.(miközben néha több is van).


2011. okt. 10. 18:35
 1/5 anonim ***** válasza:

Miért szam valtozót használod ciklus változónak? I-t szokták amit te másra használsz, ettől még lehetne jól működő ha akár hogy is nevezed el a változókat.


Mit csinál a program?

min:=100;

for szam:=1 to 50 Do begin

i:=random(920)+80; i-be eltárol egy véletlen számot, következő iterációba elveszlik i előző értéke

write(i,', '); kiírja


while i<min do begin

min:=i;

end;

Ez while ugyan azt csinálja mintha:

if i<min then

min:=i;

lenne írva. Vagyis egyfajta speciális minimum kiválasztás.


Összefoglalva a program generálja a véletlen számokat, amiket "elfelejt" a program, de kiírja, a végén kiírja a legkisebb elemet ha az kisebb mint 100 különben 100-at ír ki függetlenül hogy volt e a 100 a generált számok között.


Elég lenne csak akkor kiírni számot ha 100-nál kisebb, nem látom a feladatkiírásba hogy előbb az összes számot írjuk ki.


"én így csináltam. Számokat generál 50 és 1000 között."

Eddig 80 és 1000 közötti számokról volt szó.


"A 100-nál kisebbeket is kiírja, de csak 1-et.(miközben néha több is van)."

Néha nincs 1 sem.

2011. okt. 10. 19:15
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Először is, bocsi elírtam, 80 és 1000 között kell. És igen először ezeket írja ki.

Akkor rosszul közelítettem meg a dolgot. Mert nekem nem a legkisebb kell 100 alatt hanem csak a 100 alatti számok. Tudnál segíteni arra mi a megoldás?

2011. okt. 10. 19:20
 3/5 anonim ***** válasza:

random(920)+80 Úgy generál hogy 80-at generálhat 1000-et nem.Ha ez kell akkor:


Ha i-be tárolod a számot, eléggé zavaró, de működó megoldás.

writeln('50 db 80 és 1000 kozotti szamok generalasa, ezek kozul 100-nal kisebb:');

i:=random(920)+80;

if i<100 then

write(i);


Így elég csak akkor kiírni ha 100-nál kisebb.Különben ha ki akarod iratni először az összes számot akkor egy tömbbe el kell tárolni a számokat.

2011. okt. 10. 19:41
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Tömbökkel tisztába vagy?
2011. okt. 10. 19:43
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
őőő nagyjából. köszi, így már jobban értem. innentől már megpróbálom magamtól
2011. okt. 10. 19:54

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!