Hola Visitante

Autor Tema: Prova: Pangrama  (Leído 1606 veces)

Berni69

  • Administrator
  • *****
  • Mensajes: 25
    • Ver Perfil
Prova: Pangrama
« en: Febrero 22, 2010, 09:30:59 am »
Código: (ada) [Seleccionar]
WITH Ada.Text_IO;
USE Ada.Text_IO;
PROCEDURE Pangrama IS
   TYPE Taula2 IS ARRAY (1 .. 26) OF Boolean;
   T : Taula2;
   PROCEDURE Inicialitza (
         T :    OUT Taula2) IS
   BEGIN
      FOR I IN 1..26 LOOP
         T(I):=False;
      END LOOP;
   END Inicialitza;
   TYPE Frase IS ARRAY (1 .. 56) OF Character;
   TYPE Cadena IS
      RECORD
         Frases : Frase;
         N      : Integer;
      END RECORD;
   F : Cadena;
   TYPE Taula IS ARRAY (1 .. 26) OF Character;
   ABCDARI : CONSTANT Taula := \"abcdefghijklmnopqrstuvwxyz\";
   PROCEDURE Enmagatzema (
         F :    OUT Cadena) IS
      I : Integer;
      C : Character;
   BEGIN
      Put(\"insereix la frase\");
      New_Line;
      I:=1;
      Get(C);
      WHILE C/='.' LOOP
         F.Frases(I):=C;
         I:=I+1;
         Get(C);
      END LOOP;
      F.N:=I;
   END Enmagatzema;
   PROCEDURE Actualitza (
         C : IN     Character;
         T :    OUT Taula2) IS
   BEGIN
      FOR I IN 1..26 LOOP
         IF C=Abcdari(I) THEN
            T(I):=True;
         END IF;
      END LOOP;
   END Actualitza;
   I : Integer;
BEGIN
   Inicialitza(T);
   I:=1;
   Enmagatzema(F);
   FOR J IN 1..F.N LOOP
      Actualitza(F.Frases(J),T);
   END LOOP;
   WHILE T(I)=True AND I<26 LOOP
      I:=I+1;
   END LOOP;
   IF T(I) THEN
      Put(\"És un pangrama\");

   ELSE
      Put(\"No és un pangrama\");
   END IF;
END;