Karaktere-kate baten luzera fisikoa (luzera maximoa) mugatuta dago eta hori gainditzean ez da errorerik gertatzen ez exekuzio-denboran eta are gutxiago konpilazio-denboran. Muga gainditzean gainerako karaktereak ez dira gordetzen. Adibidez, hori gerta daiteke insert() prozedura aplikatzean:
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 | { Hasierako katearen itxura: - Izena eta abizena - Izena eta abizena letra larriz hasten dira - Adibidez: IbanIbabe Bukaerako katearen itxura: - Izena eta abizena - Izena eta abizena letra larriz hasten dira - Izena eta abizenaren artean 'txu' txikigarria - Adibidez: IbantxuIbabe } program txu_Txikigarria; uses crt; const iMAX = 15 ; { sarritan txikiegia gerta daiteke } type tsKatea = string [iMAX]; function fniAbizenaNonHastenDa(sIzenAbizena: tsKatea) : integer ; var iKont: integer ; begin iKont := 2 ; (* larria delako, ez konputatu izenaren lehen karakterea *) while sIzenAbizena[iKont] > 'Z' do iKont := iKont + 1 ; fniAbizenaNonHastenDa := iKont; end ; var sIzenAbizena: tsKatea; iAbizenaNon: integer ; begin clrscr; writeln ( '//////////////////////////////////////' ); writeln ; repeat write ( 'Izena eta abizena eman (adibidez, IbanIbabe): ' ); readln(sIzenAbizena); if length(sIzenAbizena) > iMAX - length( 'txu' ) then writeln ( 'Datu horientzat ez dago toki nahikorik memorian!!!' ); until length(sIzenAbizena) <= iMAX - length( 'txu' ); writeln ; writeln ( ' Datua hauxe da: ///' , sIzenAbizena, '///' ); writeln ( 'Luzera efektiboa: ///123456789012345///' ); writeln ; { Abizenaren lehen karakterea letra larria da } iAbizenaNon := fniAbizenaNonHastenDa(sIzenAbizena); insert( 'txu' , sIzenAbizena, iAbizenaNon); writeln ( ' Emaitza hau da: ///' , sIzenAbizena, '///' ); writeln ( 'Luzera efektiboa: ///123456789012345///' ); writeln ; writeln ( '//////////////////////////////////////' ); readln; end . |
iruzkinik ez:
Argitaratu iruzkina