Katearen karaktereak banan-banan prozesatu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | { 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | { 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | { 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | { 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | { 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | { 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.