2024(e)ko martxoaren 8(a), ostirala

8. astea | katean toki nahikorik ez

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:  

{
   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

Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.