2023(e)ko martxoaren 10(a), ostirala

Length funtzioa






function length(sKatea: StringDatuMota): integer;







Helburua: karaktere-kate baten luzera logikoa lortu.

Emaitza: zenbaki bat, katearen luzera efektiboa; hau da, katearen 0 posizioari dagokion ordinala.




Nahiz eta bere barnean begiratzerik ez daukagun, suposatzekoa da Length funtzio estandarra honela garaturik dagoela:


1
2
3
4
function length(sKatea: string): integer;
begin
    length := ord(sKatea[0]);
end;





LengthAdibidea adibiderako ikusi KateaErakustenDuenPrograma.pas programa eta ZeroPosizioa.pas programa. 







Hemen handiegia den kate bat irakurtzean gertatzen dena:

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
{
            11111111112
   12345678901234567890
    
   KrokodiLO bErDe@ PoziK daGO
   krOkOdIlO bErdE@ pOz
}
 
program MaiuskulakMinuskulak ;
type
   DM_Kate20 = 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 ;
 
var
   sEsaldia : DM_Kate20 ;
   k : integer ;
begin
   writeln('//////////////////////////////////////') ;
   writeln ;
   writln('Esaldia eman:    ') ;
   readln(sEsaldia) ;
  
   writeln('Irakurritakoa |||', 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('Emaitza       |||', sEsaldia, '|||') ;
  
   writeln ;
   writeln('//////////////////////////////////////') ;
   readln ;
end.





 

iruzkinik ez:

Argitaratu iruzkina