Hurrengo adibidean kate bakar bat prozesatzen da:
(*
Esaldi bat teklatuz irakurri ondoren, esaldi berberan edukia aldatu
karaktereen aldaketa honelaxe izango da:
- Alfabetoko bokal bat bada, letra larriz jarri bokal hori.
- Alfabetoko kontsonante bat bada, letra xehez jarri kontsonante hori.
- Beste edozein karaktere bada, ez aldatu.
*)
program KateaKarakterekaProzesatzenDuenPrograma ;
const
iMAX = 35 ;
type
tsKatea = string[iMAX] ;
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: tsKatea ;
iLuzera, k: integer ;
begin
{ Karaktere-katea oso-osorik landu behar da. Adibidez, }
{ karaktere-katea irakurri edo idatzi. Karaktere-katea }
{ osoki lantzean 0 posizioa automatikoki berrizten da. }
write('Esaldi bat idatzi): ') ;
readln(sEsaldia) ;
writeln('Esaldia hau da: ///', sEsaldia, '///') ;
writeln ;
iLuzera := length(sEsaldia) ;
writeln('///', sEsaldia, '/// esaldiaren luzera = ', iLuzera) ;
{ Katearen karaktere bat aldatzen bada, kateak duen 0 posizioaren }
{ edukia ez da eguneratzen, kasu honetan hori oso ondo datorkigu. }
for k:=1 to length(sEsaldia) do
begin
if fnboBokalaDa(sEsaldia[k]) then
sEsaldia[k] := upcase(sEsaldia[k])
else
if (sEsaldia[k] >= 'B') and (sEsaldia[k] <= 'Z') then
sEsaldia[k] := lowercase(sEsaldia[k])
end ;
iLuzera := length(sEsaldia) ;
writeln('///', sEsaldia, '/// esaldi berriaren luzera = ', iLuzera) ;
writeln ;
readln ;
end.
Hurrengo adibidean ere kate bakar bat prozesatzen da:
{ Hasierako katearen itxura:
- Izena (adibidez: Mari)
Bukaerako katearen itxura:
- Izena (MariTXU)
}
program KateaKarakterekaProzesatzenDuenPrograma ;
uses
crt ;
const
iMAX = 35 ;
type
tsKatea = string[iMAX] ;
var
sIzena: tsKatea ;
iLuzera: integer ;
begin
clrscr ;
{ Karaktere-katea oso-osorik landu behar da. Adibidez, }
{ karaktere-katea irakurri edo idatzi. Karaktere-katea }
{ osoki lantzean 0 posizioa automatikoki berrizten da. }
write('Izen bat idatzi (MARI adibidez): ') ;
readln(sIzena) ;
writeln('Izena hau da: ///', sIzena, '///') ;
iLuzera := length(sIzena) ;
writeln('///', sIzena, '/// izenaren luzera = ', iLuzera) ;
writeln ;
if length(sIzena)+length('TXU') < iMAX then
begin
{ Katearen karaktere bat aldatzen bada, kateak duen 0 posizioaren }
{ edukia ez da automatikoki eguneratzen, eskuz egin beharko da. }
writeln('Izenari TXU txikigarria gehitu (T, X eta U karaktereak esleituz)') ;
sIzena[iLuzera+1] := 'T' ;
sIzena[iLuzera+2] := 'X' ;
sIzena[iLuzera+3] := 'U' ;
writeln('Izen berria: ///', sIzena, '///') ;
iLuzera := length(sIzena) ;
writeln('///', sIzena, '/// izen berriaren luzera = ', iLuzera) ;
writeln ;
{ Karaktere-katea oso-osorik landu behar da. Esate }
{ baterako kateari beste kate bat gehituz, orduan }
{ katearen 0 posizioa automatikoki eguneratzen da. }
writeln('Izenari TXU txikigarria gehitu (kateen arteko kateaketa burutuz)') ;
sIzena := sIzena + 'TXU' ;
writeln('Izen berria: ///', sIzena, '///') ;
iLuzera := length(sIzena) ;
writeln('///', sIzena, '/// izen berriaren luzera = ', iLuzera) ;
writeln ;
end
else
writeln(sIzena, ' datuari ezin zaio TXU atzizkia gehitu') ;
repeat until keypressed ;
end.
iruzkinik ez:
Argitaratu iruzkina