Académique Documents
Professionnel Documents
Culture Documents
Algorithmique et Programmation
Exercice N°1
T.D.O
Soit l'algorithme suivant :
0/ Début Exercice Objet T/N rôle
1/ CH1 "programmation" Ch1 Chaine de caractère Saisir Ch1
2/ CH2 "cadeau" Ch2 Chaine de caractère Saisir Ch2
3/ CH3 "nouvelle"
4/ Efface (CH2, 1, 4)
Ch3 Chaine de caractère Saisir Ch3
5/ Insere (CH2, CH3, long (CH3+1) X Entier Afficher X
6/ Efface (CH3, 5, 3) S Chaine de caractère Afficher S
7/ Efface (CH1, 9, 5)
8/ S concat (CH3,” “, CH1)
9/ Insere ("e", S, (long (S) + 1))
10/ X pos ("O", S)
11/ Ecrire (S, X)
12/ Fin Exercice
Déterminer et déclarer les variables de ce programme (T.D.O)
Déterminer les valeurs de S et X à partir de l'algorithme
S "nouve programm"
x2
Traduire cet algorithme en Turbo Pascal
Program Exercice ;
uses wincrt ;
Const
ch1='programmation';
ch2='cadeau';
ch3='nouvelle';
var
x:Integer;
s:string;
Begin
Delete (CH1, 9, 5)
Delete (CH2,1,4)
Insert (CH2, CH3, Length (CH3+1)
Delete (CH3, 5, 3)
S := concat (CH3,' ', CH1)
Insert ("e", S, (Length (S) + 1))
X :=pos ("O", S)
WriteLn (s,x);
end.
-1-
Exercice N°2
Evaluer les expressions suivantes :
ABS(-4) =4 , UPCASE(‘d’) =D , TRUNC(-6,3) = -6
CHR(ORD(‘A’)) =A , ROUND(2,6) = 3 , SUCC(‘E’) = ‘D’ .
(SQR(2)>=4) =true , length(‘dev synt’) =8 , copy(‘Ecole’,2,4) =’cole’
(22>12) XOR (‘A’<’B’) =false , NOT(SQR(2)=4) AND (TRUE)) =false
Exercice N°3
1) Déclarer en pascal les variables suivantes :
Ch : chaîne de 5 caractères au maximum :
Ch :array[1..5] of char ;
C : une variable qui peut prendre la valeur "2"
C :interger ;
X : une variable qui peut prendre la valeur X div 2
X :real ;
B : une variable qui peut prendre la valeur faux:
B :booléen ;
Exercice N°5
Ecrire une analyse, un algorithme et sa traduction en pascal d’un programme qui permet d’inverser un
entier n donné de trois chiffres.
Exemple : si n=528 le programme affichera : 528 inversé devient 825.
Analyse
Nom : inverse
Résulta : ecrire (‘x’)
x ( n div 100) + (( n mod 100 ) div 10 +10) + (n mod 10 + 100)
n =’donnée’
ALGORITHME :
0) début nom
1) ecrire(‘n = ?’), lire (‘n’)
2) x ( n div 100) + (( n mod 100 ) div 10 +10) + (n mod 10 + 100)
3) ecrire (‘x’)
4) fin inverse
PASCAL :
Program nom ;
Uses wincrt ;
Var
X,n :integer ;
Begin
Writes(‘n = ‘) ;read(n) ;
x ( n div 100) + (( n mod 100 ) div 10 +10) + (n mod 10 + 100)
writes(x) ;
end.
Exercice N°6
Ecrire un programme Pascal qui permet de former puis d’afficher un entier r de quatre chiffres à partir
de deux entiers m et n strictement positifs et formés chacun de deux chiffres et ceci en intercalant le
nombre n entre les deux chiffres de m.
Exemple : Si m=56 et n=21 alors l’entier r sera égal à 5216
Exercice N°7
Écrire un programme « MINUSCULE » qui permet de lire un caractère C et d’afficher son minuscule et son
code ASCII.
Exemple :
Pour C= ‘’A’’ le programme affiche Minuscule = ‘’a’’ et code = 97.
-3-