Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture:...

66
Algorithmique et Algorithmique et Programmation Programmation A. Alikacem A. Alikacem

Transcript of Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture:...

Page 1: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Algorithmique et Algorithmique et ProgrammationProgrammation

A. AlikacemA. Alikacem

Page 2: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Semaine 2 Semaine 2 Les outils algorithmiques

Lecture: chapitre 2 des notes de cours

Étapes de la construction d'un programme

Composantes de base d'un ordinateur

Structures de base d'un algorithme

Page 3: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Algorithme

Programme

Ordinateur

Description formelle

Transcription

CompilationLangage de programmation

Langage machine

ExécutionSolution

Problème

Étapes de la construction Étapes de la construction d’un programmed’un programme

Page 4: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Vous avez dit algorithme ?

Page 5: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Le pseudo-code (pseudo-langage) Dérivé du langage Pascal. Permet d’être précis, sans syntaxe lourde lisible sans effort Peut être traduit facilement dans un langage de programmation Il nous évite de rattacher la résolution d’un problème à un langage

de programmation particulier Il nous prépare à l’acquisition de bonnes habitudes

de programmation:

il conduit à la programmation structurée

il favorise la conception des algorithmes car il est

compatible avec la démarche descendante.

Expression des algorithmes

Page 6: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Pseudo-Code

#include <stdio.h>int main () {

int n, i;scanf ("%d", &n);for (i=0; i<=n; i++) {

if (i%2) {printf ("%d\n", i);

}}return 0;

}

Demander n

Répéter i [0,n] début

si (i % 2) 0 alorsdébut

Afficher ifin

fin

Plus abstrait, plus lisible, plus concis...

Faire la différence entre les contraintes propres à un langage et les difficultés

inhérentes à un problème donné

Met en avant l'essence de l'algorithme

Page 7: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Expression des algorithmesExpression des algorithmesLe pseudo-code (pseudo-langage)

Cette représentation a un intérêt pédagogique, elle facilite l’apprentissage.

Introduit les caractéristiques de la machine théorique :

Un algorithme va être représenté comme une suite d’actions pouvant être exécutées par une une machine idéalemachine idéale.

Notion d’action

Page 8: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Définition Une instruction qui peut être comprise

directement par le système que l'on désire programmer.

Exemple : une tortue radio-commandée Les primitives

Page 9: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 10: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 11: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 12: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 13: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

??

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 14: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 15: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case » ?

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 16: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« reculerreculer d’une case » ?

+ + =

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 17: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case en diagonale » ?

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 18: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case en diagonale » ?

+

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 19: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case en diagonale » ?

+ +

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 20: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case en diagonale » ?

+ + +

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 21: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre :

« avanceravancer d’une case en diagonale » ?

+ + + =

Les actions élémentaires (primitives)Les actions élémentaires (primitives)

Page 22: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Architecture de Von Architecture de Von NeumanNeuman

Un ordinateur devrait être composé de:

- unité de commande et contrôle (ucc)- unité arithmétique et logique (ual)- mémoire principale (mp)- périphériques d’entrée/sortie (pe/ps)

ucc mpual

pe

ps

Page 23: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les composantes d’un ordinateurLes composantes d’un ordinateur

Les périphériques d’entrée De l’usager à l’ordinateur Stockées dans la mémoire principale de l’ordinateur afin

d’être manipulées.

Dans un algorithme

DEMANDER DEMANDER informationinformation

action élémentaire

Page 24: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les périphériques de sortie De l’ordinateur à l’utilisateur On les utilisera donc pour montrer les

résultats du travail d’un programme.Dans un algorithme

AFFICHER AFFICHER informationinformation

IMPRIMER IMPRIMER informationinformation

Les composantes d’un ordinateurLes composantes d’un ordinateur

actions élémentaires

Page 25: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

La mémoire principale

Conserver les données entrées par l’usager et de stocker les résultats intermédiaires et finaux.

Pour traiter de l’information par un ordinateur, il faut que cette dernière se retrouve en mémoire principale.

Les composantes d’un ordinateurLes composantes d’un ordinateur

Page 26: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

La mémoire principaleLa mémoire principale

Plusieurs cellules (cases, mots)

…0x010

901000000

0x010a

01100111

0x010b

00111111…

Chaque cellule a sa propre adresse contient toujours

une suite de bits

Page 27: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Plusieurs cellules (cases, mots)…

a 01000000

lettre 01100111

temp 00111111…

Nous pouvons leurassocier un nom

La mémoire principaleLa mémoire principale

Notion d’identificateurNotion d’identificateur

Page 28: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

a ‘@’lettre ‘e’temp ‘?’

Nous pouvons interpréter la signification du contenu différemment (associer un type)

La mémoire principaleLa mémoire principalePlusieurs cellules (cases, mots)

Notion de typeNotion de type

Page 29: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

a ‘@’lettre ‘e’temp 4

nom + type = variable une abstraction d’un

emplacement mémoire.

La mémoire principaleLa mémoire principalePlusieurs cellules (cases, mots)

Notion de variableNotion de variableComment l’utiliser ?

temp temp 4temp temp temp + 1 temp + 1

Le symbole “  ” est appelé opérateur d’affectation ou d’assignation.

Page 30: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Un exempleUn exemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

xy

??????

Page 31: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

???

UnUn exempleexemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

xy

5

???

Page 32: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

5Un exempleUn exemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

xy??

?5

Page 33: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

5Un exempleUn exemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

5 xy

0

Page 34: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

5

0Un exempleUn exemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

xy

Page 35: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Un exempleUn exemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

5

0 xy

Page 36: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Un Un exempleexemple

DEBUTDEMANDER xy xx 0AFFICHER xAFFICHER y

FIN

5

0 xy

Page 37: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Les Les composantescomposantes d d’un ordinateur’un ordinateur

L’unité arithmétique et logique (UAL) Composante d’un ordinateur en charge de toutes

les opérations de calcul, de comparaison et de logique.

Primitives pour le calcul arithmétique

Page 38: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

OpérateurOpérateur ExempleExemple x=9 & y=4x=9 & y=4+ x + y 13- x – y 5* x * y 36/ x / y 2,25 x y 2% x % y 1

Opérateurs arithmétiques

Page 39: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

OpérateurOpérateur ExempleExemple x=9 & y=4x=9 & y=4= x = y FAUX x y VRAI> x > y VRAI x y VRAI< x < y FAUX x y FAUX

Opérateurs relationnels

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 40: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

ConditionsConditions NONNON conditions conditionsVRAI FAUXFAUX VRAI

Il fait soleil Il ne fait pas soleil

Opérateurs logiquesNONNON

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 41: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Opérateurs logiquesETET

x y x ET y

FAUX FAUX FAUX

FAUX VRAI FAUX

VRAI FAUX FAUX

VRAI VRAI VRAI

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 42: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Opérateurs logiquesOUOU

x y x OU y

FAUX FAUX FAUX

FAUX VRAI VRAI

VRAI FAUX VRAI

VRAI VRAI VRAI

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 43: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

NON , + , - (monadiques) + élevée* , / , , % .+,- (dyadiques) .> , , < , .= , .ET .OU + faible

Évaluation des expressionsLes parenthèses et :Les parenthèses et :

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 44: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Un exemple d’évaluation d’expression:

x * x 0 ET ( x + 1 ) * ( x + 1 ) < 162 2 2 2

3 3

94

V V

V

L’L’uunité nité aarithmétique et rithmétique et llogiqueogique

Page 45: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

L’unité de commande et de contrôle (UCC) En charge de contrôler le déroulement d’un programme. Elle dirige le

fonctionnement de toutes les autres unités (UAL, mémoire, entrée/sortie) Normalement, un programme s’exécute instruction par instruction, dans

l’ordre (de haut en bas) ou elles sont écrites. Cependant, et très souvent, on aura besoin de briser la séquentialité:

en utilisant des structures de contrôle d’alternatives; en utilisant des structures de contrôle de répétitions; en faisant des appels de sous-programmes, caractérisés par une référence (appel) à un bloc à l’intérieur d’un autre bloc

Les Les composantescomposantes d d’un ordinateur’un ordinateur

Primitives de structures de contrôle

Page 46: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

SI condition est vrai alors

DÉBUT

Instructions

FIN

Condition

Instructions

VRAI

FAUX

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures alternatives

Page 47: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

SI x < 100 alors

DÉBUT

x x + 1

y 25

FIN

X < 100

x x + 1

y 25

VRAI

FAUX

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures alternatives

Page 48: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

SI condition est vrai alors

DÉBUT

Instructions v

FIN

SINON

DÉBUT

Instructions f

FIN

Condition

Instructions v

VRAI

FAUX

Instructions f

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures alternatives

Page 49: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

SI x = 0 alors

DÉBUT

x 100

FIN

SINON

DÉBUT

x x - 1

FIN

x = 0

X 100

VRAI

FAUX

x x - 1

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures alternatives

Page 50: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

RÉPÉTER n FOIS

DÉBUT

Instructions

FIN

n fois?

Instructions

FAUX

VRAI

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Compteur implicite

Structures itératives

Page 51: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Exemple Exemple Le factoriel nLe factoriel n 0.

DébutSi n = 1 ou n = 0 alors

Débutfact 1Fin

SinonDébutfact 1

Répéter n-1 foisDébutfact fact * i

FinFin

Fin

i 2

i i + 1

Page 52: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

RÉPÉTER i [1,n] DÉBUT

Instructions

FIN

n fois?

Instructions

FAUX

VRAI

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Compteur explicite

Structures itératives

Page 53: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Exemple Exemple Le factoriel nLe factoriel n 0.

DébutSi n = 1 ou n = 0 alors

Débutfact 1Fin

SinonDébutfact 1

Répéter i [2, n]Débutfact fact * iFin

FinFin

Page 54: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Condition

FAUX

VRAI

InstructionsRÉPÉTER

DÉBUT

Instructions

FIN

TANT QUE condition

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures itératives

Page 55: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Début Si n = 1 ou n = 0 alors

Début fact 1 

Fin Sinon

Début fact 1 i 1Répéter

Début fact fact * i

i i + 1Fin

Tant Que i < n+1Fin

Fin

Exemple Exemple Le factoriel nLe factoriel n

Page 56: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

TANT QUE condition

DÉBUT

Instructions

FIN

condition

Instructions

VRAI

FAUX

UUnité de nité de ccommande et ommande et ccontrôleontrôle

Structures itératives

Page 57: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Début Si n = 1 ou n = 0 alors

Début fact 1 

Fin Sinon

Début fact 1 i 2Tant Que i < n+1

Début fact fact * i

i i + 1Fin

Fin Fin

Exemple Exemple Le factoriel nLe factoriel n

Page 58: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Propriétés :

Un nombre fini d’étapesUn nombre fini d’opérations par étapeUne suite d’opérations primitivesFournit un résultat (décidabilité)Chaque opération est

non ambiguë Effective

calculabilité

L’algorithmique impérative

Page 59: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Propriétés :Un algorithme doit être indépendant du langage de

programmation utilisé.Un programme est un algorithme exprimé dans un langage de

programmation capable d’être exécuté par un ordinateur.

Peut être exprimé de manière formelle :

- en pseudo-code

- par un algorigramme- dans un arbre algorithmique

- dans un diagrammes structurés

L’algorithmique impérative

Page 60: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Algorithme

Programme

Ordinateur

Description formelle (?)

Transcription (?)

Compilation

Langage de programmation

Langage machine (?)

Exécution (?)Solution

Problème

Algorithme, programme et ordinateur

Lab#2

Page 61: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Algorithme: un traitement de texte! début Demander CP {A: CP est un caractère}Afficher CP TANT QUE CP ‘!’

début Demander CL

{A: CL est un caractère}SI CL = CP ALORS

début Afficher le caractère de soulignement '_ '

fin Afficher CL CP CL

fin fin

Qu’affiche cet algorithme si les données lues sont:" Etes vous efficace? ... Bonne chance!! "(Les guillemets ne font pas partie des données)

Page 62: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Rosalie dans le labyrinthe

Entrée

Sortie

Faire un pas devant elle (se rendre au centre du carré situé immédiatement devant elle). Tourner d'un quart de tour à gauche ou à droite. Détecter un mur placé devant lui (c'est à dire répondre à la question "y a-t-il un mur en face?"; la réponse est oui ou non. Détecter l'entrée du labyrinthe (en l'absence de ce test, Rosalie pourrait sortir par là où elle est entrée!). Détecter la sortie du labyrinthe (en l'absence de ce test, Rosalie ne s'arrêterait pas et continuerait à longer le mur à l'extérieur!).

Les primitives

Page 63: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Algorithme: Sortir du labyrinthe en longeant le mur de gauche DébutAvancer d'un pasFaire un quart de tour à gaucheTant que Rosalie n'est pas sortie

DébutFaire un quart de tour à gaucheTant que mur en face Début

Faire un quart de tour à droiteFinAvancer d'un pas

FinFin.

Page 64: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Il a été démontré que tout cube est égal à la somme de nombres impairs consécutifs.

Par exemple : 1 = 1 8 = 3 + 5 27 = 7 + 9 + 11 64= 13 + 15 + 17 + 19

Décrivez un algorithme qui lit un entier n strictement positif et donne une décomposition de n3.

Page 65: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Détermination des nombres de début et de fin de la sérieDébut

n3 n*n*ns 0p 1k 1

Tant que (s n3)début

si (s>n3) alors début

s s - (2*k-1)k k + 1

finsi ( s<n3) alors

débuts s + (2*p -1)p p + 1

finfinx 2*k -1y 2* (p-1) -1

fin

Page 66: Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Affichage du développement du cube de ndébut

n3 n*n*nAfficher n3 " = "k premier

Tant que (k < dernier)début

Afficher k " + " k k+2

fin

Afficher dernierfin