• Aucun résultat trouvé

Chapitre V. Algorithmique. École Na)onale Polytechnique 1 ère année Classes Préparatoires. Ma)ère Informa)que 1. Année 2020/2021

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre V. Algorithmique. École Na)onale Polytechnique 1 ère année Classes Préparatoires. Ma)ère Informa)que 1. Année 2020/2021"

Copied!
115
0
0

Texte intégral

(1)

Chapitre V

Algorithmique

École Na)onale Polytechnique 1

ère

année Classes Préparatoires

Année 2020/2021

Ma)ère

Informa)que 1

(2)

Plan

•  Introduc)on à l’algorithmique

•  Structure d’un Algorithme

•  No)on de variable et de constante

•  Séquence d’instruc)ons

–  Affecta)on

–  Lecture/Écriture

–  Structures alterna)ves –  Structure itéra)ves

•  Les types complexes

–  Tableaux

–  Enregistrements

Dr. Meziane-Tani I. 2

(3)

Introduc)on

Ordinateur

Matériel Logiciel

-  Composants matériels

(4)

Introduc)on

•  Logiciel = Programmes + Données

•  Un programme : une suite d’instruc)ons exécutées dans un ordre donné par le processeur afin de produire un résultat.

•  Un programme : le traitement automa)que (par une machine) d’une tâche laborieuse si elle est exécutée par l’être humain. Exemples : - un traitement répé))f, un gros calcul, un traitement long,…

Dr. Meziane-Tani I. 4

(5)

Introduc)on

•  Un programme est écrit dans un langage de programma)on

« compris » par l’ordinateur.

•  Le seul langage que comprend l’ordinateur est le binaire.

•  Cependant celui-ci n’est pas très maniable par l’être humain qui doit écrire les codes (le programmeur) => appari)on des langages évolués : Pascal, C, Fortran, C++, Java, etc.

•  Les programmes écrits dans des langages évolués sont traduits (par

l’ordinateur lui même) vers le langage binaire afin d’être exécutés

par le processeur : la compilaBon.

(6)

Introduc)on

PréparaBon du

programme

Étapes de réalisa-on d’un programme

Dr. Meziane-Tani I. 6

Énoncé du problème

Cahier des charges

Algorithme

Programme (Codes sources)

Programme exécutable (suite de 0 et de 1)

Spécifica-on

Analyse

Traduc-on

Compila-on

Tests et modifica-ons

(7)

Algorithme

•  Extrait du nom du mathéma)cien perse Al Khawarizmi.

•  Algorithme : Ensemble de règles opératoires dont l'applica)on permet de résoudre un problème énoncé au moyen d'un nombre fini d'opéraBons.

[Larousse]

•  L’algorithme est écrit dans un langage facilement compris par l’être humain => Décrit les étapes de résolu)on d’un problème donné.

•  Exemples :

Mode d’emploi pour faire fonc)onner une machine à laver.

•  Receke de cuisine pour préparer un plat.

•  I)néraire rou)er pour aller d’une ville à une autre.

...

(8)

Algorithme / Programme

Algorithme Puissance2 Variables x, y : en-ers Début

Lire(x) y ç x * x Ecrire(y) Fin

#include <stdio.h>

#include <stdlib.h>

int x, y;

int main() {

scanf(“%d”, &x);

y = x * x;

prin<(”y=%d\n”, y);

return 0;

}

Algorithme Programme écrit en langage « C »

Avantage : L’algorithme est plus compréhensible par un être humain.

Dr. Meziane-Tani I. 8

Traduc)on

(9)

Algorithme

•  Le langage algorithmique doit se rapprocher le plus possible du langage humain. Il peut être écrit dans la langue de celui qui écrit l’algorithme : français, anglais, arabe, chinois, etc.

•  Le langage algorithmique doit tout de même respecter une certaine syntaxe pour faciliter la compréhension.

•  Un algorithme n’est pas un programme prêt à être exécuté par une machine. Il doit être traduit en un programme écrit dans un langage de programma)on.

•  Un algorithme doit être écrit indépendamment du langage de programma)on dans lequel il sera traduit.

•  Pour un même problème il peut exister plusieurs façon de formuler la solu)on, donc : plusieurs algorithmes.

(10)

Principales qualités d’un algorithme

–  Clair => Compréhensible par d’autres personnes

–  Correct => implémente correctement les tâches pour lesquelles il a été conçu.

–  Complet => prend en considéra)on tous les cas possibles en donnant un résultat pour chaque cas.

–  Efficace => Exécute sa tâche efficacement, c’est-à-dire avec un coût minimal. Le coût pour un ordinateur se mesure en temps de calcul et d’espace mémoire alloué pour le programme et ses données.

10 Dr. Meziane-Tani I.

(11)

ReprésentaBon d’un algorithme

•  Deux façons de représenter un algorithme :

–  Représenta)on graphique => Organigramme

(n’est plus très uBlisée aujourd’hui)

–  Représenta)on textuelle => Pseudo-code

(12)

Pseudo-Code

•  Représenta)on textuelle respectant une certaine syntaxe qui ressemble à un langage de programma)on, d’où le nom « pseudo- code ».

•  Plus pra)que pour écrire un algorithme.

Dr. Meziane-Tani I. 12

(13)

Composants de base d’un algorithme

•  Certaines convenBons doivent être respectées pour écrire un algorithme, telles que :

–  Nom : un algorithme doit porter un nom qui généralement décrit la fonc)on de l’algorithme ou bien le problème qu’il résout.

–  Début et Fin : Délimiter le commencement et la fin de l’algorithme par les mots clés : Début et Fin.

–  Noms significaBfs : il faut donner des noms significa)fs aux variables afin de rendre l’algorithme plus compréhensible par d’autres personnes.

–  Commentaires : écrits dans la langue du programmeur, ils sont u)les

pour expliquer les étapes de l’algorithme.

(14)

Structure de base d’un algorithme

Algorithme Nom de l’algorithme

/* La parCe déclaraCons de l’algorithme */

Constantes // les constantes nécessitent d’avoir une valeur dès leur déclara)on

const1 ç 10 : en)er

Variables // les variables proprement dites

var2, var3 : réels

/* corps de l’algorithme */

Début

/* instruc)ons */

Fin

Commentaire

Dr. Meziane-Tani I. 14

(15)

Les variables

(16)

NoBon de variable (1/2)

•  Dans un programme, une donnée peut être :

–  Une donnée de départ : une entrée

–  Un résultat intermédiaire obtenu par le programme en cours d’exécu)on

–  Résultat défini)f du programme : une sor)e.

•  Pendant l’exécu)on d’un programme informa)que, chaque donnée doit être sauvegardée temporairement en mémoire centrale. L’emplacement où sera stockée ceke donnée peut changer de valeur pendant l’exécu)on du programme

=> l’emplacement mémoire contenant une donnée : variable.

Dr. Meziane-Tani I. 16

(17)

NoBon de variable (2/2)

•  Les données manipulées par un programme peuvent être :

–  des nombres (en)ers ou réels),

–  des données logiques (vrai ou faux), –  des caractères,

–  du texte (suite de caractères), –  etc.

=> Il faut réserver de l’espace mémoire (nombre de

bits) nécessaire au stockage de la variable :

déclaraBon de variable.

(18)

DéclaraBon de variable

•   Avant d’u)liser une variable, il faut d’abord la déclarer dans la par)e déclara)on de l’algorithme.

•  Déclarer une variable consiste à donner :

–  Nom de la variable : appelé aussi « iden)ficateur ».

–  Type de la variable : désigne la plage de valeurs que peut avoir la variable (en)er, réel, booléen, etc).

–  Une valeur : n’est pas obligatoire et peut se faire à l’intérieur du corps de l’algorithme.

Dr. Meziane-Tani I. 18

(19)

DéclaraBon de variables

•  Toute variable u)lisée dans un algorithme doit être déclarée avant son u)lisa)on.

•  En pseudo-code :

•  Exemples : Variables liste d’iden-ficateurs : Type

Variables i, j, k : enCer x, y : réel OK : booléen

Chaine1, Chaine2 : Chaîne de caractères

(20)

IdenBficateur de variables

•  L’iden)ficateur est le nom qu’on donne à une variable.

•  Conven)ons :

1.  l’iden)ficateur commence par une majuscule. Exemples : Nom, Prenom, Age, …

2.  Les symboles acceptées sont : Chiffres, lekres minuscules, majuscules, )ret- bas “_”. Exemples : Informa)que1, Informa)que_1 : corrects

3.  Ne commence pas par un chiffre. Exemple : 1Informa)que : incorrect.

4.  Éviter les caractère de ponctua)on et les espaces. Exemples : Informa)que 1, Informa)que-1, Informa)que&1 : Incorrects

5.  Doit être différent des mots réservés. Exemples : En)er, Début, Variable, ...

6.  De longueur raisonnable.

7.  Doit être significa)f et décrit la données manipulée.

Dr. Meziane-Tani I. 20

(21)

Types de variables

•   Le type d’une variable détermine l’ensemble de valeurs que peut prendre ceke variable ainsi que les opéra)ons correspondantes.

•  Spécifier le type d’une variable au moment de sa déclara)on est nécessaire afin de réserver de l’espace mémoire pour son stockage.

•  Exemples :

–  En)er court : réserver 2 octets.

–  Caractère : réserver 1 octet.

(22)

Types prédéfinies

Dr. Meziane-Tani I. 22

Type Valeur Exemples

En)er Les en)ers et les en)ers

rela)fs 17, -50, …

Réel Les réels 13.5, 0.5e3, …

Booléen VRAI ou FAUX

Caractère Les lekres, les chiffres et les symboles sont mis entre apostrophes

‘a’, ‘B’, ‘3’, ‘%’

Chaîne de caractères Les chaînes de caractères sont

mises entre guillemets ‘’ Bonjour ’’, ‘’Ceci est une chaîne’’

(23)

Les constantes

(24)

NoBon de constante

•  Une constante est une variable dont la valeur ne change pas au cours de l’exécu)on du programme, elle peut être :

–  un nombre –  un caractère

–  une chaine de caractères.

•  Une constante doit toujours recevoir une valeur dès sa déclara)on.

•  En pseudo-code :

•  Par conven)on, les noms de constantes sont écrits en majuscules

•  Exemple :

–  Pour calculer la surface des cercles, la valeur de pi est une constante mais le rayon est une variable.

Constante PI ç 3.14 : réel Variable Rayon : réel

Constante iden-ficateur ç valeur : type

Dr. Meziane-Tani I. 24

(25)

La séquence d’instrucBons

(26)

Séquence d’instrucBons

•   Une instruc)on, appelée aussi « ac-on primi-ve » est une opéra)on de base du processeur, d’un langage de programma)on ou bien du langage algorithmique.

•   Les instruc)ons d’un algorithme sont habituellement exécutées une à la suite de l’autre, de haut en bas et de gauche à droite : elles forment une séquence d’instruc)ons.

•   L’ordre d’exécu)on des instruc)ons est important. Changer l’ordre peut cause un dysfonc)onnement de l’algorithme.

•   Exemple :

Dr. Meziane-Tani I. 26

Lire(A) A ç A + 1;

Ecrire(A)

Lire(A) Ecrire(A) A = A + 1;

est différent de :

(27)

Séquence d’instrucBons

•  En algorithmique, une instruc)on peut être :

–  Une affecta)on

–  Une instruc)on d’entrée ou de sor)e –  Une structure alterna)ve

–  Une structure itéra)ve

–  Autres : appel d’une fonc)on, …

(28)

L’affectaBon

Dr. Meziane-Tani I. 28

(29)

AffectaBon

•   Soit « v » une variable et « E » une expression.

•   Une affecta)on est une instruc)on dans laquelle le résultat de l’expression E est affecté à la variable v.

•   La syntaxe de l’affecta)on est la suivante : v ç E

•   Important : Le résultat de l’expression E doit être du même

type que la variable v.

(30)

AffectaBon

•  L’expression E peut être :

–  Une constante du même type : v ç 12,5 –  Une variable du même type : v ç u

–  Un ensemble de valeurs ou de variables du même type reliées entre elles par des opérateurs : v ç u+w

Remarque : Une affectaBon n’est pas une équaBon mathémaBque

•  Exemples :

–  A ç A+1 (incrémenta)on) et A ç A-1 (décrémenta)on) ont un sens en programma)on contrairement aux équa)ons.

–  A+1 ç 3 n’est pas une affecta)on possible et ne vaut pas Aç 2.

Dr. Meziane-Tani I. 30

(31)

Opérateurs

•  En algorithmique, un opérateur est un symbole qui représente une opéra)on qui, selon le type des opérandes (variables), peut être :

–  ArithméBque : retourne un résultat numérique

–  Logique : retourne un résultat logique (vrai ou faux) –  De comparaison : retourne un résultat logique (vrai

ou faux)

(32)

Opérateurs

Dr. Meziane-Tani I. 32

Type Opérateur Symbole

Opérateurs ArithméBques

addi)on +

soustrac)on -

mul)plica)on *

division /

modulo %

puissance ^

Opérateurs de comparaison

Est égal =

Est différent ≠

Est inférieur <

Est supérieur >

Est inférieur ou égal ≤ Est supérieur ou égal ≥

Opérateurs logiques

Inverse NON

Et ET

Autre Concaténa)on de chaînes

de caractères &

(33)

Quelques exemples

•  OpéraBon ArithméBque :

–  v ç 15 + 5 => v vaut 20

•  OpéraBon de comparaison :

–  v ç 6 > 8 => v (une variable booléenne) vaut faux car 6 n’est pas supérieur à 8.

•  OpéraBon logique :

–  v ç (8 % 5 = 3) OU (5 > 10) => v vaut vrai car : 8%5 vaut 3

(8%5 = 3) vaut vrai (5 > 10) vaut faux

(vrai OU faux) vaut vrai.

(34)

Règles d’uBlisaBon des opérateurs

•  L’évalua)on d’une expression se fait en tenant compte des priorités des opérateurs.

–  Exemple : 2+5*4 vaut 22

•   Pour forcer les priorités, des parenthèses sont u)lisées.

–  Exemple : (2+5)*4 vaut 28

•   Si les opérateurs ont la même priorité , l’expression est évaluée de gauche à droite.

–  Exemple : 2+5+7 se calcule (2+5)+7 et vaut 14.

Dr. Meziane-Tani I. 34

(35)

Priorités des opérateurs

Ordre de priorité Opérateurs

1 ()

2 ^

3 * / %

4 + -

5 < ≤ > ≥

6 = ≠

7 NON

8 ET OU

9 ç

(36)

Exemple d’exécuBon d’un algorithme

Algorithme Affecta-ons Variables A, B, C: EnCer Début

A←7 B ← 17 A←B B ← A+5 C←A+B Fin

Dr. Meziane-Tani I. 36

InstrucBon A B C

A←7 7 ? ?

B ← 17 7 17 ?

A←B 17 17 ?

B ← A+5 17 22 ?

C←A+B 17 22 39

A = 17 B = 22 C = 39 Résultats :

Déroulement de l’algorithme :

(37)

Les entrées et sorBes

(38)

Les instrucBons d’entrées/sorBes

•  Les instruc)ons d’entrées et de sor)es permekent à l’humain de communiquer avec l’ordinateur.

•   Il existe deux types d’instruc)ons d’entrées/

sor)es :

–  La lecture –  L’écriture

Dr. Meziane-Tani I. 38

(39)

Lecture

•  La lecture est une instruc)on d’entrée qui permet d’introduire des données numériques ou textuelles au moyen d’un clavier.

•  En pseudo-code :

•  L’ordinateur enregistre la valeur entrée au clavier à l’emplacement mémoire réservé à la variable « x ».

•  Il faut toujours déclarer une variable avant de lire sa valeur.

•  A l’exécu)on : En exécutant un programme, celui-ci s’arrête lorsqu’il rencontre une instruc)on de lecture jusqu’à l’introduc)on de la valeur suivi de l’appui sur la touche « Entrée ».

Lire(x)

(40)

Écriture

•  L’écriture est une instruc)on de sor)e qui permet d’afficher des résultats ou bien des messages à l’écran.

•  En pseudo-code :

•  L’ordinateur affiche à l’écran la liste des expressions qui peuvent être :

–  Des Variables : affiche les valeurs des variables.

–  Des valeurs numériques : affiche des nombres

–  Des chaînes de caractères: messages affichés à l’u)lisateur pour communiquer avec lui.

Exemples :

–  Écrire(a) // Affiche la valeur de la variable a

–  Écrire(‘’La valeur de a est : ‘’, a) // affiche un message suivi de la valeur de a –  Écrire(‘’La valeur de b est : ‘’, 2) // affiche un message suivi du nombre 2

–  Écrire(‘’La valeur de b est : ‘’, a+2) // affiche un message suivi du résultat de a+2 –  Écrire(‘’Veuillez introduire la valeur de x ’’) // affiche un message

Dr. Meziane-Tani I. 40

Ecrire(liste d’expressions)

ou Ecrire(expression 1, expression 2, expression 3, …)

(41)

Exemple

Algorithme AfficherNomComplet

variables Nom, Prenom : chaîne de caractères Début

Ecrire("entrez le nom") Lire(Nom)

Ecrire("entrez le prénom") Lire(Prenom)

Ecrire("Votre nom complet est : ", Nom, ‘’ ‘’,Prenom) Fin

A l’exécu)on, ce qui est affiché à l’écran :

entrez le nom Benarbi

entrez le prénom Mohamed

Votre nom complet est : Benarbi Mohamed

Remarque : Benarbi et Mohamed sont des valeurs introduites au clavier.

(42)

Les structures alternaBves

Dr. Meziane-Tani I. 42

(43)

Structure alternaBve

•   Une structure alterna-ve, appelée aussi structure condi-onnelle est une structure algorithmique dans laquelle une suite d’instruc)ons n’est exécutée que si une condi)on est vérifiée.

•  Une condi-on est une expression qui retourne une valeur booléenne.

–  Exemple : (Delta > 0)

•  Remarque : Dans le jargon informa)que, les structures

condi)onnelles sont souvent appelées « Tests ».

(44)

CondiBon composée

•   Une condi)on peut être :

–  Simple : Généralement une opéra)on de comparaison

comportant un seul opérateur de comparaison (=, ≠, <, ≤ ,

> , ≥).

Exemple :

§  Age supérieur à 30 : Age > 30.

–  Composée : Une suite d’expressions de comparaison reliées par des opérateurs logiques.

Exemples :

§  x compris entre 1 et 10 : (x ≥ 1) ET (x ≤ 10)

§  n divisible par 2 ou 5 : (n % 2 = 0) OU (n % 5 = 0)

Dr. Meziane-Tani I. 44

(45)

Types de structures alternaBves

1.   Alterna)ve simple

–  Si … alors ... Finsi

2.   Alterna)ve complète

–  Si … alors ... Sinon ... Finsi

3.  Alterna)ve imbriquée

–  Plusieurs « Si » imbriqués

–  L’instruc)on « Selon »

(46)

1. AlternaBve simple Si … alors ... Finsi

Dr. Meziane-Tani I. 46

(47)

AlternaBve simple

Si Condi-on alors

/* Séquence d’instruc-ons */

Finsi

La structure algorithmique pour effectuer un test simple est la suivante :

-  Condi-on est une expression booléenne qui doit retourner un résultat VRAI ou FAUX.

-  La séquence d’instruc)ons n’est exécutée que si la Condi-on retourne un résultat VRAI.

-  Si Condi-on retourne un résultat FAUX, aucune instruc)on à l’intérieur du

(48)

Exemple

Dr. Meziane-Tani I. 48

Exemple : Écrire un algorithme qui permet de lire un en)er x puis de vérifier si sa valeur est posi)ve ou nulle. Dans ce cas afficher un message.

Algorithme En-erPosi-f Variables x: EnCer

Début Lire(x)

Si x ≥ 0 alors

Écrire(‘’La valeur de x est posi-ve ou nulle’’) Finsi

Fin

(49)

2. AlternaBve complète

Si … alors ... Sinon ... Fin si

(50)

AlternaBve complète

Dr. Meziane-Tani I. 50

Si Condi-on alors

/* Séquence d’instruc-ons 1 */

Sinon

/* Séquence d’instruc-ons 2 */

Finsi

-  Condi-on est une expression booléenne qui doit retourner un résultat VRAI ou FAUX.

-  La « séquence d’instruc)ons 1 » est exécutée si la Condi-on retourne un résultat VRAI.

-  Si Condi-on retourne un résultat FAUX, la « séquence d’instruc)ons 2 » sera exécutée.

Pseudo-code :

(51)

Exemple

Exemple : Écrire un algorithme qui permet de lire un en)er x puis d’afficher sa valeur absolue.

Algorithme ValeurAbsolue Variables x: EnCer

Début Lire(x)

Si x ≥ 0 alors

Écrire(‘’La valeur absolue de x est :’’, x)

Sinon /* x < 0 mais pas besoin de revérifier la condi-on */

Écrire(‘’La valeur absolue de x est :’’, -x) Finsi

(52)

3. AlternaBve imbriquée

Dr. Meziane-Tani I. 52

(53)

AlternaBve imbriquée

•  Il est possible d’effectuer un test à l’intérieur d’un autre test : imbricaBon.

•  Le degré d’imbrica)on n’est pas limité mais doit tout de même être raisonnable.

Si Condi-on 1 alors

Si Condi-on 2 alors

/* Séquence d’instruc-ons 1 */

Sinon

/* Séquence d’instruc-ons 2 */

Finsi Sinon

Si Condi-on 3 alors

/* Séquence d’instruc-ons 3 */

Sinon

/* Séquence d’instruc-ons 4 */

Finsi Pseudo-code :

(54)

Exemple

•  Écrire un algorithme permekant de vérifier si un en)er « x » saisi au clavier est posi)f, nul ou bien néga)f. Afficher un message pour chaque cas.

Dr. Meziane-Tani I. 54

Algorithme Signe Variables x: EnCer

Début Lire(x)

Si x > 0 alors

Écrire(‘’Le nombre est posi-f’’) Sinon

Si x = 0 alors

Écrire(‘’Le nombre est nul’’) sinon

Écrire(‘’Le nombre est néga-f’’) Finsi

Finsi Fin

(55)

L’instrucBon « Selon … FinSelon »

•  Les tests imbriqués peuvent parfois être remplacés par l’instruc)on ‘’Selon …FinSelon’’.

•  Ceci est possible lorsque les tests imbriqués

effectuent la comparaison de la même

variable avec plusieurs valeurs.

(56)

Selon … FinSelon

Dr. Meziane-Tani I. 56

SELON

Condi)on 1 : Ac)on 1 Condi)on 2 : Ac)on 2 ...

Condi)on n : Ac)on n SINON : ac)on_sinon FINSELON

En Pseud-code :

1.  La condiBon 1 est évaluée :

•  Si la condi)on 1 est vraie, alors on exécute

l'ac)on correspondante et on quike la structure selon.

•  Si la condi)on 1 est fausse, on évalue la condi)on 2...et ainsi de suite.

2.  Si aucune n'est vraie on effectue l'acBon sinon Remarque : l'ac)on sinon n’est pas obligatoire. Si elle n'existe pas alors aucune ac)on n'est exécutée dans le cas où aucune condi)on n’et vérifiée.

(57)

Exemple

•  Résoudre l’exemple précédent (le signe d’un nombre introduit au clavier) en u)lisant l’instruc)on Selon.

Algorithme Signe Variables x: EnCer Début

Lire(x) Selon

x > 0 : Écrire(‘’Le nombre est posi-f’’) x < 0 : Écrire(‘’Le nombre est néga-f’’) Sinon : Écrire(‘’Le nombre est nul’’) FinSelon

(58)

Les structures répéBBve

Dr. Meziane-Tani I. 58

(59)

Structure répéBBve

•   Une structure répéBBve ou structure itéraBve est une structure algorithmique qui consiste à répéter un ensemble d’instruc)ons un certain nombre de fois.

•   Aken)on : le nombre de répé))ons ne peut être infini ! Il faut toujours s’assurer que la structure répé))ve s’arrête après un nombre fini de répé))ons.

•   Remarques :

- En jargon informa)que, une structure répé))ve est généralement appelée « boucle ».

- Une répé))on est appelée : itéraBon.

(60)

Structure répéBBve

•   Le nombre d’itéra)ons peut être donné de deux différentes manières :

–  Un compteur

–  Une condi)on d’arrêt des répé))ons

•  Il existe 3 types de structures répé))ves (boucles) :

1.  La boucle : « TantQue … Faire ... FinTantQue » => Condi)on 2.  La boucle : « Répéter ... Jusqu’à » => Condi)on

3.  La boucle : « Pour … de ... à ... Pas ... FinPour » => Compteur

•   Le choix d’un type de boucle dépend des données dont ont dispose (compteur ou condi)on d’arrêt).

Dr. Meziane-Tani I. 60

(61)

1. TantQue … Faire ... FinTantQue

(62)

La boucle « TantQue »

•  Une séquence d’instruc)ons est répétée tant qu’une condi)on est vérifiée.

Dr. Meziane-Tani I. 62

TantQue Condi-on Faire

/* Séquence d’instruc-ons */

FinTantQue

Pseudo-code :

Remarques :

-  La Condi-on est évaluée avant chaque itéra)on.

-  Il est possible que la séquence d’instruc)ons ne soit jamais exécutée.

(63)

Exemple

•  Écrire un algorithme qui demande à l’u)lisateur d’introduire une note jusqu’à ce que celle-ci soit valide (0 ≤ note ≤ 20).

Algorithme SaisiNote Variables Note: EnCer Début

Ecrire(“Introduire une note :”) Lire(Note)

TantQue (Note < 0) OU (Note > 20) faire

Ecrire(“La note n’est pas valide. Veuillez recommencer”)

Lire(Note)

FinTantQue

(64)

2. Répéter… Jusqu’à ...

Dr. Meziane-Tani I. 64

(65)

La boucle « Répéter »

•  Répéter une séquence d’instruc)ons jusqu’à ce qu’une condi)on soit vérifiée. Dans ce cas, on sort de la boucle.

Répéter

/* Séquence d’instruc-ons */

Jusqu’à Condi-on

Pseudo-code :

Remarques :

-  La Condi-on est évaluée après chaque itéra)on.

-  La séquence d’instruc)ons est exécutée au moins une fois.

(66)

Exemple

•  Écrire un algorithme qui calcule le nombre, N, des premiers nombres posi)fs tels que leur somme est supérieure ou égale à 100.

Dr. Meziane-Tani I. 66

Algorithme Somme100

Variables N, Somme, i: EnCer Début

Somme ← 0 i ← 0

Répéter i ← i + 1

Somme ← Somme + i Jusqu’à Somme ≥ 100

Ecrire(“La valeur de N est : “, i) Fin

(1 + 2 + 3 + 4 + ... + N ) ≥ 100

N = ?

(67)

Boucles TantQue/Répéter - Risque de boucle infini -

•   Dans une boucle TantQue ou dans une boucle Répéter, il faut bien choisir la condi)on de sorte que la boucle fini toujours par s’arrêter et ce afin d’éviter la boucle infini => Problème de satura)on du processeur !

•  Exemple : Algorithme BoucleInfini Variables i: EnCer

Début i ←1

TantQue i > 0 faire i ← i+1

FinTantQue

(68)

3. Pour … de ... à ... Pas ... Faire ...

FinPour

Dr. Meziane-Tani I. 68

(69)

La boucle « Pour »

•  Une séquence d’instruc)ons est exécutée un certain nombre de fois connu à l’avance.

Pour Compteur de Ini-ale à Finale Pas Valeur_Pas Faire /* Séquence d’instruc-ons */

FinPour

Pseudo-code :

-   Compteur : une variable qui sert à compter le nombre d’itéra)ons

-   IniCale : la valeur ini)ale du compteur. Doit être donnée.

-   Finale : la valeur finale du compteur. Doit être donnée. Finale n’est pas toujours supérieure à Ini-ale.

-   Valeur_Pas : la valeur du pas d’incrémenta)on du compteur.

Ceke valeur est op)onnelle. Si elle n’est pas donnée, elle sera

par défaut égale à « 1 ».

(70)

Exemple 1

•  Écrire un algorithme qui demande à l’u)lisateur un nombre en)er de départ et qui ensuite affiche les 10 en)ers suivants.

Dr. Meziane-Tani I. 70

Algorithme NombresSuivants Variables Depart, i: EnCer Début

Ecrire(“Introduire un nombre de départ :”) Lire(Depart)

Pour i de 1 à 10 Pas 1 faire /* i est un compteur qui compte les nombres */

Ecrire(Depart+i) /* afficher les en-ers qui suivent la valeur Depart */

FinPour Fin

(71)

Exemple 2

•  Écrire un algorithme qui demande à l’u)lisateur un nombre en)er final et qui ensuite affiche les 10 en)ers précédents dans un ordre croissant.

Algorithme NombresPrecedents Variables Final, i: EnCer

Début

Ecrire(“Introduire un nombre final”) Lire(Final)

Pour i de 10 à 1 Pas -1 faire /* le compteur est décrémenté par pas de -1 */

Ecrire(Final-i) /* afficher les en-ers qui précèdent Final */

FinPour

(72)

La boucle « Pour »

- Quelques remarques -

•   Avec la boucle « Pour », il n’y a pas de risque de boucle infinie car les valeurs « Ini)ale » et « Finale » sont obligatoirement définies avec des valeurs numériques.

•  Pour qu’il n’y ait pas de dysfonc)onnement de la boucle « pour », il faut éviter de modifier la valeur du compteur à l’intérieur de la boucle.

–  Exemple :

Dr. Meziane-Tani I. 72

Pour i de 0 à 10 Pas 1 Faire Ecrire(i)

i ← i + 1 FinPour

En ajoutant l’incrémenta)on du i à l’intérieur de la boucle, ceke variable sera incrémentée de 2 pas à chaque itéra)on.

Les valeurs de « i » sont donc : 0, 2, 4, 6, 8, 10.

(73)

Remarque Pour/TantQue

•  La boucle Pour peut être remplacée par une boucle TantQue.

Pour Compteur de Ini-ale à Finale Pas Valeur_Pas Faire /* Séquence d’instruc-ons */

FinPour

Compteur ← Ini-al

TantQue Compteur ≤ Finale* Faire /* Séquence d’instruc-ons */

Compteur ← Compteur + Valeur_Pas FinTantQue

Il n’est pas toujours possible de remplacer la boucle TantQue

* : la condi)on devient compteur ≥ Finale si Finale < Ini)ale.

(74)

Choix du type de boucle

•  Si le nombre d’itéra)ons est connu à l’avance : => Choisir la boucle Pour

•  Sinon :

–  Si la condi)on de la boucle ne peut être vérifié qu’après une première itéra)on OU Si au moins une itéra)on est obligatoire :

=> Choisir la boucle Répéter –  Sinon :

=> Choisir la boucle TantQue

Dr. Meziane-Tani I. 74

(75)

Quelques exemples…

•  Exemple 1 : Écrire un algorithme qui demande successivement 20 nombres à l’u)lisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres.

•   Exemple 2 : Écrire un autre algorithme qui

demande successivement plusieurs nombres à

l’u)lisateur et affiche leur maximum, mais ceke

fois-ci la saisie des nombres s’arrête lorsque

l’u)lisateur entre un zéro.

(76)

SoluBon Exemple 1

Algorithme PlusGrandNombre Variables N, i, Max : EnCer Debut

Max ← 0

Pour i de 1 à 20 Pas 1

Ecrire("Entrez un nombre : ”) Lire(N)

Si (i = 1) OU (N > Max ) Alors Max ← N

FinSi FinPour

Ecrire("Le nombre le plus grand était : ", Max ) Fin.

Dr. Meziane-Tani I. 76

(77)

SoluBon Exemple 2 TantQue

Algorithme PlusGrandNombre2 Variables N, i, Max: EnCer

Debut N ← 1 i ← 0 Max← 0

TantQue N <> 0

Ecrire("Entrez un nombre : ”) Lire(N)

i ← i + 1

Si (i = 1) OU (N > Max) Alors Max← N

FinSi FinTantQue

(78)

SoluBon Exemple 2 Répéter

Algorithme PlusGrandNombre3 Variables N, i, Max: EnCer

Debut i ← 0 Max← 0 Répéter

Ecrire("Entrez un nombre : ”) Lire(N)

i ← i + 1

Si (i = 1) OU (N > Max) Alors Max← N

FinSi Jusqu’à N=0

Ecrire("Le nombre le plus grand était : ", Max) Fin

Dr. Meziane-Tani I. 78

(79)

Boucles imbriquées

•   En fonc)on du problème abordé, il est possible que les instruc)ons d’une boucle soient à leur tour une boucle : du même type ou d’un autre type.

•  Exemple : Afficher le triangle ci-dessous en u)lisant une boucle « Pour ».

* **

***

****

*****

******

(80)

Boucles imbriqués - Exemple -

Dr. Meziane-Tani I. 80

Algorithme Pyramide Variables i, j: EnCer Début

Pour i de 1 à 7 faire /* i compte les lignes */

Pour j de 1 à i faire /* j compte le nombre d’étoiles de chaque ligne */

Ecrire(“*”) FinPour

FinPour

Fin

(81)

Les types complexes

(82)

Types complexes

•  Les types complexes ne désignent pas les nombres complexes !

•  Types complexes : désignent des types de données dont la structure est plus complexe que les types prédéfinies (En)er, Réel, Caractère, etc.).

•  En algorithmique :

–  Les tableaux

–  Les enregistrements –  Les listes

–  Les Piles et les Files –  Les arbres

–  Etc.

Dr. Meziane-Tani I. 82

(83)

1 – Les tableaux

(84)

IntroducBon

•  Reprenons l’exemple des boucles où il était demandé d’introduire 20 nombres puis d’afficher le maximum de ces nombres comme résultat.

•  Supposons qu’il fallait afficher les 20 nombres introduits après avoir affiché le maximum. Quelle serait la solu)on ?

⇒   Il faudrait alors sauvegarder les 20 nombres !

•  Comment faire alors pour sauvegarder les 20 nombres ?

⇒   Déclarer 20 variables ?

•  Et s’il était demandé d’introduire 100 nombres ? 200 nombres ? …

⇒   Il faut stocker tous les nombres dans une seule structure de données (variable) de type “Tableau”.

Dr. Meziane-Tani I. 84

(85)

Tableau

•  Un tableau est une structure de données qui permet de manipuler un ensemble de données de même type.

•   Un tableau est une variable qui sert à stocker en mémoire plusieurs valeurs.

•  Les données sont stockées de façon « con)güe »,

c’est à dire la première données suivi de la

deuxième, suivi de la troisième … Et ainsi de

suite.

(86)

ReprésentaBon d’un tableau

Dr. Meziane-Tani I. 86

Élément 1 Élément 2 Élément 3 …... Élément n-1 Élément n ReprésentaBon en mémoire :

ReprésentaBon graphique :

: :

Élément 1 Élément 2 Élément 3

Élément n

RAM

Tableau de n éléments

Taille du tableau = n x Taille d’un élément [Bits]

(87)

DéclaraBon d’un tableau (1/2)

•   Un tableau est déclaré comme une variable.

•   Déclarer un tableau consiste à donner :

–  Le nom du tableau : il fait référence à l’adresse du premier élément du tableau.

–  Le type de données : tous les éléments du tableaux doivent être de même type. Généralement le type fait référence à un type prédéfini (En)er, Réel, etc.)

–  La taille du tableau : le nombre maximal de données qui

peuvent être stockées dans le tableau : nécessaire pour la

(88)

DéclaraBon d’un tableau (2/2)

•  En pseudo-code :

•   Exemple : Déclarer un tableau de 20 en)ers.

Dr. Meziane-Tani I. 88

Variable nom_tableau[nombre_elements]: type_elements

Variable T[20]: EnCer

(89)

Accéder aux éléments du tableau

•  Pour accéder à un élément du tableau, il faut donner le nom du tableau et le numéro d’ordre (entre crochets []) de l’élément dans le tableau.

•  Exemples :

–  T[3] ← 4.

–  N = T[1]+T[2]

•  Le numéro d’ordre est appelé : « Indice ».

•  Important : Par conven)on, le premier élément du tableau possède l’indice « 0 » => T[0].

•  Exemple :

–  Les éléments du tableau précédent sont : T[0], T[1], T[2], … T[19]

T[0] T[1] T[2] …... T[n-2] T[n-1]

0 1 2 n-2 n-1

Indices

(90)

Lecture d’un tableau (1/2)

•  Lire un tableau consiste à lire les éléments du tableau.

•  Pour lire les éléments d’un tableau, il faut u)liser une boucle qui « répète » le même traitement qui est « lecture d’un élément » du tableau.

•  La taille d’un tableau étant connue dès sa déclara)on => Une boucle « Pour » peut être u)lisée.

Dr. Meziane-Tani I. 90

(91)

Lecture d’un tableau (2/2)

Algorithme LectureTableau

Constante N←20 : EnCer /* La taille du tableau est déclarée comme une constante

*/

Variables i: EnCer

T[N] : EnCer Début

Pour i de 0 à N-1 faire /* i : indice qui compte les éléments du tableau */

Ecrire(“T[“, i, “] = ”) /* affiche le nom de la case */

Lire(T[i]) FinPour

•  Écrire un algorithme qui demande à l’u)lisateur

d’introduire les 20 éléments d’un tableau d’en)ers T.

(92)

Écriture (Affichage) d’un tableau

Dr. Meziane-Tani I. 92

Algorithme EcritureTableau

Constante N←20 : EnCer /* La taille du tableau est déclarée comme une constante */

Variables i: EnCer T[N] : EnCer Début

Pour i de 0 à N-1 faire /* i : indice qui compte les éléments du tableau */

Ecrire(“T[“, i, “] = ”, T[i]) /* affiche le nom de la case */

FinPour Fin

•  Écrire un algorithme qui affiche les 20 éléments d’un

tableau d’en)ers T.

(93)

Mise à jour d’un tableau

•   Les opéra)ons de mise à jour sont les opéra)ons qui permekent de modifier les éléments d’un tableau.

•   il existe 3 types de mises à jour :

–  ModificaBon d’un élément du tableau

–  InserBon d’un élément à un tableau

–  Suppression d’un élément du tableau

(94)

ModificaBon

La modifica)on d’un élément du tableau consiste à remplacer la valeur d’un élément par une autre valeur.

La taille du tableau ne change pas après modifica)on.

Dr. Meziane-Tani I. 94

T[0] T[1] ... x ... ... T[n-1]

0 1 p-1 p p+1 n-1

T[0] T[1] ... T[p] ... …. T[n-1]

0 1 p-1 p p+1 n-1

Avant modificaBon :

Après modificaBon :

(95)

Algorithme de modificaBon

Algorithme Modifica-on Constante N←20 : EnCer Variables p, x: EnCer

T[N] : EnCer Début

Lire(x,p)

T[p] ← x /* remplacer la valeur de T[p] par x */

Écrire un algorithme qui permet de modifier l’élément qui se trouve à

l’emplacement « p » d’un tableau d’en)ers T par la valeur de « x ».

(96)

InserBon

L’inser)on d’un élément « x » à l’emplacement « p » d’un tableau consiste à :

–  Décaler vers la droite tous les éléments à par)r de l’indice p.

–  Insérer cet élément dans la case T[p]

=> la taille du tableau après inser)on : n+1.

Dr. Meziane-Tani I. 96

T[0] T[1] T[p-1] x T[p] T[p+1] …. T[n-1]

0 1 p-1 p p+1 p+2 n

T[0] T[1] T[p-1] T[p] T[p+1] …. T[n-1]

0 1 p-1 p p+1 n-1

Avant inserBon :

Après inserBon :

(97)

Algorithme d’inserBon

Algorithme Inser-on

Constante N←20 : EnCer Variables i, p, x: EnCer

T[N], T_nouveau[N+1] : EnCer /*T_Nouveau : Nouveau tableau après inser-on de x. */

Début Lire(x,p)

Pour i de 0 à p-1 faire /* Les éléments de 0 à p-1 sont conservés dans le tableau T_nouveau */

T_nouveau[i] ← T[i]

FinPour

Pour i de p+1 à N faire /* Ceƒe boucle décale les éléments de p+1 à N-1. */

T_nouveau[i] ← T[i-1]

FinPour

T_nouveau[p] ← x /* Insérer l’élément x à l’emplacement p */

Fin

Écrire un algorithme qui permet d’insérer un élément « x » à l’emplacement

« p » d’un tableau, T, d’en-ers. T est supposé donné.

(98)

Suppression

La suppression d’un élément qui se trouve à l’emplacement « p » d’un tableau consiste à :

–  Décaler vers la gauche tous les éléments à par)r de l’indice p+1.

=> la taille du tableau après inser)on : n-1.

Dr. Meziane-Tani I. 98

T[0] T[1] T[p-1] T[p+1] …. T[n-1]

0 1 p-1 p n-2

T[0] T[1] T[p-1] T[p] T[p+1] …. T[n-1]

0 1 p-1 p p+1 n-1

Avant suppression :

Après suppression :

(99)

Algorithme de suppression

Algorithme Suppression Constante N←20 : EnCer Variables i, p, x: EnCer

T[N], T_nouveau[N-1] : EnCer /*T_Nouveau : Nouveau tableau après suppression de x. */

Début Lire(p)

Pour i de 0 à p-1 faire /* Les éléments de 0 à p-1 sont conservés dans le tableau T_nouveau */

T_nouveau[i] ← T[i]

FinPour

Pour i de p à N-2 faire /* Ceƒe boucle décale les éléments de p+1 à N-1. */

T_nouveau[i] ← T[i+1] /* la suppression est effectuée en affectant à T[p] ← T[p+1] */

Écrire un algorithme qui permet de supprimer l’élément qui se trouve à

l’emplacement « p » d’un tableau, T, d’en-ers. T est supposé donné.

(100)

Algorithme de Recherche Principe

•   Étant donnés un tableau T et une valeur x(l’élément que l’on cherche), plusieurs types de problèmes peuvent être posés :

–  l’élément est-il ou non dans la collec)on ? autrement dit x ∈ T ? –  si l’élément est dans la collec)on, où peut-on le trouver ?

autrement dit, pour quel indice i a-t-on T[i]=x?

•   Ceke dernière ques)on pouvant être déclinée de plusieurs façons :

–  quel est le plus pe)t indice I tel que T[i]=x ? –  quel est le plus grand ?

–  quels sont tous les indices ?

100 Dr. Meziane-Tani I.

(101)

Algorithmes de recherche

•  Dans un ensemble de données non triées :

–  Recherche séquen)elle

•  Dans un ensemble de données triées :

–  Recherche séquen)elle

–  Recherche dichotomique

(102)

Recherche séquenBelle - Ensemble non trié -

•  Principe : Parcourir un ensemble de données à la recherche d’un élément. Arrêter la recherche dès que l’élément est trouvé.

Algorithme RechercheSéquen)elle Constante N←20 : EnCer

Variables Trouve : Booléen i,x : EnCer

T[N] : EnCer Début

Lire(x)

Trouve ← Faux

i←0

TantQue (NON Trouve) ET (i<n) faire Si T[i]=x alors

Trouve ← Vrai FinSi

i←i+1 FinTantQue

Fin. Dr. Meziane-Tani I. 102

(103)

Recherche séquenBelle - Ensemble trié -

•  Principe : En supposant que l’ensemble est trié par ordre croissant, parcourir l’ensemble des éléments dont l’élément recherché est inférieur. Arrêter la recherche dès que l’élément courant devient supérieur ou égale ou qu’on a parcouru tout l’ensemble.

Algorithme RechercheSéquen)elle2 Constante N←20 : EnCer

Variables Trouve : Booléen i,x : EnCer

T[N] : EnCer Début

Lire(x)

i←0 TantQue (i < n) ET (x > T[i]) i←i+1

FinTantQue

Si (i < n) ET (x = T[i]) alors Trouve ← Vrai

Sinon

(104)

Recherche dichotomique - Ensemble trié -

•   Dichotomie vient de dic)onnaire : méthode inspirée de la recherche d’un mot dans un dicBonnaire.

•   Principe :

–  Diviser le tableau en deux par)es et comparer la valeur recherchée avec l'élément situé au milieu du tableau (l'élément médian).

–  Si la valeur recherchée correspond à l'élément médian, alors l'algorithme s'arrête et renvoie l'indice de cet élément.

–  Sinon l'algorithme va répéter la recherche uniquement dans la par)e qui peut contenir la valeur recherchée.

104 Dr. Meziane-Tani I.

(105)

Recherche dichotomique

Diviser le tableau en deux par)es

Si x < milieu

Rediviser la par)e

gauche en deux par)es

0 1

0 1

0 1

(106)

Recherche dichotomique

Algorithme RechercheDichotomique Constante N←20 : EnCer

Variables Trouve : Booléen

x, d, f, m : EnCer // d : indice du premier élement T[N] : EnCer // f : indice du dernier élement

Début // m : indice du milieu

d ← 0 f ← n−1

TantQue d < f faire

m ← (d+f)/2 /* Milieu du tableau : Division en-ère */

Si T[m] < x alors

d ← m+1 /*rechercher dans la par-e gauche*/

Sinon

f ← m /*rechercher dans la par-e droite*/

FinSi FinTantQue Si x = T[d] alors

Trouve ← Vrai Sinon

Trouve ← Faux FinSi

Fin. Dr. Meziane-Tani I. 106

(107)

2 – Les enregistrements

(108)

Enregistrements

•   Un enregistrement est un type ou une structure de données permekant de définir un ensemble fini de données (ou variables) qui ne sont pas du même type (contrairement aux tableaux où tous les éléments doivent être de même type).

•   Exemple : Le nom, le prénom, l’âge et la moyenne d’un élève sont des données de types différents mais qui restent reliés par la no)on d’élève => Nous pouvons regrouper alors ces 4 informa)ons dans un enregistrement.

•   Les éléments qui composent un enregistrement sont appelés : « Champs ». Exemples : Nom, Prénom, …

Dr. Meziane-Tani I. 108

(109)

DéclaraBon d’un type enregistrement

•   Avant de déclarer une variable de type enregistrement, il faut d’abord définir son type.

•  La défini)on d’un type se fait dans la par)e déclara)on des variables juste avant la déclara)on des variables et après la déclara)on des constantes.

Nom_Enregistrement : Enregistrement Nom_Champ_1 : Type_Champ_1 Nom_Champ_2 : Type_Champ_2

Nom_Champ_n : Type_Champ_n FinEnregistrement

(110)

Exemples

Dr. Meziane-Tani I. 110

Personne: Enregistrement

Nom : Chaîne de caractère Prénom : Chaîne de caractère Age : En-er

FinEnregistrement

Date: Enregistrement Jour : En-er

Mois : En-er Année : En-er FinEnregistrement

Point: Enregistrement Num : En-er

Abscice : Réel Ordonnée : Réel FinEnregistrement

Complexe: Enregistrement Re : Réel

Im: Réel

FinEnregistrement

(111)

DéclaraBon de variables de type Enregistrement

•  Une fois que le type Enregistrement défini, on peut déclarer des variables de ce type de la même manière que la déclara)on de variables de types primi)fs est faite.

•  Pseudo-code :

•  Exemple :

Nom_variable : Nom_Enregistrement

P: Personne

(112)

ManipulaBon d’un enregistrement

•  La manipula)on d’un enregistrement est faite à travers les champs qui le définissent.

•  Pour accéder au champ d’un enregistrement :

•  Exemples :

–  Personne.Age –  Complexe.Im

•  Les champs d’un enregistrement sont considérés comme des variables qui peuvent être u)lisées dans tout type d’instruc)ons : affecta)ons, lecture/écriture, ….

Dr. Meziane-Tani I. 112

Nom_Variable . Nom_champs

(113)

Exemple

•   Afficher les champs de l’enregistrement P de type Personne. Nous supposons que les champs ont été lus auparavant.

Algorithme EnregistrementPersonne

Personne: Enregistrement /*défini-on du type Personne*/

Nom : Chaîne de caractères Prenom : Chaîne de caractères Age : En-er

FinEnregistrement

Variables P : Personne /*déclara-on de la variable P de type Personne*/

Début

Ecrire (‘’Le nom de la personne est : ’’, P.Nom)

Ecrire (‘’Le prénom de la personne est : ’’, P.Prenom)

(114)

Remarque

•  Un enregistrement peut contenir un champ d’un autre type enregistrement.

•  Exemple : Une personne possède une date de naissance.

Dr. Meziane-Tani I. 114

Date: Enregistrement Jour : En-er

Mois : En-er Année : En-er FinEnregistrement

Personne: Enregistrement

Nom : Chaîne de caractère Prénom : Chaîne de caractère Date_Naiss : Date

FinEnregistrement Variables P: Personne

Le champs Date_Naiss est manipulé comme suit :

P.Date_Naiss.Jour

P.Date_Naiss.Mois

P.Date_Naiss.Année

(115)

Références

•  Introduc)on à l’algorithmique, C. Darmangeat, Université Paris 7, Cours.

•  Ini)a)on à l’algorithmique, 2007

•  Algorithmique, A. EL Harraj, 2015, Cours.

•  Les bases de l’informa)que et de la programma)on, R.M. Di

Scala, 2005.

Références

Documents relatifs

J’ai aussi effectué certaines tâches périphériques pour voir au mieux les différents aspects du métier de technicien informatique.. Salle contenant l’ensemble

Répétitoire chimie générale (2) CMU/Champendal Déontologie médicaleA.

Ÿ Si cette résiliation intervient après le début de la scolarité, le montant de la scolarité est calculé prorata temporis de la durée effective du contrat sur la base des frais

Déterminer une équation cartésienne ou un système d’équations paramétriques d’un plan. Passer d’une re- présentation à l’autre... Différents modes de définition d’une

Nous vous demandons de confier à votre enfant son carnet de santé et copie de tous documents utiles en votre possession (copie de compte-rendus récents de radiographie,

La base de données ainsi que le programme produit, bien que pas tout à fait finalisé, peuvent être vu comme de solides bases pour un développement plus poussé du projet

Répétitoire chimie générale (8) CMU/Champendal Développement et.. détermination du

[r]