Il faut que j'écrive un programme qui affiche le nombre de lettres majuscules, de lettres minuscules et de chiffres contenus dans une ligne de texte sachant que ces trois groupes de caractères forment des intervalles distincts dans le code LATIN-1.
Je n'arrive pas à cerner le problème, je ne trouve aucun point de départ pour écrire mon algorithme.
Pouvez vous m'aider en me donnant des indications pour éclaircir le problème svp?
tu n'a alors plus qu'a comparer les valeurs ASCII des caractères contenu dans ton texte avec les intervales des caracters 'a'..'z' , 'A'..'Z' , '0'..'9' et tu verra a quel interval le caracter appartiendra !
tu dois d'abord ouvrir un fichier (celui contenant ton texte) la fonction a utiliser est : open() (cherche la documentation sur internet)
ensuite pour récupérer une ligne de ton fichier texte tu devra utiliser la fonction : Get_Line() (pareil, cherche la doc sur le net) ou Get() pour un seul caractère.
et à la fin, utilise la fonction : Close()
voila tu devrai pouvoir terminer ton programme avec ce que je t'ai dis.
J'ai essayer un programme mais il n'est pas encore correct, il ne donne pas le bon résultat mais je ne vois pas pourquoi
Avez vous une idée?
with ada.text_io, ada.integer_text_io;
procedure caractere is
A,B,C: Integer;
ligne : character;
begin
ada.text_io.put("saisir une ligne de texte :" );
ada.text_io.get(ligne);
A:=0;
B:=0;
C:=0;
for X in Character'First..Character'Last loop
if Character'Pos('A')<=Character'Pos(X)
and Character'Pos(X)<=Character'Pos('Z') then
A:=A+1;
end if;
if Character'Pos('a')<=Character'Pos(X)
and Character'Pos(X)<=Character'Pos('z') then
B:=B+1;
end if;
if Character'Pos('0')<=Character'Pos(X)
and Character'Pos(X)<=Character'Pos('9') then
C:=C+1;
end if;
end loop;
Ada.Text_Io.Put("nombre de lettres majuscules :" ); Ada.integer_Text_Io.Put(A);
Ada.Text_Io.new_line;
Ada.Text_Io.Put("nombre de lettres minuscules :" ); Ada.integer_Text_Io.Put(B);
Ada.Text_Io.new_line;
Ada.Text_Io.Put("nombre de chiffres :" ); Ada.integer_Text_Io.Put(C);
Ada.Text_Io.new_line;
end;
pour répondre à ta question, c'est bien un TP pour la fac que j'ai à faire.
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.