Pascal/Turbo Pascal - Ayuda en Pascal

 
Vista:
sin imagen de perfil

Ayuda en Pascal

Publicado por Edwin rotman (10 intervenciones) el 21/07/2017 15:46:35
Junto con saludar, alguien me podría ayudar con los siguientes ejercicios?

Lo agradecería mucho, gracias de antemano..

Debe utilizar PROCEDIMIENTOS, FUNCIONES.

Escribir un programa en pascal, que lea un numero dado (introducido por teclado) la canción del elefante.:
“1 elefante se balanceaba sobre la tela de una araña. Como veía que no se rompía, fue a llamar otro elefante”
“2 elefantes se balanceaban sobre la tela de una araña. Como veía que no se rompía, fue a llamar otro elefante”
“3 elefante se balanceaba sobre la tela de una araña. Como veía que no se rompía, fue a llamar otro elefante”
“4 elefante se balanceaba sobre la tela de una araña. Como veía que no se rompía, fue a llamar otro elefante”
………..

Una cadena de caracteres (string) en pascal es simplemente un arreglo de caracteres . Así por ejemplo si queremos almacenar la frase “una palabra”, debemos tener un arreglo de caracteres con un tamaño suficientemente grande:
Frase : String [100];
Escriba un programa que :
Lea una cadena de caracteres,
Lea un carácter correspondiente a una letra.
El programa debe contar el numero de palabras que comiencen con el carácter correspondiente.


Una empresa de telecomunicaciones ha estado teniendo cierta filtración de información, para solucionar este problema quiere que sus datos sean codificados para que nadie los pueda ver, quiere que se realice la siguiente codificación a todas las palabras:
Quiere que las letras primeras letras de cada palabra si son minúsculas se conviertan en mayúsculas y se anteceda a la letra un símbolo “_”, si la palabra era “hola” quedaría “_Hola”
Además se haga el siguiente cambio de vocales:
La “a” por la “u” y viceversa
La “i” por la “o” y viceversa
La palabra “_hola” quedaría “_hilu”
Finalmente la palabra deberá invertirse, entonces “_hilu” sería “ulhi_”.
Escribir un programa que pueda realizar este tipo de codificación tomando como dato una cadena de caracteres cualquiera.

Obs: utilice funciones como
length(string) que devuelve el largo de una cadena de caracteres.
Reccorra los string utilizando arreglos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda en Pascal

Publicado por ramon (2158 intervenciones) el 12/08/2017 13:57:19
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
{Mira esto}
 
program cuantapalabras;
 uses
   crt;
 
  type
     string100 = string[100];
 
  const
     frases : array[1..4] of string = (
   ' elefante se balanceaba sobre la tela de una ara¤a.' +
   ' Como veia que no se rompia, fue a llamar otro elefante',
   ' elefantes se balanceaban sobre la tela de una ara¤a.' +
   ' Como veia que no se rompia, fue a llamar otro elefante',
   ' elefante se balanceaba sobre la tela de una ara¤a.' +
   ' Como veia que no se rompia, fue a llamar otro elefante',
  ' elefante se balanceaba sobre la tela de una ara¤a.' +
  ' Como veia que no se rompia, fue a llamar otro elefante');
 
  var
    texto : string100;
 
   procedure imbierte_letras(tt : string100; var l : string100);
   var
      s, m, d, g, r : integer;
      loo, temp, imbt : string100;
   begin
       g := 1;
       s := 0;
       for r := 1 to length(tt) do
       begin
       if tt[r] <> ' ' then
       begin
          imbt[g] := tt[r];
          imbt[0] := chr(g);
          g := g + 1;
          s := s + 1;
       end
    else
       begin
         s := 0;
         m := 1;
         for d := length(imbt) downto 1 do
         begin
            temp[m] := imbt[d];
            temp[0] := chr(m);
            m := m + 1;
         end;
           loo := copy(temp,1,length(imbt));
           insert(loo,l,length(l));
           insert(' ',l,length(l) + 1);
           m := 1;
           g := 1;
           imbt := ' ';
           temp := ' ';
       end;
      end;
         if s > 0 then
         begin
            m := 1;
         for d := length(imbt) downto 1 do
         begin
            temp[m] := imbt[d];
            temp[0] := chr(m);
            m := m + 1;
         end;
           loo := copy(temp,1,length(imbt));
           insert(loo,l,length(l));
           insert(' ',l,length(l) + 1);
         end;
   end;
 
   function codifica_frase(frase : string100) : string100;
   const
       ante = '_';
   var
     y, j : integer;
     camb : string100;
     begin
        y := 1;
        codifica_frase := ' ';
        if frase[1] <> ' ' then
        begin
        frase[1] := upcase(frase[1]);
        insert(ante,frase,1);
        end;
        for j := 1 to length(frase) do
        if frase[j] = ' ' then
        begin
        frase[j + 1] := upcase(frase[j + 1]);
        insert(ante,frase,j + 1);
        end;
        for j := 1 to length(frase) do
        begin
           if (frase[j] = 'a') or (frase[j] = 'A') then
           begin
           if frase[j] = 'a' then
           frase[j] := 'u';
           if frase[j] = 'A' then
           frase[j] := 'U';
           end
        else
         if (frase[j] = 'u') or (frase[j] = 'U') then
           begin
           if frase[j] = 'u' then
           frase[j] := 'a';
           if frase[j] = 'U' then
           frase[j] := 'A';
           end;
           if (frase[j] = 'i') or (frase[j] = 'I') then
           begin
           if frase[j] = 'i' then
           frase[j] := 'o';
           if frase[j] = 'I' then
           frase[j] := 'O';
           end
        else
           if (frase[j] = 'o') or (frase[j] = 'O') then
           begin
           if frase[j] = 'o' then
           frase[j] := 'i';
           if frase[j] = 'O' then
           frase[j] := 'I';
           end;
        end;
        codifica_frase := copy(frase,1,length(frase));
        imbierte_letras(frase,texto);
     end;
 
 
  function cuenta_palabras(cadena : string100; le : char) : integer;
  var
     h, d, i, cont : integer;
     car : char;
     cad : string100;
  begin
      cuenta_palabras := 0;
      cont := 0;
      cad := ' ';
      d := 1;
      h := 0;
      for i := 1 to length(cadena) do
      begin
        if cadena[i] <> ' ' then
        begin
        cad[d] := cadena[i];
        cad[0] := chr(d);
        d := d + 1;
        h := h + 1;
        end
     else
        begin
         if cad[1] = le then
         begin
         cont := cont + 1;
         end;
          cad := ' ';
          d := 1;
          h := 0;
        end;
      end;
       if h > 0 then
       cont := cont + 1;
       cuenta_palabras :=  cont;
  end;
 
  procedure presenta_frase;
  var
    te : char;
  begin
     writeln;
     writeln('   Elija Numero De Frase A Presentar');
     writeln;
     writeln('  Frase [1]');
     writeln('  Frase [2]');
     writeln('  Frase [3]');
     writeln('  Frase [4]');
     writeln;
     repeat
        te := readkey;
     until te in['1'..'4'];
     writeln('   La Frase ES');
     writeln;
     case te of
  '1' : writeln(frases[1]);
  '2' : writeln(frases[2]);
  '3' : writeln(frases[3]);
  '4' : writeln(frases[4]);
   end;
     writeln;
     writeln('   Pulse Una Tecla');
     readkey;
 end;
 
   procedure menu;
   var
     sal : boolean;
     ts : char;
    begin
       sal := false;
     repeat
         clrscr;
         writeln('   **** Menu Jeneral ****');
         writeln('   //////////////////////');
         writeln;
         writeln('   1 : Cuenta Palabres');
         writeln('   2 : Presenta Frase');
         writeln('   3 : Codifica Frase');
         writeln('   4 : Salir');
         writeln;
         writeln('  >>>> Elija Opcion <<<<');
         repeat
         ts := readkey;
         until ts in['1'..'4'];
         clrscr;
     case ts of
  '1' : begin
         writeln('  Roman tenia un Ramo de Rosas La Letra Es R');
         writeln;
         writeln('   Las Palabras Son : ',cuenta_palabras('Roman tenia un Ramo de Rosas','R'));
         writeln;
         writeln('   Pulse Una Tecla');
         readkey;
        end;
  '2' : presenta_frase;
  '3' : begin
         writeln('   La Frase Es = roman tenia un ramo de rosas');
         writeln;
         writeln('  ',codifica_frase('roman tenia un ramo de rosas'));
         writeln;
         writeln('   Final Queda = ',texto);
         writeln;
         writeln('   Pulse Una Tecla');
         readkey;
        end;
  '4' : sal := true;
    end;
  until sal = true;
    end;
 
 
 
   begin
      menu;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar