Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Chapitre I : GENERALITES SUR LES ALGORITHME

Activité 1 : Rappel à la démarche algothmique

1. Définition

Un algorithme est une séquence d'instructions permettant de résoudre un problème


donné. Sa structure générale se compose de plusieurs éléments.

2. Les langages de programmation

C'est une notation formelle utilisée pour écrire des programmes informatiques. Les
langages de programmation permettent aux développeurs de communiquer avec
l'ordinateur en utilisant des mots et des symboles compréhensibles par celui-ci. Les
exemples de langages de programmation populaires incluent Python, Java, C++,
JavaScript, etc.

3. La définition des ordinateurs

Les ordinateurs sont des machines électroniques qui traitent et stockent des données de
manière efficace. Ils sont composés d'un processeur, de mémoire, de périphériques
d'entrée/sortie et d'un système d'exploitation. Au fil des années, les ordinateurs ont
connu plusieurs générations, caractérisées par des avancées technologiques telles que
l'intégration de transistors, l'amélioration des capacités de stockage et des performances
de calcul. Les ordinateurs ont une importance cruciale dans la conception, le
déploiement et l'exécution des programmes, car ils permettent l'automatisation des
tâches, l'analyse de données complexes et la création de solutions logicielles pour divers
domaines d'activité.
Activité 2 : Structure d’un algothmique simple
1. L'entête de l'algorithme :
Il indique le nom de l'algorithme et éventuellement les paramètres d'entrée/sortie.
Exemple :
ALGORITHME NomDeLAlgorithme
ENTREE
Parametre1 : Type
Parametre2 : Type
SORTIE
Resultat : Type

DEBUT
// Instructions de l'algorithme
// ...
// ...

À noter que ceci est du pseudo-code, et dans un langage de programmation réel, la


syntaxe peut varier en fonction du langage que vous utilisez. L'en-tête de l'algorithme
est essentiel pour comprendre ce que fait l'algorithme et comment il interagit avec les
données d'entrée et de sortie.

2. Les déclarations :
Elles permettent de définir les variables et les constantes utilisées dans l'algorithme. La
déclaration d’un ou des variables commence toujours par le mot réservé VAR.

Exemple :
ALGORITHME ExempleDeclarations
// Déclarations
VAR
Variable1 : Entier
Variable2 : Chaine
PI : Constante Reel = 3.14159

DEBUT
// Instructions de l'algorithme

FIN

Dans un langage de programmation réel, la syntaxe pour déclarer des variables et des
constantes peut varier en fonction du langage, mais l'idée fondamentale reste la même :
vous devez spécifier le nom de la variable ou de la constante, ainsi que son type de
données.

La section de déclarations est importante car elle vous permet de préparer les variables
et les constantes nécessaires à l'exécution de l'algorithme. Ces variables et constantes
seront utilisées dans les instructions de l'algorithme pour effectuer des calculs, stocker
des données, etc.

3. Les variables :
Ce sont des emplacements en mémoire utilisés pour stocker des valeurs temporaires.
Les variables sont des emplacements en mémoire qui servent à stocker des valeurs
temporaires, que ce soit des nombres, des chaînes de caractères, des objets, etc. Voici
un exemple simple en pseudo-code montrant comment déclarer des variables dans un
algorithme :
ALGORITHME ExempleVariables
ENTREE
// Déclaration des paramètres d'entrée
Parametre1, Parametre2 : Entier
Parametre3 : Reel
Parametre4 : Chaine

// Déclarations de variables
Variable1, Variable2 : Entier
Tableau1 : Tableau d'Entiers [1..10]
NombreDecimal : Reel
Texte : Chaine

DEBUT

FIN
4. Les constantes :
Ce sont des valeurs qui ne peuvent pas être modifiées pendant l'exécution de
l'algorithme. La déclaration d’un ou des constantes commence toujours par le mot
réservé CONST.

Elles sont souvent utilisées pour stocker des valeurs fixes ou des paramètres qui ne
devraient pas changer. Voici un exemple simple en pseudo-code montrant comment
déclarer et utiliser des constantes:
Exemple :
ALGORITHME ExempleConstantes
// Déclaration de constantes
CONSTANTE Entier VALEUR_FIXE = 42
CONSTANTE Reel PI = 3.14159
CONSTANTE Chaine MESSAGE_BIENVENUE = "Bonjour, monde"

DEBUT
// Utilisation des constantes
AFFICHER "La valeur de VALEUR_FIXE est : " + VALEUR_FIXE
AFFICHER "La valeur de PI est : " + PI
AFFICHER "Message de bienvenue : " + MESSAGE_BIENVENUE
FIN

5. Les identificateurs :
Ce sont les noms donnés aux variables, aux constantes et aux autres éléments de
l'algorithme. Ils doivent respecter certaines règles (par exemple, commencer par une
lettre et ne pas contenir de caractères spéciaux).
Exemple:
ALGORITHME ExempleIdentificateurs
// Exemples d'identificateurs VALIDES
CONSTANTE Reel PI = 3.14159
Entier nombreDeJoueurs
Chaine nomDeFamille
Tableau d'Entiers tableauDeScores[1..10]

// Exemples d'identificateurs INVALIDES


CONSTANTE Reel 2ePI = 6.28318 // Commence par un chiffre (non valide)
Chaine Nom Utilisateur // Contient un espace (non valide)
Tableau d'Entiers 3eTableau // Commence par un chiffre (non valide)
Tableau de Reel tableau-de-scores[1..10] // Contient un tiret (non valide)

6. Les zones mémoires :


Ce sont des emplacements en mémoire réservés à certaines données (par exemple, les
tableaux).

ALGORITHME ExempleZonesMemoire
// Déclaration d'un tableau
VAR
Tableau d'Entiers MonTableau[1..5]
DEBUT
// Affectation de valeurs aux éléments du tableau
MonTableau[1] <- 10
MonTableau[2] <- 20
MonTableau[3] <- 30
MonTableau[4] <- 40
MonTableau[5] <- 50

FIN

7. Les types courants de données :


Ils définissent le format des données stockées dans les variables. Les types courants
incluent les entiers, les réels, les caractères et les booléens.
 Entiers
Entier age = 25;
Entier nombreDeParticipants = 100;
 Réels
Reel pi = 3.14159;
Reel prix = 49.99;
 Caractères
Caractere lettre = 'A';
Caractere chiffre = '7';
 Booléans
Booleen estVrai = vrai;
Booleen estFaux = faux;
 Chaînes de caractères
Chaine nom = "Alice";
Chaine message = "Bonjour, monde!";
 Tableaux
Tableau d'Entiers tableauDeNombres[1..5] = [10, 20, 30, 40, 50];
Tableau de Caracteres alphabet[1..26] = ['A', 'B', ..., 'Z'];

8. La compatibilité entre les types :


Certaines opérations ne sont possibles qu'entre des variables de certains types (par
exemple, on ne peut pas ajouter un entier à un caractère).

// Déclaration des variables


VAR
nombre : entier
lettre : caractère
resultat : entier
Début
Nombre <- 5
lettre <- ‘A’
resultat <- nombre + lettre
afficher resultat
Fin
9. L'affectation de données :
Elle permet de stocker une valeur dans une variable.
// Déclaration des variables
VAR
age : entier
sexe : caractère
taille : reel
nom : chaine de caractères
Début
// Saisie des informations de l'élève
Afficher ("Veuillez saisir l'âge de l'élève : ")
Saisir age
Afficher ("Veuillez saisir le sexe de l'élève (M pour masculin, F pour féminin) : ")
Saisir sexe
Afficher( "Veuillez saisir la taille de l'élève en mètres : ")
Saisir taille
Afficher ("Veuillez saisir le nom de l'élève : ")
Saisir nom
// Affichage des informations de l'élève
Afficher( "L'élève", nom, "a", age, "ans, est de sexe", sexe, "et mesure", taille, "m.")
Fin

10. Les entrées-sorties simples :


Elles permettent d'afficher des résultats à l'écran (affichage) ou de demander à
l'utilisateur de saisir des données (saisie).
algorithme CalculerCarré
VAR
nombre : réel
carré : reel
Début
Afficher ("Veuillez saisir un nombre :")
Saisir nombre
carré <- nombre * nombre
Afficher ("Le carré du nombre est :", carré)
Fin

11. Les opérateurs :


Ils permettent d'effectuer des opérations sur les données. Chaque type de données a des
opérateurs spécifiques (par exemple, l'addition pour les entiers, la concaténation pour
les chaînes de caractères).
Les principaux opérateurs utilisés en algorithmique avec leurs significations :

Opérateurs arithmétiques :
+ : addition
- : soustraction
* : multiplication
/ : division
% : modulo (reste de la division entière)
** : puissance

Opérateurs de comparaison :
== : égal à
!= : différent de
< : inférieur à
<= : inférieur ou égal à
> : supérieur à
>= : supérieur ou égal à
Opérateurs logiques :
&& : ET logique
|| : OU logique
! : NON logique

Opérateurs d'assignation :
= : affectation simple
+= : affectation avec addition
-= : affectation avec soustraction

Opérateurs de concaténation :
+ : concaténation de chaînes de caractères
Opérateurs conditionnels :
? : : opérateur ternaire permettant de retourner une valeur conditionnellement

Ces opérateurs sont utilisés pour effectuer des opérations arithmétiques, des
comparaisons, des assignations de valeurs, des opérations logiques et des manipulations
de chaînes de caractères.
Les priorités sur les opérateurs : certains opérateurs sont prioritaires par rapport à
d'autres, ils sont exécutés en premier. Par exemple, la multiplication a une priorité plus
élevée que l'addition.

Exercice d’application 1 :
Écrire un algorithme qui calcule la circonférence d'un cercle en utilisant une constante
pour la valeur de π. Demander à l'utilisateur de saisir le rayon du cercle en entrée.

ALGORITHME CalculerCirconference
VAR
Rayon : Reel
resultat : Reel
CONSTANTE Reel PI = 3.14159
DEBUT
// Saisie du rayon
Afficher ("Veuillez saisir le rayon du cercle : ")
Saisir Rayon
// Calcul de la circonférence
resultat <- 2 * PI * Rayon
// Affichage du résultat
Afficher ("La circonférence du cercle est : ", resultat)
FIN

Exercice d’application 2 :
Écrire un algorithme qui demande à l'utilisateur de saisir un nombre entier, utilise des
opérateurs pour vérifier si ce nombre est pair ou impair, puis affichez le résultat.

ALGORITHME VerifierParite
VAR
Nombre : Entier
EstPair : Booleen
DEBUT

Afficher ("Veuillez saisir un nombre entier : ")


Saisir Nombre
// Vérification de la parité
EstPair <- (Nombre % 2 == 0)
// Affichage du résultat
Afficher ("Le nombre ", Nombre, " est ",)
Afficher (EstPair ? "pair." : "impair.")
FIN
Chapitre II : TRAITEMENTS ALTERNATIFS OU CONDITIONNELS

Activité 1 : Différence entre traitement linéaire et traitement alternatif

Traitement Linéaire :

 Un traitement linéaire est un processus ou une méthode qui suit une séquence
d'étapes ou d'actions ordonnées, généralement de manière continue et prévisible.
 Il est souvent utilisé pour résoudre des problèmes ou atteindre des objectifs de
manière séquentielle, avec chaque étape dépendant de la précédente.
 Les résultats d'un traitement linéaire sont généralement prévisibles, car les étapes
sont exécutées dans un ordre fixe et déterminé.

Traitement Alternatif :

 Un traitement alternatif, en revanche, est un processus qui offre plusieurs options


ou approches pour atteindre un objectif ou résoudre un problème.
 Il permet plus de flexibilité dans la manière dont les étapes sont suivies, car il
offre des choix ou des chemins alternatifs en fonction de diverses conditions ou
situations.
 Les résultats d'un traitement alternatif peuvent varier en fonction des choix faits
à chaque étape ou en fonction des conditions changeantes.

En résumé, la principale différence entre un traitement linéaire et un traitement alternatif


réside dans la flexibilité offerte par ce dernier. Les traitements linéaires suivent un
chemin fixe et prévisible, tandis que les traitements alternatifs permettent d'adapter les
étapes en fonction de différentes conditions ou options disponibles. Le choix entre ces
deux approches dépendra des besoins spécifiques de la situation ou du problème à
résoudre.

Exemple :

Imaginez que vous souhaitiez décider comment passer votre journée en fonction de la
météo. Voici comment cela pourrait être géré de manière linéaire et alternative :
Traitement Linéaire :

Si la météo est ensoleillée, je vais aller à la plage.

Si la météo est nuageuse, je vais faire une randonnée.

Si la météo est pluvieuse, je vais rester à la maison et lire un livre.

Dans ce scénario, chaque condition météorologique entraîne une action spécifique, et


les étapes sont suivies dans un ordre fixe et prévisible.

Traitement Alternatif :

En fonction de la météo, j'ai plusieurs options :

Si la météo est ensoleillée, je peux aller à la plage.

Si la météo est nuageuse, je peux faire une randonnée.

Si la météo est pluvieuse, j'ai deux options :

Si j'ai envie de rester à l'intérieur, je peux lire un livre.

Si j'aime la pluie, je peux sortir avec un parapluie et prendre une marche.

Dans ce scénario, vous avez des choix supplémentaires lorsque la météo est pluvieuse,
et votre décision finale dépendra de vos préférences personnelles et des conditions
spécifiques du moment.

Le traitement linéaire suit un schéma fixe, tandis que le traitement alternatif offre plus
de flexibilité en fonction des conditions ou des préférences personnelles, permettant de
prendre des décisions en cours de route en fonction de diverses options disponibles.
Activité 2 : Les formes usuelles de traitements alternatifs (Si, Selon ou Suivant Cas)

L'activité 2 porte sur les formes usuelles de traitements alternatifs, tels que les structures
de contrôle conditionnelles. Trois formes couramment utilisées pour gérer des
alternatives dans un programme informatique sont les instructions "Si" (ou "if" en
anglais), "Selon" (ou "switch" en anglais), et "Suivant Cas" (ou "else if" en anglais).
Voici une explication de chacune de ces formes :

1. Si :
A. La structure conditionnelle

Syntaxe :

Si <condition> ALORS
<Action 1>
FSI

Si après évaluation la condition produit :

 VRAI <Action 1> est exécutée


 FAUX<Action 1> est ignoréé

B. La structure alternative

L'instruction "Si" est utilisée pour effectuer un traitement alternatif basé sur une
condition. Si une condition est vraie, une série d'instructions est exécutée. Sinon, une
autre série d'instructions peut être exécutée ou le programme peut passer à une autre
étape.
Syntaxe :

Si <condition> ALORS
<Action 1>
Sinon
<Action 2>
FSI

Si après évaluation la condition produit :

 VRAI <Action 1> est exécutée


 FAUX<Action 2> est exécutée

Exercice 1 : Utilisation de l'instruction "Si"

Écrivez un programme qui prend en compte l'âge d'un utilisateur et affiche un message
en fonction de l'âge. Si l'utilisateur a moins de 18 ans, le programme affiche "Vous êtes
mineur". Sinon, il affiche "Vous êtes majeur".

Algorithme GestionAge
VAR
age : Entier
Début
Afficher ("Veuillez entrer votre âge :")
Saisir age
Si ( age <= 18 ) Alors
Afficher ("Vous êtes mineur.")
Sinon
Afficher ("Vous êtes majeur.")
Fin Si
Fin
Exercice 2 : Utilisation de l'instruction "Si"

Écrire un algorithme qui demande à l'utilisateur de saisir un nombre entier, puis vérifie
si ce nombre est positif ou négatif. En fonction de la valeur, affichez un message
approprié. Utilisez une structure "Si" pour gérer cette décision.

Algorithme GestionNombre
VAR
nombre : Entier
Début
Afficher ("Veuillez entrer un nombre entier :")
Saisir nombre
Si ( nombre > 0 ) Alors
Afficher ("Le nombre est positif.")
Sinon
Afficher ("Le nombre est négatif.")
Fin Si
Fin

2. Suivant cas :

L'instruction "Suivant Cas" (ou "else if" en anglais) est utilisée pour gérer plusieurs
conditions dans une structure de contrôle conditionnelle. Si la première condition n'est
pas satisfaite, le programme vérifie la condition suivante, et ainsi de suite.

Syntaxe :

SUIVANT <Variable ou Expression> FAIRE


< Valeur 1 > : < Action 1 > :
// Instructions pour valeur1
< Valeur 2 > : < Action 2 > :
// Instructions pour valeur2
...
< Valeur n > : < Action n > :
SINON : < Action par défaut > :
// Instructions par défaut si aucune des valeurs correspondantes n'est trouvée
FINSUIVANT

Ces formes de traitement alternatif sont couramment utilisées pour prendre des décisions
dans des programmes informatiques en fonction de conditions ou de valeurs spécifiques.
Elles permettent d'exécuter différentes séquences d'instructions en fonction de ces
conditions, offrant une flexibilité essentielle dans la programmation.

Exercice 1 : Utilisation de l'instruction "Suivant Cas"

Écrire un programme qui permet à un utilisateur de saisir un jour de la semaine (par


exemple, "lundi", "mardi", etc.) et affiche un message en fonction du jour de la semaine.
Si l'utilisateur saisit "lundi", le programme affiche "C'est le début de la semaine". Si
l'utilisateur saisit "vendredi", le programme affiche "C'est bientôt le week-end". Pour
tous les autres jours, le programme affiche "C'est un jour de la semaine ordinaire".
Utilisez une structure "Suivant Cas" pour gérer cette décision.

Algorithme GestionJourSemaine
VAR
jour : Chaîne de caractères
Début
Afficher ("Veuillez entrer un jour de la semaine :")
Saisir jour
Suivant jour FAIRE
Cas 1 : "lundi"
Afficher ("C'est le début de la semaine.")
Cas 2 : "vendredi"
Afficher ("C'est bientôt le week-end.")
SINON
Afficher ("C'est un jour de la semaine ordinaire.")
Fin Suivant
Fin

Exercice 2 : Utilisation de l'instruction "Suivant Cas"

Écrire un algorithme qui permet à l'utilisateur de saisir la note d'un étudiant (un nombre
entier entre 0 et 20) et attribue une mention en fonction de cette note. Voici les mentions
possibles :

Si la note est inférieure à 10, la mention est "Insuffisante".

Si la note est entre 10 et 12 inclus, la mention est "Passable".

Si la note est entre 13 et 15 inclus, la mention est "Assez bien".

Si la note est entre 16 et 18 inclus, la mention est "Bien".

Si la note est supérieure à 18, la mention est "Très bien".

Algorithme ClassementEtudiant
VAR
note : Entier
mention : Chaîne de caractères
Début
Afficher ("Veuillez entrer la note de l'étudiant (entre 0 et 20) :")
Saisir note
Suivant note FAIRE
Cas 0 à 9 :
mention <- "Insuffisant"
Cas 10 à 12 :
mention <- "Passable"
Cas 13 à 15 :
mention <- "Assez bien"
Cas 16 à 18 :
mention <- "Bien"
Cas 19 à 20 :
mention <- "Très bien"
SINON
mention <- "Note invalide"
Fin Suivant
Afficher ("Mention : " + mention)
Fin

You might also like