• Aucun résultat trouvé

[PDF] Support complet pour debuter et avancer avec les algorithmes | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Support complet pour debuter et avancer avec les algorithmes | Cours informatique"

Copied!
45
0
0

Texte intégral

(1)

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

(2)

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

(3)

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.

(4)

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

(5)

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

(6)

• 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)

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

(8)

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 { }

(9)

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.

(10)

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

(11)

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 ;

(12)

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

(13)

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

(14)

É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

(15)

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%

(16)

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

(17)

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.

(18)

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 ;

(19)

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

(20)

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.

(21)

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+C2-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+c2-18

2- 4*3 l’addition qui suit la * est de priorité inférieure. Le résultat est 12

L’expression devient : 12+c2-18

3- c2 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 :

(22)

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

(23)

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.

(24)

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.

(25)

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

(26)

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

(27)

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) ;

Yx*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.

(28)

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

(29)
(30)

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

X2 ; Y10 ; 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

X2 ; Y10 ;

Z -3+Y*X ; Afficher (X,Y,Z) ;

La 4ème instruction peut être remplacée par

(31)

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

(32)

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.

(33)

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

(34)

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 :

(35)

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’) ;

(36)

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

(37)

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

(38)

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 0

est 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

(39)

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

(40)

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.

(41)

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.

(42)

- 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

(43)

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 ;

(44)

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 :

(45)

"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 :

Références

Documents relatifs

aspect prédomine dans les épithètes de la Ville ; il pouvait difficilement en être autrement dans la mesure où la cité du dieu Amon -présenté comme le démiurge

La diversité des personnalités transhumanistes présentées dans cette étude constitue une limite. En effet, le choix de ces personnalités est limité premièrement par la restriction

O manejo inadequado dos solos impede a sustentabilidade do ecossistema (ALVARENGA 2002) e as bacias hidrográficas são unidades físicas que podem ser

Self-supervised methods, wherein an agent learns representations solely by observing the results of its actions, become crucial in environments which do not provide a dense

Bien que cette méthode ait fait ses preuves dans l’étude des carrières criminelles, elle a été peu utilisée dans la compréhension des trajectoires de victimisation en

En dehors de ces formes particulières, l'action collective peut se nourrir d'une manière ou d'une autre des conséquences qu'elle est capable d'anticiper (donc de connaître en pensée)

ىمع ةديرجلا تثدحتو ةيسفن ضرملاو عوجلا فم ةلاح يف ـىو ءلاؤى ( ىوكش ـيل عمست لاو ةمى ىمع فوظفاحم ةيرئازجلا ـيتيموقب فوزتعم ـيف ةناكتسا وأ ؽمق ةملبع ـييمع ىرت

اعباس : :جاحلا نب ناميلس يديس نم لجر ءايلوأ ظ نيحلاصلا يدلايملا رشع سماخلا نرقلا يف ره ( 3 ) ، عم شاع هيبأ هتايح يف و وه نم ءايلولأا مهل دوهشملا و