Feladat: KSz.10 Korcsoport: 14-15 Nehézségi fok: könnyű
Füzet: 1983/november, 154. oldal  PDF  |  MathML 
Témakör(ök): Programozási feladatok, Feladat
Hivatkozás(ok):Feladatok: 1983/szeptember: KSz.10

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Megjegyzések. 1. Mindkét megoldás teszteli a beütött adatokat, és csak a 10-nél nem nagyobb természetes számokat fogadja el. Feliratokkal segíti a kezelőt az adatok beadásakor és a végeredmény közlésekor.

 

2. A két program hossza nem tér el lényegesen. Kevés adat esetében sem a futásidőben, sem az adattároláshoz szükséges memóriakapacitásban nincs nagy eltérés. De gondoljuk meg, melyiket tudjuk használni, ha pl. 10000 adatot kell feldolgozni (az adatokat egy automata mérőkészülék adja...)!
 


  5N=20 : K=10  10DIM L (N)  20CLS : PRINT "LOLAP KIERTEKELES"  30FOR I=1 TO N  40PRINT I; ". LOVES EREDMENYE"; : INPUT X  50IP X<0 OR X>10 OR X>INT X THENPRINT "TEVES ADAT" : GOTO 40  60L (I)=X  70NEXT I  80P=0  90PRINT : PRINT : PRINT : PRINT "A LEGJOBB ";K;" LOVES :"  100FOR I=1 TO K  110FOR J=I+1 TO N  120IF L(J)>L(I) THEN X=L(I) : L(I)=L(J) : L(J)=X  130NEXT J  140PRINT I,L(I)  150P=P+L(I)  160NEXT I  170PRINT : PRINT "OSSZPONTSZAM =";P : PRINT "HA ELOLVASTAD, NYOMJ LE EGY GOMBOT"  180A$=INKEY  $  190IF INKEY  $="" THEN 190  200RUN  
 

3. Eljárásaink az A, illetve L tömböt változatlanul megőrizték. Így egy esetleges programfejlesztés, bővítés (pl. több versenyző lőlapjainak statisztikai kiértékelése vagy a verseny végeredményének megállapítása) tovább használhatja azokat.
 

4. A 180‐200 sorok nélkül is működik programunk. Minden egyes versenyző adatainak beírása után számol a gép, kijelzi a végeredményt, majd megáll. A következő versenyző adatainak beírásához újra el kell indítani egy RUN paranccsal. Az említett három sor begépelése esetén egyetlen tetszőleges billentyű lenyomására újra indul a program. Kísérletezzünk: elhagyható-e a 180 jelű sor?
 

5. Mindkét megoldás HT‐1080Z Scoolcomputerre készült. Az elterjedt ZX‐81 gépre is átírhatók programjaink, tulajdonképpen csak az elhagyott LET kulcsszavak leírására és több utasítást tartalmazó programsorok szétírására van szükség. A 180-200 programsorokat
180PAUSE 4E4190RUN
helyettesítheti.
 


  5N=20 : K=10  10DIM A (K)  20CLS : PRINT "LOLAP KIERTEKELES"  30FOR I=1 TO N  40PRINT I; ". LOVES EREDMENYE"; : INPUT X  50IF X<0 OR X>10 OR X>INT X THENPRINT "ILYEN LOVES NINCS" : GOTO 40  60IF X>0 THEN A(X)=A(X)+1  70NEXT I  80P=0 : I=K : FOR J=K TO 1 STEP -1  90IF A(J)>I THEN A(J)=I  100P=P+JA(J) ; I=I-A(J) : NEXT J  110PRINT "A LOVESZ ALTAL ELERT EREDMENYT : ";P;" KOR"  180A$=INKEY  $  190IF INKEY  $="" THEN 190  200RUN