Upload
linda-toumi
View
26
Download
0
Embed Size (px)
Citation preview
Introduction à la programmationBY KSIMO MAURE
SMARAFB Groupe : smc fsa 2012
http://www.facebook.com/groups/522890651069613/
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
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
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
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?
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
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
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
É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 :
Étapes du processus de programmation
{Analyse, propositionde solutions,décompositions}
Problème
Algorithme
Programme
Exécution
{Traduction del’algorithme en unlangage deprogrammation}
Résultats
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.
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
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.
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.
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.
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
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.
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 ».
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
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
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
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
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
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 :
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)
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.
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
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.
• 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
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
• 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
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
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
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
Organigramme :
Exemple (suite)
Début
Pi 3.14159
lePerimetre 2*Pi*leRayon
Lire(leRayon)
Ecrire(lePerimetre)
Fin
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
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.
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 » ?
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
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).
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
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
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
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
• 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
• 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)
• L’organigramme associé est le suivant :
Traitement conditionnel (suite)
Condition
Instruction(s)
oui
non
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 { }
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
• La syntaxe algorithmique est la suivante :
Si (condition) alors
Instruction(s) 1 "vrai"Sinon
Instruction(s) 2 "faux"FinSi
Traitement conditionnel et alternatif (suite)
• L’organigramme associé est le suivant :
Condition
Instruction(s) 2 "faux"Instruction(s) 1 "vrai"
Traitement conditionnel et alternatif (suite)
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)
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)
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
É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
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
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)
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
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 !
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
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.
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
Quand il faut répéter un traitement ...!!?
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
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
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) :
La table de multiplication de 7 est : 7 x 1 = 7
7 x 2 = 147 x 3 = 21
…7 x 10 = 70
Ecrire un algorithme qui fait le total d’un nombre de valeur numériques demandées successivement àl’utilisateur,
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
Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres :
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
Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce
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
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
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
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
Fonction:répéter une suite d’instructions tant qu’une condition est remplie
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) …
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
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
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) …
BY KSIMO MAURESMARAFB Groupe : smc fsa 2012
http://www.facebook.com/groups/522890651069613/