Exercice 1 : Questions de cours (6 points)
L'objectif est de déterminer si les affirmations sont vraies ou fausses.
1. "Un algorithme est dépendant du langage de programmation utilisé."
Réponse : Faux. Un algorithme est une suite logique d'instructions pour
résoudre un problème, indépendamment de tout langage de
programmation. C'est le concept, tandis que le programme en est
l'implémentation dans un langage spécifique (comme Python, Java, etc.).
2. "Un programme est une traduction d'un algorithme dans un langage de
programmation."
Réponse : Vrai. C'est la définition même d'un programme.
3. "Les opérations à effectuer, un algorithme, un programme ?"
Réponse : Vrai/Faux (ambigu). La question est mal formulée. Un
algorithme et un programme spécifient tous deux des opérations à
effectuer. Si la question attend une seule réponse, elle est mal posée.
Cependant, dans le contexte, on peut supposer que l'on fait référence à la
nature conceptuelle de l'algorithme et à l'exécution concrète du
programme.
4. "La façon de penser la réalisation de ce traitement est : l'algorithme."
Réponse : Vrai. L'algorithme représente la logique, la "façon de penser" la
résolution du problème.
5. "L'ensemble des étapes ordonnées à effectuer afin de réaliser ce traitement."
Réponse : Vrai. C'est une excellente définition d'un algorithme.
6. "Une combinaison d'opérations élémentaires écrites dans un langage de
programmation et qui ne permettront de réaliser ce traitement."
Réponse : Faux. Le mot clé ici est "permettront". Un programme bien écrit
permet de réaliser le traitement. La phrase semble mal formulée, mais si
elle implique que la combinaison ne fonctionnera pas, elle est fausse. Si elle
est une définition du programme, le mot "permettront" est étrange. En
supposant que c'est une définition, un programme est bien une
combinaison d'opérations.
7. "Quelle est la valeur de Y après exécution des instructions suivantes : Y <- 17
/ 5 + 17 DIV 5 + 17 MOD 5"
Calcul :
17 / 5 = 3.4 (division réelle)
17 DIV 5 = 3 (division entière, combien de fois 5 va dans 17)
17 MOD 5 = 2 (reste de la division entière de 17 par 5)
Y = 3.4 + 3 + 2 = 8.4
Réponse : a) Y = 8.4
Exercice 2 : Facture d'eau (4 points)
Il s'agit d'écrire un algorithme qui calcule le montant net à payer (NETTC) d'une
facture d'eau en fonction de la consommation en m³.
Entrée : Consommation (un nombre réel)
Sortie : NETTC (un nombre réel)
Voici l'algorithme :
Algorithme FactureEau
Variables
Consommation, MontantHT, TVA, NETTC : Réel
CFA_FIXE : Constant ← 500
PRIX_TRANCHE1 : Constant ← 300
PRIX_TRANCHE2 : Constant ← 600
PRIX_TRANCHE3 : Constant ← 900
PRIX_TRANCHE4 : Constant ← 1000
TAUX_TVA : Constant ← 0.18 // 18%
Début
// Étape 1 : Demander la consommation à l'utilisateur
Écrire "Veuillez entrer la consommation d'eau en m³ : "
Lire Consommation
// Étape 2 : Calculer le Montant Hors Taxes (MontantHT)
Si Consommation <= 50 Alors
MontantHT ← CFA_FIXE + (Consommation * PRIX_TRANCHE1)
Sinon Si Consommation <= 150 Alors
MontantHT ← CFA_FIXE + (Consommation * PRIX_TRANCHE2)
Sinon Si Consommation <= 300 Alors
MontantHT ← CFA_FIXE + (Consommation * PRIX_TRANCHE3)
Sinon // Consommation > 300
MontantHT ← CFA_FIXE + (Consommation * PRIX_TRANCHE4)
Fin Si
// Étape 3 : Calculer la TVA et le NETTC
TVA ← MontantHT * TAUX_TVA
NETTC ← MontantHT + TVA
// Étape 4 : Afficher le résultat
Écrire "Le montant Net à Payer est : ", NETTC, " CFA"
Fin
Exercice 3 : Définitions (1.5 points)
Il faut associer chaque phrase à la bonne définition.
a. C'est une valeur introduite par l'utilisateur pendant l'exécution du
programme. Elle peut être lue interactivement ou issue d'un fichier de
données. Il s'agit d'une...
Réponse : Donnée (ou "Entrée"). C'est une valeur sur laquelle le
programme travaille.
b. Elle est désignée par un identificateur et sa valeur est introduite lors de la
programmation. Elle ne peut changer lors de l'exécution du programme. Il
s'agit d'une...
Réponse : Constante. Sa valeur est fixe et définie dans le code.
c. Elle est désignée par un identificateur et sa valeur est susceptible de
changer au cours de l'exécution du programme. Il s'agit d'une...
Réponse : Variable. C'est un conteneur dont la valeur peut être modifiée
pendant que le programme s'exécute.
Exercice 4 : Tableau (4 points)
L'exercice décrit une opération sur un tableau contenant les noms de 30 élèves.
"Nous désirons stocker dans un tableau les noms des élèves saisis de façon
aléatoire."
Cela implique la déclaration d'un tableau et une boucle pour le remplir.
"Nous mettons le nom d'un élève dans la case du tableau correspondant à
son numéro. Le nom de l'élève ayant le numéro 14 est stocké dans la case
numéro 14 du tableau."
Attention : En informatique, les indices de tableau commencent souvent à
0. Si l'élève n°1 est dans la case 0, alors l'élève n°14 sera dans la case 13. Si
les indices commencent à 1 (comme dans certains langages), alors l'élève
n°14 sera dans la case 14. L'énoncé n'est pas clair, mais l'interprétation la
plus courante est un décalage. Supposons que l'indice correspond au
numéro pour simplifier.
"Nous considérons que la classe contient exactement 30 élèves."
La taille du tableau est donc de 30 (ou 31 si on veut un indice de 1 à 30).
Voici un algorithme possible pour créer et afficher ce tableau :
Algorithme GestionClasse
Constantes
TAILLE_CLASSE = 30
Variables
nomsEleves : Tableau[1..TAILLE_CLASSE] de Chaîne de caractères
i : Entier
nomSaisi : Chaîne de caractères
Début
// Remplissage du tableau
Pour i allant de 1 à TAILLE_CLASSE Faire
Écrire "Entrez le nom de l'élève numéro ", i, " : "
Lire nomSaisi
nomsEleves[i] ← nomSaisi
Fin Pour
// Affichage pour vérification (particulièrement pour l'élève 14)
Écrire "Le nom de l'élève numéro 14 est : ", nomsEleves[14]
// Affichage de toute la liste
Écrire "Liste complète des élèves :"
Pour i allant de 1 à TAILLE_CLASSE Faire
Écrire "Élève n°", i, " : ", nomsEleves[i]
Fin Pour
Fin
J'espère que cette correction détaillée vous sera utile ! N'hésitez pas si vous avez
d'autres questions.