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 | { Datua den karaktere-katearen ezaugarriak: - Datuak 15 karaktere ditu. - Datuaren hasieran izen bat dago, adibidez Eleonor izena. - Datuaren erdian # banatzailea agertuko da hainbat aldiz. - Datuaren amaieran nota bat dago, adibidez 7.2 nota (beti zifra bat, puntua eta dezimal bat). Datu bat teklatuaren bitartez harturik, beste karaktere bat sortzea eskatzen da, emaitzak honako hau bilduko du: izena, kalifikazioa, nota. 111111 123456789012345 Eleonor#####7.2 Eleonor_OSOONDO_7.2 Paul########6.8 Paul_ONDO_6.8 Kattalin####9.0 Kattalin_BIKAIN_9.0 Jon#########1.8 Jon_GUTXI_1.8 } program IzenaNotaEtaKalifikazioa ; type DM_Kate15 = string [ 15 ] ; DM_Kate30 = string [ 30 ] ; function fnsZenbakiakLetrazOrdezkatu(rNota: real ) : DM_Kate15 ; begin if rNota < 5.0 then fnsZenbakiakLetrazOrdezkatu := 'GUTXI' ; if (rNota >= 5.0 ) and (rNota < 6.0 ) then fnsZenbakiakLetrazOrdezkatu := 'NAHIKO' ; if (rNota >= 6.0 ) and (rNota < 7.0 ) then fnsZenbakiakLetrazOrdezkatu := 'ONDO' ; if (rNota >= 7.0 ) and (rNota < 9.0 ) then fnsZenbakiakLetrazOrdezkatu := 'OSOONDO' ; if rNota >= 9.0 then fnsZenbakiakLetrazOrdezkatu := 'BIKAIN' ; end ; procedure TraolakKendu( var sDatua : DM_Kate15) ; var iBanatzaileaNon : integer ; begin iBanatzaileaNon := pos( '#' , sDatua) ; writeln ( '# ' , iBanatzaileaNon, '. posizioan' ) ; writeln ; delete(sDatua, iBanatzaileaNon, 15 - iBanatzaileaNon - 2 ) ; end ; procedure BanaketaEgin(sDatua : DM_Kate15; var sIzena, sNota : DM_Kate15) ; begin sIzena := copy(sDatua, 1 , length(sDatua)- 3 ) ; sNota := copy(sDatua, length(sDatua)- 2 , 3 ) ; end ; { ------------------------------ Programa Nagusia ------------------------------ } var sDatua, sIzena, sNota, sKalifikazioa : DM_Kate15 ; sEmaitza : DM_Kate30 ; rNota : real ; iErroreaNon : integer ; begin writeln ; writeln ; writeln ; writeln ( '//////////////////////////////////////' ) ; repeat writeln ( ' 111111' ) ; writeln ( ' 123456789012345' ) ; write ( 'Ikaslearen datuak eman (adibidez: Eleonor#####7.2): ' ) ; readln(sDatua) ; if length(sDatua) <> 15 then writeln ( 'Datuak 15 karaktere behar ditu' ) ;; until length(sDatua) = 15 ; writeln ( '========> 111111' ) ; writeln ( '========>123456789012345' ) ; writeln ( 'sDatua==>' , sDatua, '<==' ) ; writeln ; TraolakKendu(sDatua) ; writeln ( '========> 111111' ) ; writeln ( '========>123456789012345' ) ; writeln ( 'sDatua==>' , sDatua, '<==' ) ; writeln ; BanaketaEgin(sDatua, sIzena, sNota) ; writeln ( '========> 111111' ) ; writeln ( '========>123456789012345' ) ; writeln ( 'sIzena==>' , sIzena, '<==' ) ; writeln ( 'sNota===>' , sNota, '<==' ) ; writeln ; val (sNota, rNota, iErroreaNon) ; writeln ( 'rNota ==>' , rNota, ' iErroreaNon=' , iErroreaNon) ; writeln ; if iErroreaNon = 0 then begin sKalifikazioa := fnsZenbakiakLetrazOrdezkatu(rNota) ; sEmaitza := sIzena + '_' + sKalifikazioa + '_' + sNota ; writeln ( 'sEmaitza===>' , sEmaitza, '<==' ) ; end else writeln ( 'Kalifikazioa ezin izan da kalkulatu.' ) ; writeln ; writeln ( '//////////////////////////////////////' ) ; readln ; end . |
2023(e)ko martxoaren 15(a), asteazkena
8. astea | izena, nota eta kalifikazioa
Harpidetu honetara:
Argitaratu iruzkinak (Atom)
iruzkinik ez:
Argitaratu iruzkina