Chapitre1
:
Concepts de base de
l’algorithmique
Chapitre II : Instructions de base
II-1- Instruction d’
Affectation
II-2- Instruction de
lecture
II-3- Instruction d’
ecriture
Chapitre III :
Instructions conditionnelles
III-1-
Instruction conditionnelle Simple
Si alors
III-2-
Instruction conditionnelle complète
si alors sinon
III-3-
Choix multiple
Exercices
TS Base de données
Matière : Algorithmique
Chapitre I : Concepts de base de
l’algorithmique
Objectif pédagogique :
A la fin du chapitre, le stagiaire sera capable de
1- décrire les étapes à suivre pour résoudre un problème
donné par l’ordinateur.
2- Définir un algorithme
1- Introductions :
L’algorithmique est un terme d’origine arabe, comme algèbre.
Dans la vie sans le savoir, vous avez déjà exécuté des algorithmes.
• Pour préparer un gâteaux on suit une recettes de cuisine
• Pour installer et faire fonctionner un magnétoscope (imprimante) on suit à la lettre le mode d’emploi
• en indiquant le chemin à un touriste ou à une personne égarée. 1- Définition 1
Un algorithme, c’est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné.
Si l’algorithme est juste, le résultat est le résultat voulu,
• le touriste se retrouve là où il voulait aller.
• Le magnétoscope (imprimante) fonctionnera correctement.
• Le gâteau sera réussi
Si l’algorithme est faux, le résultat sera aléatoire et faux :
• Le touriste ne trouvera pas ce qu’il veut
• Le magnétoscope (imprimante) ne fonctionnera pas.
• Et le gâteau sera raté ou pas réussi
La finalité d’un algorithme est de résoudre un problème.
L'utilisateur d'un algorithme n'aura qu'à suivre toutes les instructions, dans l'ordre pour arriver au résultat que doit donner l'algorithme
Définition 2
Un algorithme est un ensemble d’instructions qui permet de résoudre un problème indépendamment des particularités de tel ou tel langage.
Pour résoudre un problème par une machine, (donc la conception d’un programme informatique) il faut suivre des étapes suivantes :
1- 1 La spécification (ou analyse)
2- 2 La conception préliminaire (ou conception générale)
3- 3 La conception détaillée
4- 4 Le codage
5- D
1- La spécification :
Est l’ensemble des activités consistant à définir de manière précise, complète et cohérente ce dont l’utilisateur a besoin
Dans la spécification, le problème est décomposé et le problème ou l’énoncé est définie :
A savoir :
• l’entrée (données du problème)
• La sortie (le résultat recherché)
• Les relations éventuelles entre les données et le résultat.
Exemple :
Problème : Résolution d’une équation de second degré dans R. Ax²+bx + c = 0
Analyse : Données en entrée - les coefficients a, b, c
Données en sortie ou recherché : les racines de l’équation. La solution :
- calcul de Delta = B²-2AC
- Calcul des racines selon Delta
Si Delta est =0 alors racine double x = -b/2a
Si Delta est 0 alors deux racines x1= et x2=
Si Delta est 0 alors pas de racine dans R.
1- Conception préliminaire (Traduction du résultat de l’analyse)
Une fois le problème spécifié et analysé, le résultat est traduit en un langage descriptif le résultat de la traduction est appelé
Algorithme.
2- Conception détaillée (programmation) : est la traduction de l’algorithme en un programme dans un langage de
3- Codage : Le programme est ensuite transformé en langage machine lors d'une étape appelée compilation. La compilation
est une phase réalisée par l'ordinateur lui-même grâce à un autre programme appelé compilateur.
4- La phase suivante s'appelle l'édition de liens, elle consiste à
lier le programme avec tous les éléments externes (généralement des librairies auxquelles il fait référence).
4- Avec qu’elle langage ou convention en écrit un algorithme ?
Un algorithme peut être représenté par généralement deux type de présentations :
a- L’organigramme une représentation graphique, avec des carrés, des losanges, etc. qu’on appelait des organigrammes. Aujourd’hui, cette représentation est quasiment abandonnée.
b- Pseudo-code : qui est un ensemble de mot clés et de structure permettant de décrire dans un langage naturel l’ensemble des opérations à effectuer sur les données pour obtenir des résultats.
1- Caractéristiques d'un algorithme
Un algorithme est l'énoncé dans un langage bien défini d'une suite d'opérations permettant de répondre au problème.
Un algorithme doit donc être :
• lisible: l'algorithme doit être compréhensible même par un non-informaticien
• de haut niveau: l'algorithme doit pouvoir être traduit en n'importe quel langage de programmation, il ne doit donc pas faire appel à des notions techniques relatives à un programme particulier ou bien à un système d'exploitation donné
• précis: chaque élément de l'algorithme ne doit pas porter à confusion,
il est donc important de lever toute ambiguïté
• concis: un algorithme ne doit pas dépasser une page. Si c'est le cas, il
faut décomposer le problème en plusieurs sous-problèmes
• structuré: un algorithme doit être composé de différentes parties facilement identifiables
La maîtrise de l’algorithmique requiert deux qualités, très complémentaires d’ailleurs:
il faut avoir une certaine intuition, car aucune recette ne permet de savoir a priori quelles instructions permettront d’obtenir le résultat voulu. C’est là, si l’on y tient, qu’intervient la forme « d’intelligence » requise pour l’algorithmique. Alors, c’est certain, il y a des gens qui possèdent au départ davantage cette intuition que les autres. Cependant, et j’insiste sur ce point, les réflexes, cela s’acquiert. Et ce qu’on appelle l’intuition n’est finalement que de l’expérience tellement répétée que le raisonnement, au départ laborieux, finit par devenir « spontané ».
il faut être méthodique et rigoureux. En effet, chaque fois qu’on écrit une série d’instructions qu’on croit justes, il faut systématiquement se mettre mentalement à la place de la machine qui va les exécuter, armé d'un papier et d'un crayon, afin de vérifier si le résultat obtenu est bien celui que l’on voulait. Cette opération ne requiert pas la moindre once d’intelligence. Mais elle reste néanmoins indispensable, si l’on ne veut pas écrire à l’aveuglette.
Et petit à petit, à force de pratique, vous verrez que vous pourrez faire de plus en plus souvent l’économie de cette dernière étape : l’expérience fera que vous « verrez » le résultat produit par vos instructions, au fur et à mesure que vous les écrirez. Naturellement, cet apprentissage est long, et demande des heures de travail patient. Aussi, dans un premier temps, évitez de sauter les étapes : la vérification méthodique, pas à pas, de chacun de vos algorithmes représente plus de la moitié du travail à accomplir.
7-Structure d’un algorithme
L'en-tête
algorithme nom de l'algorithme ; const
var
Les déclarations de constantes, variables, structures liste des constantes ;
liste des variables ;
fonc
liste des fonctions ;
Les déclarations de fonctions et procédures
proc
liste des procédures ; début Le corps de l'algorithme action 1 ; action2 ; . . . action n ; fin
Tous les mots clés sont écrits en minuscule.
Une marque de terminaison ( ;) est utilisée entre chaque action.
1. L'en-tête
Il permet d'identifier un algorithme. 2. Les déclarations
C'est une liste exhaustive des objets, grandeurs utilisés et manipulés dans le corps de l ' algorithme ; cette liste est placée en début d'algorithme.
3. Le corps
Dans cette partie de l'algorithme, sont placées les tâches (instructions, opérations…) à exécuter.
4. Les commentaires :
Les commentaires sont utilisés juste pour une explication. Il ne seront pas pris en compte. Un commentaire est encadré par deux { }
Exemple :
Algorithme somme ;
{cet algorithme calcule la somme deux de entier}
Var a,b, lasomme: entiers {déclarations: réservation
éspace-mémoire} Début Lire (a,b) ; Lesomme A+b ; Afficher (lasomme) ; Fin.
8* Déclaration de constante et de variables :
a) Les constantes :
Elles représentent des chiffres, des nombres, des caractères, des chaînes de caractères, … dont la valeur ne peut pas être modifiée au cours de l'exécution de l'algorithme.
Si je veux calculer la surface d'un cercle, je demanderai à l'ordinateur de calculer la
formule : A = PI * r ^ 2
PI est une constante. PI = 3.14
Mot clé est : const
b) Les variables :
Elles peuvent stocker des chiffres des nombres, des caractères, des chaînes de caractères,… dont la valeur peut être modifiée au cours de l'exécution de l'algorithme.
Les constantes et les variables sont définies dans la partie déclarative par deux caractéristiques essentielles, à savoir :
L' identificateur : c'est le nom de la variable ou de la constante. Il est composé de lettres et de chiffres Le type : il détermine la nature de la variable ou de la constante (entier, réel, booléen, chaîne de caractères…)
b-1) L’identificateur :
Un symbole est un nom qui étiquette une variable, une constante. Dans le problème précédent, "r" et "A" sont les noms des variables. "r" et "A" sont des cases mémoire qui contiendront les valeurs du rayon et le résultat du calcul.
Physiquement, cela peut s’expliquer comme suit :
Le programme s'exécute dans le microprocesseur. Les données sont
rangées dans la mémoire.
"r" et "A" désignent donc les emplacements dans la mémoire où les
données attendent pour le calcul. On peut décomposer l'instruction
de calcul A = PI * r ^ 2 comme suit : 1. Je vais chercher ce que vaut PI
2. Je vais chercher la donnée contenue dans la variable/mémoire "r" 3. Je calcule le carré (r * r)
4. Je multiplie par PI
5. Je range le résultat dans la variable/mémoire "A"
Caractéristique d’un identificateur :
Un identificateur de variable ou de constante doit être :
Significatif : exemple : pour identifier la variable représentant
une quantité on utilise les identificateurs : Quantite, quant, qt, q
Ne doit pas comporter un espace
Prix unitaire est un identificateur faux
Somme des entiers est un identificateur faux
Ne commence pas par un chiffre :
1som est un identificateur faux
b-2) les types de base
L'algorithmique manipule des données selon un type. Le type définit plusieurs choses :
• La nature de la donnée ou l’ensemble dans lequel l’objet prend
ses valeurs.
• Le format que la machine utilise pour stocker cette information.
(par exemple, on peut choisir de stocker un entier sur plus ou moins d'octets).
Nous considérerons cinq types de base :
• Entier les entiers naturel ………..-2 -1 0 1 2 ………
• Reel les entiers réels : 1.5 2.03
• Booleen Il ne peut prendre que deux états : VRAI ou FAUX
• Le caractère
'a', 'A','*','7','z',' !'….
Un caractère est encadré par deux cotes ‘ ‘. Mot clé : car
• La chaîne de caractères
'électronique', 'cd ROM de 80mn'…
Une chaîne de caratère est encadrée par deux cotes ‘ ‘. Mot clé : chaîne
Déclaration des variables :
Une variable est déclarée au début du programme en associant un identificateur à un type donné.
Var identificateur : type ; Exemple :
Var a, b : entier ;
Réserver deux boites ou case mémoire une va être identifiée par l’étiquette a et l’autre b .
a b le contenu des deux case doit être des entiers.
Déclaration de constantes :
Une constante est déclarée en spécifiant son identificateur et sa valeur
Const identificateur = valeur ;
Remarques :
• Dans un algorithme, on ne peut pas déclarer deux variables ayant le même nom ou identificateur.
• la déclaration a : entier ; b :entier ;
peut être remplacée par a,b : entier ;
• toutes les variables et constantes utilisées dans un algorithme
Exercices :
Résoudre les problèmes suivants en suivant les étapes vue en cours:
Exercice 1 : « calcule de la surface d’un rectangle »
Solution :
Phase 0 : Énoncé (spécifications).
On veut calculer la surface d’un rectangle.
Phase 1 : Analyse.
A partir de l'énoncé on doit définir les flux entrants (les données du problème), les flux sortants (les résultats du problème), et le moyen de passer des uns aux autres.
On détermine aisément le résultat il fait partie de l’énoncé (la surface d’un rectangle), ce qui n’est pas le cas des données.
On va donc mettre en place un calcul permettant de déterminer le résultat. Résultat
La surface du rectangle SURF Traitement
SURF = LONG * LARG
Données
Avec
La longueur du rectangle LONG La largeur du rectangle LARG
Phase 2 : L'algorithme associé à son lexique.
Lexique
LONG (réel) La longueur du rectangle LARG (réel) La largeur du rectangle SURF (réel) La surface du rectangle
Début
Lire(LONG, LARG) SURF LONG * LARG Ecrire(SURF)
Fin
Énoncé (spécifications).
Un diplôme d’informatique est composé de deux tests et d’un examen.
On veut calcule la moyenne générale d’un étudiant, sachant que la note de l’examen est affectée du coefficient 2.
On affichera le nom, le prénom, les trois notes, et la moyenne obtenue. Solution :
Phase 1 : Analyse
Un diplôme d’informatique est composé de deux tests et d’un examen. On
veut calculer la moyenne générale d’un étudiant, sachant que la note de
l’examen est affectée du coefficient 2.
On affichera le nom, le prénom (données et résultats), les trois notes, et la moyenne
obtenue.
Données
La note du premier test TEST1 La note du second test TEST2 La note de l’examen EXAM Le nom de l’étudiant NOM Le prénom de l’étudiant PRENOM Traitement
MOYGEN = (TEST1 + TEST2 + 2 * EXAM) / 4 Résultat
La moyenne générale à l’examen informatique MOYGEN Le nom de l’étudiant NOM
Le prénom de l’étudiant PRENOM
Phase 2 : L'algorithme associé à son lexique. Lexique
TEST1 (réel) La note du premier test TEST2 (réel) La note du second test EXAM (réel) La note de l’examen NOM (chaîne) Le nom de l’étudiant PRENOM (chaîne) Le prénom de l’étudiant
MOYGEN (réel) La moyenne générale à l’examen informatique
Début
Lire(NOM, PRENOM, TEST1, TEST2, EXAM) MOYEN ç (TEST1 + TEST2 + 2 * EXAM) / 4 Ecrire(NOM, PRENOM, MOYGEN)
Fin
Exercice 3 :
Phase 0 : Énoncé (spécifications).
A partir d’une quantité de produit achetée à un prix hors taxe on veut établir la facture d’un client dont on connaît le nom. La facture fera apparaître le nom, le montant hors taxe, et toute taxe sachant qu’on applique un taux de taxe de 10%.
Solution
Phase 1 : Analyse
A partir de l'énoncé on doit définir les flux entrants (les données du problème), les flux sortants (les résultats du problème), et le moyen de passer des uns aux autres.
Procédons à une analyse du texte pour y rechercher les données, les résultats et les constantes.
A partir d’une quantité de produit achetée à un prix hors taxe on veut établir la facture d’un client dont on connaît le nom. La facture fera apparaître le nom, le montant hors taxe, et toute taxe sachant qu’on applique un taux de taxe de 10% ( qui est une constante).
Données
une quantité de produit achetée QUANT le prix hors taxe du produit achetée PRIHT le nom du client NOM Résultat
le nom du client NOM le montant hors taxe MONTHT le montant toute taxe APAYER Traitement
MONTHT QUANT * PRIHT
APAYER MONTHT + TAXE
TAXE MONTHT * 10%
TAXE MONTHT * TxTAXE
Résultat intermédiaire
TAXE montant de la taxe
Constante
TxTAXE=10% taux de taxe
Phase 2 : L'algorithme associé à son lexique (conception).
Lexique constante
TxTAXE=10% taux de taxe
variables
QUANT (entier ou réel) une quantité de produit achetée PRIHT (réel) le prix hors taxe du produit achetée NOM (chaîne) le nom du client
MONTHT (réel) le montant hors taxe APAYER (réel) le montant toute taxe TAXE (réel) montant de la taxe
Début
Lire(QUANT,PRIHT,NOM) MONTHT QUANT * PRIHT TAXE MONTHT * TxTAXE APAYER MONTHT + TAXE Ecrire(NOM,MONTHT,APAYER)
Fin
TS Base de données
Matière : Algorithmique
Chapitre II :
Instructions de base
Leçon : I n s t r u c t i o n d’ a f f e c t a t i o n
Objectif pédagogique :
A la fin de la leçon, le stagiaire sera capable de
1- affecter correctement une valeur ou une constante ou
une expression à une variable,
2- évaluer correctement une expression algébrique,
3- évaluer correctement une expression booléenne.
Introduction :
IL est utile de distinguer deux types de données utilisées par un programme.
a/ les données internes : indépendantes de toute exécution et indispensable au déroulement du programme.
b/ les données externes au programme, utilisées pour une exécution particulière et sans utilité pour les suivantes. Elles sont introduites au moment de l’exécution du programme.
Exemple :
Reprenant le problème de calcul de la surface d’un cercle A = PI * r *r
PI = 3.14 est une donnée interne a programme fixée par le programmeur. Pour le calcul de cette surface, l’ordinateur a besoin de la valeur du rayon. Cette valeur est introduite par l’utilisateur au moment de l’exécution du programme.
Le rayon est une donnée externe.
Pour introduire les données internes ou externes dans un algorithme on utilise les instructions suivantes :
– instruction d’affectation ( = ou ) – Instruction de lecture (lire)
– Instruction de sortie (d’écriture ) (afficher écrire)
Instruction d’affectation
L’instruction d’affectation est une instruction qui consiste à attribuer une valeur à une variable préalablement déclarée.
Syntaxe :
Variable expression ou constante ou variable ;
Où expression peut être :
a- Une constante :
Variable constante ;
Exemple 1 : A 3 on lit A reçoit 3
3 est affectée à A
A est l’identifiant d’une case mémoire.
Donc on peut représenter A avant et après l’affectation comme suit : Avant l’affectation : A
Après l’affectation : A Exemple 2 : var PI : reel ;
PI 3.14 ;
Avant l’affectation : PI Après l’affectation : PI Exemple 3 :
Var trouve : booleen ; Trouve faux ;
Avant l’affectation : Trouve Après l’affectation : Trouve Exemple 4 : Nom « Mahdjouba «
Remarque :
La constante doit être de même type que la variable. b- Une variable :
Variable variable;
Exemple 1 : var A,B : entier ; Si A 10 ; B 13 ;
A B ;
– La valeur de B est affectée à la variable A
– La valeur de B ne change pas.
– L’ancienne valeur de A est écrasée
Exemple 2 :
Déroulez la séquence d’instruction suivante puis donnez les valeurs des variables X,Y et Z après exécution des instructions?
Var X,Y,Z : Entier ; Début X -3 ; Y 10 ; Z 0 ; X Y ; Y Z ; 3.14 faux
Z X ; Fin. Déroulement : X Y Z X -3 ; -3 Y 10 ; -3 10 Z 0 ; -3 10 0 X Y ; 10 10 0 Y Z ; 10 0 0 Z X ; 10 0 10 Remarque :
Les deux variables doivent être de même type.
a- Résultat d’un calcul
Variable expression ;
Le résultat de l’évaluation de l’expression sera affectée à la variable. L’expression peut être une
c-1- Expression arithmétique
Une expression arithmétique est une combinaison ordonnée d’opérandes et de symbole d’opérations algébriques appelés opérateurs.
Exemple : 2 * A + C - 1.5 2, A, C, 1.5 sont des opérandes + , - , * sont les opérateurs.
c-1-1- les opérateurs :
Il existe 4 opérateurs +, -, *, /
Qui représentent l’addition , la soustraction, le produit ou la multiplication et la division.
c-1-2- Evaluation d’une expression arithmétique
Une expression arithmétique fait intervenir plusieurs opérandes et plusieurs opérateurs.
Le calcul de cette expression est décomposé par l’ordinateur en une suite d’opérations ne faisant intervenir d’un opérateur chacun.
Les règles de l’évaluation sont les suivantes :
• Les opérateurs sont classés par ordre de priorité
Par ordre croissant : puissance niveau 1 / * niveau 2 + - niveau 3
• En l’absence de parenthèse, l’exécution des opérations se fait
toujours de gauche à droite.
• Une opération n’est exécutée que si l’opération suivante n’est pas
prioritaire. Exemple 1 :
Evaluer l’expression A/B *3+C2-18 Avec A =8, B = 2, et C = 3
1- A/B la division n’étant pas suivie d’une opération plus prioritaire. Le résultat est 4
L’expression devient : 4*3+c2-18
2- 4*3 l’addition qui suit la * est de priorité inférieure. Le résultat est 12
L’expression devient : 12+c2-18
3- c2 la puissance est de niveau de priorité supérieur à l’addition
qui la précéde. Elle-même est suivie d’une opération moins prioritaire.
Le résultat est 9.
L’expression devient 12+9-18
4- 12+9 : l’addition est de même priorité que la soustraction qui la suit.
Le résultat est 21.
L’expression devient : 21-18 5- Le résultat est 3
Exemple 2 :
On veut écrire l’expression algébrique 2+AB+4 Si on écrit 2+A/B+4 avec A = 4 et B = 2 Evaluant l’expression :
1- A/B : l’addition est moins prioritaire que la division. le résultat est 2 L’expression 2+2+4 2- 2+2 Le résultat est 4 3- 4+4 Le résultat est 8 Le résultat est erroné.
Pour ne pas tomber dans ce type d’erreur, on utilise les parenthèse : (2+A)/(B+4)
Remarque :
Les parenthèses ont la plus forte priorité. C-à-d que le contenu des parenthèses est évalué en premier.
c-2- Expression booléenne
Une expression booléenne comporte des opérandes et des opérateurs booléens et des opérateurs de comparaison.
Les opérateurs booléens sont : et / ou/ non
Exemple d’expression : var trouve , fin :booleen ;
Le tableau suivant présente le résultat des l’évaluation de
Trouve et fin trouve ou fin pour les différentes valeurs que peut prendre l’une ou l’autre variable.
trouve fin Trouve et
fin
Trouve ou fin
Vrai Vrai vrai Vrai
vrai faux faux Vrai
faux Vrai Faux Vrai
Faux faux vrai faux
Exemple 1 :
Evaluer les expressions :
(5 > 2) et (4=3) résultat est (1<0) ou (6=(2*3)) résultat est
Exercices :
Exo1
Soient y, x, a, b des variables réelles de valeurs 3 , -1 , 0 , 2.1 Quel est le résultat de chaque expression :
(x<y) et (a>b) (0<x) ou (a>=b) (x=1) ou (x=3)
Exo2
Soit l’expression arithmétique C - (A+B)*(2 – D)/4
1- Donner dans l’ordre, les opérations exécutées lors de l’évaluation de
l’expression, justifier.
2- On suppose qu’au moment du calcul les variables A,B,C et D ont respectivement
2 , 3 , 8 et -6 Donner le résultat de l’évaluation.
Exo 3
1- Cette déclaration est-elle vraie ou fausse ? Const nbr1 = 1.25 ;
Test = vrai ; Nbdr2 = -258 ;
2- Cette séquence est-elle correcte oui ou non ? Const x= 12.14 ; Chaine = ‘bonjour’ ; Var Y : reel ; Début Y -125.23 ; X x +y ; ……… Fin.
Exo 4
1- Quelles seront les valeurs des variables A et B après exécution des instructions suivantes? Var A, B : Entier Début A ← 1 B ← A + 3 A ← 3 fin 2- Var A, B, C : Entier ; Début A ← 5 ; B ← 3 ; C ← A + B ; A ← 2 ; C ← B – A ; Fin. Exo5 :
Ecrire des algorithmes qui :
1- Permute deux entiers A et B tels que A =15 et B = -2.
2- Calcule la surface et le périmètre d’un cercle dont vous fixez la valeur du rayon.
TS Base de données
Matière : Algorithmique
Chapitre II :
Instructions de base
Leçon : I n s t r u c t i o n d e l e c t u r e
Objectif pédagogique :
A la fin de la leçon, le stagiaire sera capable de
1- Ecrire correctement une instruction de lecture
Définition :
L’instruction de lecture « LIRE » permet d’attribuer une valeur à une variable lors de l’exécution de l’algorithme.
LIRE permet de lire une valeur provenant du clavier.
Parvenue à cette instruction, l’exécution de l’algorithme s’arrête,
l’utilisateur tape alors sur le clavier la valeur qu’il veut donner à la variable puis l’exécution se poursuit.
Syntaxe :
LIRE (variable(s)) ;
Exemple 1 : lecture d’une variable
(1)Var N : entier ; (2)Lire (N) ; Exécution : Après exécution de (1) : N
Après exécution de (2) , la machine attend que l’utilisateur lui fournisse une valeur pour N à fin de pouvoir continuer à exécuter l’algorithme. Si l’utilisateur tape 5 : 5 sera affectée à N : N
Exemple 2 lecture de plusieurs variables :
Lire (variable1, variable2, ….., varaiblen) ;
Les identificateurs de variables sont séparés par des virgules.
Exemple :
Var A,B,C : entier ; Lire (a,b,c) ;
A l’exécution de cette instruction, la machine attend que l’utilisateur lui fournisse trois valeurs à affecter à A, B et C respectivement.
Si l’utilisateur tape -1 0 4 les valeurs des variables sont 5
A B C
Remarque s :
1- On peut lire une variable de type entier, réel, caractère, chaine de caractère
2- On ne peut pas lire une variable de type booleen. 3- Lire (A,B,C) est équivalent à
Lire (a) ; Lire(b) ; Lire(c) ;
EXERCICES : Exo1
Donnez les valeurs de X, y, z après exécution des instructions suivantes : Lire(x) ;
Yx*2+4 ; Lire(z) ; Y y + z ;
Sachant que les valeurs tapées sont 3 puis 5.
Exo2
Même question Lire (nom) ; Lire(age) ; Lire (note) ;
Les valeurs tapées sont : Samira 22 12.50
Exo3
Ecrire un algorithme qui permute deux entiers entrés au clavier.
Exo4 :
Ecrire un algorithme qui calcule l’âge d’une personne en l’an 2020 sachant sans année de naissance.
TS Base de données
Matière : Algorithmique
Chapitre II :
Instructions de base
Leçon : I n s t r u c t i o n d’ é c r i t u r e
Objectif pédagogique :
A la fin de la leçon, le stagiaire sera capable de
1- Ecrire correctement une instruction d’écriture
2- Ecrire correctement un algorithme pour résoudre un
problème donné en utilisant les instructions
Définition :
L’instruction d’écriture Afficher permet à l’utilisateur de voir à l’écran la valeur d’un objet, le contenu d’une variable.
Afficher permet d’afficher une valeur, un résultat à l’écran.
Syntaxe :
Afficher (variable(s)) ;
Afficher (expression) ;
Afficher (chaîne de caractères) ;
Exemple 1 : Afficher la valeur d’une variable
(1)Var N : entier ;
(2) N 2 ; (3)Afficher (N) ;
Après exécution de l’instruction (3), la valeur 2 est affichée à l’écran.
Exemple 2 : Afficher plusieurs les valeurs de plusieurs variable ;
Var X,Y,Z : entier ; Si
X2 ; Y10 ; Z -3+Y*X ; Afficher (X,Y,Z) ;
Après exécution de la 3ème instruction les valeurs suivantes sont affichées
à l’écran :
2 10 17
Exemple 3 : Afficher le résultat d’une expression à évaluer.
Var X,Y,Z : entier ; Si
X2 ; Y10 ;
Z -3+Y*X ; Afficher (X,Y,Z) ;
La 4ème instruction peut être remplacée par
L’expression -3+y*x est évalué et sont résultat affiché.
Exemple 4 : Afficher une chaîne de caractère ( Afficher un message).
Afficher (‘Donner la valeur de X’) ;
Afficher(‘Erreur, c’’est un nombre positif que j’attendais’) ;
Exemple 4 : Afficher un message et consulter la valeur d’une variable ou
expression au même temps.
Afficher (‘la surface du cercle est :’,surf) ; Ou
Afficher (‘la surface du cercle est :’, PI * r*r) ;
Si r a la valeur 2 alors l’affichage sera comme suit : la surface du cercle est : 12.56
Série d’exercice s
Exo 1 : Ecrire un algorithme qui calcule et affiche le net à payer pour une
marchandise acheté de quantité Q et avec un prix unitaire PU.
Exo2 : Ecrire un algorithme qui lit le nom et prénom d'un stagiaire, ses notes de pascal,
fichier et anglais et affiche sa moyenne comme suit:
Si le nom et prénom entrés sont KADI Fodil le résultat affiché sera Le stagiaire KADI Fodil a une moyenne de 12,50
Exo3 : Ecrire un algorithme qui calcule la somme, le produit, la division et la
différence entre deux entiers A et B.
Exo4 : Ecrire un algorithme qui calcule la surface et le périmètre d'un rectangle. Exo5 : Ecrire un algorithme qui permute deux entiers.
Exo6 : Ecrire un algorithme qui calcule l'âge d'une personne connaissant son
année de naissance.
Chapitre III : Instructions
conditionnelles
Objectif :
A la fin du chapitre, le stagiaire sera capable de
résoudre des problèmes où existe des choix ou
alternatives et de traduire la solution en
algorithme correcte en utilisant les instructions
conditionnelles si alors sinon.
Plan :
Introduction
1-
Instruction conditionnelle simple
si
alors
2-
Instruction conditionnelle complète
si
alors sinon
Chapitre III : Instructions conditionnelles
Introduction :
On peut distinguer trois types d’instructions selon leur mode de fonctionnement :
Les Instructions séquentielles (Affectation, ecriture, lecture) qui sont exécutées l’une après l’autre sans saut ni répétition,
Dans certains programmes, certaines instructions sont soient exécutées ou sautées suivant le résultat d’un test.
Les instructions qui permettent ce choix sont des instructions conditionnelles.
III-1- Instruction conditionnelle simple SI
ALORS :
Syntaxe :
Si
expression booléenne
Alors
Début
Instruction1 ;
Instruction2 ;
.
.
Finsi
Arrivé à la première ligne (Si… Alors) la machine examine la valeur de l’expression booléenne. Si celle ci a pour valeur VRAI, elle exécute la série d’instructions. Cette série d’instructions peut être très brève comme très longue, cela n’a aucune importance. En revanche, dans le cas où la valeur de l’expression booléenne est fausse, l'ordinateur saute directement aux instructions situées après le FinSi.
Exemple :
Un entier est positif s’il est supérieur à 0.
Algorithme test_positif ; Var N : entier ;
Début
Afficher (‘Tapez un entier à tester :’) ; Lire (N) ; Afficher (‘Merci’) ; Fin. Déroulement Exemple 1 : Exemple 2 : Exemple 2 :
Ecrire un algorithme qui teste si un entier donné est multiple de 5 : Un entier est multiple de 5 si le reste de la division de l’entier et 5 est égale = 0.
Mod est une fonction qui renvoie le reste de la division. Par exemple 7 mod 5 vaut 2
Algorithme multiple_5 ; Var A : entier ;
Début
Afficher (‘Tapez un entier :’) ; Lire (A) ;
Si N > 0 Alors
Afficher (N,’est un entier positif’) ;
Tapez un entier à tester : 12 12 est un entier positif
Merci
Tapez un entier à tester : - 4 Merci
Si A mod 5 = 0 Alors
Afficher (A,’est un multiple de 5’) ;
Fin.
III-2- Instruction conditionnelle complète SI
ALORS Sinon
Syntaxe :
Si
expression booléenne
Alors
Instruction 1
Sinon
Instruction2 ;
Finsi
Ou
Si
expression booléenne
Alors
Début
Instruction1 ;
Instruction2 ;
.
.
Fin
Sinon
Début
InstructionI ;
InstructionII ;
.
.
Finsi
Dans le cas où l’expression booléenne est VRAI, et après avoir exécuté la série d'instructions 1, au moment où elle arrive au mot « Sinon », la machine saute directement à la première instruction après le « Finsi ». De même, au cas où l’expression booléenne a comme valeur « Faux », la machine saute directement à la première ligne située après le « Sinon » et exécute l’ensemble des « instructions I ».
Dans tous les cas, les instructions situées juste après le FinSi seront exécutées normalement.
Exemple :
Algorithme qui test si un nombre entier entré au clavier est positif ou négatif.
Un entier est positif s’il est supérieur à 0 et négatif s’il est inférieur à 0. Algorithme test_positif_negatif ;
Var N : entier ; Début
Afficher (‘Tapez un entier à tester :’) ; Lire (N) ; Afficher (‘Merci’) ; Fin. Déroulement Exemple 1 : Exemple 2 : Exemple 4 :
Ecrire un algorithme qui test si un entier donné est paire ou impaire. Résolution
Un nombre entier est pair s’il est divisible par deux, dans le cas contraire il est impair. Si N > 0 Alors
Afficher (N,’est un entier positif’)
Sinon
Afficher (N,’est un entier
Tapez un entier à tester : 12 12 est un entier positif
Merci
Tapez un entier à tester : - 4 -4 est un entier négatif
D’un point de vue mathématique un nombre est divisible par 2 si le reste de la division entière du nombre par 2 est égal à 0.
Illustration
1 5 est impair 8 est pair
Algorithme test_parité ; Var N : entier ;
Début
Afficher (‘Tapez un entier à tester :’) ; Lire (N) ; Fin. Déroulement Exemple 1 : Exemple 2 :
III-3- Imbrication de Si
Il se peut que dans certain cas que l’expression d’un Si ne suffise pas pour exprimer tous les cas de figure.
On a recoure dans ces cas là, à des Si imbriqués
.
Si N
mod
2 = 0 Alors (* si le reste de la division par 0est nul*)
Afficher (N,’est un entier pair’)
Sinon
Afficher (N,’est un entier
Tapez un entier à tester : 12
12 est un entier pair Tapez un entier à tester : 55 est un entier impair
5 2 8 2
Si condition1 alors Si condition2 alors Instruction1 Finsi Sinon Si condition3 alors Si condition4 alors Instruction 2 Sinon Instruction3 Finsi Finsi
Exemple : écrire un algorithme qui affiche la tarification d’une lettre selon son poids :
– Poids ≤ 20 g : 50 DA
– 20<Poids≤50g : 100 DA – Poids >50 g: 150DA
III-5- Choix multiple: Instruction selon que
L’algorithme qui Construit une calculette simple avec les opérations (+,-,*,/).Les données en entrée : Deux entiers A et B
L’opération à efféctuer soient +, *, -,/ Résultat
Affichage de résultat de l’opération choisi entre a et b. Traitement
Si l’opération choisie est + alors Afficher l’addition de a et b
Sinon si l’opération choisie est - alors Afficher la différence de a et b
Sinon si l’opération choisie est * alors Afficher le produit de a et b Sinon
Afficher le résultat de la division de a sur b
Ecriture de l’algorithme :
Algorithme calculatrice ;
Var a,b : entier ; (* comme il peuvent être de type réél*)
Op : char ; (* désigne l’opération à effectuer entre a et b *) Début
Afficher (‘Taper deux entier’) ; Lire(a,b) ;
Afficher(‘Taper l’opération que vous voulez effectuer +,*,- ou /’) ; Lire (op) ; Si op = ‘+’ alors Afficher (a,’+’,b,’=’,a+b) Sinon Si op = ‘-’ alors Afficher (a,’-’,b,’=’,a-b) Sinon Si op = ‘*’ alors Afficher (a,’*’,b,’=’,a*b) Sinon Si op = ‘/’ alors Afficher (a,’/’,b,’=’,a/b) Sinon
Afficher(‘l’’oparétion tapée n’’est pas valide’) ;
Finsi Fin.
Dans cet algorithme, nous avons un choix multiple, et suivant la valeur de op (opération), l’instruction correspondante est exécutée.
Cet ensemble d’instruction de si imbriquée peut être remplacée par un instruction à choix multiple Selon le cas.
Selon le cas est une instruction qui permet de faire un choix parmi
plusieurs possibilités, suivant la valeur d’une expression.
Syntaxe :
Selon le cas expression
Valeur1 : Instruction1 ; Valeur2 : Instruction2 ; Valeur3 : Instruction3 ; Valeurn : Instructionn ; Sinon Instruction ; Fin ;
Après évaluation de l’expression, et suivant la valeur qu’elle prend (valeur1,valeur2,….,valeurn), l’instruction correspondante s’exécute.
Autrement, l’instruction selon le cas peut être écrite : Si expression = valeur1 alors instruction1
Si expression = valeur2 alors instruction2 Si expression = valeurn alors instructionn
Remarque
• L’expression à évaluer est appelée sélecteur.
• Lorsque plusieurs instructions suivent un choix, elles doivent figurées entre début et fin.
Selon le cas expression Val1 : début I1 ; I2 ; Fin ; Val1 : début I3 ; I4 ; Fin ; Fin ;
• L’expression doit être impérativement de type ordinal (type dont les
valeurs peuvent être énumérées)
Entier, caractère, chaîne de caractère, intervalle Ne peut pas être réel.
- une constante (entier,caractère,chaîne de caractère) - une liste de constante (séparée par des virgules) - un intervalle.
Exple1 liste de constante : Selon le cas valeur
1,2,3,4,5,6,7,8,9 : afficher(‘Unité’) ;
10,11,12,13,14,15,16,17,18,19 : afficher (‘Diziane’) ; Fin ;
Exple2 Un intervalle : Selon le cas valeur
1..9 : afficher(‘Unité’) ; 10..19 : afficher (‘Diziane’) ; Fin ;
Exple3 caractère
Selon le cas valeur
‘A’,’a’: afficher(‘1ère lettre de l’alphabet’) ;
‘B’,’b’: afficher(‘2ème lettre de l’alphabet’) ; ‘z’,’Z’: afficher(‘Dernière lettre de l’alphabet’) ; Fin ;
Exple3 constante entière Selon le cas valeur 1: afficher(‘Janvier’) ;
2: afficher(‘Feverier’) ; 12: afficher(‘Décembre’) ; Fin ;
• Les cas doivent s’exclure mutuellement
Exemple :
Selon le cas X
2,3 : ……… ; 2,4 :……… ; Fin ;
• L’orsqu’une ou plusieurs instructions correspond à d’autres valeurs que celles prévues, sinon est ajouté à la fin de l’instruction. Solution de l’exercice précédent en utilisant Selon le cas
Série d’exercices :
Exo1 :
Ecrire un algorithme qui calcule le minimum entre deux nombres réels a et b .
Exo2 :
Algorithme calculatrice ;
Var a,b : entier ; (* comme il peuvent être de type réél*)
Op : char ; (* désigne l’opération à effectuer entre a et b *) Début
Afficher (‘Taper deux entier’) ; Lire(a,b) ;
Afficher(‘Taper l’opération que vous voulez effectuer +,*,- ou /’) ; Lire (op) ; Selon le cas op ‘+’ : Afficher (a,’+’,b,’=’,a+b) ; ‘-‘ : Afficher (a,’-’,b,’=’,a-b) ; ‘*’ : Afficher (a,’*’,b,’=’,a*b) ; ‘/’ : Afficher (a,’/’,b,’=’,a/b) ; Sinon
Afficher (‘opération invalide’) ; Fin ;
Ecrire un algorithme qui calcule le maximum entre trois nombres réels a , b et c.
Exo3 :
Soit l’instruction conditionnelle suivante : Si (i <= 100) et (j >2) alors
Cpt cpt + 1 Sinon
Cpt cpt -1 ;
Pour quelle condition l’instruction Cpt cpt -1 est –elle exécutée ?
Exo4 : Evaluer les expressions suivantes :
(i >= 100) et (trouve = faux) pour i = 80, trouve = vrai I = 100, trouve = faux
(j >= 1) ou (i <= N) pour j = 1, i = 3, N = 10 J = 0, i = 10, N = 10
J = 10, i = 1, N = 10
Exo5 :
Ecrire la séquence d’instructions qui traduit l’écriture suivante : si x<2 alors y =2x -4si x≥2 alors y = 4- 2x
Exo6 :
Dans un algorithme, Les expressions booléennes sont généralement évaluées à l’aide de comparaisons.
Est-ce que la comparaison suivante est valable ? Sinon comment peut on l’exprimer correctement.
agemin ≤age≤age max
Exo7 :
Un magasin offre eune réduction sur achat dans les conditions suivantes :
• Si le montant d’achat est inférieur à 350 DA, il n’y a pas de réduction,
• Si le montant d’achat est compris entre 350 DA et 600 Da, le taux de la réduction est de 2 %.
• Si le montant d’achat est supérieur à 600 DA, le taux de réduction est de 3%.
Ecrire l’algorithme qui calcule le net à payer,
Sachant : net à payer = montant d’achat – montant de réduction Montant de réduction = montant d’achat * taux de réduction
Exo8 :
Ecrire un algorithme qui résous une équation de second degré ax²+bx+c=0
Exo9 :
Ecrire un algorithme qui lit trois notes d’examens et leurs coefficients, puis
affiche la moyenne précisant Eliminé pour une moyenne inferieur à 10 et Admis si la moyenne est supérieur ou égale à 10 avec une mention Passable pour une moyenne <12 et Assez Bien pour une moyenne < 14 et Bien pour une
moyenne < 16 et enfin Très bien pour une moyenne ≥16
Exo10 :
Ecrire un algorithme qui lira au clavier l’heure et les minutes, et il affichera l’heure qu’il sera une minute plus tard. Par exemple, si l'utilisateur tape 21 puis 32, l'algorithme doit répondre :
"Dans une minute, il sera 21 heure(s) 33".
NB : on suppose que l'utilisateur entre une heure valide. Pas besoin donc de la vérifier.
Exo11 :
De même que le précédent, cet algorithme doit demander une heure et en afficher une autre. Mais cette fois, il doit gérer également les secondes, et afficher l'heure qu'il sera une seconde plus tard.
Par exemple, si l'utilisateur tape 21, puis 32, puis 8, l'algorithme doit répondre : "Dans une seconde, il sera 21 heure(s), 32 minute(s) et 9 seconde(s)".
NB : là encore, on suppose que l'utilisateur entre une date valide.
Exo12 :
Les habitants de Aielmaken paient l’impôt selon les règles suivantes : • les hommes de plus de 20 ans paient l’impôt
• les femmes paient l’impôt si elles ont entre 18 et 35 ans • les autres ne paient pas d’impôt
Le programme demandera donc l’âge et le sexe de l’habitant, et affichera s’il paye l’impôt ou non.
Exo13 (solution serie si alors.docx)
De deux personnes dont on connaît le nom, le prénom et la date de naissance (sous la forme JOUR, MOIS, ANNEE) on veut afficher le nom et prénom de la plus jeune.
Exo14 :