ASDTDNabil Benneji
ASDTDNabil Benneji
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Durée : 1 heure
Exercice 1 : Expression Arithmétique
Evaluer les expressions suivantes :
a) pour A = 2, B = 4 et C = 5 : A * (B + C), A + B * C, A * B / C + A
b) 6 + 2 * 5 DIV 3
4.5 + RAC (8/2)
6 + 4 * 7 – 2 * (8 MOD 3 + 5)
(ABS (1.1 – 5.4))**2
Exercice 2 : Expression logique
Pour chacun des cas suivants, évaluer les expressions logiques en a), b), c) et d)
1) pour (a, b, c, d) = (-1, 3, 2, 7)
2) pour (a, b, c, d) = (1, 3, 2, 7)
3) pour (a, b, c, d) = (3, 11, 7, 2)
a) (a < b) ET (c > d)
b) NON ((a < b) ET (c > d)))
c) (a > b) OU (c a)
d) (a + b < c) OU (a + d > c)
Exercice 3 :
a) quel est l'ordre de priorité des différents opérateurs de l'expression suivante :
(( 3 * a) – x^2) –(((c- d)/(a/b).d)
b) évaluer l'expression suivante :
5 + 2 * 6 – 4 + (8 + 2 ^ 3 ) / (2 – 4 + 5*2)
c) écrire le formule suivante sous forme d'une expression arithmétique:
3
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°1 : Introduction à l’algorithmique
(3 - xy)2 – 'ac
-------------------
2x – z
Exercice 4 :
Sachant que a = 4 , b=5 , c=-1 et d =0 , évaluer les expressions logiques suivantes :
a) ( a et b ) et (c >= d)
b) Non( a < b) ou ( c #b)
c) Non(a#b^2) ou(a*b < d)
4
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°2 : les Instructions Simples
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Durée : 2 heures
Exercice 1 :
Donner toutes les raisons pour lesquelles l'algorithme suivant est incorrect
1. Algoritme Incorrect
2. X,y :entier
3. Z : réel
4. Debut
5. Zx^2
6; Yx
7. X*2 3 + x
8. Y 5y + 3
[Link]
Exercice 2 :
Ecrire un algorithme qui calcule et affiche la résistance d'un composant électrique en utilisant
la loi d'ohm : U = R * I avec U : tension en V , I : intensité en A , R : résistance en oméga
Exercice 3 :
Ecrire un algorithme qui saisit deux entiers M et N et affiche le résultat des opérateurs
(+, -, *, DIV et MOD) sur ces deux entiers.
Exercice 4 :
Ecrire un algorithme qui saisit une date au clavier sous la forme : Jour, Mois et Année et
l’affiche sous la forme Jour/Mois/Année.
Exemple : 23/9/2005
Exercice 5 :
Ecrire un algorithme qui pour un caractère saisi au clavier, affiche le caractère et son
équivalent entier
5
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°2 : les Instructions Simples
Exercice 6 :
Ecrire un algorithme qui permute et affiche les valeurs de trois variables réelles A, B et C
saisies au clavier comme suit :
AB, BC, CA
Exemple :
A = 12.5 A = 6.5
B = 10.5 B = 12.5
C = 6.5 C = 10.5
Exercice 7 :
Ecrire un algorithme qui calcule la somme de quatre réels saisis au clavier :
a) en utilisant 5 variables
b) en utilisant 2 variables
Exercice 8 :
Ecrire un algorithme qui permet de convertir et d’afficher en octets, kilo octets, méga
octets et giga octets un nombre donné en bits.
Exercice 9 :
Ecrire un algorithme qui à partir d’un prix unitaire et d’un nombre d’articles entrés au
clavier, calcule le prix-Ht, le montant de la TVA et le prix [Link] taux de la TVA est de
18%.
L’affichage doit se présenter comme suit :
Prix unitaire :
Nombres d’articles :
Prix HT :
Montant TVA :
-------------------------------------------------------
Prix TTC :
Exercice 10 :
Ecrire un algorithme qui pour un rayon donné calcule et affiche :
- Le périmètre d’un cercle :: 2 * pi* rayon
- La surface d’un cercle : pi * (rayon)2
- Le volume d’une sphère : 4/3 * pi * (rayon)3
6
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°3 : Structures Conditionnelles
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Exercice 1 :
Ecrire un algorithme permettant de résoudre dans R une équation du second degré de la forme
: ax2 + bx + C = 0
Exercice 2 :
Ecrire un algorithme permettant de simuler une calculatrice à 4 opérations (+, - , * et /).
Utiliser "selon" pour le choix de l'opération à effectuer.
Exercice 3 :
Ecrire un algorithme qui lit un caractère au clavier puis afficher s'il s'agit d'une lettre
minuscule, d'une lettre majuscule, d'un chiffre ou d'un caractère spécial. .
Exercice 4 :
Une année est bissextile (contient 366 jours) si elle est multiple de 4, sauf les années de début
siècle (qui se terminent par 00) qui ne sont bissextiles que si elles sont divisibles par 400.
Exemples :
1080 et 1996 sont bissextiles car elles sont divisibles par 4.
2000 est une année bissextile car elle est divisible par 400
2100 et 3000 ne sont pas bissextiles car elles ne sont pas divisibles par 400.
Ecrire un algorithme qui permet de déterminer si un entier positif donné correspond à une
année bissextile ou non.
Exercice 5 :
Soit la suite d’instructions suivante :
Si (a>b) alors Trouve_vrai
7
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°3 : Structures Conditionnelles
8
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°3 : Structures Conditionnelles
9
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°3 : Structures Conditionnelles
28022003 à 01/03/2003
28022004 à 29/02/2004
29022004 à 01/03/2004
NB : la date fournie est supposée contrôlée (aucune erreur)
10
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°4 : Structures Itératives
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Exercice 1 :
Ecrire un algorithme permettant de :
- Lire un nombre fini de notes comprises entre 0 et 20
- Afficher la meilleure note, la mauvaise note et la moyenne de toutes les notes
Exercice 2 :
Calculer ab avec a réel et b par multiplications successives
Exercice 3 :
Ecrire un algorithme .qui lit un entier positif et vérifie si ce nombre est premier ou non.
Exercice 4 :
Ecrire un algorithme qui détermine toutes les nombres premiers inférieurs à une valeur
donnée
Exercice 5 :
Ecrire un algorithme qui lit deux entiers positifs A et B puis calcule et affiche leur PGCD en
utilisant la méthode suivante :
si A = B; PGCD (A, B) = A
Si A > B ; PGCD (A, B) = PGCD (A – B, B)
Si B > A ; PGCD (A, B) = PGCD (A, B – A)
PGCD(18,45) = PGCD(18,27)=PGCD(18,9)=PGCD(9,9)=9
Exercice 6 :
Ecrire un algorithme qui calcule le PPCM (Plus Petit Commun Multiple) de deux entiers
positifs A et B en utilisant la méthode suivante :
11
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°4 : Structures Itératives
permuter, si nécessaire, les données de façon à ranger dans A le plus grand de deux
entiers
chercher le plus petit multiple de A qui est aussi multiple de B
Exercice 7 :
Ecrire un algorithme qui calcule et affiche les 10 premiers termes de la suite de Fibonacci.
La suite de Fibonacci est définie par :
F0 = 1
F1 = 1
Fn = Fn-2 + Fn-1 pour n > 1
Exercice 8 :
Ecrire un algorithme qui calcule la somme harmonique s = 1/i; n est un entier positif lu à
partir du clavier.
Exemple : pour n = 3, s=1 + 1/2 + 1/3 = 1.83
Exercice 9 : nombre cubique
Parmi tous les entiers supérieurs à 1, seuls 4 peuvent être représentés par la somme de cubes
de leurs chiffres. A titre d'exemple : 153 = 13 + 53 + 33 est un nombre cubique.
Ecrire un algorithme permettant de déterminer les 3 autres. Les 4 nombres sont compris
entre 150 et 410.
Exercice 10 : nombre parfait
Un nombre parfait est un nombre présentant la particularité d'être égal à la somme de tous ses
diviseurs, excepté lui-même. Le premier nombre parfait est 6 = 3 + 2 + 1
Ecrire un algorithme qui affiche tous les nombres parfaits inférieurs à 1000
Exercice 11 :
Ecrire un algorithme qui simule le jeu suivant :
à tour de rôle, l'ordinateur et le joueur choisissent un nombre qui ne peut prendre que 3
valeurs : 0, 1 ou 2. l'instruction n Random(3) réalise le choix de l'ordinateur
si la différence entre les nombres choisis vaut :
o 2, le joueur qui a proposé le plus grand nombre gagne un point
o 1, le joueur qui a proposé le plus petit nombre gagne un point
o 0, aucun point n'est marqué
Le jeu termine quand l'un des joueurs totalise 10 points.
12
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°5 : Les chaînes de caractères
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Durée : 2 heures
Exercice 1 :
Ecrire un algorithme qui lit une chaîne de caractère puis affiche son inverse. Par exemple : si
une chaîne est "algo", l'algorithme doit afficher "ogla"
Exercice 2 :
Ecrire un algorithme qui lit une chaîne de caractère et renvoie son équivalent en majuscule
Exercice 3 :
Ecrire un algorithme qui permet de compter le nombre de mots dans une phrase. La phrase
commence obligatoirement par une lettre et les mots sont séparés par des espaces.
Exercice 4 :
Ecrire un algorithme qui détermine et affiche le mot le plus long dans une phrase donnée
Exercice 5 :
Ecrire un algorithme qui lit un mot et une lettre(chaîne de caractère formée uniquement de
lettres) puis affiche le nombre d'apparition de la lettre dans le mot.
Exercice 6 :
Ecrire un algorithme qui lit un entier positif puis affiche son équivalent en binaire (base 2). Par exemple : (23)10 = (10111) 2
13
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°6 : Les Tableaux
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
14
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°6 : Les Tableaux
Ecrire un algorithme qui remplit deux vecteurs U et V représentés par deux tableaux de type
entier d'ordre n, calcule et affiche le produit scalaire.
Le produit scalaire de deux vecteurs : U = (x1, x2,…….., xn ) et V = (y1, y2,…….., Yn ) est défini
par : U.V = x1 * y1 + x2 * y2 + ... + xn * yn = ∑xi *yi
Exercice 5 :
Ecrire un algorithme qui remplit un vecteur U représentés par un tableau de type entier
d'ordre n, calcule et affiche la norme de vecteur U. La norme d'un vecteur U = (x1, x2,…….., xn )
est définie par : ||U|| = sqrt( x1^2 + ….. xn^2)
Exercice 6 :
Ecrire un algorithme qui permet de remplir un tableau Fib par les 10 premiers termes de la
suite de Fibonacci. La suite de Fibonacci est définie par :
F0 = 1
F1 = 1
Fn = Fn-2 + Fn-1 pour n > 1
Exercice 7 :
Ecrire un algorithme permettant de trouver tous les nombres premiers inférieures à 400 et qui
utilise la méthode suivante :
Créer un tableau T pouvant contenir 400 entiers.
Initialiser chaque élément du tableau à son indice c'est-à-dire
T[1]=1;T[2]=2;..;T[400]=4000
Remplacer tous les multiples de 2 par 0 sauf 2
Chercher le prochain élément différent de 0 dans le tableau c'est-à-dire T[3] et
remplacer tous les multiples de 3 par 0 sauf 3
Continuer ce processus jusqu'à avoir T[i] >= 20 ( 20 étant la racine carrée de 400)
Afficher tous les éléments non nuls de T
Exercice 8 :
Soit un vecteur U1 de composantes x1,x2,..,xN non nulles et un vecteur L de même Longueur
dont les composantes sont 0 ou 1.
Ecrire un algorithme qui remplit le vecteur U1 et fait la compression de U1 par L. Le résultat
est un vecteur U2 dont les composants sont, dans l'ordre, celles de U1 pour lesquelles la
composante de L vaut 1. Par exemple :
Exemple :
U1 5 -2 7 -6 8
L 0 1 1 0 1
15
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°6 : Les Tableaux
U2 -2 7 8 0 0
Exercice 9 :
Soit un tableau T de n éléments, déterminer la longueur de la première plus longue séquence
de nombres rangés par ordre croissant et l'indice de son premier élément.
Exercice 10 :
Ecrire un algorithme qui permet de fusionner deux tableaux triés A et B contenant
respectivement n et m éléments. Le résultat est un tableau trié C à (n+m) éléments
Exercice 11 :
Ecrire un algorithme qui remplit un tableau A de n nombres triés par ordre croissant, lire un
réel R et l'insère dans sa bonne position. Le résultat sera un deuxième tableau de la longueur
(n+1) et qui est également trié par ordre croissant
Exercice 12 :
Créer un tableau à deux dimensions qui contiendra les n première lignes du triangle de
Pascal.. chaque élément du triangle de pascal est obtenu par la formule :
T[L,C] = T[L-1, C-1] + T[L-1,C]
16
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°7 : Procédure et Fonction
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Durée : 3 heures
Exercice 1 : Procédure
a) Ecrire une procédure PERMUT qui permet d’échanger les valeurs de deux entiers a et b
b) Ecrire une procédure LectureMat qui permet de remplir une matrice
c) Ecrire une procédure MinMax qui détermine le minimum et le maximum de deux entiers
d) Ecrire une procédure OCCUR qui détermine l’occurrence d’un caractère x dans une
chaîne de caractère CH
e) on appelle bigramme une suite de deux lettres. Ecrire une procédure qui calcule le nombre
d’occurrence d’un bigramme dans une chaîne de caractère. Peut – on transformer cette
procédure en fonction ? si oui, écrire cette fonction
Exercice 2 : Fonction
a) Développer une fonction qui cherche le PGCD de deux entiers a et b en utilisant
l’algorithme d’Euclide :L’algorithme d’Euclide consiste à répéter plusieurs fois le
traitement : PGCD(a,b) = PGCD(b,a mod b) jusqu’à PGCD(x,0) , le PGCD est alors x
b) Ecrire une fonction qui calcule le nombre d’occurrence de la chaîne ch2 dans la chaîne ch1
c) Ecrire une fonction Triangle qui permet de vérifier si les 3 nombres a,b,c peuvent être les
mesures des cotés d’un triangle rectangle . D’après le théorème de Pythagore,, si a,b,c
sont les mesures des cotés d’un triangle rectangle alors a2 = b2 + c2 ou b2 = c2 + a2 ou c2 =
b2 + a2
Exercice 3 : chaîne de caractère
a) Ecrire un procédure qui lit une chaîne de caractère puis affiche son inverse
b) Ecrire une procédure qui lit une chaîne de caractère et renvoie son équivalent en
majuscules
c) Ecrire une fonction qui retourne le nombre de mots dans une phrase donnée
17
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°7 : Procédure et Fonction
d) Ecrire une procédure qui affiche le mot le plus long dans une phrase donnée
e) Ecrire une procédure qui lit un entier positif et affiche son équivalent en binaire
f) Ecrire une fonction qui retourne le nombre d’une lettre dans une phrase donnée
18
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°8 : Enregistrement et Fichier
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
19
Nabil AOUADI & Hamed BENNEJI
Enoncé des Travaux Dirigés TD N°8 : Enregistrement et Fichier
Exercice 4 :
Ecrire un algorithme permettant :
- créer et remplir un fichier "fnotes" qui contients les notes de 30 étudiants
- copier les notes dans un tableau Tnote
- Trier le tableau Tnote dans l'ordre croissant
- Ccpier les notes triées du tableau vers le fichier FNotes.
20
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°1 : Introduction à l’algorithmique
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
21
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°1 : Introduction à l’algorithmique
5 + 12 – 4 + 16 / 8 =
5 + 12 – 4 + 2 =
17 – 4 + 2 =
13 + 2 = 15
c)
((3-x*y)^2 – 4 * a * c)/ (2*x-z)
Exercice 4 :
a) faux
b) vrai
c) faux
22
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°2 Instructions Simples
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
23
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°2 Instructions Simples
24
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°2 Instructions Simples
Exercice 7 :
a) en utilisant 5 variables
Analyse du problème
1. Données du problème : A,b,c,d : quatre variable de type réel
2. Résultats Recherchés : S : somme de type réel
3. Comment faire ?
lire les données
sa+b+c+d
Afficher le résultat
Algorithme
Algorithme somme 5
Variables a,b,c,d,s : réel
Début
Ecrire("Donner quatre variables réelles")
Lire(a,b,c;d)
Sa+b+c+d
Ecrire (" la somme est .", s )
Fin
b) en utilisant 2 variables
Analyse du problème
1. Données du problème : A : une variable de type réel
2. Résultats Recherchés : S : somme de type réel
3. Comment faire ?
lire la donnée s a lire la donnée s s + a lire la donnée ss+a lire la donnée ss+a
Afficher le résultat
Algorithme
Algorithme somme 2
Variables a,s : réel
Début
Ecrire("Donner une variables réelle") Lire(a) Sa
Ecrire("Donner une variables réelle") Lire(a) S a + s
Ecrire("Donner une variables réelle") Lire(a) Sa +s
Ecrire("Donner une variables réelle") Lire(a) S a + s
Ecrire (" la somme est .", s )
Fin
Exercice 8 :
Analyse du problème
1. Données du problème : Nb: nombre de bits de type entier
2. Résultats Recherchés : No : nombre en octet de type entier
NMo: nombre en méga octet de type entier
NGo : nombre en giga octet de type entier
3. Comment faire ? : lire les données
No Nb div 8
NMo NO div 1024
NGo NMO div 1024
Afficher le résultat
Algorithme
Algorithme Conversion
Variables Nb, NO, NMO, NGO : entier
Début
Ecrire("Donner un nombre en bits") Lire(NB)
No Nb div 8
NMo NO div 1024
NGo NMO div 1024
Ecrire (" le nombre en Octets est :", NO)
Ecrire (" le nombre en méga Octets est :", NMO)
Ecrire (" le nombre en GIGA Octets est :", NGO)
Fin
25
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°2 Instructions Simples
Exercice 9 :
Analyse du problème
1. Données du problème : PU: prix unitaire de type réel
NA : nombre d'articles de type entier
2. Résultats Recherchés : PHT :prix hors taxe de type réel
Mtva : montant de tva de type réel
PTTC: prix taux taxe
3. Comment faire ? : lire les données
PHT PU * NA
MTVA pht * 0.18
PTTC pht + mtva
Afficher le résultat
Algorithme :
Algorithme Prix
Variables PU,mTVA, PTTC :réel
NA : entier
Début
Ecrire("Prix Unitaire: ") Lire(PU)
Ecrire("Nombre d'articles: ") Lire(NA)
PHT PU * NA
Ecrire ("Prix HT :", PHT)
MTVA pht * 0.18
Ecrire ("Montant TVA : ", MTVA)
Ecrire ("-------------------------------------------------")
PTTC pht + mtva
Ecrire("Prix TTC :", PTTC)
Fin
Exercice 10 :
Analyse du problème
1. Données du problème
R : rayon de type réel
Pi : constante = 3.14
2. Résultats Recherchés
P : périmètre d'un cercle de type réel
S : surface d'un cercle
V : volume d'une sphère
3. Comment faire ?
lire les données p 2*pi *R
S pi * r * r V 4/3 * pi * r*r*r
Afficher le résultat
Algorithme
Algorithme rayon
Constantes pi =3.14
Variables R,S,P,V:réel
Début
Ecrire("Donner le rayon ") Lire(r)
p 2*pi *R
S pi * r * r
V 4/3 * pi * r*r*r
Ecrire ("le périmètre d'un cercle est : ", p)
Ecrire ("la surface d'un cercle est : ", s)
Ecrire ("le volume d'une sphère est : ", v)
Fin
26
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
27
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
"-" : s a - b
"*": s a * b
"/" : s a / b
Afficher le résultat
Algorithme calculatrice
Variables s,a , b : réel
op : caractère
Début
Ecrire("Donner les deux opérandes") Lire(a,b)
Ecrire("Donner l'opérateur") Lire(op)
selon op faire
"+" : s a + b
"-" : s a - b
"*": s a * b
"/" : s a / b
Fselon
Ecrire (a, op , b , "=" , s)
Fin
Exercice 3 :
Analyse du problème : 1ere methode
1. Données du problème : C : un caractère
2. Résultats Recherchés : Type de caractère : chiffre, lettre majuscule, lettre minuscule, caractère spécial
3. Comment faire ? : lire les données
1ere methode
selon c faire
"A" .. "Z" : lettre majuscule
"a".."z" : lettre minuscule
"0".."9" : chiffre
Sinon : caractère spécial
2 eme methode
selon asc(c) faire
65 .. 90 : lettre majuscule
97..122 : lettre minuscule
48..57 : chiffre
Sinon : caractère spécial
28
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
Exercice 4 :
Analyse du problème
1. Données du problème
a : année de type entier
2. Résultats Recherchés
Bissextile ou non
3. Comment faire ?
lire les données
a est une année bissextile ssi : a est divisible par 4 et n'est pas divisible par 100 ou a est divisible par 400
Algorithme bissextile
Variables a : entier
Début
Ecrire("Donner une année") Lire( a )
Si ( a mod 4 = 0 et a mod 100 <> 0) ou ( a mod 400 = 0 alors
Ecrire (a, "est une année bissextile ")
Sinon
Ecrire (a, "n'est pas une année bissextile ")
Fsi
Fin
Exercice 5 :
Si (a>b) alors Trouve vrai
Sinon Trouve faux Fin si --------- trouve ( a >b)
Exercice 6 :
Analyse du problème
1. Données du problème
poids : poids d'un colis de type réel
2. Résultats Recherchés
Frais : frais d'envoi d'un colis de type réel
3. Comment faire ?
lire les données
si poids <= 2 alors frais 2.5
sinon frais poids * 1.25
Afficher le résultat
Algorithme Colis
Variables poids, frais : : réel
Début
Ecrire("Donner le poids d'un colis") Lire(poids)
si poids <= 2 alors frais 2.5
sinon frais poids * 1.25
Fsi
Ecrire ("le frais d'envoi d'un colis qui pèse :" , poids , " est : " , frais)
Fin
Exercice 7 :
Analyse du problème
1. Données du problème : nhec : nombre de hectare de type réel
ncat : numéro de catégorie de type entier
2. Résultats Recherchés : Prix : prix à payer de type réel
3. Comment faire ? : lire les données
selon ncat faire
1 : prix 15 * nhec
2 : prix 30 * nhec
3 : prix 45 * nhec
4 : prix 80 * nhec
Reduction 0
Si nhec > 1000 alors
reduction reduction + prix * 0.05
29
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
30
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
31
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°3 Structures Conditionnelles
Algorithme Lendemain
Var j, m, a : entier
Debut
Ecrore (« donner le numéro du jour »)
lire(j)
Écrire (« donner le numéro du mois »)
Lire(m)
Écrire (« donner le numéro du mois »)
Lire(m)
Si j = 30 alors
Si m =4 ou m = 6 ou m = 9 ou m = 11 alors
J1
M m+1
Sinon
J1
Fsi
Sinon
Si j = 31 alors
Si m =1 ou m = 3 ou m = 5 ou m = 7 ou m = 8 ou m = 10 alors
J1
M m+1
Sinon
J1
M 1
A a +&
Fsi
Sinon
Si j=28 alors
Si m = 2 et a mod 4 = 0 et a mod 400 = 0 alors
Jj+1
Sinon
J 1
M m +1
fsi
Sinon
Si j =29 alors
Si m = 2 alors
J
fsi
Sinon
Jj+1
Fsi
fsi
Fsi
Fsi
Ecrire «(« le lendemain est : » , j , « / » , m, « / » , a)
Fin
32
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°4 Structures Itératives
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
Exercice 1 :
Algorithme :
Algorithme Notes
Var n, i : entier
Note, min, max, s : réel
Debut
Ecrire ("entrer le nombre de notes : ")
Répéter
Lire(n)
Jusqu’à n > 0
S0
Max 0
Min 20
Pour i de 1 à n faire
Répéter
Ecrire ("entrer une note comprise entre 0 et 20 : ")
lire(note)
jusqu’à note >= 0 et note <=20
S note + s
Si note > Max alors
Max note
Fsi
Si note < mi alors
Min note
Fsi
fpour
Ecrire("meilleure note = " , max)
Ecrire ("mauvaise note =", min)
Ecrire ("moyenne des notes =",s/n)
Fin
Exercice 2 :
Algorithme :
Algorithme Puissance
Var c, a : réel
B : entier
Debut
Ecrire ("entrer la valeur de a:") lire(a)
Ecrire ("entrer la valeur de b :") lire(b)
C1
Pour i de 1 à abs(b) faire
Ss*a
Fpour
Si b <0 alors
33
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°4 Structures Itératives
C1/c
Fsi
Ecrire(a, "à la de puissance " , b , "=" , c)
Fin
Exercice 3 :
Algorithme :
Algorithme Premier
Var a, i, nbdiv ! entier
Debut
Ecrire ("entrer un entier positif :")
R&p&ter
lire (a)
jusqu’à a > 0
Nbdiv 0
I1
Tantque i <= n faire
Si n mod i =0 alors
Nbdiv nbdiv + 1
Fsi
Ii+1
Ftq
Si nbdiv <= 2 alors
Ecrire(n, " est un nombre premier ")
Sinon
Ecrire (n, "n'est pas un nombre premier")
Fsi
Fin
Exercice 4 :
Algorithme :
Algorithme Premiers
Var n, i, j, nbdiv : entier
Debut
Ecrire ("entrer un entier positif :") lire (n
Pour i de 1 à n - 1 faire
Nbdiv 0
Pour j de 1 à i faire
Si i mod ij=0 alors
Nbdiv nbdiv + 1
Fsi
Fpour
Si nbdiv <= 2 alors
Ecrire(i)
Fsi
Fpour
Fin
Exercice 5 :
Algorithme :
Algorithme PGCD
Var a,b : entier
Debut
Ecrire("enter la valeur de a : ") lire'a)
Ecrire("entrer la valeur de b : ") lire (b)
Répéter
Si a > b alors
Aa–b
Fsi
Si b > a alors
34
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°4 Structures Itératives
Bb–a
Fsi
Jusqu'à a = b
Ecrire("PGCD :" , a)
Fin
Exercice 6 :
Algorithme :
Algorithme PPCM
Var a, b , x, i : entier
Debut
Ecrire ("entrer la valeur de a : " ) lire(a)
Ecrire ("entrer la valeur de b ") lire(b)
Si a < b alors
Xa
Ab
Bx
Fsi
I1
Tantque ( (i*a) mod b) <> 0 faire
Ii+1
FtQ
Ecrire ("PPCM = ", i *a)
Fin
Exercice 7 :
Algorithme :
Algorithme Fibo
Var F0 , F1 , F , I : entier
Debut
F0 1
Ecrire ("F0 = " , F0)
F1 1
Ecrire ("F1 = " , F1)
Pour i de 2 à 9 faire
Ecrire ("F0 = " , F0)
F1 1
Ecrire ("F1 = " , F1)
Pour i de 2 à 9 faire
F = F0 ° F1
Ecrire ( "F" , i , "=", f)
F0 F0
F1 F
Fpour
Fin
Exercice 8 :
Algorithme :
Algorithme Somme
Var n , I : entier
S : réel
Debut
Ecrire ("entrer la valeur de n ") lire(n)
S0
Pour i de 1 à n faire
S S + 1/i
Fpour
Ecrire ("s=", s)
Fin
Exercice 9 : nombre cubique
35
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°4 Structures Itératives
Algorithme :
Algorithme Cubique
Var i, centaine, dizaine, unite : entier
Debut
Pour i de 150 à 410 faire
Centaine i div 100
Dizaine ( i mod 100) div 10
Unite i mod 10
Si ( centaine ^ 3 + dizaine ^ 3 + Unité ^ 3 ) = i alors
Ecrire ("i , " est un nombre cubique")
Fsi
Fpour
Fin
Remarques : les nombres cubiques sont : 153, 370, 371, 407
Exercice 10 : nombre parfit
Algorithme :
Algorithme Parfaits
Var i, n , s, j: entier
Debut
Pour i de 1 à 1000
S0
Pour j de 1 à i div 2 faire
Si (i mod j ) = 0 alors
SS+j
Fsi
Fpour
Si s = i alors
Ecrire("i , " est un nombre parfait ")
Fsi
Fpour
Fin
Exercice 11 : Simulation d'un jeu
Algorithme :
Algorithme Jeu
Var nbj, nbord , totj, totord : entier
Debut
Totj 0
Totord 0
Tantque totj < 10 et totord < 10 faire
Nbord random(3)
Ecrire ("entrer une note (0/1/2)" ) lire (nbj)
Si abs(nbord – nbj) = 2 alors
totord totord + 1
Sinon
Totj totj + 1
Fsi
Si abs(nbord – nbj) = 1 alors
Si nbord < nbj alors
totord totord + 1
Sinon
Totj totj + 1
Fsi
Fsi
Ftq
Ecrire ("total ordinateur " , totord)
Ecrire ("
Fin
36
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°5 : Les chaînes de caractères
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
37
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°5 : Les chaînes de caractères
38
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°5 : Les chaînes de caractères
Lire (C)
L long(mot)
Occur 0
Pour i de 1 à L faire
Si mot[i= C alors
Occur occur °1
Fsi]
Fpour
Ecrire( " le nombre d'occurrence du caractère : " , C , "dans " , mot , " est égal " , occur)
Fin
Exercice 6 :
Algorithme :
Algorithme Conversion_Decimal_Binaire
Var Dec, x , reste : entier
Bin , restech : Chaine
Debut
Lire (dec)
X dec
Bin ""
Tantque x <> 0 alors
Reste x mod 2
Convch(reste , rrestch)
Bin ch + decbin
X x div 2
Ftque
Ecrire("le nombre binaire équivalent à " , dec , "est" , bin
Fin
39
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
40
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
Fsi
Fpour
Ecrire ( "les entiers positifs sont ")
Pour i de 1 à NbP faire
Lre(TP[i])
Fpour
Ecrire ("les entiers négatifs sont " )
Pour i de 1 à NbNfaire
Lre(TP[i])
Fpour
Fin
Exercice 3 :
Données : - Réponse : tableau de 26 lettre
Résultats : - NbFaute : entier
- Réponse : tableau de 26 lettre en ordre alphabétique
Comment faire ? : - remplir la réponse proposée par l'élève
- corriger la réponse en calculant le nombre de fautes
Algorithme :
Algorithme Alphabet
Const N= 26
Type Tab=tableau[1..N]
Var Réponse : Tab
Nbfaute,i : entier
Debut
Pour i de 1 à N faire
Lire[réponse[i])
Fpour
Nbfaute 0
Pour i de 1 à n faire
Si réponse[i] <> car ( i + 64) alors
Nbfaute nbfaute + 1
Réponse[I] car(i + 64)
fsi
Fpour
Ecrire ( " le nombre fautes est égale à ", nbfaute)
Fin
Exercice 4 :
Algorithme :
Algorithme ProduitScalaire
Const N = 20
Type Tab : tableau[1..N] d'entier
Var U,V : Tab
Ps, i : entier
Debut
Pour i de 1 à N faire
Lire[u[i])
Fpour
Pour i de 1 à N faire
Lire ( V[i])
Fpour
Ps 0
Pour i de 1 à N faire
Ps ps + U[i] * V[i]
Fpour
Ecrire ( " le produit de scalaire est : " , ps)
Fin
Exercice 5 :
41
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
Données : - U : Tableau
Résultats : - Norme : norme de vecteur u
Comment faire ? : - lire le vecteurs U
- calculer la norme de U -
Algorithme :
Algorithme Norme
Const N = 20
Type Tab : tableau[1..N] d'entier
Var U : Tab
Norme, i : entier
Debut
Pour i de 1 à N faire
Lire[u[i])
Fpour
Norme 0
Pour i de 1 à N faire
Norme Normee + U[i] * U[i]
Fpour
Ecrire ( " la norme est : " , racine(nrrme))
Fin
Exercice 6 :
Données : - Fib : Tableau de Fiboacci
Résultats : - Fib : tableau de Fiboacci
Comment faire ? : - Fib[O] 1
- Fib[1] 1
- i : 2 ..9 :Fib[i] Fib[i-2] + Fib[i-1]
Algorithme :
Algorithme Fiboacci
Const n = 9
Type tab = tableau [0..9] d'enier
Var Fib : tab
I:enter
Debut
Fib[O] 1
Fib[1] 1
Pour I de 2 à n faire :
Fib[i] Fib[i-2] + Fib[i-1]
Fpour
Pour I de 0 à n faire
Ecrire (" le terme numero ", i ," de fibonacci est :" , Fib[i])
Fpour
Fin
Exercice 7 :
DAlgorithme :
Algorithme Premiers
Const n = 400
Type tab = Tableau [1..N] d'entier
Var Prem : tab
I,j:entier
Debut
Pour i de 1 à N faire
Prem[i] i
Fpour
Pour i de 1à 20 faire
Si prem[I] <> 0 alors
Pour j de i+1 à n faire
Si prem[j] mod prem|i] = 0 alors
Prem[j] 0
42
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
Fsi
Fpour
Fsi
Fpour
Ecrire ("les nobres premiers sont : ")
Pour i de 1 à n faire
Si prem[i] <> 0 alors
Ecrire (prem[i])
fsi
Fpour
Fin
Exercice 8 :
Données : - U1 : tableau
- L : tableau
Résultats : - U2 : tableau
Comment faire ? : - remplir le tableau U1
- remplir le tableau L
- Compresser U 1
Algorithme :
Algorithme Compression
Const n=20
Type tab=tableau [1..N] d'entier
Var U1, U2, L :: Tab
I,j:entier
Debut
Pour i de 1 à N faire
Lire (U1[i])
Fpour
Pour i de 1 à N faire
Lire (L[i])
Fpour
J1
Pour i de 1 à N faire
Si L[i] =1 alors
U2[j] U1[i}
JJ+1
Fsi
Fpour
Pour i de J +1 à n faire
U2[j] 0
Fpour
Fin
Exercice 9 :
Données : - T : tableau de longueur n de type entier
Résultats : - indice : l'indice de la plus long monotonie
_ Lpl : la longueur de la plus longue monotonie
Comment faire ? : - remplir le tableau T
- recherche de la plus longue monotonie
-
Algorithme :
Algorithme Monotonie
Const n = 1100
Type Tab=tableau[1..N] d'entier
Var T : Tab
Indice,lpl, i, j, L :entier
Debut
Pour i de 1 à N faire
Lire[T{i])
43
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
Fpour
I1
Indice 1
Lpl 1
Tantque i <=n faire
J i +1
Tantque j <= n et T[j] >= T[j+1] faire
J J +1
FTq
LJ–I
Si L > lpl alors
Indice i
Lpl L
Fsi
Ftq
Ecrire ("l'indice de la plus longue monotonie est : ", indice)
Ecrire ("la longueur de la plus longue monotonie est : " , lpl)
Fin
Exercice 10 :
Données : - A : un tableau trié
- B : un tableau trié
Résultats : - C : un tableau trié : la fusion de deux tableaux A et B
Comment faire ? : - remplir le tableau A
- remplir le tableau B
- remplir le tableau C
Algorithme :
Algorithme Fusion
Const n = 20
Type Tab =tableau [1 .. N] d'entier
Var A,B,C : TAB
I,j,k : entier
Debut
Pour i de 1 à N faire
Lire (A[i])
Fpour
Pour i de 1 à N faire
Lire (B[i])
Fpour
I1
J1
K1
Tantque i <=n et j <= n fairre
Si A[i] <= B[j] alors
C[k] A[i]
Kk+1
Ii+1
Fsi
Si A[i] >= B[j] alors
C[k] B[i]
Kk+1
Jj+1
Fsi
Ftq
Tqntaue I \=n fqire
C[k] A[i]
Ii+1
KK+1
Ftque
Tqntaue I \=n fqire
44
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés TD N°6 : Les Tableaux
C[k] A[i]
Ii+1
KK+1
Ftque
Fin
Exercice 11 :
Algorithme :
Algorithme insertion
Const N =20
Var A : tableau [ 1..N] d'entier
B : tableau [1..N+1] dentier
I,j,x:entier
Debut
Pour i de 1 à N faire
Lire(A[i])
Fpour
Lire(x)
I1
Tantque i <= n et A[i] <= x faire
B[i] A[i]
Ii+1
Ftq
B[i] x
Jj+1
Tantque j <= n faire
B[j] A[i]
I i+ 1
Jj+1
Fpour
Fin
Exercice 12 :
Algorithme Pascal
Const n = 50
Type Mat = Tableau[1..n, 1..N] d'entier
Var i , j : entier
A : MAt
Debut
Pour i de 1 à N faire
Pour j de 1 à n faire
A[i,j] 0
Fpour
Fpour
Pour i de 1 à N faire
A[i,1] 1
Pour j de 1 à n faire
A[i,j] A[i-1, j-1] + A[i-1, j]
Fpour
fpour
Fin
45
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°7 Fonction et Procédure
République Tunisienne
Ministère de l’enseignement supérieur, de la recherche scientifique et de la technologie
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
46
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°7 Fonction et Procédure
e)
Données : un caractère a – un caractère b – une chaîne de caractère ch
Résultats : un entier n indiquant occurrence du bigramme dans la chaîne
Principe : itérer i de 1 , si l’élément a est égaler au caractère à l’indice i et l’élément b est égaler au caractère à
l’indice i+1, on incrémente n jusqu'à i est égal à long(ch)-1
Algorithme
Procédure OCCUR (a,b : :caractère, ch : chaîne ; var n :entier)
Var L,i : entier
Debut
L long(ch)-1
N0
Pour i de 1 à L faire
Si ch[i] = a et ch[i+1] =b alors
N n +1
Fsi
Fsi
Fin
Puisque on a un seul paramètre résultat, on peut transformer cette procédure en une fonction
Fonction OCCUR (a,b : :caractère, ch : chaîne ) : entier
Var L,i : entier
Debut
L long(ch)-1
OCCUR 0
Pour i de 1 à L faire
Si ch[i] = a et ch[i+1] =b alors
OCCUR OCCUR +1
Fsi
Fsi
Fin
Exercice 2 : Fonction
a)
Données : un entier - un entier b
Résultats : un entier indiquant le pgcd de deux entiers a et b
Principe : répéter plusieurs fois le traitement : PGCD(a,b) = PGCD(b,a mod b) jusqu’à PGCD(x,0) , le PGCD
est alors x
Algorithme :
Fonction PGCD (a,b :entier ) : entier
Var x,y : entier
Debut
X a Y b
Répéter
A b B a mod b
Jusqu'à b =0
Fin
b)
Données : une chaîne ch1 - une chaîne ch 2 Résultats : un entier indiquant l’occurrence de la chaîne ch2
Principe : si long(ch2) > 1 alors occurrence vaut 0, sinon : itérer i de 1 , si la sous chaîne d’indice i et de
longueur ch2 a est égaler à la chaîne ch2, on incrémente n jusqu'à i est égal à long(ch1) – long(ch2)
Algorithme :
Fonction OCCUR (ch1,ch2 ch : chaîne ) : entier
Var L1,i : entier
Debut
Si long(ch2) > long(ch1) alors Occur O Sinon
L1 long(ch1) - long(ch2)
OCCUR 0
Pour i de 1 à L1 faire
Si copie(ch1,i,long(ch2) = ch2 alors OCCUR OCCUR +1 Fsi
47
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°7 Fonction et Procédure
Fsi
Fsi
Fin
c)
Données : un entier a – un entier b – un entier c
Résultats : une valeur booléenne indiquant si les 3 nombres a,b,c peuvent être les mesures des cotés d’un
triangle rectangle
Principe : si a,b,c sont les mesures des cotés d’un triangle rectangle alors a2 = b2 + c2 ou b2 = c2 + a2 ou c2 = b2 +
a2
Algoritme :
Fonction triangle (a,b,c :entier) :booléen
Var x,y,z : entier
Debut
Tringle vrai
X a*a y b*b z c*c
Si x <> y+z ou y <> x+z ou z <> x+y alors
Triangle faux
Fsi
Fin
b)
Données : une chaîne de caractère ch non lue
Résultats : une chaîne de caractère ch lue – chaîne de caractère en majuscule
Principe : itérer i de 1 , mettre le caractère d’indice i en majuscule jusqu'à i est égal à long(ch)
Algorithme :
Procédure majus( var ch, maj : chaîne)
Var L ,i: entier
Debut
Lire(ch) L long(ch) maj " "
Pour i de 1 à L faire
Inv maj +ch[i]
Fsi
Ecrire ("a chaîne est en majuscule est : ", maj)
Fin
c)
Données : une chaîne de caractère ch
Résultats : un entier indiquant le nombre de mots
Principe : une phrase est composé par plusieurs mots espacés par des espaces ; le nombre de mots est égale au
nombre des espaces +1 supposant que la phrase ne contient pas des espaces au début et à la fin et pas des espaces
répétitives.
Algorithme
Fonction nbmot (ch : chaîne ) :entier
Var L : entier
48
Nabil AOUADI & Hamed BENNEJI
Corrigé des Travaux Dirigés n°7 Fonction et Procédure
Debut
L long(ch) nbmot 0
Pour i de 1 à L faire
Si ch[i] = « » alors nbmot nbmot +1 Fsi
Fsi
Fin
d)
Données : une chaîne de caractère
Résultats : le mot le plus long
Principe : comparaison entre les mots successives sachant que le mot départ est vide
Algorithme :
Procédur
Procédure motpluslong (ch : chaîne ; var mot : chaine)
Var L, I : entire temp : chaine
Debut
L long(ch) Mot = " "
Tantque i <=L faire
Temp = " "
Tantque ch[i]<> " " faire
Temp = temps + ch[I] I =1+1
FTq
Si long(temp) > long(mot) alors
Mot = temp
Fsi
I = I+1
Ftq
Fin
e)
Données : un entier décimal dec
Résultats : un entier binaire bin
Principe : itérer i de dec , bin = bin + (dec mod 2 * d, d =d*10, dec = dec div 2 jusqu'à i <> 0
Algorithme
Procédure DecBin (;var dec, bin :entier)
Var d, i : entier
Debut
Lire(dec) Bin 0 d1
tantque dec <> 0 faire
bin bin + d*(dec mod 2)
d d*10
dec dec div 2
FTq
Fin
f)
Données : une chaîne de caractère ch
Résultats : un entier indiquant le nombre de lettre
Principe : une lettre est un caractère dont le code ascii est compris entre 65 et 90 ou entre 97 et 122
Algorithme :
Fonction OCCUR (ch : chaîne ) :entier
Var L : entier
Debut
L long(ch) OCCUR 0
Pour i de 1 à L faire
Si (ascii(ch[i]) >=65 et ascii(ch[i]) <=65 ) ou (ascii(ch[i]) >=65 et ascii(ch[i]) <=65 ) alors
OCCUR OCCUR +1
Fsi
Fpour
Fin
49
Nabil AOUADI & Hamed BENNEJI
Corrigé d’examen final Janvier 2010
République Tunisienne
Ministère de l’enseignement supérieur et de la recherche scientifique
Direction Générale des Etudes Technologiques
Institut Supérieur des Etudes Technologiques du Kef
50
Nabil AOUADI & Hamed BENNEJI
Corrigé d’examen final Janvier 2010
Const n = 50
Type
Employé = enreg(
Matricule : entierr
Nom : chaîne
Sal : réel
Etat_civil : caractère
)fenreg
Tab = tableau[1..n] de employé
Var
tabemp
i, nb : entier
procédure remplir(var T : tab)
debut
pour i de 1à n faire
ecrire ("matricule de l'emploté") lire (T[i].employé)
ecrire ("nom de l'employé : ") lire(T[i].nom)
ecrire ('salaire de l'employé ") lire(T[i].sal)
ecrire ("etat civil de l'employé " ) lire(T[i].etat_civil)
fpour
fin
fonction compter(T:tab) : entier
debut
compter 0
pour i de 1 à n faire
si T[i];sal >=500 et T[i].sal <= alors
compter compter+ 1
Fsi
fpour
Debut
Remplir(tabemp)
Nb compter(tabemp)
Ecrire (nb, " employés touchent entre 500 et 700D")
fin
d) :
Analyse du problème :
Données : FP : Fichier d’employé : matricule, nom,prénom, grade, salaire
Résultats : liste des employés : entier ( salaire > 500 et < 700)
Principe : - remplir FP
- afficher liste
Solution :
Algorithme personnel
Types
Employé =enreg(
Matricule : entier
Nom : chaîne
Prénom : chaîne
Grade :caractère
Sal : réel
) fenreg
Fpers = fichier de employé
Var fp : fpers
Emp : employé
Procédure création ( var f : fpers)
Debut
Ouvrir (f , E)
Ecrire ( "matricule : ") lire ([Link])
Tantque ([Link] <> 0 afaire
Ecrire (" nom : ") lire ([Link])
51
Nabil AOUADI & Hamed BENNEJI
Corrigé d’examen final Janvier 2010
52
Nabil AOUADI & Hamed BENNEJI
Corrigé d’examen final Janvier 2010
Tri
copie
Solution :
Algorithme Notes
Var fnotes : fichier de réel
Tnotes : tableau[1..30] de réel
X, note : réel
Echange : booléen
I : entier
Debut
(* création du fichier fnotes *)
Ouvrir(fnotes, E)
Pour i de 1 à 30 faire
Ecrire'("entrer une note") lire(note)
Ecrire(fnotes, note)
Fpour
Fermer(fnotes)
(* copie le fichier fnotes dans le tableau tnotes *)
Ouvrir(fnotes, L)
Pour i de 1 à 30 faire
Lire(fnotes, note)
Tnote[i] note
Fpour
Fermer(fnotes)
(* tri du tableau tnote *)
Répéter
Echange faux
Pour i de 1 à 29 faire
si tnotes[i] > tnotes[i +1] alors
x tnotes[i]
tnotes[i} tnotes[i+1]
tnotes[i+1] x
echange vrai
fsi
Fpour
Jusqu'à echange = faux
(* copier du tableau tnotes dans le fichier fnotes *)
Ouvrir(fnotes , e)
Pour i de 1 à n faire
Ecrire(fnotees, tnote[i])
Fpour
Fermer(fnotes)
Fin
53
Nabil AOUADI & Hamed BENNEJI