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 tKate20 = 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: tKate20 ; 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.
{ Datua den karaktere-katearen ezaugarriak: - Datuaren luzera maximoa 20 karaktere. - Datuaren hasieran izen bat dago, adibidez Eleonor izena. - Datuaren erdian banatzaile bat agertuko da, # karakterea. - 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. Eleonor#7.2 Paul#6.8 (7.2+6.8)/2 => 7.0 } program BiNotenBatezbestekoa ; type tKate20 = string[20] ; procedure NotaBakandu(sIkaslea: tKate20; var sNota: tKate20) ; var iBanatzaileaNon: integer ; begin iBanatzaileaNon := pos('#', sIkaslea) ; writeln(sIkaslea, ' datuan # ', iBanatzaileaNon, '. posizioan') ; sNota := copy(sIkaslea, iBanatzaileaNon+1, 3) ; end ; {-------------------------Programa Nagusia-------------------------} var sIkasle1, sIkasle2, sNota1, sNota2: tKate20 ; rNota1, rNota2: real ; iErroreaNon1, iErroreaNon2: integer ; begin writeln('//////////////////////////////////////') ; writeln ; write('Lehen ikaslearen datuak eman (adibidez: Eleonor#7.2): ') ; readln(sIkasle1) ; write('Bigarren ikaslearen datuak eman (adibidez: Paul#6.8): ') ; readln(sIkasle2) ; writeln('1==>', sIkasle1, '<==1') ; writeln('2==>', sIkasle2, '<==2') ; writeln ; NotaBakandu(sIkasle1, sNota1) ; writeln('1 sNota ==>', sNota1, '<==') ; NotaBakandu(sIkasle2, sNota2) ; 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.
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 Eleonor 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]; sNota := sNota + sIkaslea[length(sIkaslea)-1]; sNota := sNota + sIkaslea[length(sIkaslea)]; 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.
{ Datua den karaktere-katearen ezaugarriak: - Datuaren luzera maximoa 30 karaktere. - Datuaren hasieran letrak daude, izen bati dagozkion letrak - Datuaren amaieran nota bat dago, adibidez 7.24 nota edo 6 nota edo 5.725 (lehen zifra, puntua eta dezimal batzuk; edo zifra bakar bat punturik gabe eta dezimalik gabe). Zenbat ikasle diren teklatuaren bitartez harturik, notak eskuratu eta nota guztien batezbestekoa lortu. Izaskun7.24 Pili4.9 Amagoia5 Ruy6.3333 (7.24 +4.9 +5 +6.3333) / 4 = 5.868325 } program HainbatNotenBatezbestekoAritmetikoa; type tKate30 = string[30]; procedure DatuakBakandu(sIkaslea: tKate30; var sIzena, sNota: tKate30); var iLehenZifraNon: integer; begin iLehenZifraNon:= 1; while (sIkaslea[iLehenZifraNon] < '0') or (sIkaslea[iLehenZifraNon] > '9') do iLehenZifraNon:= iLehenZifraNon +1 ; sIzena:= copy(sIkaslea, 1, iLehenZifraNon-1); sNota:= copy(sIkaslea, iLehenZifraNon, length(sIkaslea)-iLehenZifraNon+1); //writeln('sIzena = ', sIzena); //writeln('sNota = ', sNota); end; {-------------------------Programa Nagusia-------------------------} var sIkaslea, sNota, sIzena: tKate30; rNota, rBatukaria: real; iZenbatIkasle, iKont: integer; begin writeln; writeln; writeln; writeln('///////////////////////////////////////'); writeln; repeat write('Zenbat ikasle izango dira (adibidez 4): '); readln(iZenbatIkasle); until iZenbatIkasle > 0; writeln; rBatukaria:= 0.0; for iKont:=1 to iZenbatIkasle do begin write(iKont, '. ikaslearen datuak (adibidez Eneko7.25 edo Ana3.6666): '); readln(sIkaslea); DatuakBakandu(sIkaslea, sIzena, sNota); writeln(iKont, '. ikaslea: |', sIzena,'| |', sNota,'|'); val(sNota, rNota); writeln(iKont, '. ikaslearen nota = ', rNota:0:6); writeln; rBatukaria:= rBatukaria + rNota; end; writeln('Batezbestekoa = ', rBatukaria/iZenbatIkasle:0:6); writeln; writeln('///////////////////////////////////////'); readln; end.
Hainbat kateren zatia eskuratu eta zenbaki bihurtu.
{ 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 Paul-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 NotaBakandu(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 write(k, '. ikaslearen datuak (adibidez: Ruy+7.2Ruiz): ') ; readln(sIkaslea) ; writeln ; writeln('datua ==>', sIkaslea, '<==') ; NotaBakandu(sIkaslea, sIzena, sAbizena, sNota) ; writeln(k, '. ikaslea: |', sIzena,'| |', sAbizena,'| |', sNota,'|') ; writeln ; 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.
Datuen egokitasuna zainduz, hainbat kateren zatia eskuratu eta zenbaki bihurtu.
{ 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, ikaslearen datuak hartu eta egokitasuna frogatu ondoren nota eskuratu, nota guztien batezbestekoa lortzeko. Eleonor+7.2Iza Paul-6.8Salazar Amagoia+5.5Lakarra Ruy-4.9Ruiz (7.2 -6.8 +5.5 -4.9) / 4 = 0.25 } program KatearenEgokitasunaKontrolatu ; type tKate30 = string[30] ; function fnboDatuaEgokiaDa(sIkaslea: tkate30): boolean ; var iZeinuaNon, iErroreaNon: integer ; sNota: tkate30 ; rNota: real ; begin fnboDatuaEgokiaDa := TRUE ; if (pos('+', sIkaslea) = 0) and (pos('-', sIkaslea) = 0) then begin writeln('Zeinua falta da!!!') ; fnboDatuaEgokiaDa := FALSE ; end ; if (pos('+', sIkaslea) <> 0) or (pos('-', sIkaslea) <> 0) then begin if pos('+', sIkaslea) = 0 then iZeinuaNon := pos('-', sIkaslea) else iZeinuaNon := pos('+', sIkaslea) ; sNota := copy(sIkaslea, iZeinuaNon, 4) ; writeln('sNota = |', sNota,'|') ; val(sNota, rNota, iErroreaNon) ; if iErroreaNon <> 0 then begin writeln('Zifrak edo puntua oker, notaren ', iErroreaNon, '. posizioan errorea dago!!!') ; fnboDatuaEgokiaDa := FALSE ; end else (* zeinua eta nota ondo daudenean *) begin if iZeinuaNon = 1 then begin writeln('Izena falta da!!!') ; fnboDatuaEgokiaDa := FALSE ; end ; if iZeinuaNon+3 = length(sIkaslea) then begin writeln('Abizena falta da!!!') ; fnboDatuaEgokiaDa := FALSE ; end ; end ; end ; end ; procedure DatuakBakandu(sIkaslea: tKate30; var sIzena, sAbizena, sNota: tKate30) ; var iBanatzaileaNon: integer ; begin iBanatzaileaNon := pos('+', sIkaslea) ; if iBanatzaileaNon = 0 then iBanatzaileaNon := pos('-', sIkaslea) ; writeln('Zeinuaren 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: integer ; boDatuaEgokiaDa: boolean ; begin writeln('//////////////////////////////////////') ; writeln ; repeat write('Zenbat ikasle izango dira (adibidez 4): ') ; readln(iZenbatIkasle) ; until iZenbatIkasle > 0 ; writeln ; rBatukaria := 0.0 ; for k:=1 to iZenbatIkasle do begin repeat write(k, '. ikaslearen datuak (adibidez: Ruy+7.2Ruiz): ') ; readln(sIkaslea) ; boDatuaEgokiaDa := fnboDatuaEgokiaDa(sIkaslea) ; if not boDatuaEgokiaDa then begin writeln('Datua berriro errepikatu!!!') ; writeln ; end ; until boDatuaEgokiaDa ; writeln ; writeln('datua ==>', sIkaslea, '<==') ; DatuakBakandu(sIkaslea, sIzena, sAbizena, sNota) ; writeln(k, '. ikaslea: |', sIzena,'| |', sAbizena,'| |', sNota,'|') ; writeln ; val(sNota, rNota) ; rBatukaria := rBatukaria + rNota ; end ; writeln ; writeln('Batezbestekoa = ', rBatukaria/iZenbatIkasle:0:3) ; writeln ; writeln('//////////////////////////////////////') ; readln ; end.
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.