Salut Charles; bon tout d'abord si je viens ici c'est parce que j'ai besoin d'aide tout simplement. Je suis d'accord pour dire que ce n'est pas toi de faire mon programme mais si je dis que je ne voit pas comment faire c'est que je ne l'est jamais fait.
Sinon voila ou j'en suis :
procedure maj is
c:character;
n:character;
A:Character;
f:character;
type To_maj is array (character range 'a'..'z') of character;
function majuscule (c:character) return character is
my_tab : to_maj := ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
BEGIN
if (c>='A' and c<='Z') then
a:=c;
elsif (c>='a' and c<='z') then
a:=My_Tab (C);
ELSE
a:=0;
END IF;
return a;
END Majuscule;
FUNCTION Chaine (S:String) RETURN String IS
c:Character;
e:string;
begin
FOR I IN 1..S'Length LOOP
e:=Majuscule(c);
END LOOP;
return e;
end chaine;
Pour ma fonction majuscule, j'essaye de retourner 0 quand ce n'est pas une lettre car finalement pour mettre en majuscule il faut des lettres. (il faut simplement dire à l'utilisateur de rentrer des lettres si on fait le programme.)
Ensuite,j'ai essayé de faire une autre fonction qui appelle la première et qui, pour une chaine de caractères; renvoie une chaine de caractère. Donc avec une boucle for j'essaye d'appeler pour chaque caractère de ma chaine, ma fonction majuscule. J'utilise donc s'length pour aller jusqu'à la dernière lettre de ma chaine car je ne connais pas a l'avance le nombre de caractères. Par contre, je ne sais pas si je m'y prend bien et si cette fonction marche.