Ecrire l'algorithme et le
programme pascal d'un programme qui permet de saisir un entier de 3 chiffres puis affiche la
somme de ces 3 chiffres.
Exemple : pour 145
S=1+4+5=10
(en utilisant (mod et div))
Algorithme:
0) Début somme
1) Ecrire("Donner un entier composé de 3 chiffres :"), lire(n)
2) c ← n div 100
3) d ← (n mod 100) div 10
4) u ← n mod 10
5) s ← u+d+c
6) Ecrire(" la somme de 3 chiffres est = ", s)
7) Fin Somme
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
N D C U S
entier entier entier entier entier
Entier à saisir Unité Dizaine Centaine Somme de 3 chiffres
Traduction en Pascal:
Program somme ;
uses wincrt ;
var
n,u,d,c,s : integer ;
Begin
Writeln('Donner un entier composé de 3 chiffres :') ;
readln(n) ;
c := n div 100 ;
d := (n mod 100) div 10 ;
u:= n mod 10 ;
s := u+d+c ;
writeln(' la somme de 3 chiffres est = ', s) ;
end.
Exercice 2:
Ecrire l'algorithme et le
programme pascal d'un programme qui permet de saisir un entier de 3 chiffres puis affiche la
somme de ces 3 chiffres.
Exemple : pour 145
S=1+4+5=10
avec (convch et valeur)
Algorithme:
0) Début somme
1) Ecrire("Donner un entier composé de 3 chiffres :"), lire(n)
2) convch(n,ch)
3) valeur(ch[1],c,e)
4) valeur(ch[2],d,e)
5) valeur(ch[3],u,e)
6) s ← u+d+c
7) Ecrire(" la somme de 3 chiffres est = ", s)
8) Fin Somme
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
n,u,d,c,s ch e
Entier Chaîne de 3 caractères entier
Traduction en Pascal:
Program somme ;
uses wincrt ;
var
n,u,d,c,s, e : integer ;
ch : string[3] ;
Begin
Writeln('Donner un entier composé de 3 chiffres :') ;
readln(n) ;
str(n,ch) ;
val(ch[1],c,e) ;
val(ch[2],d,e) ;
val(ch[3],u,e) ;
s := u+d+c ;
writeln(' la somme de 3 chiffres est = ', s) ;
end.
Exercice 3:
Ecrire un programme qui permet de saisir un entier de 3 chiffres, puis afficher les combinaisons possibles avec ces 3 chiffres .
Exemple : N=456 donne 465 , 546, 564, 654, 645
Algorithme:
0) Début combinaison
1) Ecrire("Donner un entier de 3 chiffres : "), lire(n)
2) C ← n div 100
3) D ← (n mod 100) div 10
4) U ← n mod 10
5) Ecrire ("Les combinaisons sont :")
6) Ecrire (U*100+c*10+d)
7) Ecrire (U*100+d*10+c)
8) Ecrire (D*100+u*10+c)
9) Ecrire (D*100+c*10+u)
10) Ecrire (c*100+u*10+d)
11) Fin Combinaison
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
N U D C
entier entier entier entier
Entier à saisir Unité Dizaine Centaine
Traduction en Pascal:
Program combinaison ;
Uses wincrt ;
Var
N, c, d, u : integer ;
Begin
Write(' Donner un entier de 3 chiffres :') ;
Readln(n) ;
C := n div 100 ;
D := (n mod 100) div 10 ;
U :=n mod 10 ;
Writeln(' Les combinaisons sont :') ;
Writeln (U*100+c*10+d) ;
Writeln (U*100+d*10+c) ;
Writeln (D*100+u*10+c) ;
Writeln (D*100+c*10+u) ;
Writeln (c*100+u*10+d) ;
End.
Autre méthode:
Algorithme:
0) Début combinaisons2
1) Ecrire("Donner un entier de 3 chiffres : "), lire(n)
2) Convch(n,ch)
3) Ecrire ("Les combinaisons sont :")
4) Ecrire (Ch[1]+Ch[3]+Ch[2]) ou Ecrire ( Concat(Ch[1],Ch[3],Ch[2]) )
5) Ecrire (Ch[2]+Ch[3]+Ch[1])
6) Ecrire (Ch[2]+Ch[1]+Ch[3])
7) Ecrire (Ch[3]+Ch[1]+Ch[2])
8) Ecrire (Ch[3]+Ch[2]+Ch[1])
9) Fin Combinaisons2
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
N Ch
entier chaine
Entier à saisir contient l'entier converti en chaine
Traduction en Pascal:
Program combinaison ;
Uses wincrt ;
Var
N: integer ;
ch:string;
Begin
Write(' Donner un entier de 3 chiffres :') ;
Readln(n) ;
Str(n,ch);
Writeln(' Les combinaisons sont :') ;
Writeln (Ch[1]+Ch[3]+Ch[2]); {ou Writeln ( Concat(Ch[1],Ch[3],Ch[2]) ); }
Writeln (Ch[2]+Ch[3]+Ch[1]);
Writeln (Ch[2]+Ch[1]+Ch[3]);
Writeln (Ch[3]+Ch[1]+Ch[2]);
Writeln (Ch[3]+Ch[2]+Ch[1]);
End.
Exercice 4:
Ecrire un programme qui permet de saisir une durée en secondes puis d’afficher le nombre d’heures, minutes et secondes .
Sachant que : 1 minute=60 secondes 1 heure=3600 secondes
Exemple : durée=4000 : 1 heure(s) 6 minute(s) 40 seconde(s)
Algorithme:
0) Début temps
1) Ecrire("Donner une durée en secondes : "), lire(T)
2) h ← T div 3600
3) m ← (T mod 3600) div 60
4) s ←T mod 60
5) Ecrire (h, "heure(s)")
6) Ecrire (m, " minute(s)")
7) Ecrire (s, " seconde(s)")
8) Fin temps
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
T h m s
entier entier entier entier
durée à saisir heure minute seconde
Traduction en Pascal:
Program temps ;
Uses wincrt ;
Var
T,h,m,s : integer ;
Begin
Write(' Donner une durée en secondes : ') ;
Readln(T) ;
h := T div 3600;
m := (T mod 3600) div 60;
s := T mod 60;
Writeln (h, ' heure(s)') ;
Writeln (m, ' minute(s)') ;
Writeln (s, ' seconde(s)') ;
End.
Exercice 5:
Ecrire un programme qui permet de convertir une mesure en
pouce en une valeur en cm.
Sachant que 1 pouce= 2.45 cm
Traduction en Pascal:
program conversion;
uses wincrt;
var
pouce, cm: real;
begin
write('Donner une mesure (en pouce)='); readln(pouce);
cm:= 2.45* pouce;
writeln('La mesure en cm=',cm :7:3 ,' cm');
End.
Exercice 6:
Ecrire
un programme qui permet de saisir une chaîne puis mettre le premier et le
dernier caractère en majuscule.
Algorithme:
0)Début chaine
1)Ecrire("Donner une chaine :"), Lire(ch)
2)ch[1] ← Majus(ch[1])
3) L ← long(ch)
4)ch[L] ← Majus( ch[L] )
5)Ecrire("La nouvelle chaine=", ch)
6)Fin Chaine
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
Ch L
Chaine de carctère entier
Chaine à saisir Longueur de ch
Traduction en Pascal:
Program chaine ;
Uses wincrt ;
Var
Ch :string ;
L :integer ;
Begin
Write('Donner une chaine :') ;
Readln(ch) ;
Ch[1] := upcase( ch[1] ) ;
L :=length(ch) ;
Ch[L] := upcase( ch[L] ) ;
Writeln('La nouvelle chaine est=',ch) ;
End.
Exercice 7:
Ecrire un programme qui permet de saisir une date de la forme jj/mm/aaaa puis d’extraire le jour , le mois et l’année dans 3 variables J ,M,A enfin les afficher.
Exemple : donner une date : 20/03/1956 Jour=20 mois=03 Année=1956
Algorithme:
0)Début extraction
1)Ecrire("Donner une date :"), Lire(date)
2)J ← sous_chaine(date,1,2)
3) M ← sous_chaine(date,4,2)
4) A ← sous_chaine(date,7,4)
5)Ecrire("Jour=", j , " Mois=", M , "Année=", A )
6)Fin extraction
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
Date J, M,A
Chaine de carctère Chaine de carctère
Chaine à saisir Jour, mois, Année
Traduction en Pascal:
Program extraction ;
Uses wincrt ;
Var
Date, J,M,A :string ;
Begin
Write('Donner une date :') ;
Readln(Date) ;
J := copy(date, 1, 2);
M := copy(date, 4, 2);
A := copy(date, 7, 4);
Writeln('Jour=', j , ' Mois=', M , ' Année=', A) ;
End.
Exercice 8:
Ecrire un programme permettant de saisir le code d’un joueur tunisien puis d’extraire et d’afficher son numéro. Exemples : Donner le code du joueur: TUN456 n°=456 Donner le code du joueur: TUN17 n°=17
Algorithme:
0)Début Joueur
1)Ecrire("Donner le code du joueur :"), Lire(Code)
2) L ← long(code)
3) num ← Sous_chaine(code, 4,L-4+1)
4)valeur(num,n,e)
5)Ecrire("N° joueur=",N)
6)Fin joueur
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
code num L N e
Chaine de carctère
Chaine de carctère
Entier
Entier
entier
code à saisir
Chaine numéro
Longueur code
N° joueur
Position erreur
Traduction en Pascal:
Program joueur ;
Uses wincrt ;
Var
Code,num:string ;
L,N,e :integer ;
Begin
Write('Donner le code du joueur:') ;
Readln(code) ;
L :=length(code) ;
Num :=copy(code, 4, L-3) ;
Val(num,n,e) ;
Writeln('N° joueur= ', N) ;
End.
Exercice 9:
Afficher la multiplication de deux nombre a et b (de 3 chiffres max) Exemple :
140 x 23 ------ 3220
Traduction en Pascal:
program produit;
uses wincrt;
var
a,b, p: longint;
begin
write('a='); readln(a);
write('b='); readln(b);
p:=a*b;
writeln(a:6);
writeln(' x ', b:3);
writeln('------');
writeln(p:6);
end.
Exercice 10:
Ecrire un programme permettant de saisir une matricule de voiture tunisienne puis d'extraire la série et le numéro .
La matricule se présente sous la forme Y TUN X , où Y désigne la série alors que X désigne le numéro d'enregistrement du véhicule.
Remarque :La série et le numéro d'enregistrement sont séparés par le nom de la Tunisie en arabe.(dans cet exercice on va utiliser TUN)
Exemple1 : Donner la matricule:73TUN3294 Série=73 Numéro=3294
Exemple2 : Donner la matricule:205TUN850 Série=205 Numéro=850
Algorithme:
0)Début matricule
1)Ecrire("Donner la matricule :"), Lire(MAT)
2) L ← long(MAT)
3) P1 ← pos("T",MAT)
4) P2 ← pos("N",MAT)
5) ser ← Sous_chaine(MAT, 1,P1-1)
6) num ← Sous_chaine(MAT, p2+1,L-P2)
7) Ecrire("Série=",ser)
8) Ecrire("muméro=",num)
9)Fin matricule
T.D.O (Tableau de déclaration des objets)
Objet
Type/Nature
Rôle
Mat ser num L P1 P2
Chaine de carctère
Chaine de carctère
Chaine de carctère
Entier
Entier
entier
Matricule à saisir
Série
numéro
Longueur Matricule
Position de T dans Matricule
Position de N dans Matricule
Traduction en Pascal:
Program Matricule ;
Uses wincrt ;
Var
Mat,ser,num:string ;
L,P1,P2 :integer ;
Begin
Write('Donner la matricule (exp: 222TUN5544) :') ;
Readln(Mat) ;
L :=length(Mat) ;
P1:=pos('T',MAT);
P2:= pos('N',MAT);
ser :=copy(MAT, 1,P1-1) ;
Num :=copy(MAT, p2+1,L-P2) ;
Writeln('Série= ', ser) ;
Writeln('numéro= ', num) ;
End.