Pascal/Turbo Pascal - 3 procedimientos conectados para imprimir cantidad de vocales

 
Vista:
sin imagen de perfil

3 procedimientos conectados para imprimir cantidad de vocales

Publicado por Pato (11 intervenciones) el 18/02/2015 11:19:18
Hola, soy yo de vuelta. Ya estoy terminando, pero tengo un par de problemas mas. Nesesito hacer un programa con 3 procedimientos (si o si 3), y cada uno debe hacer lo que se ve en la foto.
El programa que me ha salido hasta ahora es el siguiente:
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
program J;
type
        Ttipo = Array [1..50] of string [100];
        Tinteger= Array [1..50] of integer;
Var
        Vector: Ttipo;
Procedure carga (Var pector: Ttipo);
var
        x: integer;
Begin
        for X:= 1 to 100 do
        readln (pector [x]);
        end;
Procedure MaximoVocales (pector: Ttipo; var massimo: Ttipo);
var
x,y,vocales,Largo,Maxivocal: Integer;
Pauxi: Tinteger;
begin
for x:= 1 to 100 do
        Vocales:= 0;
        Largo:= Length (pector[x]);
        for y:= 1 to Largo do
                begin
                        Case pector [x] [y] of
                        'a','e','i','o','u','A','E','I','O','U':
                        vocales:= vocales +1;
                end;
        Pauxi[x]:= Vocales;
If Pauxi[x] >= Maxivocal then
        Maxivocal:= Pauxi [x];
        massimo := pector;
        end;
        end;
procedure imprimir (massimo: Ttipo);
var
x: integer;
begin
for x:=1 to 100 do
writeln (massimo);
end;
begin
carga(frase);
Maximovocales (frase);
imprimir (frase);
end.

Pero no me corre, y me tira un monton de errores que desconosco. En adicion, tengo un par de dudas puntuales.
1) En la declaracion final de procedimientos, siempre utilizo la misma variable global?
2) Al final del procedimiento Maximovocales, cambie la variable que estaba usando de nombre, asi queda guardada esa frase como la que tiene mas vocales. Debo cambiar esto?
3) Tengo problemas con Imprimir. Todo lo que haria imprimir puede ser hecho en el procedimiento anterior, pero debo hacerlo unicamente en Imprimir. Como hago?
Les dejo el parcial para que vean las consignas del punto. Si me pueden mostrar como se haria, se los agradeceria. Sino, cualquier pregunta que sepan responder, pueden hacerlo.
Desde ya, muchas gracias.
k
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

3 procedimientos conectados para imprimir cantidad de vocales

Publicado por ramon (2158 intervenciones) el 18/02/2015 14:03:28
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
{Mira tu programa arreglado si quieres las 100 entradas de 50 caracteres cada una modifica solo
el valor de ''entradas''}
 
program J;
uses
   crt;
const
   entradas = 10;
type
Ttipo = Array [1..entradas] of string [50];
Tinteger= Array [1..entradas] of integer;
Var
Vector: Ttipo;
massimo: Tinteger;
 
Procedure carga (Var pector: Ttipo);
var
x: integer;
Begin
for X:= 1 to entradas do
readln (pector[x]);
end;
 
function MaximoVocales (pector: Ttipo) : integer;
var
x,y,vocales,Largo,Maxivocal: Integer;
Pauxi: Tinteger;
begin
fillchar(pauxi,sizeof(pauxi),0);
for x:= 1 to entradas do
begin
Vocales:= 0;
Largo:= Length (pector[x]);
for y:= 1 to Largo do
begin
Case upcase(pector[x][y]) of
 'A','E','I','O','U':  vocales := vocales + 1;
end;
   Pauxi[x]:= Vocales;
end;
end;
    y := 0;
    for x := 1 to entradas do
    begin
    if y < pauxi[x] then
    y := pauxi[x];
    end;
    MaximoVocales := y;
end;
 
procedure imprimir (massimo: Ttipo);
var
x: integer;
begin
for x:=1 to entradas do
writeln (massimo[x]);
end;
begin
clrscr;
fillchar(vector,sizeof(vector),0);
carga(vector);
clrscr;
imprimir (vector);
writeln('   Maximo Es De = ',Maximovocales (vector));
 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
2
Comentar
sin imagen de perfil

3 procedimientos conectados para imprimir cantidad de vocales

Publicado por Pato (11 intervenciones) el 18/02/2015 14:35:12
Esta muy bueno, te agradesco, pero me devuelve cuantas vocales tiene la frase que mas tiene. Yo nesesito que me devuelva la frase en si, no cuantas vocales tiene. ¿Como lo modifico?
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

3 procedimientos conectados para imprimir cantidad de vocales

Publicado por ramon (2158 intervenciones) el 18/02/2015 21:20:02
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
{Cambia esta por la actual}
 
function MaximoVocales (pector: Ttipo) : string;
var
x,y,vocales,Largo,Maxivocal: Integer;
Pauxi: Tinteger;
tex : string[50];
begin
fillchar(tex,sizeof(tex),' ');
fillchar(pauxi,sizeof(pauxi),0);
for x:= 1 to entradas do
begin
Vocales:= 0;
Largo:= Length (pector[x]);
for y:= 1 to Largo do
begin
Case upcase(pector[x][y]) of
 'A','E','I','O','U':  vocales := vocales + 1;
end;
   Pauxi[x]:= Vocales;
end;
end;
    y := 0;
    for x := 1 to entradas do
    begin
    if y < pauxi[x] then
     begin
      y := pauxi[x];
      tex := copy(pector[x],1,length(pector[x]));
    end;
   end;
    MaximoVocales := copy(tex,1,length(tex));
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