Vous êtes sur la page 1sur 39

Série N° 1 : Préalables à l’Algorithmique

Question 1 :

Quelle est la différence entre donnée et information ?

Réponse :
Information : Élément de connaissance susceptible d'être représenté à l'aide de
conventions pour être conservé, traité ou communiqué.
Une donnée : est une information qui a été mise sous une forme qui peut être utilisée
par l’ordinateur.
Question 2 :

Donner les étapes de réalisation d’un programme informatique ? A quoi sert


l’algorithme ?

Réponse :
- Problème réel  Analyse (spécification)  Algorithme  Codage en un
langage de programmation (programme)
- On ne peut pas construire un bâtiment sans plan !!

Question 3 :

Quelles sont les caractéristiques d’un algorithme ?

Réponse :
Un algorithme doit être clair, fini et efficace.

Question 4 :

Quels types de problèmes peut-on résoudre à l’aide des algorithmes ?

Réponse :
Ce sont les problèmes structurés c’est à dire qui possèdent à l’avance une solution
mathématique : résolution d’une équation du second degré, facturation, Bulletin de
paie, etc.

Question 5 :

Citez un exemple où le problème à résoudre n’est pas structuré ?

Réponse :
Problème non structuré : choisir quel fournisseur doit opter pour l’acquisition du
matériel selon le service après vente.
Série N° 2 : Notion de Structure de données
Question 1 :

Quelle est la différence entre donnée et structure de données ?

Réponse :
En programmation la donnée n’est autre que le contenu d’une case de la mémoire
(contenant) qui peut modifier au cours de l’exécution du programme.
La structure de donnée c’est un ensemble organisé d'informations ayant quelque
chose en commun.
 Tous donnée doit appartenir à une structure de donnée.

Question 2 :

Citez les règles de constitution d’un identificateur ?

Réponse :
- Significatif - ne doit pas comporter de caractères spéciaux autre que le tiret de
soulignement (_) - commence obligatoirement par une lettre – unique.

Question 3 :

Quelle est la différence entre variable et valeur ?

Réponse :
Une variable est donc un espace mémoire qui va contenir des données alors que la
valeur c’est la donnée qui existe dans cet espace. À un instant donné, une variable ne peut
contenir qu’une seule valeur.
Question 4 :
Pour chacun des cas suivants, évaluer les expressions : x), y), z), t).
1. Pour (a, b, c, d) = (-1, 3, 2, 7)
2. Pour (a, b, c, d) = (1, 3, 2, 7)
Avec x) (a<b) ET (c>d)
y) NON(a<b) ET (c>d)
z) (a<b) OU (c≠ a)
t) ((a + b) < c) OU ((a + d) > c)

Réponse :
X) 1) (- 1 < 3) ET (2 > 7) = Vrai ET Faux = Faux
2) ( 1 < 3) ET (2 > 7) = Vrai ET Faux = Faux
Y) 1)Non ( -1 < 3) ET (2 > 7) = Faux ET Faux = Faux
2) Non ( 1 < 3) ET (2 > 7) = Faux ET Faux = Faux
Z) 1) ( -1 < 3) OU (2 <> -1) = Vrai ou Vrai = Vrai
2) ( 1 < 3) OU (2 <> 1) = Vrai ou Vrai = Vrai
T) 1) ((-1 + 3) < 2) OU ((-1 + 7) > 2) = Faux ou Vrai = Vrai
2) (( 1 + 3) < 2) OU (( 1 + 7) > 2) = Faux ou Vrai = Vrai
Série N° 3 : Les Actions Simples

Exercice 1
Dire si le nom de ces variables est valide ou non valide.
prod_a Valide $total Non Valide
Newbal Valide moyenne Valide
9ab6 Non Valide _c3 Non Valide
c123 Valide new bal Non Valide
sum.of Non Valide grade1 Valide
Abcd Valide 1234 Non Valide
Exercice 2
Déterminer les valeurs finales des variables A, B, C après exécution des instructions
suivantes : (les blocs d’instructions sont indépendants)
1. B  3
AB
CA
BA*3+C
 A=3; B=12; C=3
2. B  1
BB+1
BB–3
 B= -1
3. A  2
B4
C3
AA+B+C
BA-B-C
CA-B–C
AA-B–C
 A=3; B=2; C=4
Exercice 3
Soit l’algorithme suivant :
Algorithme Test
Variable nb1, nb2, nb3, Somme, Produit : Entier
Moyenne : Réel
Lettre1, Lettre2 : Caractère
Début
Lettre1  ‘a’
nb1  4
nb1  16
nb1  20
Somme  nb1 + nb2 + nb3
Produit  nb1 * nb2 * nb3
Moyenne  13.33
Lettre2  Lettre1 + 1
Fin
1. Identifier les variables et les constantes dans ce programme
2. Déterminer les valeurs finales des différentes variables
Exercice 4
Écrire un algorithme calculant l'aire d'un rectangle dont la longueur et la largeur sont
égales à 17.5 et 1.4.
Réponse :
Algorithme calcul_aire
Constante longueur=17.5
largeur = 1.4
Variable aire :Réel
Début
aire ← largeur * longueur
Ecrire (aire)
Fin
Exercice 5
Déterminer et corriger les erreurs se trouvant dans les algorithmes suivants:
Réponse :
Algorithme calcul_aire Algorithme calcul_périmètre
Variable longueur, largeur, aire :Réel Variable largeur entier
début longueur entier
largeur ← 15 perimetre réel
lire (longueur) début
aire ← largeur * longueur largeur ← 15
fin longueur ← 10
perimetre ← (largeur +
longueur) * 2
fin
Exercice 6
Écrire un algorithme qui calcule la moyenne de 32.6, 55.2, 67.9 et 48.6.
Réponse :
Déclaration de 4 constantes avec ces valeurs et d’une variable réelle moyenne pour
le calcule de la somme sur 4.
Exercice 7
Écrire un algorithme qui calcule la surface d'un cercle sachant que son rayon est 2.59.
Surface = rayon2 * 3.14.
Réponse :
Algorithme calcul_Surf
Constante rayon=2.59
Variable Surface :Réel
Début
Surface ← rayon*rayon*3.14
Ecrire(Surface)
Fin
Exercice 8
Écrire un algorithme qui calcule le volume d'un cylindre sachant que son rayon est
5.2 et sa profondeur est de 2.8. Volume = rayon2 * 3.14 * profondeur.
Réponse :
Voir exercice 7 avec l’ajout d’une constant profondeur et volume au lieu de
surface.
Exercice 9
Écrire un algorithme qui calcule l'intérêt fixe d'un prêt dont la valeur est égale à 7000
DT et le taux est de 12.5%. Intérêt = prêt * taux.
Réponse :
Algorithme calcul_interet
Constante pret=7000
taux = 12.5
Variable interet :Réel
Début
interet ← (pret * taux)/100
Ecrire (interet)
Fin
Exercice 10
Écrire un algorithme pour lire le cours du dollar et le montant en dinar et afficher le
montant convertit en dollar. Mdinar * cours = Mdollar
Réponse :
Algorithme Montant_dollar
Variable Mont_din , Mont_dol, cours :Réel
Début
Ecrire(« donner le montant en dinar : »)
Lire (Mont_din)
Ecrire(« donner le cours : »)
Lire (cours)
Mont_dol = Mont_din*cours
Ecrire (Mont_dol)
Fin
Exercice 11
Écrire un algorithme qui affiche le quotient et le reste de la division entière de deux
nombres entiers entrés au clavier.
Réponse :
Algorithme conv_sec
Variable nbr1, nbr2, reste, quotient : Entier
Début
Ecrire (‘donner deux nombres entière :’)
Lire (nbr1,nbr2)
quotient ← nbr1 Div nbr2
reste ← nbr1 Mod nbr2
Ecrire(‘le quotient de la division de ‘,nbr1,’avec’,nbr2, ‘ =’, quotien,’et reste
=’, reste)
Fin
Exercice 12
Ecrire un algorithme qui lit un nombre (supposé positif) de secondes et le convertit
en heures, minutes et secondes.

Support d’exercices page (5/39)


Réponse :
Algorithme conv_sec
Variable heur, minut, second, temp, nbr : Entier
Début
Ecrire (‘donner le nombre de secondes :’)
Lire (nbr)
heur ← nbr Div 3600
temp ← nbr Mod 3600
minut ← temp Div 60
second←minut Mod 3600
Ecrire(nbr = heur’ :’minut ‘:’ second)
Fin
Exercice 13
Écrire un algorithme qui calcule la somme de trois nombres entrés au clavier
• En utilisant 5 variables
• En utilisant 2 variables
Réponse :
Algorithme somme
Variable nbr, somme : Entier
Début
Somme  0
Ecrire (‘donner le nombre 1 :’)
Lire (nbr)
Somme  somme + nbr
Ecrire (‘donner le nombre 2 :’)
Lire (nbr)
Somme  somme + nbr
Ecrire (‘donner le nombre 3 :’)
Lire (nbr)
Somme  somme + nbr
Ecrire (somme)
Fin
Exercice 14:
Ecrire un algorithme pour calculer le montant qu’un individu devra débourser pour
faire un voyage dans une automobile louée. L’algorithme tient compte du
kilométrage parcouru et la durée du voyage qui sont soumises par le requérant.
Les différentes sources de dépenses sont :
 Coût de la location est de 45 D par jour.
 L’automobile louée fait 160 kilomètres pour 10 litres d’essence
 1 litre d’essence coûte 0.680 D.
 0.050 D est exigé pour chaque kilomètre.
Réponse :
Algorithme Voy_Automobile
Constante
Loc_Jour = 45
Litre_Essence = 0.680
Cout_Kilometre = 0.050

Support d’exercices page (6/39)


Variable
Nbre_Jour : Entier
Nbre_Kilometre, Cout_Loact, Cout_Essence, Mnt_Voyage : Réel
Début
Ecrire (“ Introduire le nombre de jours : “)
Lire (Nbre_Jour)
Ecrire (“ Introduire le nombre de kilomètres : “)
Lire (Nbre_Kilometre)
Cout_locat  Nbre_Jour * Loc_Jour
Cout_Essence  (Nbre_Kilometre / 160) * Litre_Essence * 10
Mnt_Voyage  Cout_locat + Cout_Essence +
(Nbre_Kilometre * Cout_Kilometre)
Ecrire (“ Le prix du voyage : “, Mnt_Voyage)
Fin

Support d’exercices page (7/39)


Série N° 4 : Les Structures Alternatives
Exercice 1
Écrire un algorithme qui lit un entier et vérifie si cet entier est divisible par 3.
Réponse :
Algorithme div_3
Variable nbr : Entier
Début
Ecrire (‘donner un entier :’)
Lire (nbr)
Si (nbr Mod 3 = 0) Alors
Ecrire(nbr ,’est divisible par 3’)
Sinon
Ecrire(nbr ,’n’est pas divisible par 3’)
FinSi
Fin
Exercice 2
Algorithme abc
début
a,b,c, temp entier
écrire ("a=") lire (a)
écrire ("b=") lire (b)
écrire ("c=") lire (c)
si b > a alors
temp ← a
a←b I
b ← temp
fin si
si c > a alors
temp ← a
a←c II
c ← temp
fin si
si c > b alors
temp ← b
b←c III
c ← temp
fin si
écrire (a,b,c)
fin
1. Compléter ce tableau en précisant la valeur contenue dans chaque variable
après l'exécution des instructions I, II et III

a b c
1 5 10
I 5 1 10
II 10 1 5

Support d’exercices page (8/39)


III 10 5 1
20 14 17
I 14 20 17
II 17 20 14
III 17 14 20
 Fait la permutation entre a et c.
Exercice 3
Soit les instructions suivantes:
si a < b alors
c ← b + 10
sinon
c ← a +25
finsi
Donnez pour chaque valeur du couple a et b la valeur contenue dans c après
l'exécution de ces instructions.
a b c
4 20 30
5 5 30
Exercice 4
Soient x et y deux variables entières. Écrire un algorithme vérifiant si x est divisible
par y; les valeurs de ces deux variables sont lues à partir du clavier.
Réponse :
Algorithme x_div_y
Variable x, y : Entier
Début
Ecrire (‘donner un entier x:’)
Lire (x)
Ecrire (‘donner un entier y:’)
Lire (y)
Si (x Mod y = 0) Alors
Ecrire(x ,’est divisible par’, y)
Sinon
Ecrire(x ,’n’est pas divisible par’,y)
FinSi
Fin
Exercice 5
Écrire un algorithme qui lit un réel et affiche sa valeur absolue.
Réponse :
Algorithme val_abs
Variable x ,abs : Réel
Début
Ecrire (‘donner un réel :’)
Lire (x)
abs  x
Si (x<0) Alors
Abs  - abs
finsi
Ecrire(la valeur absolue de x est, abs)
Fin

Support d’exercices page (9/39)


Exercice 6
Écrire un algorithme qui lit deux réels et affiche leur maximum.
Réponse :
Algorithme val_max
Variable x ,y,max : Réel
Début
Ecrire (‘donner deux réels :’)
Lire (x,y)
max  x
Si (x<y) Alors
max  y
Finsi
Ecrire(‘la valeur maximale est’, max)
Fin
Exercice 7
Soient les instructions suivantes :
(1.1)
si a > 0 alors si b > 0 alors c  a+b
sinon c  a-b
fsi
fsi
(1.2)
si a > 0 alors si b > 0 alors c  a+b
fsi
sinon c <-- a-b
finsi
Quels sont les traitements réalisés dans (1.1) et (1.2) si a est négatif.
Réponse :
1.1 : rien
1.2 : C a-b
Exercice 8
Écrire un algorithme qui lit un entier et affiche un message pour dire s'il est positif ou
négatif ou nul.
Réponse :
Algorithme pos_neg_nul
Variable nbr : Entier
Début
Ecrire (‘donner un entier :’)
Lire (nbr)
Si (nbr<0) Alors
Ecrire(‘le nbr’,nbr,’ est negatif’)
Sinon
Si (nbr>0) alors
Ecrire(‘le nbr’,nbr,’ est positif’)
Sinon
Ecrire(‘le nbr’,nbr,’ est nul’)
Finsi
Finsi
Fin

Support d’exercices page (10/39)


Exercice 9
Écrire un algorithme qui lit les paramètres d'une équation de premier degré ax+b=0
et affiche la solution.
Réponse :
Algorithme Equ_1_deg
Variable a,b: Entier
Début
Ecrire (‘donner un entier a:’)
Lire (a)
Ecrire (‘donner un entier b:’)
Lire (b)
Si (a ≠ 0) Alors
Ecrire(‘la solution est x=’,-b/a)
Sinon
Si (b=0) alors
Ecrire(‘la solution est tout R’)
Sinon
Ecrire(‘pas de solution’)
Finsi
Finsi
Fin
Exercice 10
Écrire un algorithme permettant de lire la valeur de la température de l'eau et
d'afficher son état :
• Glace si la température est inférieure à 0, t ≤ 0
• Eau si la température est strictement supérieure à 0 et inférieure à 100, 0
< t ≤ 100
• Vapeur si la température est strictement supérieure à 100, 100 < t
Réponse :
Algorithme Etat_physique
Variable
t : Réel
Début
Ecrire (“ Introduire la température : “)
Lire (t)
Si (t<0) Alors
Ecrire (“ Solide“)
Sinon
Si (t<100) Alors
Ecrire (“ Liquide “)
Sinon
Ecrire (“ Gaz “)
FSi
FSi
Fin

Support d’exercices page (11/39)


Exercice 11
A partir de la saisie du prix unitaire du produit (PU) et de la quantité commandée
(QTCOM), afficher le montant à payer en détaillant le coût du transport et la remise
accordée.
• Le transport est gratuit si le montant total des produits TOT = PU x QTCOM
est supérieur à 1000 dinars, dans le cas contraire le transport est de 2% du
TOT.
• La remise est de 5% si le montant total après transport est compris entre 500 et
2000 dinars et de 10% au delà.
Réponse :
Algorithme Mont_payer
Variable
PU, QTCOM, TOT,TRANS, M_P,REM: Réel
Début
Ecrire (“ donner le prix unitaire : “)
Lire (PU)
Ecrire (“ donner la qualité commandée : “)
Lire (QTCOM)
TOT PU * QTCOM
Si (TOT>1000) Alors
TRANS 0.0
Sinon
TRANS 2*TOT/100
Finsi
M_P  TOT + TRANS
Si ( TOT >=500 et TOT <=2000) Alors
REM  5*M_P/100
Sinon
REM  10*M_P/100
Finsi
Ecrire (“ Le montant total = “,TOT)
Ecrire (“ Le coût de transport = “,TRANS)
Ecrire (“ La remise = “,REM)
Ecrire (“ Le montant a payer = “,TOT+TANS-REM)
Fin
Exercice 12
Le taux d'intérêt bancaire pour un montant déposé à la banque dépend du temps
pendant lequel le montant a été déposé. Voici un tableau présentant le taux selon
nombre d'années de dépôt.
Années en dépôt Taux d'intérêt
__> 5 ans 0.095
5 ≥ __>3 0.085
3 ≥__>1 0.065
1 ≥ __ 0.058
Écrire un algorithme qui lit le nombre d'années de dépôt et affiche le taux d'intérêt
correspondant.

Support d’exercices page (12/39)


Réponse :
Algorithme Taux_int
Variable
Nbr_anne: Entier
Taux : Réel
Début
Ecrire (“ donner le nombre d’années de dépot : “)
Lire (nbr_anne)
Si nbr_anne > 5 alors taux 0.095
Sinon
Si nbr_anne > 3 alors taux 0.085
Sinon
Si nbr_anne > 1 alors taux 0.065
Sinon Taux  0.058
Finsi
Finsi
Finsi
Ecrire (‘le taux d’interet pour ‘ , nbr_anne, ‘ans est’,taux)
Fin
Exercice 13
Ecrire un algorithme qui lit trois valeurs entières (A, B et C) au clavier et qui affiche
la plus grande des trois valeurs (MAX) et la plus petite d’entre elles (MIN).
Réponse :
Debut { Solution 1}
Lire (A,B,C)
MAX  A
Si (B > MAX) alors
MAX  B
Finsi
Si (C > MAX ) alors
MAX  C
Finsi
Ecrire (‘la valeur maximale est’, MAX)
Fin
Debut { Solution 2}
Lire (A,B,C)
Si ( A > B ) Alors
Si (A > C ) Alors
Max  A
Sinon Max  C
Finsi
Sinon
Si ( B > C ) Alors
Max  B
Sinon Max  C
FinSi
FinSi
Ecrire ( MAX)
Fin

Support d’exercices page (13/39)


Exercice 14
Ecrire l'algorithme qui permet de saisir les trois paramètres d'une équation du
second degré, et de discuter les solutions selon les valeurs de a, b et c, lorsqu'elles
sont nulles ou pas.
Réponse :
Algorithme Eq_sed_deg
Variable
a ,b,c, delta,x1,x2 : Réel
Début
Ecrire (“ Introduire les coefficients a,b,c : “)
Lire (a,b,c)
Si (a <> 0)
delta  b*b – (4*a*c)
Si (delta>0) Alors
x1  (-b- sqrt(delta) ) / (2*a)
x2  (-b+ sqrt(delta) ) / (2*a)
Ecrire (“ Deux solutions “, x1,x2)
Sinon
Si (d=0) Alors
x1  (-b) / (2*a)
Ecrire (“ Solution Double “, x1)
Sinon
Ecrire (“ Pas de solution “)
FinSi
Finsi
Si (b≠0) Alors (* a=0 *)
x1  -c/b
Ecrire (“ Une solution “, x1)
Sinon (*b = 0*)
Si (c≠0) Alors
Ecrire (“ Impossible “)
Sinon
Ecrire (“ l’ensemble R “)
Finsi
Finsi
Fin
Exercice 15
Écrire un algorithme qui permet de saisir un numéro de couleur de l'arc-en-ciel et
d'afficher la couleur correspondante
1- rouge
2- orangé
3- jaune
4- vert
5- bleu
6- indigo
7- violet

Support d’exercices page (14/39)


Réponse :
Algorithme Couleur
Variable code : entier
Début
Ecrire (“ Introduire le code de la couleur “)
Lire (code)
Selon (code) Faire
1 : Ecrire (″ rouge ″)
2 : Ecrire (″ jaune ″)
3 : Ecrire (″ orange ″)
4 : Ecrire (″ vert ″)
5 : Ecrire (″ bleu ″)
6 : Ecrire (″ indigo ″)
7² : Ecrire (″ violet ″)
sinon : Ecrire (″ code inconnu ″)
FinSelon
Fin
Exercice 16
Écrire un algorithme qui permet de saisir le jour, le mois et l'année d'une date ( 3
entiers ) et vérifie si elle est correcte ou non.
Réponse :
Algorithme Verif_date
Variable
JJ,MM,AA: Entier
Début
Ecrire (“ Introduire la date sous forme de trois entiers JJ/MM/AA : “)
Lire (JJ,MM ,AA)
Si (JJ> 0 et JJ<=31) et (MM>0 et MM<=12) et (AA > 0 ) Alors
Ecrire(‘La date’,JJ,’/’,MM,’/’,AA,’est correct’)
Sinon
Ecrire(‘ la date introduite est incorrecte’)
Finsi
Fin
Exercice 17
Écrire un algorithme qui permet de calculer le montant des heures supplémentaires
d'un employé, sachant que le prix unitaire d'une heure suit le barème suivant:
2. Les 39 premières heures sans supplément
3. De 40e à 44e heure majorées de 50%
4. De 45e à 49e heure majorées de 75%
5. De 50e ou plus sont majorées de 100%
Cet algorithme lira le nombre d'heures travaillées et le prix unitaire d'une heure
normale.
Réponse :
Algorithme Heurs_Suppl
Variable nbr_h : entier
Prix_u, tot, maj : réel
Début
Ecrire(‘ donner le nombre d’heures’)
Lire(nbr_h)
Ecrire(‘ donner le prix unitaire d’une heure normale’)

Support d’exercices page (15/39)


Lire(prix_u)
Si (nbr_h >0 )
Si (nbr_h <= 39) Alors
Maj  0.0
Sinon
Si (nbr_h <=44) Alors
Maj  (nbr_h – 39)*prix_u*50/100
Sinon
Si (nbr_h <=49) Alors
Maj  (nbr_h – 44)*prix_u*75/100
Sinon
Maj  (nbr_h – 49)*prix_u*100/100
FinSi
FinSi
FinSi
FinSi
Ecrire (‘le montant des heurs supplémentaire pour cet employé =’,Maj)
Fin
Exercice 18
Ce programme permet de calculer un salaire net à partir d’un salaire brut et de
quelques renseignements concernant la situation de l'utilisateur. L’utilisateur devra
saisir au clavier :
• son salaire brut [montant réel]
• sa situation :
• a-t-il des frères et/ou des sœurs (o/n)
• est-il boursier (o/n)
Aucun contrôle de validité de la saisie des entrées ne sera effectué. Le salaire net sera
affiché à l’écran [montant réel]. Celui sera déterminé comme suit :
• impôt = 0.1
• si la personne n’a ni frère ni sœur : impôt + 0.05
• si la personne est boursière : impôt - 0.05
Le salaire net est le produit du taux d’imposition (1-impôt) et du salaire brut.
Réponse :
Algorithme Cal_sal
Variable Sal_b, impot, Sal_n : Réel
Bours, frere : caractère
Début
Ecrire(‘ donner le salaire brut’)
Lire(Sal_b)
Ecrire(‘ Avez-vous des sœurs et/ou frère (o/n) ?’)
Lire (frere)
Ecrire(‘ Vous ete boursier (o/n) ?’)
Lire (bours)
Impot  0.1
Si (fere = ‘n’) alors impot  impot + 0.05 Finsi
Si (bours = ‘o’) alors impot  impot -0.05 Finsi
Sal_n  Sal_b * (1-impot)
Ecrire (‘le salaire net =’, Sal_n)
Fin

Support d’exercices page (16/39)


Série N° 5 : Les Structures Répétitives
Exercice 1
1. Quelle est la différence entre la boucle tant que et la boucle répéter jusqu’à?
2. transformer la boucle pour suivante :
Pour i de 5 à 15 faire
écrire(" le carré de ", i, " est ", i*i)
finPour
en : boucle tant que
boucle répéter jusqu’à
Réponse :
1- La boucle tant que peut ne pas être exécutée,La boucle répéter jusqu’à s’exécute
au moins une fois.
2- avec Tant Que : i5
tant que(i<=15) faire
écrire(" le carré de ", i, " est ", i*i)
i  i+1
fintantque
Avec Répéter : i5
répéter
écrire(" le carré de ", i, " est ", i*i)
I  i+1
jusqu’à(i>15)
Exercice 2
Algorithme exercice2
variable
i, k, N, P : entier
Début
lire(N)
i N
P 1
Pour i de 1 à N faire
k i
P P*k
K k-1
finPour
écrire(P)
Fin
1. Donnez la trace d’exécution de cet algorithme pour n = 4
2. Que fait cet algorithme
Réponse :
1- Pour n=4 :
N i k P
4 4 - 1
4 1 0 1
4 2 1 2
4 3 2 6
4 4 3 24
4 5 3 24
2- L’algorithme calcule n !

Support d’exercices page (17/39)


Exercice 3
Écrire un algorithme qui lit un entier et affiche les 5 entiers suivants.
Réponse :
Algorithme Cinq_val
Variable i, N : entier
Début
écrire("Donner le un entier")
lire(N)
Pour i de 1 à 5 Faire
écrire(‘la’, i, ‘eme valeur après’,N,’=’,N+i)
FinPour
Fin
Exercice 4
Ecrire l'algorithme qui permet de saisir les moyennes des N étudiants de la classe
Informatique et de calculer la moyenne générale de la classe.
Réponse :
Algorithme MOYENNE
Variable i, N : entier
S, MOY, MC : réel
Début
écrire("Donner le nombre d'étudiants")
lire(N)
Si (N > 0) alors
S←0
Pour i de 1 à N Faire
écrire("Donner la moyenne de l'étudiant n°", i)
lire(MOY)
S ← S + MOY
FinPour
MC ← S / N
écrire("La moyenne de la classe est : ", MC)
sinon
écrire("Erreur dans le nombre d'étudiants")
Finsi
Fin
Exercice 5
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table
de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le
nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70

Support d’exercices page (18/39)


Réponse :
Algorithme table_mulp
Variable N, i : Entier
Debut
Ecrire (“Entrez un nombre : ”)
Lire (N)
Ecrire (“La table de multiplication de ce nombre est : ”)
Pour i = 1 à 10 faire
Ecrire (N,“ x ”,i, “ = ”, n*i)
FinPour
Fin
Exercice 6
Écrire un algorithme permettant de répéter l'affichage de la question voulez-vous
continuez? Jusqu'à ce que la réponse soit la lettre ‘o ‘pour oui ou la lettre ‘n’ pour non.
Réponse :
Algorithme Test_continu
Variable C : caractère
Début
Répéter
Écrire(‘Voulez -vous continuez?’)
Lire(c)
Jusqu’à ((C = ’o’) Ou ( C = ‘n’))
Fin
Exercice 7
Écrire un algorithme qui lit un entier et affiche son carré et ne s'arrête que si on entre
la valeur 0.
Réponse :
Algorithme Aff_carré
Variable x : Entier
Début
Répéter
Écrire(‘Donner un entier’)
Lire(x)
Ecrire(’Le carré de ‘,x,’=’,x*x)
Jusqu’à ( x = 0)
Fin
Exercice 8
Ecrire les instructions qui permettent l'affichage de tous les nombres pairs qui
existent entre 1 et 10 de trois manières différentes.
Réponse :
Algorithme Aff_carré1 Algorithme Aff_carré2 Algorithme Aff_carré3
Variable i : Entier Variable i : Entier Variable i : Entier
Début Début Début
Pour i =1 à 10 faire i1 i1
Si (i Mod 2 = 0) Alors Repeter Tant Que( i <= 10) faire
Ecrire(i) Si (i Mod 2 = 0) Alors Si (i Mod 2 = 0) Alors
FinSi Ecrire(i) Ecrire(i)
FinPour FinSi FinSi
Fin i  i+1 i  i+1
Jusqu'à (i>=10) FinTantque
Fin Fin

Support d’exercices page (19/39)


Exercice 9
Écrire un algorithme qui lit un réel x et un entier positif n et affiche x puissance n.
Réponse :
Algorithme Puissance
Variable i, n : Entier
x ,P : Réel
Début
Ecrire (‘ Donner un réel x :’)
Lire(x)
Ecrire (‘Donner un entier positif n’)
Répéter
Lire(n)
Jusqu'à (n>0)
P  1.0
Pour i =1 à n faire
PP*x
FinPour
Ecrire(‘ X,’a la puissance’,n,’=’, P)
Fin
Exercice 10
Écrire un algorithme qui lit un entier positif et affiche son factoriel n!=n-1! * n et 0!=1
Réponse :
Algorithme Factoriel
Variables N, i, F : Entier
Debut
Ecrire (“Entrez un nombre : ”)
Lire (N)
F1
Pour i = 2 à N faire
FF*i
Finpour
Ecrire (“Le factoriel est : ”, F)
Fin
Exercice 11
Écrire un algorithme qui lit 20 valeurs réelles et qui détermine la moyenne des
valeurs strictement positifs et la moyenne des valeurs strictement négatifs.
Réponse :
Algorithme MOY_P_N Nbr_P  nbr_P +1
Variable i ,nbr_N, nbr_P: entier FinSi
V, MOY_P, MOY_N : Réel Si (v <0) Alors
Début MOY_N  MOY_N + V
MOY_P ← 0.0 ; Nbr_P  0 Nbr_N  nbr_N +1
MOY_N ← 0.0 ; Nbr  0 FinSi
Pour i de 1 à 20 Faire FinPour
écrire("Donner une valeur réelle’) Ecrire("La moyenne des nombres
lire(V) positifs = ‘, MOY_P/nbr_P)
Si (v >0) Alors Ecrire("La moyenne des nombres
MOY_P  MOY_P + V négatifs = ‘, MOY_N/nbr_N)
Fin

Support d’exercices page (20/39)


Exercice 12
Écrire un algorithme qui lit 35 notes réelles et affiche la note maximale. Il ne faut pas
utiliser la structure tableau.
Réponse :
Algorithme MAX
Variable i : entier
MAX, X : Réel
Début
Ecrire("Donner la première note)
lire(X)
MAX  X
Pour i de 2 à 35 Faire
écrire("Donner la note n°’,i)
lire(X)
Si (X > MAX) Alors
MAX  X
FinSi
FinPour
Ecrire (‘ la valeur maximale est =’,MAX)
Fin
Exercice 13
Ecrire un algorithme qui permet de saisir un nombre pair et qui détermine combien
de fois ce nombre est divisible par 2.
Exemple : 8 est divisible 3 fois par 2 (2*2*2).
Réponse :
Algorithme PAIR-NBDIV2
Variable N, N2 : entier
Début
Répéter
Ecrire("Donner un entier pair")
lire(N)
Jusqu'à (N MOD 2 = 0)
N2 ← 0
NB ← N
Répéter
NB ← NB div 2
N2 ← N2 +1
Jusqu'à (NB MOD 2 ≠ 0) (* ou bien Jusqu'à ( NB =0 ) *)
Ecrire (N, "est divisible par 2", N2,"fois")
Fin
Exercice 14
Écrire un algorithme qui permet d'afficher les n premiers entiers impairs dans l'ordre
décroissant. n (entier positif) est lu à partir du clavier.
Réponse :
Algorithme NBR_IMP
Variable N, NB : entier
Début

Support d’exercices page (21/39)


Ecrire (‘Donner un entier positif n’)
Répéter
Lire(N)
Jusqu'à (N>0)
NB ← N
Répéter
Si (NB MOD 2 ≠ 0) Alors
Ecrire (NB)
FinSi
NB  Nb-1
Jusqu'à (NB<=0)
Fin
Exercice 15
Écrire un algorithme qui permet de saisir un nombre entier n et d'afficher s'il est
premier ou non. Un nombre premier est divisible uniquement par 1 et par lui même.
Réponse :
Algorithme NBR_Premier
Variable N,i: entier
Premier : Booléen
Début
Ecrire (‘Donner un entier n’)
Lire(N)
Premier  vrai
Pour i=2 à N-1 faire
Si (N MOD i = 0) Alors
Premier  Faux
Finsi
FinPour
Si ( Premier = Vrai)
Ecrire ( N, ‘est un nombre premier’)
Sinon
Ecrire ( N, ‘n’est pas un nombre premier’)
FinSi
Fin
Exercice 16
Écrire l'algorithme qui permet de calculer le PGCD de deux nombres entiers x et y.
Réponse :
Algorithme PGCD
Variable X, Y,pgcd, i: entier
Début
Ecrire (‘Donner deux entier x et y’)
Lire(X,Y)
.
.
.
.
.
Fin

Support d’exercices page (22/39)


Exercice 17
Écrire un algorithme qui lit une valeur υ réel strictement positive et qui calcule le
plus petit entier n tel que :
1 1 1
1 + + + ... + > v
2 3 n
Réponse :
Algorithme Petit_Entier
Variable n, i: entier
V , S : Réel
Début
Ecrire (‘Donner un réel positif’)
Répéter
Lire(V)
Jusqu'à ( V>0 )
N0
S  0.0
i1
Répéter
S  S + 1/i
Si ( S > V)
Ni
FinSi
i<i+1
Jusqu'à ( N ≠ 0)
Ecrire (‘Le plus petit entier n est’, N)
Fin
Exercice 18
Écrire un algorithme qui détermine si un entier N est parfait ou non. Un entier est dit
parfait s'il est égal à la somme de ses diviseurs stricts (Exemple: 6=3+2+1).
Réponse :
Algorithme Nbr_parfait
Variable S ,N, N2, i: entier
Début
Ecrire (‘Donner un entier’)
Lire (N)
S0
i2
Répéter
Si (N MOD i = 0) Alors
S  S + N DIV i
FinSi
i  i+1
Jusqu'à (i >= N)
Si ( S= N) Alors
Ecrire(N ,’est un nombre parfait’)
Sinon
Ecrire(N ,’n’est pas un nombre parfait’)
Fin

Support d’exercices page (23/39)


Exercice 19
Écrire un algorithme qui lit une valeur réelle et un entier n supérieur à 2 et qui
calcule la valeur de l'expression suivante: 1+x+x2+…+xn
Il doit afficher en sortie « pour x=… et n=…. l'expression vaut=… »
Réponse :
Algorithme Polynome
Variable N, i ,j : entire
X, S, P : Réel
Début
Ecrire("Donner un réel")
lire(x)
Ecrire("Donner un entier supérieure a 2")
Répéter
Lire(N)
Jusqu'à ( N>=2 )
S  0.0
Pour i = 0 à N Faire
P  1.0
Pour j = 1 à i Faire
PP*X
FinPour
SS+P
FinPour
Ecrire (‘pour x=’,X,’ et n=’,N,’ l'expression vaut=’,S)
Fin
Exercice 20
Ecrire l'algorithme qui détermine le Nième terme d'une suite définie par :

S0 = 2
S1 = 3
Sn = Sn-2 + (-1)n * Sn-1

Réponse :
Algorithme SUITE
Variable N, S0, S1, Sn, i : entier
Début
Ecrire("Donner un entier ")
lire(N)
S0 ← 2
S1 ← 3
Pour i = 2 à N Faire
Sn ← S0 + (-1)^i *S1
S0 ← S1
S1 ← S2
FinPour
Ecrire ("Le Nième terme de la suite S est ", Sn)
Fin

Support d’exercices page (24/39)


Support d’exercices page (25/39)
Série N° 6 : Le Type Tableau

Exercice 1
Que produit l’algorithme suivant ?
Tableau Nb[0..5] : Entier
Variable i : Entier
Début
Pour i = 0 à 5 faire
Nb(i) ← i * i
FinPour
Pour i = 0 à 5 faire
Ecrire( Nb(i) )
FinPour
Fin
Peut-on simplifier cet algorithme avec le même résultat ?
Réponse :
Cet algorithme remplit un tableau avec six valeurs : 0, 1, 4, 9, 16, 25.
Il les écrit ensuite à l’écran.
Simplification :
Tableau Nb[0..5] : Entier
Variable i : Entier
Début
Pour i = 0 à 5 faire
Nb(i) ← i * i
Ecrire Nb(i)
FinPour
Fin

Exercice 2
Ecrivez un algorithme calculant la somme des valeurs d’un tableau (on suppose que
le tableau a été préalablement saisi).
Réponse :
Algorithme Somme
Tableau T[0..5] : Entier
Variable i, S : Entier
Debut
… tableau supposé saisie ici..
S0
Pour i = 0 à 5 faire
S  S + Nb(i)
FinPour
Ecrire (‘La somme est =’,S)
Fin

Exercice 3
Écrire un algorithme dans lequel vous déclarez une variable de type tableau d'entiers
dans laquelle vous mettez les diviseurs de 12 qui sont 12, 6, 4, 3, 2, 1.

Support d’exercices page (26/39)


Réponse :
Algorithme div_12
Tableau T[0..6] : Entier
Variable i: Entier
Debut
n1
i0
Répéter
Si ( (12 MOD n ) = 0 ) Alors
T(i)  12 DIV n
i i +1
Finsi
nn+1
Jusqu’a ( n >=12)
Fin
Exercice 4
Ecrivez un algorithme constituant un tableau, à partir de deux tableaux de même
longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des
deux tableaux de départ.
Tableau 1 :
4 8 7 9 1 5 4 6
Tableau 2 :
7 6 5 2 1 3 7 4
Tableau à constituer :
11 14 12 11 2 8 11 10
Réponse :
Algorithme Somme_2_Tab
Constante N = Val
Tableau T[0..N], T1[0..N] , T2[0..N] : Entier
Variable i: Entier
Debut
… (On suppose que T1 et T2 comptent N éléments, et qu’ils sont déjà saisis)
Pour I = 1 à N faire
T (I)  T1(I) + T2(I)
FinPour
Fin

Exercice 5
Ecrivez un algorithme permettant, à l’utilisateur de saisir les notes d'une classe (max
20 étudiants) et renvoie le nombre de ces notes supérieures à la moyenne de la classe.

Réponse :
Algorithme Nbr_Note
Constante N = 20
Tableau T[0..N] : Entier
Variable Nb, i, Som, Moy, Nbsup: Entier

Support d’exercices page (27/39)


Début
Ecrire ("Entrez le nombre de notes à saisir : ")
Répéter
Lire (Nb)
Jusqu'à (Nb<=20)
Pour i = 0 à Nb - 1
Ecrire ("Entrez le nombre n° ", i + 1)
Lire (T(i))
FinPour
Som ← 0
Pour i = 0 à Nb - 1
Som ← Som + T(i)
FinPour
Moy ← Som / Nb
NbSup ← 0
Pour i = 0 à Nb - 1
Si T(i) > Moy Alors
NbSup ← NbSup + 1
FinSi
FinPour
Ecrire (NbSup, " élèves dépassent la moyenne de la classe")
Fin
Exercice 6
Écrire un algorithme qui met dans une matrice la table d'addition de 1 à 9.
Réponse :
Algorithme Tab_Add
Tableau M[1..10, 1..10] : Entier
Variable i,j : Entier
Début
Pour I = 1 à 9 Faire
Pour J = 1 à 9 Faire
M(i,j)  i + j
FinPour
FinPour
Fin
Exercice 7
Écrire un algorithme qui lit une matrice de réels et calcule la somme des éléments de
cette matrice de dimension 7 et 12.
Réponse :
Algorithme Somme_Mat
Tableau M[1..10, 1..10] : Entier
Variable i,j : Entier
S : Réel
Début
S  0.0
Pour I = 1 à 7 Faire

Support d’exercices page (28/39)


Pour J = 1 à 12 Faire
Lire ( M(i,j) )
S  S + M(i,j)
FinPour
FinPour
Ecrire (‘la somme des éléments de la matrice =’, S)
Fin
Exercice 8
Écrire un algorithme qui lit une matrice de dimension 50 et 20 et affiche le nombre de
réels strictement positifs.
Réponse :
Algorithme Nbr_Pos
Tableau M[1..50, 1..20] : Réel
Variable i,j, N : Entier
Début
N0
Pour I = 1 à 50 Faire
Pour J = 1 à 20 Faire
Lire ( M(i,j) )
Si ( M(i,j) > 0) Alors
N  N +1
FinSi
FinPour
FinPour
Ecrire (‘le nombre des éléments positifs =’, N)
Fin
Exercice 9
Écrire un algorithme qui lit une matrice de réels positifs de dimension 50 et 20 et
affiche le plus grand élément.
Réponse :
Algorithme Nbr_Pos
Tableau M[1..50, 1..20] : Réel
Variable i,j, Max : Entier
Début
…. Lecture de la matrice M…
Max  M(1,1)
Pour I = 1 à 50 Faire
Pour J = 1 à 20 Faire
Si ( M(i,j) >= Max) Alors
Max  M(i,j)
FinSi
FinPour
FinPour
Ecrire (‘le plus grand element de M =’, Max)
Fin
Exercice 10
Écrire un algorithme qui lit une matrice de dimension 12 et 10 et affiche la position
du plus petit élément.

Support d’exercices page (29/39)


Réponse :
Algorithme Pos_min
Tableau M[1..12, 1..10] : Réel
Variable i,j, Min, c,l : Entier
Début
…. Lecture de la matrice M…
Min  M(1,1)
Pour I = 1 à 12 Faire
Pour J = 1 à 10 Faire
Si ( M(i,j) <= Min) Alors
Min M(i,j)
Ci
Lj
FinSi
FinPour
FinPour
Ecrire (‘le plus petit élément = ‘,min,’ ce trouve a la colonne’,c,’et ligne ‘,l)
Fin
Exercice 11
Écrire un algorithme qui lit une matrice de dimensions 10 et 8 et qui génère une
matrice transposée.
Réponse :
Algorithme transposée
Tableau M[1..10, 1..8] : Entierl
Variable i,j, Min, c,l : Entier

Début
…. Lecture de la matrice M…
Min  M(1,1)
Pour I = 1 à 10 Faire
Pour J = 1 à 8 Faire
T(j,i) M(i,j)
FinPour
FinPour
(* Affichage de la matrice transposée *)
Pour I = 1 à 10 Faire
Pour J = 1 à 8 Faire
Ecrire(T(i,j))
FinPour
FinPour
Fin
Exercice 12
Écrire un algorithme qui lit un réel et une matrice de dimension 3 et 4 et multiplie
cette dernière par ce réel.
Réponse :
…. Lecture et déclaration de la matrice M…
Lire(X)
Pour I = 1 à 3 Faire

Support d’exercices page (30/39)


Pour J = 1 à 4 Faire
M( i, j) X * M(i,j)
FinPour
FinPour
Exercice 13
Écrire un algorithme qui lit une matrice M de dimension 10 et 10 et un réel x et affiche le
nombre d'occurrences de x dans M.
Réponse :
Début
…. Lecture et déclaration de la matrice M…
Lire(X)
Pour I = 1 à 10 Faire
Pour J = 1 à 10 Faire
Si (X = M(i,j) ) Alors
N  N+1
FinSi
FinPour
FinPour
Ecrire (‘le nombre de ‘,X,’ dans M =’, N)
Fin
Exercice 14
Écrire un algorithme qui permet de lire pour 35 étudiants leur notes en
programmation, électronique et anglais et d'afficher pour chaque étudiant sa
moyenne et la moyenne de la classe pour chaque matière.
Réponse :
Algorithme Moy_etud_class
Constante N = 35
Tableau M[1..N, 1..5] : Réel
Variable i: Entier
M_A,M_P,M_E : Réel
Début
Pour i = 1 à N Faire
Ecrire (‘Donner la moyenne en programmation de l’étudiant n°’,i)
Lire (M(i,1))
Ecrire (‘Donner la moyenne en électronique de l’étudiant n°:’,i)
Lire (M(i,2))
Ecrire (‘Donner la moyenne en anglais de l’étudiant n°:’,i)
Lire (M(i,3))
M(i,4)  ( M(i,1) + M(i,2) + M(i,3) )/3
FinPour
M_P  0.0
M_E  0.0
M_A  0.0
Pour i = 1 à N Faire
Ecrire (‘La moyenne de l’étudiant n°’,i,’=’,M(i,4) )
M_A  M_A + M (i, 3)
M_E  M_E + M ( i, 2)
M_P  M_P + M ( i, 1)

Support d’exercices page (31/39)


FinPour
Ecrire (‘La moyenne de la classe en programmation =’, M_P/N)
Ecrire (‘La moyenne de la classe en anglais =’, M_A/N)
Ecrire (‘La moyenne de la classe en électronique =’, M_E/N)
Fin
Exercice 15
Soit M une matrice carrée de dimension NxN. Ecrire un algorithme permettant de
calculer la somme du triangle supérieur droit de la matrice.
Réponse :
Algorithme Som_Trg_sup
Constante N = Val
Tableau M[1..N, 1..N] : Réel
Variable i,j, S : Entier
M : Matrice
Début
S 0
Pour i = 1 à N Faire
Pour J = i à N Faire
S  S +M(i,j)
FinPour
FinPour
Ecrire (‘La somme du triangle supérieur de M =’, S)
Fin
Exercice 16
En multipliant une matrice A de dimensions N et M avec une matrice B de
dimensions M et P on obtient une matrice C de dimensions N et P:
A(N,M) * B(M,P) = C(N,P)
La multiplication de deux matrices se fait en multipliant les composantes des deux
matrices lignes par colonnes:
Ecrire un algorithme qui effectue la multiplication de deux matrices A et B. Le
résultat de la multiplication sera mémorisé dans une troisième matrice C
Réponse :
Algorithme Som_Trg_sup
Constante N = Val1,P = Val2, M = Val3
Tableau A[1..N, 1..M] , B[1..M, 1..P], C[1..N, 1..P] : Réel
Variable i,j,k : Entier
X : Réel
Début
S 0
Pour i = 1 à N Faire
Pour J = 1 à P Faire
X  0.0
Pour k = 1 à M Faire
X  X + A(i, k) * B(k, j)
FinPour
C(i, j)  X
FinPour
FinPour

Support d’exercices page (32/39)


Fin
Exercice 17
Soit une matrice A à deux dimensions NxM. Un « point col » est un élément de la
matrice qui est minimum de sa ligne et maximum de sa colonne ou inversement.
Exemple :
|18340| |4589| |35677| |123|
| | |3893| |42289| |456|
|67270| |3493| |63297| |789|
Indication: Etablir deux matrices d’aide MAX et MIN de mêmes dimensions que A.
Ecrire un algorithme qui affiche les coordonnées de tous les points cols d’une
matrice A.
Réponse :
Solution 1 :
Algorithme Point_col
Constante N = Val1, M = Val3
Tableau A[1..N, 1..M] : Réel
Variable i,j,k : Entier
X : Réel

Début
…. Lecture et déclaration de la matrice M…
Pour i = 1 à N Faire
K 0
Pour J = 1 à M Faire
Si A (i, j) < A (i, k)
kj
FinSi
FinPour
(* un minimum se trouve sur la ligne i et sur la colonne k*)
(*est-ce qu’il est un maximum sur sa colonne ? *)
j0
TantQue (j<n et A(j, k) < A(I ,k) )
J j+1
FinTantQue
Si ( j = N ) Alors
Ecrire ( ‘ un point col’,i,k)
FinSi
FinPour
Fin

Support d’exercices page (33/39)


Série N° 7 : Le Type Chaîne de Caractères
Exercice 1
Écrire un algorithme dans lequel vous déclarer une variable voyelle de type tableau
de caractère dans laquelle vous allez placer toutes les voyelles de l'alphabet: a, e, i, o,
u, y.
Réponse :
Algorithme Voyelle
Type mot = Tableau[1..6] en caractère
Variable CH1: mot
Début
(* lecture du mot en un seul coup *)

Pour I allant de 1 à LONG(CH1) Faire


CH2(I)CH1(LONG(CH)-I+1)
FinPour
(* exploitation du mot caractère par caractère *)
Si (CH1=CH2) Alors Ecrire (CH1, ‘est un Palindrome’)
Sinon Ecrire(CH1, ‘n’’est pas un palindrome’)
FinSi
Fin

Exercice 2
Soit une chaîne de caractères s. Ecrire un algorithme « longueur » permettant de
déterminer et d’afficher la longueur de la chaîne.
Réponse :
Algorithme Longueur
Variable S : Chaine[20]
Début
Lire(S) (* lecture du mot en un seul coup *)
Pour I = 1 à LONG(CH1) Faire
CH2(I)CH1(LONG(CH)-I+1)
FinPour
(* exploitation du mot caractère par caractère *)
Si (CH1=CH2) Alors Ecrire (CH1, ‘est un Palindrome’)
Sinon Ecrire(CH1, ‘n’’est pas un palindrome’)
FinSi
Fin

Exercice 3
Écrire un algorithme qui lit un nom et affiche la 1er lettre seulement en majuscule et le
reste en minuscule.
Réponse :

Exercice 4
Écrire un algorithme qui lit le nom et le prénom en même temps à partir du clavier et met le
nom dans une variable et le prénom dans une autre.
Réponse :

Exercice 5

Support d’exercices page (34/39)


Ecrire un algorithme « concatener » permettant de concaténer deux chaînes S1 et S2
et de mettre la chaîne obtenue dans T.
Réponse :

Exercice 6
Écrire un algorithme qui lit une chaîne de caractères et affiche le pourcentage des
lettres voyelles.
Réponse :

Exercice 7
Écrire un algorithme qui permet de saisir des chaînes de caractères et de les afficher
et ne s'arrête que si on saisit la chaîne "fin".
Réponse :

Exercice 8
Écrire un algorithme qui permet de lire une chaîne de caractères et d'afficher si elle
est palindrome ou non. Une chaîne est dite palindrome, si elle se lit de gauche à
droite de la même façon qu’elle se lise de droite à gauche. exemple :AZIZA, LAVAL..
Réponse :

Exercice 9
Écrire un algorithme qui lit une chaîne de caractères et affiche le nombre de voyelles
dans cette chaîne. A, e, i, o, u, y.
Réponse :

Exercice 10
Écrire un algorithme qui lit 10 chaînes de caractères et n'affiche que celle se terminant
par « tion »
Réponse :

Exercice 11
Écrire un algorithme qui lit une chaîne de caractères et qui affiche son inverse, en
utilisant une seule chaîne de caractères. Par exemple : STOP devient POTS
Réponse :

Exercice 12
Écrire un algorithme qui lit deux chaînes de caractères et qui affiche les caractères en
commun.
Réponse :

Exercice 13
Soit une chaîne de caractères S contenant un texte supposé être une suite de mots
délimités par des espaces blancs. Et soit une chaîne M contenant un mot. Ecrire un
algorithme permettant de rechercher le mot M dans la chaîne S. Le mot trouvé doit
être délimité par deux espaces blancs ou bien un seul blanc s’il est le dernier ou le
premier de la chaîne S.
Réponse :

Support d’exercices page (35/39)


Série N° 8.1 : Les Fonctions
Exercice 1
Créer une fonction qui calcule le carré d'un nombre réel.
Exercice 2
Créer une fonction min2 qui donne le minimum de deux réels en utilisant la formule
suivante: Min(x,y)=(x+y-|x-y|)/2. Utiliser la fonction valeur_absolue déjà définie.
Exercice 3
Écrire une fonction min3 qui retourne le minimum de 3 réels en utilisant la formule
suivante:
Min(x,y,z)=Min(Min(x,y),z) Utiliser la fonction min2.
Exercice 4
Écrire un algorithme qui lit 3 réels au clavier et qui affiche le minimum, utiliser la
fonction min3.
Exercice 5
Créer une fonction qui retourne le cube d'un réel. Utiliser la fonction carrée sachant
que x3 = x2 * x
Exercice 6
Écrire un algorithme qui lit une valeur réelle au clavier et affiche x2, x3, x5 et x6 .
Utiliser les fonctions carrée et cube sachant que:
x5 = x2 x3 , x6= x3 x3 = (x2 ) 3= (x3 )2
Exercice 7
Créer une fonction moyenne3 qui calcule la moyenne de 3 réels.
Exercice 8
Créer une fonction factorielle : 0!=1 , n!=nx(n-1)x….x1
Exercice 9 n!
Créer une fonction qui calcule le cardinal (n, C n = p!(n − p )! p)
p

Exercice 10
Écrire une fonction qui permet de retourner f(x)=4x3+2x+9, x étant un réel.
Exercice 11
Écrire une fonction qui permet de retourner f(x,y)= xy+5x2-2y avec x et y deux réels.
Exercice 12
Écrire une fonction qui calcule le PGCD de 2 entiers strictement positifs.
Exercice 13
Écrire un algorithme qui affiche les entiers parfaits se trouvant entre 2 valeurs m et n
entiers lus au clavier telle que 2 < m < n.
Exercice 14 n 1
Écrire une fonction qui calcule ex pour x un entier strictement e = ∑k = 0 k!
positif.
Exercice 15
Écrire une fonction qui retourne la position du minimum dans un tableau de réels de
borne inf et de borne sup.
Exercice 16
Écrire une fonction qui vérifie si un tableau de réels de borne inf et sup est trié.

Support d’exercices page (36/39)


Exercice 17
Écrire une fonction qui vérifie si une valeur réelle se trouve dans un tableau de réels
de borne inf et sup.
Exercice 18
Écrire une fonction qui retourne si une chaîne de caractères est composée de
caractères autres que les lettres.
Exercice 19
Écrire une fonction qui retourne la dernière position d'un caractère dans une chaîne,
il retourne 0 si ce caractère n'existe pas dans la chaîne.
Exercice 20
Écrire un algorithme qui lit une chaîne de caractères et affiche le nombre
d'occurrences de chaque caractère dans cette chaîne.
Exercice 21
Dans une entreprise, le calcul des jours de congés payés s’effectue de la manière
suivante :
– si une personne est entrée dans l’entreprise depuis moins d’un an, elle a droit à
deux jours de congés par mois de présence, sinon à 28 jours au moins.
– si une personne est un cadre et s’il est âgé d’au moins 35 ans et si son ancienneté est
supérieure à 3 ans, il lui est accordé 2 jours supplémentaires. Si elle est âgée d’au
moins 45 ans et si son ancienneté est supérieure à 5 ans, il lui est accordé 4 jours
supplémentaires, en plus des 2 accordés pour plus de 35 ans.
Écrire une fonction, joursDeCongés, qui calcule le nombre de jours de congés à partir
de l’âge, l’ancienneté et l’appartenance au collège cadre d’un employé.
Exercice 22
Écrire une fonction, racineEntière, qui retourne la partie entière inférieure de la
racine carrée d’un entier donné n.
Exercice 23
Écrire une fonction, multiplication, qui effectue la multiplication de deux entiers
positifs (notés x et y) donnés en utilisant uniquement l’addition entière.
Exercice 24
Écrire une fonction, xPuissanceN, qui à partir d’un réel, appelé x et d’une valeur
entière positive appelée n, retourne x à la puissance n (x n).

Support d’exercices page (37/39)


Série N° 8.2. : Les Procédures

Exercice 1
Écrire une procédure qui calcul la somme et le produit de deux réels.
Exercice 2
Exécuter cet algorithme:
Algorithme p_essai
Début
z réel
n réel
x réel
p réel
z ← 0.
n ← 5.2
x ← -3.
som_prod(n,x,z,p)
écrire (n,x,z,p)
som_prod(p,z,n,x)
écrire (n,x,z,p)
Fin
Avec som_prod la procédure de l'exercice précédent
Exercice 3
Écrire une procédure qui permute le contenu de deux variables réelles.
Exercice 4
Écrire un algorithme qui lit deux valeurs réelles au clavier et les affiche puis permute
ces deux réels et réaffiche les deux valeurs.
Exercice 5
Soit une procédure Son qui génère un son de fréquence f:
Procédure son (DON f: entier)
Écrire un algorithme qui permet de simuler le fonctionnement d'un instrument de
musique : l'appui sur les touches A, Z, E, R, T, Y, U, I devant produire un son
correspondant à l'une des notes musicales Do, Ré, Mi, Fa, Sol, La, Si, Do les
fréquences correspondants aux notes sont: 500, 561, 630, 667, 749, 841, 944 et 1000.
L'algorithme s'arrête si l'utilisateur appui sur une autre touche.
Exercice 6
Écrire une procédure qui permet d'afficher les éléments d'un tableau de réels de
borne inf et sup.
Exercice 7
Écrire une fonction fréquence qui détermine le nombre d'apparitions d'une valeur
dans un tableau de réels de borne inf et sup.
Exercice 8
Écrire une fonction qui renvoie la somme des éléments d'un tableau de réels de borne
inf et sup.
Exercice 9
Écrire une procédure qui copie les valeurs d'un tableau d'entiers de taille n dans un
autre tableau.

Support d’exercices page (38/39)


Exercice 10
Écrire une procédure qui éclate un tableau de n réels en deux tableaux de réels
positifs et négatifs.
Exercice 11
Écrire un algorithme qui lit un tableau de 10 réels et l’ éclate en deux T_positifs et
T_négatifs, ensuite il affiche les 3 tableaux, en utilisant les sous programmes
précédents.
Exercice 12
Écrire une procédure, décomposerSomme, qui à partir d’une somme d’argent
donnée, donne le nombre minimal de pièces de 20 DT, 10 DT, 5 DT, 1 DT et 0.5 DT
qui la compose.
Exercice 13
Écrire une procédure, trierTroisEntiers, qui prend en entrée trois entiers et qui les
retourne triés par ordre croissant.
Exercice 14
Écrire une procédure, ajouterUneSeconde, qui pour un temps donné (représenté sous
la forme heure, minute, seconde) retourne le temps (sous la même représentation)
après avoir ajouté une seconde.
Exercice 15
Dans un magasin, à chaque produit est associé une référence et un prix. Tous les
produits sont mémorisés dans un tableau, produits, donné.
Écrire une procédure, rechercherProduit, qui pour une référence d’un produit,
référence, en entrée, retourne le prix du produit ainsi que sa position dans le tableau,
si le produit est effectivement dans le tableau sinon retourne une information
booléenne indiquant l’absence du produit. Bien entendu, on arrête la recherche dès
que le produit est rencontré.

Support d’exercices page (39/39)