2023(e)ko martxoaren 8(a), asteazkena

8. astea | esaldiaren hitzak




 



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

15. ASTEA | laborategi/mintegian egin dena

 15. astea (2023/05/08) laborategi/mintegian egindakoa 24 ikasleetatik 11 ikasleek kontrol-ariketaren bidalketa egin dute Hirugarren kont...