Pascal/Turbo Pascal - Alguien sabe como hacer este ejercicio de cadena de caracteres?

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 46 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Alguien sabe como hacer este ejercicio de cadena de caracteres?

Publicado por Andres Chavarri (15 intervenciones) el 25/06/2021 23:41:37
Escribir un programa que lea una de cadena de caracteres conformada por varias
palabras e imprima :
 Total de las palabras que comiencen con una letra dada por teclado
 En otra cadena, concatene las palabras de cuatro letras y las cuente
 Sustituya cada palabra de cuatro letras por una cadena de cuatro
asteriscos e imprima la nueva cadena.
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
sin imagen de perfil
Val: 287
Oro
Ha mantenido su posición en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Alguien sabe como hacer este ejercicio de cadena de caracteres?

Publicado por dario (87 intervenciones) el 26/06/2021 16:37:17
Hola, te dejo el ejercicio N° 1.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var
    c:array[1..5] of string; {si quieres mas palabras cambia el numero 5 por cualquier otro}
                                       {o usa una constante}
    p,i:byte;
    caracter:string;
begin
    clrscr;
    for i:=1 to 5 do begin
        write('Ingrese una palabra: ');
        readln(c[i]);
    end;
 
    {Buscar palabras que comiencen con una letra dada por teclado }
    write('Digite una letra: ');
    readln(caracter);
    for i:=1 to 5 do
        if lowercase(c[i][1]) = lowercase(caracter) then
            inc(p);
 
    writeln('Hay ',p,' palabras que empiezan con ',caracter);
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Alguien sabe como hacer este ejercicio de cadena de caracteres?

Publicado por ramon (2158 intervenciones) el 26/06/2021 17:50:57
mira esto que tal.

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
program cadenas;
 uses
   crt;
  const
     micadena : string = 'Ramiro tenia como un perrito chiguagua que es un leon';
 
  var
    letra : char;
    enc : string[4];
    conca, cade : string;
 
 
  procedure entradaletra;
  begin
     write('  Entre Letra : ');
     repeat
         letra := readkey;
     until letra in['A'..'Z','a'..'z'];
  end;
 
  function cuentapalabras(p : string) : integer;
  var
    cont, palabras, t, i : integer;
    toma : string;
    begin
      t := 1;
      palabras := 0;
      cont := 0;
      for i := 1 to length(p) do
      begin
         if p[i] <> ' ' then
         begin
         toma[t] := p[i];
         toma[0] := chr(t);
         t := t + 1;
      end
   else
      begin
         if upcase(toma[1]) = upcase(letra) then
         cont := cont + 1;
         t := 1;
         palabras := palabras + 1;
      end;
    end;
    if t > 1 then
    begin
    palabras := palabras + 1;
    if upcase(toma[1]) = upcase(letra) then
    cont := cont + 1;
    end;
    cuentapalabras := cont;
  end;
 
  procedure concadene4(c : string);
  var
     l, con, i : integer;
     toma : string;
  begin
      con := 0;
      conca := ' ';
      conca[0] := chr(1);
      l := 1;
      for i := 1 to length(c) do
      begin
          if c[i] > ' ' then
          begin
          toma[l] := c[i];
          toma[0] := chr(l);
          l := l + 1;
         end
       else
          begin
             if length(toma) = 4 then
             begin
             insert(toma,conca,length(toma) + 4);
             insert(' ',conca,length(conca) + 1);
             con := con + 1;
             end;
             l := 1;
          end;
      end;
      if length(toma) = 4 then
      begin
      con := con + 1;
      insert(toma,conca,length(toma) + 4);
      insert(' ',conca,length(conca) + 1);
      end;
      writeln('  ',con);
  end;
 
  procedure aesterisco(s : string);
  var
    h : integer;
  begin
     for h := 1 to length(s) do
     begin
     if s[h] > ' ' then
     begin
        s[h] := '*';
     end
   else
      s[h] := ' ';
   end;
     writeln('  ',s);
  end;
 
 
   begin
      clrscr;
      entradaletra;
      writeln(micadena);
      writeln('  Palabras Con ',letra,' = ',cuentapalabras(micadena));
      writeln('  Con 4 Letras');
      concadene4(micadena);
      writeln('  ',conca);
      aesterisco(conca);
      readkey;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar