Pascal/Turbo Pascal - Ayuda con programa de cadena de caracteres

 
Vista:
Imágen de perfil de Jean Carlos

Ayuda con programa de cadena de caracteres

Publicado por Jean Carlos (13 intervenciones) el 22/09/2016 03:55:25
Saludos para todos, me mandaron a realizar el siguiente programa:

Escribir un programa que, mediante 4 funciones:
a) Lea una frase acabada en un punto y cuente las palabras que contiene.
b) Lea una palabra y cuente el número de vocales y consonantes que contiene.
c) Lea una frase y la escriba en mayúsculas
d) Sirva para generar códigos de usuario por el procedimiento siguiente: tiene que leer el nombre y los dos apellidos de una persona y devolver un código de usuario formado por las tres primeras letras del primer apellido, las tres primeras letras del segundo apellido y las tres primeras letras del nombre. Por ejemplo, si la cadena de entrada es: “MARIA FERNANDEZ LOPEZ” debe devolver “FERLOPMAR”

pero debo realizar como un programa en el que pueda interactuar con el usuario y hasta ahora solo he conseguido hacer la b) que me gustaría que me corrigieran en caso de tener algo mal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function ContarVocCon(Cad:String):byte;
var
  d,c,i:byte;
begin
  Cad:=uppercase(Cad);
  c:=0;
  d:=0;
  for i:= 1 to length(Cad) do
    if (Cad[i] in ['A','E','I','O','U']) then
      inc(c);
  Vocales:=c;
  for i:=1 to length(Cad) do
    If not (Cad[i] in ['A','E','I','O','U']) then
       Inc(d);
  Consonantes:=d;
end;

y trato de verificar pero no se que tendré mal en la parte del botón:

1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
Var
  Palabra:String;
  N:Byte;
begin
  Palabra:=(Edit1.Text);
  N:=Length(Palabra);
  If Vocales(palabra) then
    label2.caption:='las vocales en la palabra son '+inttostr(Vocales)+''
end;
end.

si pudieran ayudarme estaría muy agradecido.
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 con programa de cadena de caracteres

Publicado por ramon (2158 intervenciones) el 22/09/2016 14:58:37
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
{Mira Esto}
 
program caracteres;
  uses
     crt;
   var
     vocales, consonantes : integer;
     frase : string;
 
   procedure introducirfrase(var f : string);
   var
     letra : char;
     x, y, i : integer;
   begin
      gotoxy(1,1);write('  Entre Frase Termina Con [.]');
      gotoxy(1,3);write('Frase : ');
      i := 1;
      x := 8;
      y := 3;
     repeat
        letra := readkey;
        if letra <> '.' then
        begin
         if ord(letra) in[32..126,164,165] then
         begin
           f[i] := letra;
           f[0] := chr(i);
           gotoxy(x,y);write(letra);
           x := x + 1;
           if x > 76 then
           begin
             y := y + 1;
             x := 1;
           end;
           i := i + 1;
           if i > 255 then
           i := 255;
          end;
          if ord(letra) = 8 then
          begin
             i := i - 1;
             if i < 1 then
             i := 1;
             x := x - 1;
             if x < 8 then
             begin
                x := 8;
                if y > 1 then
                y := y - 1;
             end;
             f[i] := ' ';
             f[0] := chr(i);
             gotoxy(x,y);write(' ');
          end;
        end;
     until letra = '.';
   end;
 
   function uppercase(c : string) : string;
   var
     y : integer;
     temp : string;
     begin
        for y := 1 to length(c) do
        begin
        temp[y] := upcase(c[y]);
        temp[0] := chr(y);
        end;
        uppercase := copy(temp,1,length(temp));
     end;
 
 
  Function ContarVocCon(Cad : String) : integer;
  var
     t : integer;
  begin
     ContarVocCon := 0;
     vocales := 0;
     consonantes := 0;
     cad := uppercase(cad);
     for t := 1 to length(cad) do
     begin
       if cad[t] in['A','E','I','O','U'] then
       vocales := vocales + 1;
       if  not(cad[t] in ['A','E','I','O','U']) then
       consonantes := consonantes + 1;
     end;
       ContarVocCon :=  vocales + consonantes;
  end;
 
  begin
     clrscr;
     introducirfrase(frase);
     clrscr;
     writeln(' La Frase Es : ',frase);
     writeln;
     writeln(' Los Resultados Son');
     writeln;
     writeln(' El Total es         = ',ContarVocCon(frase));
     writeln(' Las Vocales Son     = ',vocales);
     writeln(' Las Consonantes Son = ',consonantes);
     writeln;
     writeln(' Pulse Una Tecla');
     readkey;
  end.
 
{Esta en pascal 7}
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