2023(e)ko apirilaren 4(a), asteartea

11. astea | erregistroen array bat


Ikasgelako ikasle kopuru maximoa 80 izanik, bildu array batean ikasleen informazio hau:

 

Hona hemen balizko soluzio bat:




program ErregistroenArrayBat ;

const
BEHEMUGA = 1 ;
GOIMUGA = 25 ;

type
tsKate39 = string[39] ;
tsKate99 = string[99] ;

trdIkasle = record
sIzena : tsKate39 ;
rNota : real ;
sHelbidea: tsKate99 ;
byAdina : byte ;
end ;

tardGela = array[BEHEMUGA..GOIMUGA] of trdIkasle ;


procedure IkasleBatHartu(var rdIkasle: trdIkasle) ;
begin
write('Ikaslearen izena eman: ':30) ;
readln(rdIkasle.sIzena) ;
write('Ikaslearen nota eman: ':30) ;
readln(rdIkasle.rNota) ;
write('Ikaslearen helbidea eman: ':30) ;
readln(rdIkasle.sHelbidea) ;
write('Ikaslearen adina eman: ':30) ;
readln(rdIkasle.byAdina) ;
end ;


procedure ArrayaBete(var ardGela: tardGela; var iLuzera: integer) ;
var
k: integer ;
begin
repeat
write('Zenbat ikasle dira? ') ;
readln(iLuzera) ;
until (iLuzera >= BEHEMUGA) and (iLuzera <= GOIMUGA) ;

for k:=BEHEMUGA to iLuzera do
begin
writeln(k, '. ikaslearen datuak hartzen.') ;
IkasleBatHartu(ardGela[k]) ;
writeln ;
end ;
end ;


procedure IkasleBatErakutsi(const rdIkasle: trdIkasle) ;
begin
writeln('Ikaslearen izena: ':25, rdIkasle.sIzena) ;
writeln('Ikaslearen nota: ':25, rdIkasle.rNota:0:2) ;
writeln('Ikaslearen helbidea: ':25, rdIkasle.sHelbidea) ;
writeln('Ikaslearen adina: ':25, rdIkasle.byAdina) ;
end ;


procedure ArrayaIkusi(const ardGela: tardGela; iLuzera: integer) ;
var
k: integer ;
begin
for k:=BEHEMUGA to iLuzera do
begin
IkasleBatErakutsi(ardGela[k]) ;
writeln ;
end ;
end ;

{ ------------------- PROGRAMA NAGUSIA ------------------- }

var
ardGela: tardGela ;
iLuzera: integer ;

begin
writeln('//////////////////////////////////////') ;
writeln ;

writeln('Gelako datuak jaso.') ;
ArrayaBete(ardGela, iLuzera) ;
writeln ;

writeln('Gelako datuak ikusi.') ;
ArrayaIkusi(ardGela, iLuzera) ;
writeln ;

writeln('Lehen ikaslearen adina ', ardGela[BEHEMUGA].byAdina, ' da.') ;
writeln('Azken ikaslearen izena ', ardGela[iLuzera].sizena, ' da.') ;

writeln ;
writeln('//////////////////////////////////////') ;
readln ;
end.




iruzkinik ez:

Argitaratu iruzkina