Vous êtes sur la page 1sur 3

 SERIE N°02

Algorithmique et Programmation

LES STRUCTURES de données et les STRUCTURES simples

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"
x2
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 ;

2) Soit x un entier de 3 chiffres (exemple : 219)


Donner l’instruction qui permet de calculer la somme des 3 chiffres (exemple : 2 + 1 + 9 = 12).
Somme
S  x div 100 +( x mod 100 ) div 10 + x mod 10
Exercice N°4
Ecrire une analyse, un algorithme et sa traduction en pascal d’un programme qui saisit une chaîne de
caractères ch formée d’un nom et d’un prénom et affiche les deux lettres initiales en majuscules.
Exemple : si ch= " foulen benfoulen " le programme affichera : "FB".
Analyse
Nom : nom
Résulta : ecrire (‘mes’)
Mes  MAJUS(ch[1))+MAJUS(pos(‘ ‘,ch)+1)
Ch =’donnée’
ALGORITHME :
0) début nom
1) ecrire(‘ch = ?’), lire (‘ch’)
2) mes  MAJUS(ch[1))+MAJUS(pos(‘ ‘,ch)+1)
3) ecrire (‘mes’)
4) fin nom
PASCAL :
Program nom ;
Uses wincrt ;
Var
Ch,mes :string ;
Begin
Writes(‘ch = ‘) ;read(ch) ;
mes  upcase(ch[1))+ upcase (pos(‘ ‘,ch)+1)
-2-
writes(mes) ;
end.

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-