Info S3 Prof Boukhriss by Ksimo Maure

85
Introduction à la programmation BY KSIMO MAURE SMARA FB Groupe : smc fsa 2012 http://www.facebook.com/groups/522890651069613/

Transcript of Info S3 Prof Boukhriss by Ksimo Maure

Page 1: Info S3 Prof Boukhriss by Ksimo Maure

Introduction à la programmationBY KSIMO MAURE

SMARAFB Groupe : smc fsa 2012

http://www.facebook.com/groups/522890651069613/

Page 2: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

É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: Info S3 Prof Boukhriss by Ksimo Maure

É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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

• 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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

• 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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

Organigramme :

Exemple (suite)

Début

Pi 3.14159

lePerimetre 2*Pi*leRayon

Lire(leRayon)

Ecrire(lePerimetre)

Fin

Page 36: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure
Page 38: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

• 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: Info S3 Prof Boukhriss by Ksimo Maure

• 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: Info S3 Prof Boukhriss by Ksimo Maure

• L’organigramme associé est le suivant :

Traitement conditionnel (suite)

Condition

Instruction(s)

oui

non

Page 49: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

• 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: Info S3 Prof Boukhriss by Ksimo Maure

• L’organigramme associé est le suivant :

Condition

Instruction(s) 2 "faux"Instruction(s) 1 "vrai"

Traitement conditionnel et alternatif (suite)

Page 53: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

É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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

Quand il faut répéter un traitement ...!!?

Page 65: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure
Page 68: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

La table de multiplication de 7 est : 7 x 1 = 7

7 x 2 = 147 x 3 = 21

…7 x 10 = 70

Page 70: Info S3 Prof Boukhriss by Ksimo Maure

Ecrire un algorithme qui fait le total d’un nombre de valeur numériques demandées successivement àl’utilisateur,

Page 71: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

Modifiez ensuite l’algorithme pour que le programme affiche de surcroît en quelle position avait été saisie ce

Page 75: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

Fonction:répéter une suite d’instructions tant qu’une condition est remplie

Page 80: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure

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: Info S3 Prof Boukhriss by Ksimo Maure
Page 85: Info S3 Prof Boukhriss by Ksimo Maure

BY KSIMO MAURESMARAFB Groupe : smc fsa 2012

http://www.facebook.com/groups/522890651069613/