cours1 (1)

79

Transcript of cours1 (1)

IntroductionInformatique?:construit sur la contraction de l’expression «

information automatique ».L’informatique est la science du traitement

automatique de l’informationL’informatique traite de deux aspects

complémentaires : les programmes immatériels (logiciel, software) qui décrivent un traitement à réaliser et les machines (matériel, hardware) qui exécutent ce traitement.

IntroductionQu’est ce qu’un ordinateur :

une machine totalement dénuée d'intelligencecapable d’effectuer un grand nombre de tâches

Exécute très rapidement et sans erreurs sans erreurs les ordres qu'on lui donne

Qu’est-ce qu’un programme ?Assemblage et enchaînement

d’instructions élémentaires Écrit dans un langage de

programmationExécuté par un ordinateur afin de

traiter les données d’un problème et renvoyer un ou plusieurs résultats

Environnement de programmationProgramme s’écrit dans un fichier texte

On écrit les commandes les unes à la suite des autres

Le compilateur vérifie la syntaxe du fichier texte

Avaancer au lieu de avancertraduit en langage machine (100101100101001011…)

Hélas, il ne détecte pas les bugs !!!Si on fonce dans le mur, il ne nous dit rien !

Environnement de programmationEnvironnement de programmation dédié

Fichiersource compilateur

Fichiertraduit

Affichage des Erreurs

ProgrammationUn programme est réalisé dans le but

d’effectuer un ensemble de traitements particuliers sur un ensemble de donnéesDéfinir sous quelle forme les données initiales

seront fournies à l’applicationDéfinir sous quelle forme les résultats seront

communiquésExpliciter les différentes actions à réaliser pour

réaliser cette tâche

Données et traitementsDonnée : valeur stockée

variable ou constanteType

Traitement : opérations sur les données instructions

TraitementsDonnées initiales résultats

Analyse du problèmeDécomposer la tâche Exemple simple : moyenne de 10 notes

CalculerMoyenne

Lire et stockerles données

notes

Afficher laDonnée

moyenne

saisie clavier

affichage écran

notes saisies

moyenne affichée

Additionner lesdonnées notes

et stockerdonnée somme

Diviser la donnéesomme par 10et stocker la

donnée moyenne

Sous programmeSous-programme

Diviser pour mieux régnerIntérêts :

Programmer tâche par tâcheMeilleure lisibilité du codeÉconomie de codage et réutilisation

Inconvénients :Nécessite de réfléchir en blocs de

fonctionnalités

Où on apprend réellement à programmer

Algorithmique Un peu de vocabulaire…Un peu de vocabulaire…

AlgorithmeAlgorithme : enchaînement des actions : enchaînement des actions (instructions) nécessaires pour résoudre un (instructions) nécessaires pour résoudre un problèmeproblème

Différentes appellationsDifférentes appellations langage algorithmique langage algorithmique pseudo-langage de programmation pseudo-langage de programmation pseudo-code)pseudo-code)

Organisation d’un programme

PROGRAMME monProgr

/* Constantes: initialisation obligatoire */CONST const1 <- 10 : entier

const2 <- "bonjour!" : chaîne

// les variables au sens strictVAR varReel1, varReel2 : réels

varChaine : chaîne

DEBUTInstruction1Instruction2…FIN

déclarations

Corps du programme

Exemple d’un programme :

Où on se rend compte qu’un ordinateur n’est qu’une succession de boites !

Les donnéesDonnéesDonnées = ensemble des informations

manipulées par un programme

Les données d'un programme sont mémorisées en mémoire centrale dans des variablesvariables (sortes de cases)

Notion de variableUne variable possède :

une valeurvaleur contenue par la case mémoireun identificateuridentificateur : nom unique par lequel on

peut accéder à son contenuun typetype qui définit la taille de la place occupée

Ne pas confondre la variablevariable et son contenucontenuUne variable est un contenantcontenant (case ou boîte)Le contenu d'une variable est uneune valeurvaleur

numérique, alphanumérique…

Variable

Une variable (VAR) est donc une « boite » dans laquelle on met une valeur (un nombre, un mot…) qui peux changer (si l’utilisateur modifie la valeur par exemple)

Les variables dont la valeur ne change pas au cours de l'exécution du programme sont appelées variables constantes (CONST)

Déclaration de variableDéclarer une variable :

réserver une place en mémoire attribuer l'identificateur à cette place

La déclaration indique :l’identificateurle type

Exemple : VAR maVar : réel

Types (1)Type caractère

lettres, chiffres, ponctuation, code des opérations, espace, retour chariot,…

Exemples : ‘a’ ‘+’ ‘.’

Type chaîne de caractèresuites de caractèresExemples : « bonjour » « cac40 »

Types (2)Type entier

les nombres entiersExemples : 3 45 133

Type réelles nombres réelsExemples : 3,14 37,7

Types (3)Type booléen

que deux valeurs possiblessoit VRAI, soit FAUX

Exemples de variables

Identificateur : XType : entierValeur : 25

Identificateur : YType : réelValeur : 3,7

Mémoire centrale(mémoire vive)

25X

3,7Y

Où l’addition devient compliquée

OpérateursLes opérations possibles sur les variables

dépendent de leur typeOn ne peux pas multiplier des mots…

Réels opérations possibles

symbole ou mot clé

additionsoustractionmultiplicationDivisioncomparaisons

+-*/<, ≤, >, ≥, =, ≠

Entiers opérations possibles

symbole ou mot clé

additionsoustractionMultiplicationDivisionDivision entièreModulo Comparaisons

+-*/DIV MOD<, ≤, >, ≥, =, ≠

Caractères opérations possibles

symbole ou mot clé

comparaisons <, ≤, >, ≥, =, ≠(exemple ‘a’ < ‘z’)

Chaînes opérations possibles

symbole ou mot clé

ConcaténationLongueurExtraction

&Longueur (chaîne)Extraction (sous-ch, ch)

Booléens opérations possibles

symbole ou mot clé

comparaisonnégationconjonctiondisjonction

=, ≠NONETOU

RappelPROGRAMME monProgr

/* Constantes: initialisation obligatoire */CONST const1 <- 10 : entier

const2 <- "bonjour!" : chaîne

// les variables au sens strictVAR varReel1, varReel2 : réels

varChaine : chaîne

DEBUT

Instruction1Instruction2…

FIN

déclarationsdéclarations

Corps du programmeCorps du programme

InstructionsInstruction = ordreordre que peut exécuter

l'ordinateurexécution d'un programme :

Échanges d'informations en mémoireCalculsAffichage des résultats

InformationsLes informations manipulées par les

instructions peuvent prendre plusieurs formes:des variablesvariablesdes constantesconstantesdes valeurs littéralesvaleurs littérales ("bonjour", 45, VRAI)des expressionsexpressions complexes : combinaisons de

variables, constantes et valeurs littérales avec des opérateurs (2 * r * 3.14)

Les instructions élémentairesAffectationAffectation : le fait de donner une nouvelle

valeur à une variable (mettre un nombre dans une boite)

lirelire: Permet à l’ordinateur de récupérer ce que l’utilisateur tape au clavier

ecrireecrire: Permet à l’ordinateur d’afficher sur l'écran ce qu’on veux (le résultat d’un calcul, une variable…)

L’ affectationSyntaxe :

Variable <- Valeur

Valeur évaluée à partir d’une expression : Variable (le contenu d’une autre boite…)Constante (une valeur fixe : PI…)valeur littérale (3 6 5.12…)expressions complexes (un calcul…)

ExemplesX <- YX <- 25X <- 3,3C <- ‘a’maChaine <- «bonjour»B <- VRAIX <- 25 + Y + 3

Différence avec le = mathématiquesQuand on dit qu'une variable prend pour

valeur une autre variable, ça ne veut pas dire qu'elles seront toujours égales !

Cela veut seulement dire que la première variable va prendre la valeur de la secondeLe contenu de la première boite sera le même

celui de la seconde boite…Mais si on modifie le contenu de la seconde

boite après, ça n’a pas d’impact sur le contenu de la première boite !

Exemples Algo : x <- y différend de y <- xMaths : x = y équivaut à y = x

Algo : x + 12 <- y impossible !Maths : x + 12 = y a un sens

Algo : x <- x + 7 a un sensMaths : x = x + 7 impossible

La saisieSyntaxe :

Lire variable1 [,variableN]*Permet à un utilisateur de communiquer des

données au programmeAssigne une valeur entrée au clavier dans

une variableTant que l'utilisateur n'entre rien au clavier,

le déroulement du programme est stoppé

Exemples

Lire (x)Lire(x, y)Lire(a, b, c, d, e, f)

Avantages Utiliser le même programme pour des

données différentesSans instruction de saisie (ou de lecture sur

un périphérique quelconque), un programme fournirait toujours le même résultat

Pièges Saisir une valeur ne correspondant pas au

type de la variable où elle doit être stockéeEssayer de mettre un mot dans une variable de

type texteL’utilisateur peut penser que le programme

s’est arrêtéSi il n’y a rien d’affiché, l’utilisateur ne voit

qu’un curseur clignotant…

L’affichageSyntaxe :

ecrire variable1 [, variableN]*

L'instruction d'affichage permet de fournir des résultats à l'utilisateur à travers l'écran

ExemplesEcrire(x)Ecrire(«bonjour»)Ecrire(x, y, z)Ecrire(x + y)Ecrire(«le résultat de x + y est : », x + y)

On peut afficher plusieurs trucs à la suite grâce à la virgule !

Avantages Permet de fournir un résultatPermet de guider l’utilisateurPermet d’afficher des valeurs intermédiairesPermet de débuguer

Exemple completPROGRAMME bonjour

CONST bj <- «Bonjour» : chaînemr <- «Monsieur » : chaîne

VAR varNom, ch : chaîne

DEBUTEcrire(«Quel est votre nom ?»)Lire(varNom) ch <- mr & varNomEcrire(bj, ch )FIN

Réaliser un algorithme : exprimer en pseudo-code les règles de traitement d’un problème pour le soumettre à un ordinateur (par un programme)

Les données d’un programme sont mémorisées dans des variables qui sont des cases mémoire

Les instructions permettent de manipuler et de déplacer une donnée d'un endroit à un autre de la mémoire

Une variable est un contenant, qui contient une et une seule valeur à un moment donné. Elle est caractérisée par un identificateur (son nom)une valeur (qui peut varier au cours du programme, sauf

pour les constantes)un type (qui détermine sa taille et les opérations

possibles)Les instructions de base sont :

l'affectation (permet de changer la valeur d'une variable) la saisie (permet d'assigner à une variable, une valeur

entrée au clavier) l'affichage (permet d'écrire le contenu d'une variable ou

d'une expression à l'écran)

Exemples de synthèse…

Exemple 1 : Calcul de la surface d ’un rectangle Analyse :

Les trois étapes de cet algorithme :1. Lecture de données, longueur et largeur2. Calcul de la surface, longueur*largeur3. Edition du résultat

Algorithme :Algorithme surface_rectangle;Variables longueur, largeur, surface : réel;Début

Ecrire (‘ Donner les valeurs de la longueur et la largeur ’);

Lire (longueur, largeur);surface longueur*largeur;Ecrire (‘ la surface du rectangle est : ’, surface);

Fin

50

Exemples de synthèse…

Exemple 2 : euroVersDirham Analyse :

Les trois étapes de cet algorithme :1. Lecture des données : VE, tauxC2. Calcul du VD (valeur en dirham)3. Edition du résultat

Algorithme :Algorithme euroVersDirham Variables VE, VD, tauxC : réel;Début

Ecrire (‘ Donner les valeurs du VE et de tauxC);Lire (VE, tauxC);VD VE*tauxC;Ecrire (‘ le prix VD est : ’,VD);

Fin

Entête

Déclaration des variables

Les instructions

51

Commentaires…

Afin d'améliorer la lisibilité d'un algorithme, on peut utiliser des commentaires. Un commentaire est une suite de caractères quelconques encadrée par les symboles /* et */

Exemple : /* ceci est un commentaire */

/* le calcul du prix TTC */Algorithme prix_ttc; /* entête de l ’algorithme *//* déclaration des variables */Variables PH,TVA, PTTC : réel; Début /* lecture des variables PH et TVA */

Ecrire (‘ Donner les valeurs du PH et de la TVA’);Lire (PH, TVA);PTTC PTTC+PH*TVA; /* Calcul du PTTC */Ecrire (‘ le prix TCC est : ’,PTTC); /* Edition du

résultat */

Fin

/* le calcul du prix TTC */Algorithme prix_ttc; /* entête de l ’algorithme *//* déclaration des variables */Variables PH,TVA, PTTC : réel; Début /* lecture des variables PH et TVA */

Ecrire (‘ Donner les valeurs du PH et de la TVA’);Lire (PH, TVA);PTTC PTTC+PH*TVA; /* Calcul du PTTC */Ecrire (‘ le prix TCC est : ’,PTTC); /* Edition du

résultat */

Fin52

Exercices…

1. Soient n et m deux entiers, écrire l ’algorithme qui permute les valeurs de n et m (exemple : passer de n=10, m=15 à n=15, m=10)

Algorithme permutation; Variables X,Y : réel ;

Z : réel ; /* variable intermédiaire */Début /* lecture des variables X et Y */

Ecrire (‘ Donner les valeurs de X et de Y’);Lire (X, Y);Ecrire (‘ Avant permutation : X =’,X, ‘ Y=‘ ,Y); /* permutation des valeurs des variables X et Y */Z X ;X Y ;Y Z ;Ecrire (‘ Après permutation : X =’,X, ‘ Y=‘ ,Y);

Fin

Algorithme permutation; Variables X,Y : réel ;

Z : réel ; /* variable intermédiaire */Début /* lecture des variables X et Y */

Ecrire (‘ Donner les valeurs de X et de Y’);Lire (X, Y);Ecrire (‘ Avant permutation : X =’,X, ‘ Y=‘ ,Y); /* permutation des valeurs des variables X et Y */Z X ;X Y ;Y Z ;Ecrire (‘ Après permutation : X =’,X, ‘ Y=‘ ,Y);

Fin

53

2. Les structures de contrôles…

ObjectifsDans ce chapitre nous décrivons :• la structure alternative SI … ALORS … SINON• la structure de choix multiple CAS ...• les structures répétitives

– la boucle POUR – la boucle TANT QUE– la boucle REPETER

ObjectifsDans ce chapitre nous décrivons :• la structure alternative SI … ALORS … SINON• la structure de choix multiple CAS ...• les structures répétitives

– la boucle POUR – la boucle TANT QUE– la boucle REPETER

54

Enchaînement des actions…

s2

s1

e2

TT2

T

e1

T1

On utilisera cette structure lorsqu'une action doit succéder à une autre

Exemple : Calcul du prix TTC Algorithme :Algorithme prix_ttcVariables PH,TVA, PTTC : réel;Début

Ecrire (‘ Donner les valeurs du PH et de la TVA’);

Lire (PH, TVA);PTTC PTTC+ PH*TVA;Ecrire (‘ le prix TCC est : ’,PTTC);

Fin

55

Structure alternative ou conditionnelle…

SI (Condition)ALORS T1;SINON T2;

FSI

SI (Condition)ALORS T1;SINON T2;

FSI

La condition désigne une expression booléenne dont la valeur est VRAI ou FAUX. T1 et T2 désignent une suite d'instructions (pouvant elles mêmes être des structures alternatives).

condition

Vraie ?

T 1 T 2

oui non

suite du programme

56

Structure alternative ou conditionnelle…

ALGORITHME MAXIMUM_DE_DEUX_NOMBRESVARIABLES

A, B : ENTIER; /* les deux nombres à comparer */MAX : ENTIER; /* le plus grand */

DEBUTECRIRE('Entrez les valeurs de A et B :');LIRE(A, B);SI (A >= B)

ALORS MAX A;SINON MAX B;

FSI /* Fin de la structure SI */ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX);

FIN

ALGORITHME MAXIMUM_DE_DEUX_NOMBRESVARIABLES

A, B : ENTIER; /* les deux nombres à comparer */MAX : ENTIER; /* le plus grand */

DEBUTECRIRE('Entrez les valeurs de A et B :');LIRE(A, B);SI (A >= B)

ALORS MAX A;SINON MAX B;

FSI /* Fin de la structure SI */ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX);

FIN

Exemple 1 : n et m sont deux entiers. Écrire l ’algorithme qui retourne la plus grande valeur de A et B ?

57

Structure alternative ou conditionnelle…

ALGORITHME MAXIMUM_DE_DEUX_NOMBRESVARIABLES

A, B : ENTIER; /* les deux nombres à comparer */MAX : ENTIER; /* le plus grand */

DEBUTECRIRE('Entrez les valeurs de A et B :');LIRE(A, B);MAX ASI (B >A)

ALORS MAX B;FSI /* Fin de la structure SI */ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX);

FIN

ALGORITHME MAXIMUM_DE_DEUX_NOMBRESVARIABLES

A, B : ENTIER; /* les deux nombres à comparer */MAX : ENTIER; /* le plus grand */

DEBUTECRIRE('Entrez les valeurs de A et B :');LIRE(A, B);MAX ASI (B >A)

ALORS MAX B;FSI /* Fin de la structure SI */ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX);

FIN

Exemple 1 : n et m sont deux entiers. Écrire l ’algorithme qui retourne la plus grande valeur de A et B ?

58

Structure alternative ou conditionnelle…

ALGORITHME Valeur_absolueVARIABLES

N : ENTIER;ABS : ENTIER; /* valeur absolue */

DEBUTECRIRE('Entrez une valeur entière :');LIRE(N);SI (N >=0)

ALORS ABS N;SINON ABS -N;

FSIECRIRE( ’la valeur absolue de ', N,' est : ',ABS);

FIN

ALGORITHME Valeur_absolueVARIABLES

N : ENTIER;ABS : ENTIER; /* valeur absolue */

DEBUTECRIRE('Entrez une valeur entière :');LIRE(N);SI (N >=0)

ALORS ABS N;SINON ABS -N;

FSIECRIRE( ’la valeur absolue de ', N,' est : ',ABS);

FIN

Exemple 2 : Afficher la valeur absolue d ’un entier quelconque N

59

Exercice : on veut résoudre, dans l’ensemble des nombres réels, une équation du second degré à coefficients réels. a, b et c sont des réels non nuls, écrire l ’algorithme qui retourne les racines réelles de l équation suivante : ax2 + bx +c = 0

Structure alternative ou conditionnelle…

60

Structure alternative généralisée…

s

e

T4 T3 T2 T1

Expression

Suivant la valeur de l'expression, un des traitements T1, T2, T3 ou T4 est exécuté.

61

Structure alternative généralisée…

En pseudo-langage, on écriraCAS (expression)

valeur1 : T1;valeur2 : DEBUT

T21;T22;

FINvaleur3 : T3;valeur4 : T4;AUTRE T_autre;

FIN CAS

En pseudo-langage, on écriraCAS (expression)

valeur1 : T1;valeur2 : DEBUT

T21;T22;

FINvaleur3 : T3;valeur4 : T4;AUTRE T_autre;

FIN CAS

62

Structure alternative généralisée…

Exemple : On désire calculer le salaire net (SN) d'un employé en tenant compte du nombre de personnes à charge. Le tableau des déductions par rapport au nombre de personnes à charge est le suivant :

Ecrire l ’algorithme qui lit les données suivantes : le nombre de personnes à charge (pers_ch de type entier) le nombre d'heures de travail (nb_heur de type entier) le taux horaire (taux de type réel)

puis calcule le salaire net ?

Nombre de personnes à charge

0

1

2

3

4 ou 5

6 et plus

Déductions du salaire brut (SB)

20%

18%

15%

13%

10%

08%

63

Structure alternative généralisée…

ALGORITHME exemple1_CASVARIABLES

SN, SB, Taux : réel;nb_heur, pers_ch : entier;déduction : réel;

DEBUTECRIRE( ’le nombre de pers_ch '); LIRE (pers_ch);ECRIRE( ’le nombre d heures '); LIRE (nb_heur);ECRIRE( ’le taux horaire '); LIRE (taux);SB taux*nb_heur;CAS (pers_ch)

0 : déduction 0.20*SB;1 : déduction 0.18*SB;2 : déduction 0.15*SB;3 : déduction 0.13*SB;4,5 : déduction 0.10*SB;AUTRE déduction 0.08*SB;

FIN CASSN SB - déduction ECRIRE(‘  le salaire net est : ‘ ,SN);

FIN

ALGORITHME exemple1_CASVARIABLES

SN, SB, Taux : réel;nb_heur, pers_ch : entier;déduction : réel;

DEBUTECRIRE( ’le nombre de pers_ch '); LIRE (pers_ch);ECRIRE( ’le nombre d heures '); LIRE (nb_heur);ECRIRE( ’le taux horaire '); LIRE (taux);SB taux*nb_heur;CAS (pers_ch)

0 : déduction 0.20*SB;1 : déduction 0.18*SB;2 : déduction 0.15*SB;3 : déduction 0.13*SB;4,5 : déduction 0.10*SB;AUTRE déduction 0.08*SB;

FIN CASSN SB - déduction ECRIRE(‘  le salaire net est : ‘ ,SN);

FIN64

Structure alternative généralisée…

Exercice : Écrire l ’algorithme qui lit un caractère et vérifie s ’il est une lettre, un chiffre ou un caractère spécial.

ALGORITHME exemple2_CASVARIABLES

C : CARACTERE;DEBUT

ECRIRE('Entrez un caractère :');LIRE(C) ;CAS (C)‘ a ’ … ‘ z ’ , ‘ A ’ … ‘ Z ’ : ECRIRE(C , ’ est une lettre ’);‘ 0 ’ … ‘ 9 ’ : ECRIRE(C , ’ est un chiffre ’);AURTE : ECRIRE(C , ’ est un caractère spécial ’);FIN CAS

FIN

ALGORITHME exemple2_CASVARIABLES

C : CARACTERE;DEBUT

ECRIRE('Entrez un caractère :');LIRE(C) ;CAS (C)‘ a ’ … ‘ z ’ , ‘ A ’ … ‘ Z ’ : ECRIRE(C , ’ est une lettre ’);‘ 0 ’ … ‘ 9 ’ : ECRIRE(C , ’ est un chiffre ’);AURTE : ECRIRE(C , ’ est un caractère spécial ’);FIN CAS

FIN 65

Structures itératives…

La notion d'itération est l'une des notions fondamentales de l'algorithmique. Elle est utilisée lorsque l'on doit exercer plusieurs fois le même traitement sur un même objet.

Il existe trois structures de répétition :

1. La boucle POUR2. La boucle TANT QUE3. La boucle REPETER

bloc d'instructions

oui

suite du programme

initialisation

condition Vraie ?

non

modification

66

La boucle POUR…

ou

• variable_de_contrôle est la variable de contrôle (compteur)• valeur_min et valeur_max indique respectivement la valeur minimale est la valeur maximale

Pour variable_de_contrôle = valeur_min jusque  valeur_max Faire Début

Bloc d ’instructions;Fin

Pour variable_de_contrôle = valeur_min jusque  valeur_max Faire Début

Bloc d ’instructions;Fin

67

ALGORITHME exemple1_POURVARIABLES

n : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTECRIRE('Entrez une valeur entière :');LIRE(n);POUR i=1 jusque n FAIREdébut

ECRIRE( i);Fin

FIN

La boucle POUR…

Exemple 1 : Soit n un entier, afficher les valeurs 1, 2, …, n

68

ALGORITHME exemple2_POURVARIABLES

n, fac : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTECRIRE('Entrez une valeur entière :');LIRE(n);fac 1POUR i=1 jusque n FAIREdébut

fac fac*iFin ECRIRE( ’factoriel de ', n,' est : ',fac);

FIN

La boucle POUR …

Exemple 2 : Calculer n! (n!= 1*2*3* … *n)

69

La boucle Tant que

Lorsque la condition a pour valeur VRAI, on exécute le traitement T1 puis on revient tester la condition.Il est donc nécessaire que l'action T1 modifie la condition sinon l'itération ne s'arrêtera pas.Lorsque la condition a pour valeur FAUX, le traitement séquentiel continue. L'itération est terminée

FAUX

VRAI

s

T1

e

Condition

TANT QUE Condition FAIREDEBUT

T1;FIN

TANT QUE Condition FAIREDEBUT

T1;FIN

70

La boucle Tant que

Exemple : Une suite S de nombres non nuls est saisie au clavier. La fin de S est marquée par un nombre nul. Écrire l’algorithme qui affiche les variables (Pos) et (Neg) représentant respectivement le nombre de valeurs positives et le nombre de valeurs négatives

71

La boucle Tant que ALGORITHME exemple_Tant-queVARIABLES

pos, neg ,n : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTpos 0 ; neg 0 ECRIRE('Entrez une valeur entière : (0 pour terminer)');LIRE(n);TANT QUE (n<>0) FAIREdébut /* début de tant que */

SI n<0 ALORS neg neg +1SINON pos pos +1ECRIRE('Entrez une valeur entière : (0

pour terminer)');LIRE(n);

fin /* fin de tant que */… /* afficher les valeurs de Pos et neg */FIN72

La boucle REPETER

REPETERBloc d ’instructions;

JUSQU’A CE QUE (expression soit Vraie)

REPETERBloc d ’instructions;

JUSQU’A CE QUE (expression soit Vraie)

b l o c d '

i n s t r u c t i o n s

c o n d i t i o n v r a i e

O u i

s u i t e d u p r o g r a m m e

N o n

73

Exercices Exercice 1: Calcul de la somme des n premiers entiers positifs

Calculer la somme des n premiers entiers positifs, par additions successives des entiers : Somme = 1+2+…+N. /* La structure Pour */ALGORITHME Somme_v1 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0; ECRIRE('Entrez la valeur de N');LIRE(N);Pour i=1 jusqu ’a N Fairedébut /* début de Pour */

Somme Somme +i;fin /* fin de Pour */ECRIRE(‘ Somme = ’, Somme);

FIN

/* La structure Pour */ALGORITHME Somme_v1 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0; ECRIRE('Entrez la valeur de N');LIRE(N);Pour i=1 jusqu ’a N Fairedébut /* début de Pour */

Somme Somme +i;fin /* fin de Pour */ECRIRE(‘ Somme = ’, Somme);

FIN74

/* La structure Tant que */ALGORITHME Somme_v2 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0 ; ECRIRE('Entrez la valeur de N');LIRE(N);i=1;Tant que (i<=N) Fairedébut /* début de Tant que */

Somme Somme +i;i=i+1;

fin /* fin de Tant que */ECRIRE(‘ Somme = ’, Somme);

FIN

/* La structure Tant que */ALGORITHME Somme_v2 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0 ; ECRIRE('Entrez la valeur de N');LIRE(N);i=1;Tant que (i<=N) Fairedébut /* début de Tant que */

Somme Somme +i;i=i+1;

fin /* fin de Tant que */ECRIRE(‘ Somme = ’, Somme);

FIN

Exercices

75

Exercices /* La structure Répéter */

ALGORITHME Somme_v2 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0 ; ECRIRE('Entrez la valeur de N');LIRE(N);i=1;Répéter

Somme Somme +i;i=i+1;

Jusque ’a ce que (i>N)ECRIRE(‘ Somme = ’, Somme);

FIN

/* La structure Répéter */ALGORITHME Somme_v2 VARIABLES

somme ,N : ENTIER;i : ENTIER; /* variable de contrôle */

DEBUTSomme 0 ; ECRIRE('Entrez la valeur de N');LIRE(N);i=1;Répéter

Somme Somme +i;i=i+1;

Jusque ’a ce que (i>N)ECRIRE(‘ Somme = ’, Somme);

FIN

76

Exercices Exercice 1

Écrire l'algorithme qui calcule le carré d'un entier saisi au clavier.

Exercice 2Écrire l'algorithme qui saisie un prix unitaire, une quantité et qui calcule le prix total.

Exercice 3Écrire l'algorithme qui lit deux nombres et les imprime dans l’ordre croissant de leurs valeurs.

Exercice 4Soient trois nombres x, y et z. Écrire un algorithme qui détermine et imprime le plus grand des trois.

77

A partir d’un nombre lu en données, on détermine un montant net par application d’une remise de :

1.5 % si le montant est compris entre 2000 et 5000 DH 2.5 % si le montant est compris entre 5001 et 10000 DH 3 % si le montant excède 10000 DH

Écrire l'algorithme qui lit en entrée le montant et fournit en sortie la remise net.

Exercices

78

Exercices Exercice 6Donner la trace de l ’algorithme suivant :Variables I, J : entier ;Début

I 1 ;Ecrire(‘Itération ‘,I);Répéter

J 1 ;Tant que (J<4) Faire Début de tant que

Ecrire(‘Itération ‘,J); J J+1 ; Ecrire(I, J) ;Fin tant que

I I+1 ; Jusqu’à (I=5) ;

Fin

79