Ikastetxe bateko datuak erabiltzeko programa

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Ondoren ematen den adibideak, fitxategiaren erabilerari buruzko agindurik ez duten ordenadoreetan mota honetako programa nola sor daitekeen erakusten digu.

Fitxategia erabili behar duten programak ordenadoreari planteiatzea, arazorik konplexuenetakoa da. Ondoren ematen den adibideak, fitxategiaren erabilerari buruzko agindurik ez duten ordenadoreetan mota honetako programa nola sor daitekeen erakusten digu.

Jakina, baldintza hauetan programa mugatua izango da. Baina bestalde, ordenadorea eginkizun berriak burutzera bortxatzeko posibilitateaz jabetzera laguntzen duen adibide sinple bat da hau.

Ikasle-multzo baten datuak dauzkan fitxategi sinple bat du programa honek. Datu hauek hiru motatakoak dira:

    Izen-deiturak
    Kurtsoak
  • Asignaturak

Adibide honetan ez dira ikasleak aprobatu gabe zintzilik dauzkan asignaturak kontutan hartzen, nahiz eta egokitzapen hau nahikoa erraz egiteko moldaketa izan. Azalpenerako programan, hamar ikasleko multzoa hartu da eta honen moldatzea edo egokitzea, programaren gordetzeko kapazitatean datza.

Lau matrizetan gordetzen dira datuak:

    Izen-deituren matrizea
    Kurtsoen matrizea
    Asignaturen matrizea
  • Izen-deituren eta asignaturen erlazioen matrizea.

Lehen hiru matrizeetan izenak berak adierazten dituen datuak gordetzen dira. Laugarrena matrize bidimentsionala da, non zero eta bataz osatutako multzo batek ikasle bakoitza zein asignaturatan matrikulatu den adierazten duen.

Adibide honetan erabili diren matrizeak honako hauek dira:



10 REM IKASTETXEA
20 SCREEN 1 : KEY OFF : CLS
30 REM MATRIZEAK DIMENTSIONATU EKINTZA
40 DIM I$(10)
50 DIM K$(10)
60 DIM A$(9)
70 DIM E(10,9)
80 RESTORE 950
90 REM AMAIA MATRIZEAK DIMENTSIONATU EKINTZA
100 REM IZENAK KARGATZEKO BIGIZTA
110 RESTORE 950
120 FOR I = 1 TO 10
130 READ I$(I)
140 NEXT I
150 REM AMAIA IZENAK KARGATZEKO BIGIZTA
160 REM KURTSOAK KARGATZEKO BIGIZTA
170 RESTORE 960
180 FOR I = 1 TO 10
190 READ K$(I)
200 NEXT I
210 REM AMAIA KURTSOAK KARGATZEKO BIGIZTA
220 REM ASIGNATURAK KARGATZEKO BIGIZTA
230 RESTORE 970
240 FOR I = 1 TO 9
250 READ A$(I)
260 NEXT I
270 REM AMAIA ASIGNATURAK KARGATZEKO BIGIZTA
280 REM SARRERA BIKOITZEKO MATRIZEA KARGATZEKO BIGIZTA
290 RESTORE 980
300 FOR I = 1 TO 10
310 FOR J = 1 TO 9
320 READ E(I,J)
330 NEXT J
340 NEXT I
350 REM AMAIA SARRERA BIKOITZEKO MATRIZEA KARGATZEKO BIGIZTA
360 LOCATE 5,4 : PRINT "Programak ikasleen fitxategi bat"
370 LOCATE 6,4 : PRINT "maneiatzen du."
380 GOSUB 1010 : REM JARRAITZEKO EGIKARITU
390 LOCATE 8,4 : PRINT "Datu bat ezaguturik beste biak"
400 LOCATE 9,4 : PRINT "ematen dizkizut."
410 GOSUB 1010 : REM JARRAITZEKO EGIKARITU
420 CLS
430 LOCATE 11,5 : PRINT " KURTSOA (1)"
440 LOCATE 13,5 : PRINT " IZEN-DEITURAK (2)"
450 LOCATE 15,5 : PRINT " ASIGNATURA (3)"
460 LOCATE 18,7 : INPUT "Zein datu ezagutzen duzu?", A
470 IF A 1 AND A 2 AND A 3 THEN 420
480 IF A = 1 THEN 630
490 IF A = 2 THEN 770
500 CLS
510 LOCATE 5,5 : INPUT "Zein asignatura"; B$
520 CLS : LOCATE 1,15 : PRINT B$
530 LOCATE 4,5 : PRINT "IKASLEA":LOCATE 4,27 : PRINT "KURTSOA"
540 KONT = 0
550 FOR I = 1 TO 9
560 IF B$ A$(I) THEN 610
570 FOR J = 1 TO 10
580 IF E(J,I)=1 THEN LOCATE 6+KONT,5:PRINT I$(J):LOCATE
6+KONT,27: PRINT K$(J) : KONT= KONT+1
590 NEXT J
600 KONT = KONT + 1
610 NEXT I
620 GOTO 900
630 CLS : LOCATE 5,5 : INPUT "Zein kurtso"; D$
640 CLS : LOCATE 1,18 : PRINT D$
650 LOCATE 4,5 : PRINT "IKASLEA" : LOCATE 4,27 : PRINT "ASIGNATURA"
660 KONT = 0
670 FOR I = 1 TO 10
680 IF D$ K$(I) THEN 750
690 IF KONT+6=20 THEN KONT = 0 : GOSUB 1010 : CLS
700 LOCATE 6+KONT,5 : PRINT I$(I)
710 FOR J = 1 TO 9
720 IF E(I,J) = 1 THEN LOCATE 6+KONT,27 : PRINT A$(J) : KONT=KONT+1
730 NEXT J
740 KONT = KONT + 1
750 NEXT I
760 GOTO 900
770 CLS
780 LOCATE 5,5 : INPUT "Zein izen-deitura"; O$
790 CLS : LOCATE 1,13 : PRINT O$
800 LOCATE 4,5 : PRINT "KURTSOA" : LOCATE 4,27 :
PRINT "ASIGNATURA"
810 KONT = 0
820 FOR I = 1 TO 10
830 IF O$ I$(I) THEN 890
840 LOCATE 6,5 : PRINT K$(I)
850 FOR J = 1 TO 9
860 IF E(I,J) = 1 THEN LOCATE 6+KONT,27 : PRINT A$(J) :
KONT=KONT+1
870 IF KONT+6=20 THEN KONT = 0 : GOSUB 1010 : CLS
880 NEXT J
890 NEXT I
900 LOCATE 22,5 : INPUT "Beste daturen bat nahi (B/E)";B$
910 IF B$ = "B" OR B$ = "b" THEN 420
920 CLS
930 LOCATE 11,5 : PRINT "Oso ongi, programa amaitu da."
940 END
950 DATA LARRETA A,LARRARTE K,MATXAIN JL,BALERDI L,AIZPURU ML,ARRONA J,LIZASO L,AZKUNE A,IBARGOIEN P,MANTEROLA H
960 DATA BBB2,BBB3,UBI,BBB1,BBB1,BBB2,BBB3,UBI,BBB1,UBI
970 DATA MATEMATIKA,FISIKA,KIMIKA,FILOSOFIA,BIOLOGIA,
MARRAZKETA,LITERATURA, HISTORIA, HIZKUNTZAK
980 DATA '1,1,1,0,0,1,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,
0,0,0,1,1,0,0,0,1,1,1,1, 0,0,1,1,0,1,1,0,0,0, 1,0,1,0,1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,0,
1,1,1,1,0,0,1,0,1,1
990 REM
1000 REM
1010 REM JARRAITZEKO EKINTZA
1020 LOCATE 22,10 : PRINT "Jarraitzeko J sakatu."
1030 T$ = ""
1040 WHILE T$ "J" AND T$ "j" : T$=INKEY$:WEND
1050 RETURN
1060 REM AMAIA JARRAITZEKO EKINTZA

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila