Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Edu depetris}
- PROGRAM Ejer4;
- USES crt;
- CONST
- Max=80;
- TYPE
- arrVocal = array [1..Max] of char; {arreglo para guardar las vocales}
- contador= array [1..5] of integer; {arreglo que guarda las cantidad de vocales repetidas,1=a..5=u}
- VAR
- cantLetras: integer;
- vocal: arrVocal;
- cont: contador;
- FUNCTION qVocal (x: integer): char;
- BEGIN
- CASE x OF
- 1: qVocal:= 'A';
- 2: qVocal:= 'E';
- 3: qVocal:= 'I'; {funcion que determina a que letra pertenece la posicion del campo del arreglo contador}
- 4: qVocal:= 'O';
- 5: qVocal:= 'U'
- END
- END;
- FUNCTION seguir (s: char):boolean;
- BEGIN {funcion para cuntinuar ingresando letras}
- seguir:=((s='S') or (s='s'))
- END;
- FUNCTION esVocal (x: char): boolean;
- BEGIN {funcion para determinar si una letra es vocal}
- esVocal:=((x='A') or (x='E') or (x='I') or (x='O') or (x='U'))
- END;
- PROCEDURE LeerLetras (VAR voc: arrVocal; VAR z : integer); {accion que lee las letras y guarda en el arreglo solo las vocales y en mayusculas}
- VAR
- aux: char;
- x: char;
- i: integer;
- BEGIN
- i:= 1;
- REPEAT
- WRITE ('Desea ingresar una letra S/N?: ');
- READLN (x);
- IF seguir(x) THEN
- BEGIN
- WRITELN ('Porfavor ingrese la letra');
- READlN(aux);
- IF esVocal (Upcase(aux)) THEN
- BEGIN
- voc[i]:= Upcase(aux);
- i:=i+1;
- z:=i-1
- END
- END;
- clrscr;
- UNTIL ((x<>'s') and (x<>'S') or (i>10))
- END;
- PROCEDURE cuntaVocales (x: arrvocal; max: integer; VAR cuenta: contador); {accion que cuenta las vocales}
- VAR
- i: integer;
- BEGIN
- FOR i :=1 TO 5 DO BEGIN
- cuenta[i]:=0 {inicializa los campos del arreglo}
- END;
- FOR i := 1 TO max DO BEGIN
- CASE x[i] OF
- 'A' : cuenta[1]:= cuenta[1]+1;
- 'E' : cuenta[2]:= cuenta[2]+1; { se cuenta las vocales y se suman en su respectivo campo dentro del arreglo}
- 'I' : cuenta[3]:= cuenta[3]+1;
- 'O' : cuenta[4]:= cuenta[4]+1;
- 'U' : cuenta[5]:= cuenta[5]+1
- END
- END
- END;
- PROCEDURE resultado (x: contador); {accion encargada de buscar cual es la vocal mas repetida y muestra por pantalla el resultado}
- VAR
- i,aux: integer;
- BEGIN
- clrscr;
- aux:= x[1];
- FOR i := 2 TO 5 DO BEGIN
- IF (x[i]> aux) THEN
- aux:= x[i]
- END;
- IF aux=0 THEN
- WRITELN ('no ingreso ninguna vocal')
- ELSE
- FOR i := 1 TO 5 DO BEGIN
- IF (x[i]= aux) THEN
- WRITELN('LA VOCAL MAS REPETIDA ES ',qVocal(i),' Y SE REPITE ',X[i],'VECES')
- END;
- readkey
- END;
- BEGIN
- LeerLetras (vocal,cantLetras);
- cuntaVocales (vocal,cantLetras,cont);
- resultado (cont)
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement