Programaren kodea:
{--------------------------------------------------------------
Esaldi bat hartu eta bere hitzak banatu egiten duen programa
--------------------------------------------------------------}
program EsaldiBatetikBereHitzakLortu;
uses
crt;
type
tKateLuze = string[100];
function fnsAurrekoakKendu(sEsaldia: tKateLuze): tKateLuze;
//var
// k: integer;
begin
writeln('/////fnsAurrekoakKendu funtzio barruan/////');
//k := 1;
while sEsaldia[1] = ' ' do
begin
delete(sEsaldia, 1, 1);
writeln('posizioa ', 1, ' denean/////', sEsaldia,'/////');
end;
fnsAurrekoakKendu := sEsaldia;
end;
function fnsAtzekoakKendu(sEsaldia: tKateLuze): tKateLuze;
var
iAzkenposizioa: integer;
begin
writeln('\\\\\fnsAtzekoakKendu funtzio barruan\\\\\');
iAzkenposizioa := length(sEsaldia);
while sEsaldia[iAzkenposizioa] = ' ' do
begin
delete(sEsaldia, iAzkenposizioa, 1);
writeln('posizioa ', iAzkenposizioa, ' denean\\\\\', sEsaldia,'\\\\\');
iAzkenposizioa := length(sEsaldia);
end;
fnsAtzekoakKendu := sEsaldia;
end;
function fnsErdikoakKendu(sEsaldia: tKateLuze): tKateLuze;
var
iNon: integer;
begin
writeln('|||||fnsErdikoakKendu funtzio barruan|||||');
repeat
iNon := pos(' ', sEsaldia); (* zuriune bikotea bilatu *)
write('iNon: ', iNon, ', ');
delete(sEsaldia, iNon, 1); (* bikotetik zuriune bat kendu *)
writeln('delete ondoren|||||', sEsaldia,'|||||');
until iNon = 0; (* azken bikotearen bigarren zuriunea geratzen da *)
fnsErdikoakKendu := sEsaldia;
end;
procedure HitzakErakutsi(sEsaldia: tKateLuze);
var
sHitza: tKateLuze ;
k, iNon: integer;
begin
writeln('#####HitzakErakutsi prozedura barruan#####');
sEsaldia := sEsaldia + ' ';
k := 1 ;
iNon := pos(' ', sEsaldia);
while iNon <> 0 do
begin
sHitza := copy(sEsaldia, 1, iNon-1);
delete(sEsaldia, 1, iNon);
// writeln(k, ' itzulian, delete ondoren#####', sEsaldia,'#####');
writeln(k, '. hitza#####', sHitza,'#####');
k := k + 1;
iNon := pos(' ', sEsaldia);
end;
end;
{---------------------Programa nagusia---------------------}
var
sEsaldia, sEsaldiBerri1, sEsaldiBerri2, sEsaldiBerri3: tKateLuze;
begin
clrscr;
write('Sarrerako esaldia eman: ');
readln(sEsaldia);
writeln('===>', sEsaldia, '<===');
writeln;
sEsaldiBerri1 := fnsAurrekoakKendu(sEsaldia);
writeln('===>', sEsaldiBerri1, '<===');
writeln;
sEsaldiBerri2 := fnsAtzekoakKendu (sEsaldiBerri1);
writeln('===>', sEsaldiBerri2, '<===');
writeln;
sEsaldiBerri3 := fnsErdikoakKendu (sEsaldiBerri2);
writeln('===>', sEsaldiBerri3, '<===');
(* esaldi barruan hitzak zuriune bakarrez banaturik daude *)
(* hitzak esalditik banatu, horretarako zuriuneak bilatu *)
writeln;
HitzakErakutsi(sEsaldiBerri3);
writeln;
writeln('=======================');
writeln('RETURN sakatu amaitzeko');
writeln('=======================');
readln;
end.
iruzkinik ez:
Argitaratu iruzkina