Advertisement
Guest User

Untitled

a guest
May 28th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.33 KB | None | 0 0
  1. {Edu depetris}
  2. PROGRAM Ejer4;
  3. USES crt;
  4. CONST
  5.     Max=80;
  6. TYPE
  7.     arrVocal = array [1..Max] of char;    {arreglo para guardar las vocales}
  8.     contador= array [1..5] of integer; {arreglo que guarda las cantidad de vocales repetidas,1=a..5=u}
  9. VAR
  10.     cantLetras: integer;
  11.     vocal: arrVocal;
  12.     cont: contador;
  13.     FUNCTION qVocal (x: integer): char;
  14.     BEGIN
  15.          CASE x OF
  16.               1: qVocal:= 'A';
  17.               2: qVocal:= 'E';
  18.               3: qVocal:= 'I';               {funcion que determina a que letra pertenece la posicion del campo del arreglo contador}
  19.               4: qVocal:= 'O';
  20.               5: qVocal:= 'U'
  21.          END
  22.     END;
  23.     FUNCTION seguir (s: char):boolean;
  24.     BEGIN                                         {funcion para cuntinuar ingresando letras}
  25.          seguir:=((s='S') or (s='s'))
  26.     END;
  27.     FUNCTION esVocal (x: char): boolean;
  28.     BEGIN                                                                    {funcion para determinar si una letra es vocal}
  29.          esVocal:=((x='A') or (x='E') or (x='I') or (x='O') or (x='U'))
  30.     END;
  31.     PROCEDURE LeerLetras (VAR voc: arrVocal; VAR z : integer);       {accion que lee las letras y guarda en el arreglo solo las vocales y en mayusculas}
  32.     VAR
  33.        aux: char;
  34.        x: char;
  35.        i: integer;
  36.     BEGIN
  37.          i:= 1;
  38.          REPEAT
  39.                WRITE ('Desea ingresar una letra S/N?: ');
  40.                READLN (x);
  41.                IF seguir(x) THEN
  42.                  BEGIN  
  43.                   WRITELN ('Porfavor ingrese la letra');
  44.                   READlN(aux);
  45.                   IF esVocal (Upcase(aux)) THEN
  46.                    BEGIN
  47.                      voc[i]:= Upcase(aux);
  48.                      i:=i+1;
  49.                      z:=i-1
  50.                    END
  51.                  END;
  52.                clrscr;
  53.          UNTIL ((x<>'s') and (x<>'S') or (i>10))
  54.     END;
  55.     PROCEDURE cuntaVocales (x: arrvocal; max: integer; VAR cuenta: contador);       {accion que cuenta las vocales}
  56.     VAR
  57.        i: integer;
  58.     BEGIN
  59.          FOR i :=1 TO 5 DO BEGIN
  60.          cuenta[i]:=0               {inicializa los campos del arreglo}
  61.          END;
  62.          FOR i := 1 TO max DO BEGIN
  63.              CASE x[i] OF
  64.                   'A' : cuenta[1]:= cuenta[1]+1;
  65.                   'E' : cuenta[2]:= cuenta[2]+1;     { se cuenta las vocales y se suman en su respectivo campo dentro del arreglo}
  66.                   'I' : cuenta[3]:= cuenta[3]+1;
  67.                   'O' : cuenta[4]:= cuenta[4]+1;
  68.                   'U' : cuenta[5]:= cuenta[5]+1
  69.              END
  70.          END
  71.     END;
  72.     PROCEDURE resultado (x: contador);         {accion encargada de buscar cual es la vocal mas repetida y muestra por pantalla el resultado}
  73.     VAR
  74.        i,aux: integer;
  75.     BEGIN
  76.          clrscr;
  77.          aux:= x[1];
  78.          FOR i := 2 TO 5 DO BEGIN
  79.              IF (x[i]> aux) THEN
  80.                 aux:= x[i]
  81.          END;
  82.          IF aux=0 THEN
  83.             WRITELN ('no ingreso ninguna vocal')
  84.          ELSE
  85.              FOR i := 1 TO 5 DO BEGIN
  86.                  IF (x[i]= aux) THEN
  87.                     WRITELN('LA VOCAL MAS REPETIDA ES ',qVocal(i),' Y SE REPITE ',X[i],'VECES')
  88.              END;
  89.         readkey
  90.     END;
  91. BEGIN
  92.      LeerLetras (vocal,cantLetras);
  93.      cuntaVocales (vocal,cantLetras,cont);
  94.      resultado (cont)
  95. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement