2024(e)ko martxoaren 11(a), astelehena

8. astea | esaldiaren hitzak


 

Programaren kodea:

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{--------------------------------------------------------------
  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

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