Introduction à la programmation -...
Transcript of Introduction à la programmation -...
![Page 1: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/1.jpg)
Introduction à la programmationBY KSIMO MAURE
SMARAFB Groupe : smc fsa 2012
http://www.facebook.com/groups/522890651069613/
![Page 2: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/2.jpg)
Définition d’un ordinateurMachine qui : saisit (périphériques d’entrée), stocke (mémoire), traite (programmes) restitue (périphériques de sortie) des informations
![Page 3: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/3.jpg)
Schéma fonctionnel
UCUCDonnDonnééesesInstructionsInstructions RRéésultatssultats
SaisieSaisie RestitutionRestitutionTraitementTraitement
PPéériphriphéériques de sortieriques de sortie
Ecran Modem
ImprimanteHaut parleur
PPéériphriphéériques driques d’’entrentrééee
Modem
Micro
Clavier
Souris
CaméraCD-ROM
Joystick Scanner
MMéémoires auxiliairesmoires auxiliaires
Disquette
Disque dur
MMéémoiremoire
![Page 4: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/4.jpg)
Préambule
• Pour résoudre un problème donné à l’aide d’un ordinateur, l’utilisateur doit mettre au point un programme et le faire exécuter par la machine.
• Un programme est une succession logique et ordonnée d’instructions.
• L’ordinateur se charge de traiter les instructions du programme et de restituer les résultats demandés en fonction des données qui lui sont fournies.
SV3 2012-2013boukhris4
![Page 5: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/5.jpg)
Pourquoi un cours d’ "Algo" ?•Objectif: obtenir de la «machine» qu’elle effectue un travail ànotre place
•Problème: expliquer à la «machine» comment elle doit s'y prendre
Mais... comment le lui dire ? Comment le lui apprendre ? Comment s'assurer qu'elle fait ce travail aussi bien que nous ? Mieux que nous?
![Page 6: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/6.jpg)
Objectif de cet enseignement
•résoudre des problèmes «comme» une machine
•savoir expliciter son raisonnement
•savoir formaliser son raisonnement
•concevoir (et écrire) des algorithmes:
séquence d’instructions qui décrit comment
résoudre un problème particulier
![Page 7: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/7.jpg)
LES ÉTAPES D’UN PROGRAMME INFORMATIQUELe salaire des représentants de la société Angélique intègre une commission de 12 % du chiffre d’affaires réalisé.
Analysons les étapes du programme informatique permettant de calculer le montant de la commission.
ENTRÉES
SORTIES
TRAI-TE-
MENTS
Un programme est une liste d’instructions
fournies à un ordinateur dans un langage
approprié dans le but de réaliser un ensemble de
tâches précises.
Affichage d’une invite de saisie à l’intention de
l’utilisateur.Affectation de la variable NOMREPR par la valeur « LAGACHE » saisie au
clavier.
Invite de saisie
Affichage de la variable saisie NOMREPR
«LAGACHE » et de la variable calculée COM « 174,84 » précédé de
libellés explicatifs.
Affectation de la variable COM par multiplication
de la valeur de la variableCA par la valeur de la
constante TAUXCOM :« 1457*0.12 ».
Affectation de la variable CA par la valeur « 1457 » saisie
au clavier.
CALCULCOMM
Corinne ZAMBOTTO adapté du travail de Stéphane Le gars 1/8
Logique Algorithmique
![Page 8: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/8.jpg)
CALCULCOMM
VARIABLES ET CONSTANTESExécutons à nouveau le même programme pour calculer la commission du secondreprésentant.
Une variable est une donnée dont la valeur change par saisie ou par
traitement au cours de l’exécution du programme.
Une constante est une donnée dont la valeur est fixe et préalablement
déclarée.
Toute variable utile au programme doit être déclarée préalablement. On doit luit
attribuer un nom et un type.
Pour modifier une constante, il faudra intervenir dans le programme.
NOMREPR : Chaîne de caractèresCA : Numérique EntierCOM : Numérique RéelIl existe également des types Date et Logique
TAUXCOM 0.12
De nouvelles valeurs sont affectées aux variables et remplacent (écrasent) les précédentes.
Le type conditionne les opérations possibles et doit être respecté lors de la saisie :- L’affectation de lettres pour la variable CA entraînera une erreur- L’affectation de chiffres pour la variable NOMREPR sera considérée comme du texte.
Toutes les instructions de ce programme sont exécutées l’une
après l’autre. Le programme respecte une STRUCTURE
SÉQUENTIELLE.Logique Algorithmique Corinne ZAMBOTTO adapté du travail de Stéphane Le
gars 2/8
![Page 9: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/9.jpg)
Étapes du processus de programmation
Le processus de programmation comprend les étapes suivantes :
• Spécifier (تحديد) le problème à résoudre ; il s’agit de préciser quel est le problème posé, de déterminer les besoins et de fixer les objectifs ;
• Trouver un algorithme comme résultat de la spécification ;
• Connaître un langage compréhensible par la machine ;• Écrire le programme puis le tester.
La démarche à suivre dans la résolution d’un problème en informatique est donc :
![Page 10: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/10.jpg)
Étapes du processus de programmation
{Analyse, propositionde solutions,décompositions}
Problème
Algorithme
Programme
Exécution
{Traduction del’algorithme en unlangage deprogrammation}
Résultats
![Page 11: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/11.jpg)
Définition et objectif d’un algorithme
• Un algorithme est la description de la solution d’un problème sous la forme d’une suite finie d’opérations àeffectuer sur les données du problème.
• Pour fonctionner, un algorithme doit contenir uniquement les instructions compréhensibles par celuiquidevra l’exécuter.
• Son fonctionnement nécessite un certain ensemble d’objets, appelé environnement de l’algorithme.
![Page 12: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/12.jpg)
Structure d’un algorithme
Algorithme « Nom_Algorithme »
ConstA : Entier (ou Réel, Caractère, Booléen, …)
VarX, Y,… : Entier (ou Réel, Caractère, Booléen, …)
Début
Instructions
Fin
Type des variables
Déclaration des variables
Lignes de commande
Entête
![Page 13: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/13.jpg)
Instructions élémentaires en algorithmique
Le langage algorithmique offre trois instructions
élémentaires de base :
• l’affectation ;
• l’entrée de données ;
• la sortie de données.
![Page 14: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/14.jpg)
Instruction d’affectation : Variable
La base de l'informatique est le stockage et la manipulation de données. Ceci se fait essentiellement par le biais de variables(stockage) et d'instructions d'affectation(transfert d'information).
Une variable est caractérisée par :• un nom symbolique (identificateur) ;• un type ;• une valeur.
![Page 15: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/15.jpg)
Instruction d’affectation : Variable (suite)
Le nom symbolique, ou identificateur, attribuéaux objets doit respecter quelques règles :
• Commencer obligatoirement par une lettre ;• La suite des caractères peut être composée
de lettres non accentuées (a..z, A..Z), de chiffres (0..9) ou du caractères de soulignement ;
• Il ne doit contenir ni espace ni caractères spéciaux.
![Page 16: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/16.jpg)
Instruction d’affectation : Variable (suite)
Remarque :De préférence, le nom (identificateur) est choisi en rapport avec le rôle de l’objet pour faciliter la lecture de l’algorithme àun autre programmeur.
Identificateur incorrectIdentificateur correct
Nombre JoursDurée Travail1mois
Ce_nombrelePGCDJours1
![Page 17: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/17.jpg)
Instruction d’affectation : Variable (4)
Le type d’une variable permet de :• définir l’ensemble de valeurs que peut prendre la
variable ;• fixer la taille, en cases mémoires (octets), de la variable ;• définir la nature des opérations autorisées sur la
variable.
Les types utilisés en langage algorithmique sont :• Entier pour représenter les entiers positifs ou négatifs ;• Réel pour représenter les nombres à virgule ;• Caractère pour représenter des caractères ;• Chaîne pour représenter des phrases ;• Booléen pour une valeur logique (« vraie » ou « faux » ;• Types définis par le programmeur, etc.
![Page 18: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/18.jpg)
Affectation d’une valeur à une variable
L’affectation permet d’assigner une valeur à un objet. Elleest représentée en algorithmique par le symbole :
Syntaxe :Identificateur valeur
Le membre droit d’une affectation (valeur) peut être soit :• une variable de même type que « Identificateur » ;• une constante de même type que « Identificateur » ;• une expression dont l’évaluation produit un résultat final
de même type que « Identificateur ».
![Page 19: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/19.jpg)
Affectation d’une valeur à une variable (suite)
Les affectations suivantes sont incorrectes :16 valeurX*Y 15
Le membre gauche d’une affectation (lvalue) doit, en effet, être une variable déclarée. Il doit correspondre à une case mémoire qui peut recevoir une valeur.
De même, la partie droite d’une affectation doit être une quantité bien définie, i.e. une structure ayant une évaluation qui fournit une valeur résultat.
Les affectations suivantes sont correctes :Pi 4*atan(1.0)DegRad Pi/180
![Page 20: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/20.jpg)
Affectation d’une valeur à une variable (suite)
Les types de deux parties de l’affectation doivent être lesmêmes.
Exemple d’affectation 1 :Soit deux variables X et Y de type entier. Supposons que lesvariables X et Y contiennent respectivement les valeurs 16 et25.Que valent les valeurs de X et Y après les instructionsd’affectation suivantes ?
X X + Y Instruction 1Y X - Y Instruction 2X X - Y Instruction 3
![Page 21: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/21.jpg)
Démarche pas à pas :
X contient 16 et Y contient 25, veut dire que les casesmémoire nommées respectivement X , Y et qui sont situéesen mémoire aux adresses adr1200 et adr1204 (par exemple) contiennent respectivement les valeurs 16 et 25.
Affectation d’une valeur à une variable (suite)
16
Xadr1200
25
Yadr1204
![Page 22: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/22.jpg)
Affectation d’une valeur à une variable (suite)
X X + Y Instruction 1Y X - Y Instruction 2X X - Y Instruction 3
L’instruction 1 peut être explicitée comme ceci :1) Évaluation de l’expression X + Y
(consistant en l’addition des valeurs de X et Y) ;2) Affectation du résultat de l’expression X + Y à X.
16
Xadr1200
25
Yadr1204
+
41
![Page 23: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/23.jpg)
Affectation d’une valeur à une variable (suite)
• Après l’instruction 1, X contient 41 et la variable Y n’a pas été modifiée ;
• Après l’instruction 2, X vaut 41 (elle n’a pas été modifiée) et la variable Y contient 16 ;
• Après l’instruction 3, X contient 25 et Y 16.
Un peu de programmation C++ :
41
Xadr1200
25
Yadr120441
16
![Page 24: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/24.jpg)
Algorithme « Affectation1 »Var
X, Y : entierDébut
X 16Y 25X YY X
Fin
Affectation d’une valeur à une variable (suite)
• Dans les deux algorithmes ci-dessus, les instructions sont exécutées dans l'ordre, séquentiellement : l'une après l'autre.
• Du fait de cet ordre séquentiel, les deux séquences ci-dessus ont des effets très différents.
• Les valeurs de sorties pour les variables X et Y sont : 25 pour l’algorithme 1 et 16 pour l’algorithme 2.
Algorithme « Affectation2 »Var
X, Y : entierDébut
X 16Y 25Y XX Y
Fin
Exemple d’affectation 2 :
![Page 25: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/25.jpg)
Remarques :
• L’ensemble des instructions 1, 2 et 3 permet de permuter les valeurs de deux variables.
• L’opérateur d’affectation détruit complètement et définitivement le contenu d’une variable.
• Pour permuter le contenu des deux variables X et Y sans les opérations d’addition et de soustraction, on peut utiliser une 3e variable C de même type :
Affectation d’une valeur à une variable (suite)
![Page 26: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/26.jpg)
Instructions élémentaires en algorithmique
Le langage algorithmique offre trois instructions
élémentaires de base :
• l’affectation ;
• l’entrée de données ;
• la sortie de données.
![Page 27: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/27.jpg)
27
• Elle permet d’introduire la valeur d’une variable.
• En langage algorithmique, l’expression utilisée pour la lecture de données est :
Lire(maVar)
• Cette instruction permet d’affecter à la variable maVar, la valeur lue sur le périphérique d’entrée.
Instruction d’entée
![Page 28: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/28.jpg)
Instructions élémentaires en algorithmique
Le langage algorithmique offre trois instructions
élémentaires de base :
• l’affectation ;
• l’entrée de données ;
• la sortie de données.
![Page 29: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/29.jpg)
• La sortie, qui constitue le résultat, peut être affichée àl’écran, imprimée sur papier ou stockée sur un support de sauvegarde.
• En langage algorithmique, l’expression utilisée pour la sortie de données est :
Ecrire(monResultat)
• Cette instruction permet de transférer la valeur monResultat vers le périphérique de sortie.
Instruction de sortie
![Page 30: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/30.jpg)
l'importance de l'algorithme
Un algorithme, traduit dans un langage compréhensible par l’ordinateur (ou langage de programmation, le C++), donne
un programme, qui peut ensuite être exécuté, pour effectuer le traitement souhaité
Un premier algorithme
![Page 31: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/31.jpg)
• Un organigramme est une représentation schématique d’un algorithme mettant en valeur sa structure. Il permet de mieux présenter les différents modules de traitement et d’expliquer la succession des opérations d’un travail.
• Les symboles suivants sont utilisés dans un organigramme :
Début : démarrage d’un traitement.
Opération : calcul ; modifie une variable parl’affectation d’une nouvelle valeur.
Instruction d’entrée/sortie : entrée dedonnées standard à partir du clavier ousortie de données standard vers l’écran.
Fin : arrêt d’un traitement.
Organigramme
Début
X X+ Y
Fin
![Page 32: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/32.jpg)
Pi = 3.14159
• Proposer une analyse pour calculer et afficher le périmètre lePerimetre d’un cercle après saisie au clavier de son rayon leRayon.
• Proposer ensuite un algorithme, un organigramme et un programme C++.
Analyse du problème :
Exemple
leRayon
lePerimetre
![Page 33: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/33.jpg)
Un premier algorithmeAlgorithmeElèveAuCarré
{Cet algorithme calcule le carré du nombre que lui fournit l'utilisateur}
variablesunNombre, sonCarré: entiers {déclarations: réservation
d'espace-mémoire}début
{préparation du traitement}
afficher("Quel nombre voulez-vous élever au carré?")
saisir(unNombre)
{traitement : calcul du carré}
sonCarré ←unNombre×unNombre
{présentation du résultat}
afficher("Le carré de ", unNombre)
afficher("c'est ", sonCarré)
fin
![Page 34: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/34.jpg)
Algorithme :
Exemple (suite)
Algorithme PerimetreCercle
Constréel Pi 3.14159 :
Var
lePerimetre, leRayon : réels
Début
Lire(leRayon)
lePerimetre 2*Pi*leRayon
Écrire(lePerimetre)
Fin
![Page 35: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/35.jpg)
Organigramme :
Exemple (suite)
Début
Pi 3.14159
lePerimetre 2*Pi*leRayon
Lire(leRayon)
Ecrire(lePerimetre)
Fin
![Page 36: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/36.jpg)
Exemple (suite)Algorithme ParExemple/Saisit un prix HT et affiche le prix TTC correspondant/constantes
(TVA : réel) 20.6(Titre : chaîne) Résultat
VariablesprixHT, prixTTC : réels /déclarations/
début /préparation du traitement/ecrire("Donnez-moi le prix hors taxe :");lire(prixHT);prixTTC ; prixHT * (1+TVA/100) /calcul du prix TTC/ecrire(Titre) : / présentation du résultat/ecrire(prixHT, " Dh H.T. devient ", prixTTC, « Dh T.T.C.");
Fin
![Page 37: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/37.jpg)
![Page 38: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/38.jpg)
Pourquoi les ordinateurs sont-ils « binaires » ?
qu’est-ce qu’une information binaire ? C’est une information qui ne peut avoir que deux états : par exemple,
•ouvert - fermé, •libre – occupé, •blanc – noir, •vrai – faux, •etc.
![Page 39: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/39.jpg)
Les dispositifs physiques permettant de stocker ce genre d’information, :
•chargé – non chargé, (mémoire vive « RAM ») •haut – bas, (disquette, disque durs, …)•troué – non troué. (CD-ROM)
…..ce sont ceux dont se sert un ordinateur pour stocker les informations.
Pourquoi les ordinateurs sont-ils « binaires » ?
![Page 40: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/40.jpg)
base décimale.
Lorsque on écrit 8439, ?
Décomposons la lecture chiffre par chiffre, de gauche à droite:
8439, c’est 8000 + 400 + 30 + 9. 8000, :8 x 1000, 8 est le quatrième chiffre en partant
de la droite400, : 4 x 100, 4 est le troisième chiffre30, : 3 x 10, 3 est le deuxième chiffre9, : 9 x 1, 9 est le premier chiffre
8 439 = 8 x 103 + 4 x 102 + 3 x 101 + 9 x 100
![Page 41: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/41.jpg)
base binaire
le plus simple est d’utiliser : les fameux 0 et 1. le choix du 0 et du 1 est une pure convention,
Remarque : Une information binaire (0 ou 1) s’appelle un bit (bit).
Un groupe de huit bits s’appelle un octet (byte).
![Page 42: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/42.jpg)
2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 28 = 256 possibilités
Octet (Byte)
de 1 à 256, ou de 0 à 255, ou de –127 à +128.
Si le nombre > 256 ?on va donc être contraint de mobiliser plus d’un octet.
base binaire
![Page 43: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/43.jpg)
En effet,avec deux octets, on a 256 x 256 = = 216 = 65 536 possibilité
En utilisant 4 octets, on passe à 256 x 256 x 256 = 232 = 16 777 216 possibilités.
base binaire
![Page 44: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/44.jpg)
Prenons un octet au hasard
1 1 0 1 0 0 1 1
= 1 x 128 + 1 x 64 + 1 x 16 + 1 x 2 + 1 x 1
= 128 + 64 + 16 + 2 + 1 = 211
1 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20
![Page 45: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/45.jpg)
Inversement, Prenons, par exemple, 186.
Dans 186, on trouve 1 x 128, soit 1 x 27. on retranche 128 de 186 et on obtiens 58.
Dans 58, on trouve 0 x 64, soit 0 x 26. on ne retranche rien.‘’ 58, ‘’ 1 x 32, ‘’ 1 x 25 : 58 -32 = 26.‘’ 26, ‘’ 1 x 16, ‘’ 1 x 24 : 26 -16 = 10.
‘’ 10, ‘’ 1 x 8, ‘’ 1 x 23 : 10-8 = 2.‘’ 2, ‘’ 0 x 4, ‘’ 0 x 22. on ne retranche rien.
‘’ 2, ‘’ 1 x 2, ‘’ 1 x 21 : 2 – 2 = 0.‘’ 0, ‘’ 0 x 1, soit 0 x 20. on ne retranche rien.
186 est représenté par : 1 0 1 1 1 0 1 0
![Page 46: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/46.jpg)
• Les algorithmes précédents présentent un enchaînement d’exécution linéaire et séquentiel. Dans la pratique, il peut exister des situations où l’on exige l’exécution d’un ensemble d’instructions si une condition donnée est exigée. Ce type de traitement est dit « traitement conditionnel ».
Traitement conditionnel
![Page 47: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/47.jpg)
• La syntaxe algorithmique est la suivante :
Si (condition) alors
Instruction(s)FinSi
• L’instruction ou ensemble d’instructions est(sont) exécutée(s) si «condition » est réalisée (valeur booléenne « vraie »).
Traitement conditionnel (suite)
![Page 48: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/48.jpg)
• L’organigramme associé est le suivant :
Traitement conditionnel (suite)
Condition
Instruction(s)
oui
non
![Page 49: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/49.jpg)
La syntaxe est la suivante :• Si seule une instruction est exécutée :
si (<Condition>) alors<Instruction> ;
FinSi• Si plusieurs instructions sont exécutées :
SI (<Condition>) alors<Instruction 1> ;<Instruction 2> ;… ;<Instruction N> ;
FinSI
Traitement conditionnel (suite)
Une seule ligne de
commande
Le bloc d’instructions (une instruction par ligne)
est délimité par { }
![Page 50: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/50.jpg)
Exemple :• Ecrire un programme qui affiche la valeur absolue d’un
nombre réel saisi au clavier.
Algorithme ValAbsVar
X : réelDébut
Écrire("Saisir un nombre réel");Lire(X);Si(X < 0)
X -X;FinSiÉcrire("La valeur absolue est", X);
Fin
Traitement conditionnel (suite)
Début
Lire(X)
X -X
Ecrire(X)
Fin
X < 0
![Page 51: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/51.jpg)
• La syntaxe algorithmique est la suivante :
Si (condition) alors
Instruction(s) 1 "vrai"Sinon
Instruction(s) 2 "faux"FinSi
Traitement conditionnel et alternatif (suite)
![Page 52: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/52.jpg)
• L’organigramme associé est le suivant :
Condition
Instruction(s) 2 "faux"Instruction(s) 1 "vrai"
Traitement conditionnel et alternatif (suite)
![Page 53: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/53.jpg)
Exemple : Affichage de la valeur absolue :
Algorithme ValAbsVar
X, Y : réelDébut
Écrire("Saisir un nombre réel");Lire(X);Si(X < 0)
X -X;Écrire("La valeur absolue est", X);Sinon
Y X;Écrire("La valeur absolue est", Y);FinSi
Fin
Début
Lire(X)
Y -X
Ecrire(Y)
Fin
X < 0
Y X
Traitement conditionnel et alternatif (suite)
![Page 54: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/54.jpg)
Si(lentier = 0)Écrire("Vous avez saisi Zéro")
SinonSi (lentier = 1)
Écrire("Vous avez saisi Un")Sinon
Si (lentier = 2)Écrire("Vous avez saisi Deux")
SinonSi (lentier = 3)
Écrire("Vous avez saisi Trois")Sinon
Traitement alternatif (suite)
![Page 55: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/55.jpg)
L’algorithme précédent comporte beaucoup d’imbrication de plusieurs Si. La primitive CAS (Selon) facilite énormément l’écriture de ce genre d’algorithme.
Syntaxe algorithmique : Organigramme :
Cas (variable)val_1 : inst_1val_2 : inst_2...val_n : inst_nSinon : inst_d
FinCas
Traitement alternatif (suite)
Variable
inst_1 inst_2 … inst_n inst_d
Val_1 Val_2 Val_n Val_d
![Page 56: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/56.jpg)
Étude par un exemple :• On désire écrire un algorithme qui permet la
saisie d’un entier compris entre 0 et 4, ensuite l’algorithme doit afficher le nombre saisi en lettre.
Traitement alternatif
![Page 57: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/57.jpg)
Si(lentier = 0)Écrire(‘Vous avez saisi Zéro’);Sinon Si (lentier = 1)
Écrire(‘Vous avez saisi Un’);Sinon Si (lentier = 2)
Écrire(‘Vous avez saisi Deux’); Sinon Si (lentier = 3)
Écrire(‘Vous avez saisi Trois’);SinonSi (lentier = 4)
Écrire(‘Vous avez saisi Quatre’);Sinon
Écrire(‘L’entier saisi est > à 4’);FinSi
FinSiFinSi
FinSiFinSi
Fin
![Page 58: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/58.jpg)
Algorithme :Algorithme afficheEntierVar
lentier : entierDébut
Écrire(‘Saisir un nombre entier’);Lire(lentier);Cas (lentier)
0 : Écrire("Vous avez saisi Zéro");1 : Écrire("Vous avez saisi Un");2 : Écrire("Vous avez saisi Deux");3 : Écrire("Vous avez saisi Trois");4 : Écrire("Vous avez saisi Quatre");Sinon : Écrire("L’entier saisi est > à 4");
FinCasFin
Traitement alternatif (suite)
![Page 59: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/59.jpg)
Selon abréviation"M" : afficher( " Monsieur " );"Mme" : afficher( " Madame " );"Mlle" : afficher( " Mademoiselle " );autres : afficher( " Monsieur, Madame " );
FinSelon
Comparer:si (abréviation = "M’’ )
afficher( "Monsieur" );sinon si (abréviation = "Mme’’)
afficher("Madame");sinon si (abréviation = "Mlle’’)
afficher( "Mademoiselle" );sinon afficher( "Monsieur,Madame " )
fsifsi
fsi
![Page 60: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/60.jpg)
Ecrire un algorithme qui demande deux nombres àl’utilisateur et l’informe ensuite si le produit est négatif ou positif (on inclut cette fois le traitement du cas où le produit peut être nul).
Attention, on ne doit pas calculer le produit !
![Page 61: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/61.jpg)
Variables m, n en EntierDébutEcrire ("Entrez deux nombres : ") ; Lire m, n; Si m = 0 OU n = 0 Alors
Ecrire ("Le produit est nul") ;SinonSi ((m < 0 ET n < 0) OU (m > 0 ET n > 0)) Alors
Ecrire ("Le produit est positif") ; Sinon
Ecrire ("Le produit est négatif ");Finsi
FinsiFin
Solution
![Page 62: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/62.jpg)
Un magasin de reprographie facture 0,30 dh les dix premières photocopies, 0,20 dh les vingt suivantes et 0,10 dh au-delà .
Ecrire un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondante.
![Page 63: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/63.jpg)
Variables n, p : Numérique; Début Ecrire (" quel est le Nombre de photocopies? : ") ; Lire n ; Si (n <= 10) Alors
p ← n * 0,3;SinonSi (n <= 30) Alors
p ← 10 * 0,30 + (n – 10) * 0,20;Sinon
p ← 10 * 0,30 + 20 * 0,20 + (n – 30) * 0,10;FinSi
Ecrire ("Le prix total est: ", p) ; Fin
Solution
![Page 64: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/64.jpg)
Quand il faut répéter un traitement ...!!?
![Page 65: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/65.jpg)
Instructions répétitives (boucles)La résolution de quelques problèmes passe parfois par la réalisation d’une action d’une manière répétitive.Par exemple, saisir les noms et les prénoms des étudiantsEn informatique , on distingue deux types de boucles :
Boucles pour les quelles le nombre d’itération est connu àl’avance
(la structure POUR).
Les boucles pour les quelles le nombre d’itération n’est pas connu à l’avance.
(Les structures TANT QUE et REPETER),
65
![Page 66: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/66.jpg)
La boucle « pour »pour <var> valnit à valfin [par <pas>] faire
traitement /suite d’instructions/
fpour
Fonction :répéter une suite d’instructions un certain nombre de fois
![Page 67: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/67.jpg)
![Page 68: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/68.jpg)
Variables N, i en EntierDebutEcrire ( "Entrez un nombre : ");Lire N;Ecrire ("La table de multiplication de ", N, " est : ");Pour (i ← 1 à 10) faireEcrire (N, " x ", i, " = ", N*i );
FinpourFin
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) :
![Page 69: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/69.jpg)
La table de multiplication de 7 est : 7 x 1 = 7
7 x 2 = 147 x 3 = 21
…7 x 10 = 70
![Page 70: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/70.jpg)
Ecrire un algorithme qui fait le total d’un nombre de valeur numériques demandées successivement àl’utilisateur,
![Page 71: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/71.jpg)
Algorithme FaitLeTotal/Cet algorithme fait la somme des nbVal données qu'il saisit/variables nbVal, cpt : entiersvaleur, totalValeurs : réelsdébut
écrire("Combien de valeurs voulez-vous saisir ?");lire(nbVal);totalValeurs 0;pour (cpt 1 à nbVal) faire
ecrire("Donnez la ‘’, cpt , ‘’ ième valeur :");lire(valeur);totalValeurs totalValeurs + valeur;
fpourecrire("Le total des ", nbVal, "valeurs est " , totalValeurs );
fin
![Page 72: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/72.jpg)
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres :
![Page 73: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/73.jpg)
Variables N, i, PG en EntierDebutPG ← 0Pour i ← 1 à 20
Ecrire ("Entrez un nombre : ");Lire (N);Si (N > PG) Alors
PG ← N;FinSi
Fpourécrire ("Le nombre le plus grand était : ", PG);Fin
![Page 74: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/74.jpg)
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce
![Page 75: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/75.jpg)
Variables N, i, PG; IPG en EntierDebutPG ← 0Pour i ← 1 à 20
Ecrire ("Entrez un nombre : ");Lire (N);Si (i = 1 ou N > PG) Alors
PG ← N;IPG ← i;
FinSifpourEcrire ("Le nombre le plus grand était : ", PG);Ecrire ("Il a été saisi en position numéro ", IPG);Fin
![Page 76: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/76.jpg)
Variable Rep en Caractère
Début
Ecrire ("Voulez vous un partir à Marrakech?(O/N))‘’) ;
Lire (Rep);
Si (Rep <> "O" et Rep <> "N") Alors
Ecrire ("Saisie erronnée. Recommencez");
Lire Rep;
FinSi
ecrire (« pour quelle période?");
Fin
![Page 77: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/77.jpg)
Variable Rep en Caractère
Début
Ecrire ("Voulez vous un partir à Marrakech?(O/N))‘’) ;
Lire (Rep);
Tanque (Rep <> "O" et Rep <> "N") faire
Ecrire ("Saisie erronnée. Recommencez");
Lire Rep;
Fintq
Fin
![Page 78: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/78.jpg)
Syntaxe algorithmiqueOrganigramme
Tant que (Condition) FaireInstruction(s)
FinTantque
Pour ce type de boucle, le test de contrôle est effectué audébut de la boucle.
L’instruction est exécutée tant que la condition est vérifiée (valeur booléenne à VRAI).
Si la condition est fausse d’entrée, l’instruction n’est jamais exécutée.
Traitement itératif : Tant que … Faire
Condition
Instruction(s)
non
oui
![Page 79: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/79.jpg)
Fonction:répéter une suite d’instructions tant qu’une condition est remplie
![Page 80: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/80.jpg)
La boucle TANT QUE …
80
évaluation du booléen
si sa valeur est vraie,alors le bloc instructions (1) est exécuté
le booléen est à nouveau évalué
si sa valeur ...
arrêt de la boucle quand le booléen devient faux
le programme continue en séquence avec les instructions(2).
Fonctionnement :
Langage intermédiaire
Tant que booléen faire instructions (1)...
Ftqinstructions (2) …
![Page 81: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/81.jpg)
Algorithme FaitLeTotal/Cet algorithme fait la somme des nbVal données qu'il saisit/variables nbVal, cpt : entiersval, totalValeurs : réelsdébut
écrire("Combien de valeurs voulez-vous saisir ?");lire(nbVal);totalValeurs 0;pour (cpt 1 à nbVal) faire
ecrire("Donnez une valeur :");lire(val);totalValeurs totalValeurs + val;
fpourecrire("Le total des ", nbVal, "valeurs est " ;
fin
![Page 82: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/82.jpg)
Algorithme FaitLeTotalvariables val, totalValeurs : entiersDébuttotalValeurs ← 0ecrire("Donnez une valeur, -1 pour finir.");lire(val);tant que (val <>-1) faire
totalValeurs ← totalValeurs+ val;ecrire("Donnez une autre valeur, -1, pour finir.");lire(val);
Ftqecrire("La somme des valeurs saisies est", totalValeurs);Fin
![Page 83: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/83.jpg)
La boucle REPETER …
83
le bloc instructions (1) est exécuté une fois
le booléen est évalué
si sa valeur est vraie, le bloc d’instructions (1) est à nouveau exécuté
le booléen est à nouveau évalué …
arrêt de la boucle quand le booléen devient faux
le programme continue en séquence avec les instructions(2).
Fonctionnement :Langage intermédiaire
Répéter instructions
(1)...
Tant que (booléen)instructions (2) …
![Page 84: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/84.jpg)
![Page 85: Introduction à la programmation - fsac.weebly.comfsac.weebly.com/uploads/1/1/1/3/11138722/info_s3_prof_boukhriss_…Corinne ZAMBOTTO adapt édu travail de St phane Le gars 1/8 Logique](https://reader035.fdocument.pub/reader035/viewer/2022081605/5b96593909d3f2de4a8d2a81/html5/thumbnails/85.jpg)
BY KSIMO MAURESMARAFB Groupe : smc fsa 2012
http://www.facebook.com/groups/522890651069613/