Vous êtes sur la page 1sur 5

TD 4 Les Structures de Contrle Correction

1. Ecrire un programme qui lit deux entiers puis affiche le minimum des deux. Algo Min Var N1,N2 : Entier; Debut Ecrire("Donnez le premier Nombre \n"); Lire(N1); Ecrire("\n Donnez le deuxime nombre \n"); Lire(N2); Si N1N2 Alors Ecrire("Le minimum est : ",N1); Sinon Ecrire("Le minimum est : ",N2); Fsi; FIN. 2. Ecrire un programme qui lit un rel R1 puis affiche sa valeur absolue. Algo VA Var R1 : Rel; Debut Ecrire("Donnez R1\n"); Lire(R1); Si R10 Alors Ecrire("|",R1,"| = ",R1); Sinon Ecrire("|",R1,"| = ",R1*(-1)); Fsi; FIN. 3. Ecrire un programme qui lit trois entiers N1,N2 et N3 affiche un message indiquant si les nombres N1,N2 et N3 croissants dans cet ordre ou non. Algo Ordre Var N1,N2,N3 : Entier; Debut Ecrire("Donnez N1\n"); Lire(N1); Ecrire("Donnez N2\n"); Lire(N2); Ecrire("Donnez N3\n"); Lire(N3); Si (N1N2) ET (N2N3)Alors Ecrire(" Les Nombres sont dans l'ordre croissant");
1

puis sont

Sinon Ecrire(" Les nombres ne sont pas dans l'ordre croissant"); Fsi; FIN. 4. Ecrire un programme qui lit un caractre C1 puis affiche un message indiquant si C1 est un caractre alphabtique ou non. Algo Alpha Var C1 : Caractre; Debut Ecrire("Donnez un caractre \n"); Lire(C1); Si (65Ord(C1)ET Ord(C1) 90) OU (97Ord(C1)ET Ord(C1) 122) Alors Ecrire("Le caractre ", C1 , " est une lettre alphabtique"); Sinon Ecrire("Le caractre ",C1," n'est pas une lettre alphabtique"); Fsi; FIN. 5. Ecrire un programme qui lit un caractre C1 puis affiche message, "Minuscule" si le caractre est une lettre minuscule, "Majuscule" s'il s'agit d'une lettre majuscule, "Autre" si le caractre n'est pas une lettre alphabtique. Algo MinMaj Var C1 : Caractre; Debut Ecrire("Donnez un caractre \n"); Lire(C1); Si (65Ord(C1)ET Ord(C1) 90) Alors Ecrire("Majuscule"); Sinon Si(97Ord(C1)ET Ord(C1) 122) Alors Ecrire("Minuscule"); Sinon Ecrire("Autre"); Fsi; Fsi; FIN. 6. Ecrire un programme qui lit 3 caractres C1,C2 et C3, puis affiche un message indiquant si les caractres sont dans l'ordre alphabtique ou non.( On suppose que les caractres saisis sont tous des lettres minuscules). Algo OrdreAlpha Var C1,C2,C3 : Caractres; Debut Ecrire("Donnez C1\n)"; Lire(C1); Ecrire("Donnez C2\n)"; Lire(C2); Ecrire("Donnez C3\n)";
2

Lire(C3); Si (Ord(C1)Ord(C2) ET Ord(C2) Ord(C3) Alors Ecrire("Les caractres sont dans l'ordre alphabtique"); Sinon Ecrire("Les caractres ne sont pas dans l'ordre alphabtique"); Fsi; FIN. 7. Ecrire un programme qui lit deux chaines de caractres puis affiche la chaine la plus longue des deux. Algo Long Var CH1,CH2 : Chaine de caractres; Debut Ecrire("Donnez la chaine 1\n"); Lire(Ch1); Ecrire("\n Donnez la chaine 2 \n"); Lire(Ch2); Si Length(Ch1) Length(Ch2) Alors Ecrire(Ch2); Sinon Ecrire(Ch1); Fsi; FIN. 8. Ecrire un programme permettant de lire une lettre majuscule puis affiche un message indiquant si la lettre est une voyelle ou une consonne. (On suppose que la lettre saisie est une lettre majuscule). Algo VoyCon Var C1 : Caractre; Debut Ecrire("Donnez une lettre Majuscule"); Lire(C1) Si C1="A" OU C1="E" OU C1="Y" OU C1="U" OU C="I" OU C1="O" Alors Ecrire("La lettre est une voyelle"); Sinon Ecrire("La lettre est une consonne"); Fsi; FIN. 9. Ecrire un programme qui lit une suite d'entiers se terminant par -1, puis affiche leur somme. Exemple : Algo Somme1 Var S,N : Entier; Debut S 0; N 0; TantQue N!=-1 Faire Ecrire("Donnez un Nombre") Lire(N); S S + N; FinTq; Algo Somme2 Var S,N : Entier; Debut S 0; N 0; Repeter Ecrire("Donnez un Nombre") Lire(N); S S + N; Jusqu' N=-1
3

S S + 1; S S + 1; Ecrire("La somme est : ",S); Ecrire("La somme est : ",S); FIN. FIN. 10. Ecrire un programme qui lit une suite d'entiers se terminant par -1, puis affiche le maximum des valeurs lues. Algo Maximum Var N,Max : Entier; Debut N0; Max -1; Tantque N!=-1 Faire Ecrire("Donnez un nombre\n"); Lire(N); Si N>Max alors Max N; Fsi; FinTq; Ecrire("Le maximum est : ",Max); FIN. Algo Maximum Var N,Max : Entier; Debut N0; Max -1; Repeter Ecrire("Donnez un nombre\n"); Lire(N); Si N>Max alors Max N; Fsi; Jusqu' (N=-1) Ecrire("Le Maximum est ",Max); FIN.

11. Ecrire un programme qui lit une suite d'entiers se terminant par -1, puis affiche, le nombre de valeurs paires et le nombre de valeurs impaires. Algo PairImpair Var N,NBP,NBI : Entier; Debut N0; NBP 0; NBI 0; Tantque N!=-1 Faire Ecrire("Donnez un nombre\n"); Lire(N); Si N Mod 2 = 0 alors NBP NBP + 1; Sinon NBI NBI + 1; Fsi; FinTq; NBINBI-1;//Pour ne pas compabiliser le -1. Ecrire("NB Pair est : ",NBP); Ecrire("\nNB Impair est : ",NBI); FIN. 12. Ecrire un programme qui lit une suite de caractres se terminant par "#" puis affiche le nombre d'occurrences du caractre "@". Algo Arobase Var
4

Nb : Entier; C : Caractre Debut TantQue(c!="#") faire Ecrire("Donnez un caractre\n"); Lire(c); Si c="@" Alors Nb Nb + 1 ; Fsi; FinTq; Ecrire("Le nombre de @ est : ",Nb); Fin. 13. Ecrire un programme qui lit un caractre C1, puis lit une suite de caractres se terminant par "#", puis affiche le nombre d'occurrence du caractre C1 dans la suite. Exemple : Algo NBC Var Nb : Entier; C1,C : Caractre Debut Ecrire("Donnez le caractre compter\n"); Lire(C1); TantQue(c!="#") faire Ecrire("Donnez un caractre\n"); Lire(c); Si C=C1 Alors Nb Nb + 1 ; Fsi; FinTq; Ecrire("Le nombre de ",C," est : ",Nb); Fin. 14. Ecrire un programme qui demande l'utilisateur un nombre entier puis affiche la table de multiplication de ce nombre. Algo Multiplication Var i,N : Entier; Debut Ecrire("Donnez un nombre\n"); Lire(n); Pour i = 1 A 10 Faire Ecrire(n,"x",i,"=",n*i); Fpr;