Problemes d erreurs en ADA pour un devoir à rendre Help

Problemes d erreurs en ADA pour un devoir à rendre Help - Ada - Programmation

Marsh Posté le 06-06-2004 à 23:50:13    

Salut,
 
J'ai un programme en Ada à rendre. Mais seulement j'ai quelques soucis à bout desquels j'arrive pas ; Donc du help SVP.
 
Voilà; il est question d'écrire un programme capable de:
    Récuperation de des phrases pour faire un traitement de compression de façon à avoir:les nombres ne seront pas modifiés entre les textes, toute répétition (>=3) sera remplacée par le caractère "*" suivi du nombre de répétitions et du caractère par ex: aaaa78bc5xxxxx donne *4a78bc5*5x
Et ce traitement est assuré par une procédure que j'ai nommée "Traitement" comporte cependant des lignes sont sources d'erreurs.
 
Vous trouverez dans le code ci-dessous  les passages qui posent problemes
en gras.
 
En outre j'arrive pas à afficher plus d'un caractère quand j'appelle la procédure d'affichage.
 
Merci.
 
 
 
with Text_Io;
 use Text_Io;
 with Ada.Integer_Text_Io;
 use Ada.Integer_Text_Io;
 With Ada.text_io;
 use Ada.text_io;
 
 Procedure Compression is
  c:character;    
  s:string(1..50);    
     
 
 procedure Ecrire is
    F: File_Type;
 begin
    Create(F,Out_File,"toto.txt","" );  -- on cree un fichier
    for I in 1..12 loop                -- on ecrit les 4 premieres lignes    
    put(F,I);
       Put(F,c);
       New_Line(F);
    end loop;
    Put(F,c);  -- on ecrit la derniere ligne
    Close(F);                          -- on ferme le fichier
 end Ecrire;
 
procedure Lireaffiche is
    F: File_Type;
    C: Character;
 begin
    Open(F,In_File,"toto.txt","" );
                        -- on ouvre le fichier de nom toto.txt
                        -- dans le programme on l'appelle F
    while not End_Of_File(F) loop
       if End_Of_Line(F) then
          skip_line(F); -- on lit le saut de ligne dans F
          New_Line;     -- on passe a la ligne a l'ecran
       else
          Get(F,c);     -- on lit un caractere dans F
          Put(c);       -- on affiche c a l'ecran
       end if;
    end loop;
    Close(F);           -- fermeture de F
end Lireaffiche;
 
procedure traitement is                        
   n:constant := 20;
   fichier:file_type;
   s:string(1..30);
   j,i:integer:=0;
   
  tab1: array(1..n) of integer;
  tab2: array(1..n) of integer;
  c:character;
  comp:integer:=0;
   
begin
             
  while i<=n  
  loop
       
     j:=i;comp:=0;
     while (j<=n and tab1(i)=tab1(j)) loop  
         comp:=comp+1;
        j:=j+1;
     end loop;
         
    if comp>=3 then tab2(i):="*",3,tab1(i));
     if comp =1 then tab2(i):=tab1(i);    
    if comp =2 then tab2(i):=tab1(i)+tab1(i);  
               
  end if; end if; end if;  
  end loop;  
  end traitement;
 
 
F:File_Type;
BEGIN
     
put("saissez votre texte ici : " );  
get(c);new_line;
Traitement; --Récuperation de c pour faire un traitement de compression de façon à avoir: les nombres ne seront pas modifiés entre les textes, toute répétition (>=3) sera remplacée par le caractère "*" suivi du nombre de répétitions et du caractère par ex: aaaa78bc5xxxxx donne *4a78bc5*5x
Ecrire;            -- On ecrit le fichier
Lireaffiche;         -- On l'affiche
   
END compression;

Reply

Marsh Posté le 06-06-2004 à 23:50:13   

Reply

Marsh Posté le 06-06-2004 à 23:55:03    

la vie est dure hein ?


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed