1. Qu'affichent les instructions suivantes de l'algorithme nommé Exercice ?
ALGORITHME Exercice
VAR
a : ENTIER
b : ENTIER
DEBUT
a←5
b←a+3
a←a-2
b←b*2
ECRIRE (a)
ECRIRE (b)
FIN
Solution :
* a ← 5: La variable a reçoit la valeur 5.
* b ← a + 3: La variable b reçoit la valeur de a (qui est 5) plus 3, donc b devient 8.
* a ← a - 2: La variable a reçoit sa valeur actuelle (5) moins 2, donc a devient 3.
* b ← b * 2: La variable b reçoit sa valeur actuelle (8) multipliée par 2, donc b devient 16.
* ECRIRE (a): L'algorithme affiche la valeur actuelle de a, qui est 3.
* ECRIRE (b): L'algorithme affiche la valeur actuelle de b, qui est 16.
Donc, l'algorithme affichera : 3 puis 16.
2. Déterminez les types de données des variables utilisées dans les instructions suivantes :
a) une variable qui sert à stocker le poids des produits de légumes : Le poids peut avoir des
décimales, donc le type approprié est REEL.
b) une variable qui sert à stocker le nombre de légumiers : Le nombre de légumiers est un
nombre entier, donc le type approprié est ENTIER.
c) une variable qui sert à stocker une date de naissance : Une date peut être représentée de
plusieurs façons. Le plus simple ici serait de la stocker comme une CHAINE DE CARACTERES
(par exemple, "01/04/2025"). On pourrait aussi utiliser une structure plus complexe avec des
entiers pour le jour, le mois et l'année.
d) une variable qui sert à stocker une année : Une année est un nombre entier, donc le type
approprié est ENTIER.
e) une variable qui sert à stocker la réponse à la question suivante : « Continuer (O/N) ? » : La
réponse est un seul caractère ('O' ou 'N'), donc le type approprié est CARACTERE.
f) une variable qui sert à stocker le résultat d'une soustraction : La soustraction de deux
nombres (entiers ou réels) peut donner un entier ou un réel. Il est plus sûr de choisir le REEL
g) une variable qui sert à stocker la réponse à la question suivante : « Votre choix (0, 1, 2 ou 3) »
: La réponse est un seul chiffre parmi un ensemble limité d'entiers, donc le type approprié est
ENTIER.
h) une variable qui sert à stocker la réponse à la question suivante : « Êtes-vous inscrit (Vrai ou
Faux) ? » : La réponse est une valeur logique, donc le type approprié est BOOLEEN.
i) une variable qui sert à stocker la réponse à la question suivante : « Entrez votre adresse
postale » : Une adresse postale est une séquence de caractères, donc le type approprié est
CHAINE DE CARACTERES.
j) une variable qui sert à stocker une valeur a été trouvée ou non : Cela indique un état vrai ou
faux, donc le type approprié est BOOLEEN.
3. Qu'est-ce qu'une donnée structurée en algo ?
Une donnée structurée en algorithmique est un type de donnée qui permet de regrouper
plusieurs éléments d'informations sous une seule entité. Ces éléments peuvent être de types
différents et sont organisés selon une structure spécifique.
4. Donnez la syntaxe des instructions de lecture et d'affichage en algo.
La syntaxe des instructions de lecture et d'affichage peut varier légèrement en fonction du
langage algorithmique ou de la convention utilisée. Voici les formes courantes :
* Lecture (pour récupérer une entrée de l'utilisateur ou d'une source de données) :
* LIRE (nom_de_la_variable)
* SAISIR (nom_de_la_variable)
* ENTRER (nom_de_la_variable)
L'instruction LIRE, SAISIR ou ENTRER permet de stocker la valeur entrée par l'utilisateur dans
la variable spécifiée.
* Exemple : LIRE (age) // Lit l'âge entré par l'utilisateur et le stocke dans la variable age.
* Affichage (pour afficher une valeur à l'écran ou dans une autre destination) :
* ECRIRE (expression)
* AFFICHER (expression)
* SORTIR (expression)
* IMPRIMER (expression)
L'instruction ECRIRE, AFFICHER, SORTIR ou IMPRIMER permet d'afficher la valeur de
l'expression (qui peut être une variable, une constante, ou une combinaison des deux).
* Exemples :
* ECRIRE ("Bonjour") // Affiche le texte "Bonjour".
* ECRIRE (nom) // Affiche la valeur de la variable nom.
* ECRIRE ("L'âge est : ", age) // Affiche le texte "L'âge est : " suivi de la valeur de la variable
age.
5. Les différentes parties d'un algorithme sont :
* L'en-tête (ou l'identification) :
-Nom de l'algorithme : Un identifiant unique qui permet de référencer l'algorithme. Il est
souvent descriptif de la tâche que l'algorithme accomplit.
-Auteur (facultatif) : Le nom de la personne ou de l'entité qui a conçu l'algorithme.
-Date (facultatif) : La date de création ou de dernière modification de l'algorithme.
- Description (facultatif mais recommandé) : Une brève explication de l'objectif de l'algorithme,
des entrées attendues et des sorties produites.
* La section des déclarations (ou des définitions) :
-Déclaration des variables : Liste de toutes les variables qui seront utilisées dans l'algorithme,
en spécifiant leur nom et leur type de données (ENTIER, REEL, BOOLEEN, CARACTERE, CHAINE
DE CARACTERES, etc.). Déclarer les variables avant de les utiliser permet de clarifier les
données manipulées par l'algorithme.
-Déclaration des constantes (facultatif) : Définition des valeurs constantes qui seront utilisées
dans l'algorithme. On leur donne un nom et une valeur fixe.
-Déclaration des types personnalisés (facultatif) : Dans certains cas, on peut définir de
nouveaux types de données structurées (enregistrements, tableaux, etc.).
* Le corps de l'algorithme (ou les instructions) :
- Début : Marque le point de départ de l'exécution des instructions.
-Les instructions : La séquence d'actions ou d'étapes à suivre pour résoudre le problème. Ces
instructions sont écrites dans un langage algorithmique (souvent un pseudo-code) et peuvent
inclure :
- L'affectation : Attribuer une valeur à une variable (variable ← valeur).
-La lecture (entrée) : Récupérer des données depuis une source (utilisateur, fichier, etc.) (LIRE
variable).
-L'écriture (sortie) : Afficher ou enregistrer des résultats (ECRIRE expression).
-Les structures de contrôle : Définir l'ordre d'exécution des instructions en fonction de
conditions ou de répétitions :
-Conditionnelles (alternatives) : SI...ALORS...SINON...FINSI,
SELON...CAS...AUTRE...FINSELON.
-Répétitives (boucles) : POUR...DE...A...FAIRE...FINPOUR, TANT QUE...FAIRE...FINTANTQUE,
REPETER...JUSQU'A....
-Les appels de sous-programmes (fonctions ou procédures) : Utiliser des blocs de code
prédéfinis pour effectuer des tâches spécifiques.
* La fin :
- Fin : Marque la fin de l'exécution de l'algorithme.
6. L'affection est l'opération de base qui permet de donner et de modifier les valeurs des
variables, rendant ainsi possible la manipulation et le stockage des données au sein d'un
algorithme. Sans l'affection, les variables n'auraient pas de valeur et les algorithmes ne
pourraient pas effectuer de calculs ou de traitements significatifs.
II. Exercice
1. Écrire un programme qui effectue la division de deux entiers par des soustractions
successives
#include <iostream>
int main() {
int dividende, diviseur;
// Demander à l'utilisateur d'entrer le dividende
std::cout << "Entrez le dividende (entier positif) : ";
std::cin >> dividende;
// Demander à l'utilisateur d'entrer le diviseur
std::cout << "Entrez le diviseur (entier positif et non nul) : ";
std::cin >> diviseur;
// Vérification des entrées
if (dividende < 0 || diviseur <= 0) {
std::cout << "Erreur : Veuillez entrer un dividende positif et un diviseur positif non nul." <<
std::endl;
return 1; // Indiquer une erreur
int quotient = 0;
int reste = dividende;
// Effectuer la division par soustractions successives
while (reste >= diviseur) {
reste -= diviseur;
quotient++;
// Afficher le quotient et le reste
std::cout << "Le quotient de la division de " << dividende << " par " << diviseur << " est : " <<
quotient << std::endl;
std::cout << "Le reste de la division de " << dividende << " par " << diviseur << " est : " << reste
<< std::endl;
return 0; // Indiquer une exécution réussie
2. Écrire un algorithme qui affiche la table de multiplication d'un nombre saisi. Si le nombre 3
est saisi par exemple, le programme affichera
3*1=3
3*2=6
.....
3*10=30
ALGORITHME TableMultiplication
VAR
nombre : ENTIER
i : ENTIER
resultat : ENTIER
DEBUT
// Demander à l'utilisateur d'entrer un nombre
ECRIRE ("Entrez un nombre entier pour afficher sa table de multiplication : ")
LIRE (nombre)
// Boucle pour afficher la table de multiplication de 1 à 10
POUR i DE 1 A 10 FAIRE
resultat ← nombre * i
ECRIRE (nombre, "*", i, "=", resultat)
FINPOUR
FIN
Explication de l'algorithme :
* ALGORITHME TableMultiplication: On donne un nom descriptif à notre algorithme.
* VAR: On déclare les variables dont nous allons avoir besoin :
* nombre : Une variable de type ENTIER pour stocker le nombre saisi par l'utilisateur.
* i : Une variable de type ENTIER qui servira de compteur pour parcourir les nombres de 1 à 10.
* resultat : Une variable de type ENTIER pour stocker le résultat de la multiplication.
* DEBUT: Marque le début des instructions de l'algorithme.
* ECRIRE ("Entrez un nombre entier pour afficher sa table de multiplication : "): On affiche un
message à l'écran pour demander à l'utilisateur d'entrer un nombre.
* LIRE (nombre): On lit la valeur entrée par l'utilisateur depuis le clavier et on la stocke dans la
variable nombre.
* POUR i DE 1 A 10 FAIRE: On utilise une boucle POUR qui va s'exécuter 10 fois. La variable i va
prendre successivement les valeurs de 1 à 10.
* resultat ← nombre * i: À chaque itération de la boucle, on multiplie le nombre saisi par
l'utilisateur par la valeur actuelle de i et on stocke le résultat dans la variable resultat.
* ECRIRE (nombre, "*", i, "=", resultat): On affiche à l'écran le calcul effectué et son résultat. Par
exemple, si nombre est 3 et i est 2, cela affichera "3*2=6".
* FINPOUR: Marque la fin de la boucle POUR.
* FIN: Marque la fin de l'algorithme.