8. astea (2024/03/11 eta 2024/03/15) ikasgelan egin dena
- Ostegunean, martxoaren (3) hamalaugarren (14) eguna izango da, π zenbakiaren nazioarteko eguna izango da: Pi, nortasun handiko zenbakia
- Azken autoebaluazio-ariketaren bitartez, 15. Ariketa: azpiprogramak (III), azpiprogramen parametroak birpasatu ditugu
- (I) Orain arte ikusitako funtzio eta prozedura estandarrak artikuluan bildumatxo bat egin da eta adibideen estekak eskaintzen dira. STRING datu-mota ikasi ondoren, funtzio eta prozeduren zerrenda luzeagoa izango da, hau: (II) Orain arte ikusitako funtzio eta prozedura estandarrak
Katearen karaktereak banan-banan prozesatu:
{ Datuaren luzera maximoa 20 karaktere. Karaktereak banan banan aztertuz bokal guztiak maiuskuletan jarri eta gainerako karaktere guztiak minuskuletan jarri. Datua ------> KrokodiLO bErDe@ PoziK daGO Emaitza ----> krOkOdIlO bErdE@ pOz } program MaiuskulakMinuskulak ; type DM_Kate20 = string[20] ; function fnboBokalaDa(cLetra: char): boolean ; begin case cLetra of 'a', 'e', 'i', 'o', 'u': fnboBokalaDa := TRUE ; 'A', 'E', 'I', 'O', 'U': fnboBokalaDa := TRUE else fnboBokalaDa := FALSE; end ; end ; {-------------------------Programa Nagusia-------------------------} var sEsaldia : DM_Kate20 ; k : integer ; begin writeln('//////////////////////////////////////') ; writeln ; write('Esaldia eman: ') ; readln(sEsaldia) ; writeln('==>', sEsaldia, '<==') ; for k:=1 to length(sEsaldia) do begin if fnboBokalaDa(sEsaldia[k]) then sEsaldia[k] := upcase(sEsaldia[k]) else sEsaldia[k] := lowercase(sEsaldia[k]) ; end ; writeln('==>', sEsaldia, '<==') ; writeln ; writeln('//////////////////////////////////////') ; readln ; end.
Bi kateren zatia eskuratu eta zenbaki bihurtu. Kontuz 0 posizioaren edukiarekin.
{ Datua den karaktere-katearen ezaugarriak: - Datuaren luzera maximoa 20 karaktere - Datuaren hasieran izen bat dago, adibidez Liudmila izena - Datuaren amaieran nota bat dago, adibidez 7.2 nota (beti zifra bat, puntua eta dezimal bakarra) Datu bi teklatuaren bitartez harturik, notak eskuratu eta nota biren batezbestekoa lortu. Liudmila7.2 Kiril6.8 (7.2+6.8)/2 => 7.0 } program BiNotenBatezbestekoAritmetikoa; type tKate20 = string[20]; function fnsNotaBakandu(sIkaslea: tKate20): tKate20; var sNota: tKate20; begin sNota := sIkaslea[length(sIkaslea)-2]; { unitatea } sNota := sNota + sIkaslea[length(sIkaslea)-1]; { puntua } sNota := sNota + sIkaslea[length(sIkaslea)]; { hamarrekoa } fnsNotaBakandu := sNota; end; {-------------------------Programa Nagusia-------------------------} var sIkasle1, sIkasle2, sNota1, sNota2: tKate20; rNota1, rNota2: real; iErroreaNon1, iErroreaNon2: integer; begin writeln; writeln; writeln; writeln('//////////////////////////////////////'); writeln; write('Lehen ikaslearen datuak eman (adibidez: Liudmila7.2): '); readln(sIkasle1); write('Bigarren ikaslearen datuak eman (adibidez: Kiril6.8): '); readln(sIkasle2); writeln('1==>', sIkasle1, '<==1'); writeln('2--|', sIkasle2, '|--2'); writeln; sNota1 := fnsNotaBakandu(sIkasle1); writeln('1 sNota ==>', sNota1, '<=='); sNota2 := fnsNotaBakandu(sIkasle2); writeln('2 sNota --|', sNota2, '|--'); writeln; Val(sNota1, rNota1, iErroreaNon1); writeln('1 rNota ==>', rNota1, ' iErroreaNon1=', iErroreaNon1); if iErroreaNon1 <> 0 then writeln('1==>', sIkasle1, '<==1 datua ez da egokia'); Val(sNota2, rNota2, iErroreaNon2); writeln('2 rNota --|', rNota2, ' iErroreaNon2=', iErroreaNon2); if iErroreaNon2 <> 0 then writeln('2--|', sIkasle2, '|--2 datua ez da egokia'); writeln; if (iErroreaNon1 = 0) and (iErroreaNon2 = 0) then writeln('Batezbestekoa = ', (rNota1+rNota2)/2:0:2) else writeln('Batezbestekoa ezin izan da kalkulatu'); writeln; writeln('//////////////////////////////////////'); readln; end.
Hainbat kateren zatia eskuratu eta zenbaki bihurtu (ikusi ere
SarrerakoDatuakKontrolatuz.pas
):{ Datua den karaktere-katearen ezaugarriak: - Datuaren luzera maximoa 30 karaktere. - Datuaren hasieran izen bat dago, adibidez Eleonor izena. - Datuaren erdian nota bat dago, adibidez +7.2 nota edo -6.8 nota (zeinua, lehen zifra, puntua eta dezimal bakarra). - Datuaren amaieran abizena dago, adibidez Iza abizena. Zenbat ikasle diren teklatuaren bitartez harturik, notak eskuratu eta nota guztien batezbestekoa lortu. Eleonor+7.2Iza Peru-6.8Salazar Amagoia+5.5Lakarra Ruy-4.9Ruiz (+7.2 -6.8 +5.5 -4.9) / 4 = 0.25 } program HainbatNotenBatezbestekoa ; type tKate30 = string[30] ; procedure DatuakBakandu(sIkaslea: tKate30; var sIzena, sAbizena, sNota: tKate30) ; var iBanatzaileaNon : integer ; begin iBanatzaileaNon := pos('+', sIkaslea) ; if iBanatzaileaNon = 0 then iBanatzaileaNon := pos('-', sIkaslea) ; writeln('Banatzailearen posizioa ', iBanatzaileaNon, ' da') ; sIzena := copy(sIkaslea, 1, iBanatzaileaNon-1) ; sNota := copy(sIkaslea, iBanatzaileaNon, 4) ; sAbizena := copy(sIkaslea, iBanatzaileaNon+4, length(sIkaslea)-iBanatzaileaNon+4) ; writeln('sIzena = ', sIzena) ; writeln('sNota = ', sNota) ; writeln('sAbizena = ', sAbizena) ; end ; {-------------------------Programa Nagusia-------------------------} var sIkaslea, sNota, sIzena, sAbizena : tKate30 ; rNota, rBatukaria : real ; iZenbatIkasle, k, iErroreaNon : integer ; begin writeln('//////////////////////////////////////') ; writeln ; repeat write('Zenbat ikasle izango dira (adibidez 4): ') ; readln(iZenbatIkasle) ; until iZenbatIkasle > 0 ; rBatukaria := 0.0 ; for k:=1 to iZenbatIkasle do begin writeln ; write(k, '. ikaslearen datuak (adibidez: Ruy+7.2Ruiz): ') ; readln(sIkaslea) ; writeln ; writeln('datua ==>', sIkaslea, '<==') ; DatuakBakandu(sIkaslea, sIzena, sAbizena, sNota) ; writeln(k, '. ikaslea: |', sIzena,'| |', sAbizena,'| |', sNota,'|') ; val(sNota, rNota, iErroreaNon) ; writeln(k, '. ikaslea: rNota = ', rNota:0:1, ' iErroreaNon = ', iErroreaNon) ; rBatukaria := rBatukaria + rNota ; end ; writeln ; writeln('Batezbestekoa = ', rBatukaria/iZenbatIkasle:0:3) ; writeln ; writeln('//////////////////////////////////////') ; readln ; end.
- STRING datu-motako aldagaiekin lan egiteko baliabideak adibideekin birpasatu ditugu:
- Adibide hauek aztertu ditugu:
- 8. astea | zero posizioa adibidea. Adibide honen haritik, funtzio hau ondo dago?
{ Datua den karaktere-katearen ezaugarriak: - Datuaren luzera maximoa 20 karaktere - Datuaren hasieran izen bat dago, adibidez Eleonor izena - Datuaren amaieran nota bat dago, adibidez 7.2 nota (beti zifra bat, puntua eta dezimal bakarra) Sarrerako katea: Eleonor7.2 Emaitzako katea: 7.2 } function fnsNotaBakandu(sIkaslea: tKate20): tKate20; var sNota: tKate20; begin sNota[1] := sIkaslea[length(sIkaslea)-2]; { unitatea } sNota[2] := sNota + sIkaslea[length(sIkaslea)-1]; { puntua } sNota[3] := sNota + sIkaslea[length(sIkaslea)]; { hamarrekoa } fnsNotaBakandu := sNota; end;
- Blogeko ARRAY datu-mota artikulutik abiatuta kontzeptu hauek ikusteko asmoa izan dugu:
- DEFINIZIOA
- ESKEMA
- DATU-MOTA SORTZEN
- ERAGIKETA: IRAKURKETA-IDAZKETA ETA ESLEIPENA
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.