Feladat: Sz.1 Korcsoport: 14-15 Nehézségi fok: átlagos
Megoldó(k):  Csótai János 
Füzet: 1982/január, 25 - 27. oldal  PDF  |  MathML 
Témakör(ök): Programozási feladatok, Nehezebb feladat
Hivatkozás(ok):Feladatok: 1981/október: Sz.1

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.

A programban két egymásba skatulyázott ciklust használunk az osztályzatok beolvasására, összegezésére, és a számuk meghatározására. Az A(I) változóban gyűjtjük az I-edik tanuló jegyeinek az összegét, A1(I)-ben a jegyek számát. B(J)-ben gyűjtjük a J-edik tantárgy jegyeinek összegét, B1(J)-ben a jegyek számát. A kiíratáskor végezzük el a tulajdonképpeni átlagszámítást.
Nem építettük be a programba a jegyek vizsgálatát, mert ez azok begépelésével könnyen elvégezhető. Vizsgálatot az osztások előtt sem végeztünk, mert feltételezhető, hogy tanulónként és tantárgyanként legalább egy jegy van. Az osztályzatokat DATA adatmezőbe helyezhetjük el az 50-es sorszámmal kezdve. Erre a célra nem érdemes az INPUT utasítást használni, mert az hosszadalmasabb.

 

A program a kiíratási formátum miatt legfeljebb 14 tantárgy esetén futtatható. A tanulók számát csak a tárkapacitás korlátozza. Abban az esetben, ha 40-nél több tanuló van, a 80-as sorszámú DIM utasítást meg kell változtatni.
A program BASIC nyelvű listája és egy futtatás outputja a következő:
 


LIST
 


11110 REM KOMAL ‐ SZ.1. FELADAT
11120 PRINT" ******* TANULOI ES TANTARGYI ATLAG
11120 SZAMITAS ****** "
11130 REM KESZITETTE: CSOTAI JANOS 1. C.
11140 REM **** MISKOLC, FOLDES FERENC GIMNÁZIUM
11130 *********
11150 REM 1981. NOVEMBER. 14.
11160 PRINT
11170 REM ****** ADATOK BEOLVASASA, OSSZEGZES,
11120 SZAMLALAS **********
11180 DIM X(40, 14), A(40), A1(40), B(14), B1(14)
11190 PRINT "TANULOK SZAMA (MAX. 40)'';
11100 INPUT N
11110 PRINT "TANTARGYAK SZAMA(MAX.14)";
11120 INPUT M
11130 FOR I=1 TO N
11140 FOR J=1 TO M
11150 READ X(I,J),
11160 IF X(I,J)=0 THEN 210
11170 LET A(I)=A(I)+X(I,J)
11180 LET B(J)=B(J)+X(I,J)
11190 LET A1(I)=A1(I)+1
11200 LET B1(J)=B1(J)+1
11210 NEXT J
11220 NEXT I
11230 REM ********* KIIRATAS ****************
11240 FOR J=1 TO M
11250 PRINT TAB(J*4);J;".";
11260 NEXT J
11270 PRINT
11280 PRINT
11290 FOR 1=1 TO N
11300 PRINT I;"*";
11310 FOR J=1 TO M
11320 PRINT TAB(J*4);X(I,J);
11330 NEXT J
11340 PRINT FIX(A(I)/A1(I)*100+5)/100
11350 NEXT I
11360 FOR J=1 TO M
11370 PRINT TAB(4*J); FIX(B(J)/B1(J)*10+5)/10;
11380 NEXT J
11390 STOP
11500 REM ******* OSZTALYZATOK ***************
11501 DATA 2,3,4,0,5,3,4
11502 DATA 5,4,0,4,3,0,2
11503 DATA 2,5,4,3,4,0,5
11504 DATA 3,0,2,3,4,5,5
11000 END
 


1READY
 


RUN
 


R******* TANULOI ES TANTARGYI ATLAG SZAMITAS *******
TANULOK SZAMA (MAX. 40)? 4
TANTARGYAK SZAMA (MAX. 14)? 7
 


11*1.2.3.4.5.6.7.1*23505343.52*54043023.63*35434053.834*30234553.67343.33.3444
 


READY
 
Csótai János (Miskolc, Földes F. Gimn., I. o. t.)