Vous êtes sur la page 1sur 6

Chapitre I

Exercice 7
Expliquer pourquoi le code ASCII correspondant au chiffre 0 est différent de 0000 0000
Solution
Le code ASCII d’un nombre est différent de son code binaire parce qu’il est considéré
comme un caractère alphanumérique non pas comme une valeur numérique.
Chapitre II
Exercice 1
Soit l’algorithme suivant :
Variables
p, q : Réel;
Début
q = 1;
Ecrire(‘Saisir le valeur de p ’) ;
Lire(p) ;
TantQue (p + q <> p)
q = q/2;
FinTantQue
Ecrire(‘La valeur de q est ’, q);
Fin
Sachant que la boucle TantQue est finie (Ce n’est pas une boucle infinie). Et que la dernière
valeur lue de q est différente de 0. Commenter cet algorithme en décrivant brièvement ce qu’il
permet de faire.
Solution
L’algorithme demande à l’utilisateur de saisir un nombre à virgule flottante « p », puis
affiche une valeur non nulle q telle que p + q = p

Exercice 2
Soit l’algorithme suivant :
1 Variables
2 n,m : Réel ;
3 Début
4 Ecrire(‘Donner la valeur de n’) ; Lire(n) ;
5 Ecrire(‘Donner la valeur de m’) ; Lire(m) ;
6 n = n+m;
7 m = n-m;
8 n = n-m;
9 Ecrire(‘La valeur de n est ’, n ) ;
10 Fin
Si on exécute cet algorithme avec n= 4 et m = 3, quel serait le résultat affiché ? Et dans le cas
général qu’affiche cet algorithme ? Justifier votre réponse.
Solution

 Pour n= 4 et m= 3 on affiche le résultat 3


 En général l’algorithme affiche pour deux valeurs saisis de n et m le résultat suivant :
(n+m) – (n+m-m) = m

Exercice 3
Ecrire un algorithme qui permet de calculer le taux de croissance du produit intérieur brut
(PIB). Le programme demande à son utilisateur de saisir deux valeurs, à savoir le PIB de
l’année en cours, et le PIB de l’année passée. Finalement il affiche le taux de croissance du
PIB correspondant. La formule à utiliser est la suivante :
Le taux de croissance PIB = ((PIB année en cours - PIB année passée) / PIB année passée) x 100.

Solution
Variables
PIBpas, PIBact : Réel ;
Début
Ecrire(‘Saisir le PIB en cours ’) ;
Lire(PIBact) ;
Ecrire(‘Saisir le PIB passé ’) ;
Lire(PIBpas) ;
Ecrire(‘Le taux de croissance du PIB est : ’ , 100 * (PIBact – PIBpas) / PIBpas) ;
Fin

Exercice 4 « La boucle Répeter »


En utilisant la boucle Répéter, écrire un algorithme qui affiche la 1ière puissance de 2
supérieure ou égale à 1000.

Solution
Variables
P : Entier;
Début
P = 1;
Repeter
P=2*P;
Jusqu'a (P >= 1000)
Ecrire (‘La première puissance de 2 supérieure ou égale à 1000 est ’, P) ;
Fin

Exercice 5
Soit la fonction suivante qui permet de programmer l’algorithme de Babylone.
Fonction babylone(p : Réel ) : Réel
Variables
M : Réel ;
i : Entier ;
Début
M = p / 40 ;
Ecrire (‘Saisir un réel inférieur à ’, p) ;
Lire(M) ;
Pour i =1 à 100
M = (p/ M + M)/2 ;
FinPour
Retourne(M) ;
Fin
Trouver s’il y a des erreurs dans la fonction babylone ?

Solution

La fonction babylone affecte à la variable locale M une valeur à partir de


l’instruction Lire. Ceci est erreur de programmation car une fonction ne
doit pas contenir des instructions de lecture.

Exercice 6
Soit l’algorithme suivant :
1 Variables
2 casARisque : Booléen ;
3 typePatient, nPhone : Chaine ;
4 Début
5 casARisque = Faux ;
6 Ecrire(‘Préciser si le patient est symptomatique (S), un cas contact (C) ou autre (A) ’) ;
7 Lire(typePatient) ;
8 Si (typePatient = ‘S’) OU (typePatient = ‘C’) alors
9 casARisque = Vrai ;
10 Ecrire(‘Le patient doit effectuer un test PCR’) ;
11 Sinon
12 Ecrire(‘Le patient peut effectuer un test antigénique ou un test sérologique’) ;
13 FinSi

19 Fin

Ajouter à l’algorithme un contrôle de saisi pour éviter les éventuelles erreurs d’inattention lors
de la saisie. Ecrire juste les instructions correspondantes (pas tout l’algorithme !).

Solution
6 Répéter
7 Ecrire(‘Préciser si le patient est symptomatique (S), un cas contact (C) ou autre (A) ’) ;
8 Lire(typePatient) ;
9 Jusqu’à ((typePatient = ‘S’) OU (typePatient = ‘C’) OU (typePatient = ‘A’))

Exercice 7
Une agence d’assurance souhaite avoir un programme pour distinguer les clients susceptibles
d’être en retraite. Chaque client est identifié par un code alphanumérique.
Ecrire un algorithme qui demande à son utilisateur de l’informer sur la date d’aujourd’hui, et
de l’effectif total des clients concernés, puis lui demande de saisir le code et la date de
naissance de chaque client. Le programme enfin affiche la liste des codes de tous les clients
dont l’âge est supérieur ou égal à 60 ans.

Solution
Variables
i, j, eff : Entier ;
code, Tableau codeCLTRetraite[] : Chaine;
dateAuj, dateNaiss : Date;
age : Reel ;
Début
i=0;j=0;
Ecrire (‘Saisir l’effectif total des employés’) ;
Lire (eff) ;
Ecrire (‘Saisir la date d’aujourd’hui’) ;
Lire (dateAuj) ;
Redim codeCLTRetraite[eff] ;
Pour i=0 à eff+1
Ecrire (‘Saisir le code du client ’) ;
Lire (code) ;
Ecrire (‘Saisir la date de naissance du client ’) ;
Lire (dateNaiss) ;
age = dateAuj – dateNaiss ;
Si (age >= 60 ) alors
codeCLTRetraite[j] = code ;
j = j+1 ;
FinSi
FinPour
i=0;
Ecrire (‘Liste des codes de tous les clients dont l’âge est supérieur ou égal à 60 ans : ’);
Pour i = 0 à longueur(codeCLTRetraite)-1
Ecrire (codeCLTRetraite[i]);
FinPour
Fin

Vous aimerez peut-être aussi