Initiation Programmation 13-14 (1)

190
SMP3 Module : LCI2 Élément : Informatique 1 Initiation à la programmation Introduction

description

Initiation Programmation

Transcript of Initiation Programmation 13-14 (1)

Page 1: Initiation Programmation 13-14 (1)

SMP3

Module : LCI2

Élément : Informatique 1

Initiation à la programmation

Introduction

Page 2: Initiation Programmation 13-14 (1)

Ch. Introduction

Page 3: Initiation Programmation 13-14 (1)

M.Machkour SMP3 3

Introduction

Objectifs

Définir les concepts

Ordinateur

Programme

Langage de programmation

Information

Traitement de l'information

Page 4: Initiation Programmation 13-14 (1)

M.Machkour SMP3 4

Introduction

Notion d'ordinateur

Machine électronique ultra rapide

possédant :

Unité centrale de traitement(UCT, CPU,

Processeurs),

Mémoire pour stocker les programmes et les

données à traiter (RAM),

Des unités d'entées et de sorties (E/S) (ports)

pour communiquer avec l'extérieur.

Page 5: Initiation Programmation 13-14 (1)

M.Machkour SMP3 5

Schéma simplifié d'un ordinateur

UCT

E/S MEMOIRE

Données et instructions

Vers l’extérieur:

Clavier, écran…

Calcul et contrôle

Introduction

Bus de

données

Bus de

contrôle

Page 6: Initiation Programmation 13-14 (1)

M.Machkour SMP3 6

Introduction

Extérieur comprend

Clavier, scanner

Les supports de stockage(disque dur, disque

optique…)

Imprimante

Souris

Page 7: Initiation Programmation 13-14 (1)

M.Machkour SMP3 7

Introduction

Notion de programme

Un ordinateur est une machine programmable

besoin de programmeurs pour

programmer ou écrire des programmes

Programme est une suite finie d'instructions

élémentaires exécutables par ordinateur.

Page 8: Initiation Programmation 13-14 (1)

M.Machkour SMP3 8

Introduction

Langage de programmation

L'ordinateur doit exécuter des instructions d'un programme.

=>Ces instructions doivent être compréhensibles ou acceptées par l'ordinateur

=> Instructions écrites dans un langage compris par l'ordinateur

=> Nécessité d'un langage de programmation: C, Pascal, VB, JAVA

Page 9: Initiation Programmation 13-14 (1)

M.Machkour SMP3 9

Introduction

Notion d'information

Un ordinateur est une machine de traitement d'information

Information

Une information est un renseignement qui porte sur un objet (nom d'un étudiant, intitulé d'un module…)

Une information est une critère qui réduit le domaine où on cherche la réponse une question (réduit l'incertitude)

Page 10: Initiation Programmation 13-14 (1)

M.Machkour SMP3 10

Introduction

Exemple

Question : Chercher le plus grand mot d'une langue donnée. Soit "L" le nom de cette langue.

Considérons les Informations suivantes

+Ce mot est un adverbe.

+Ce mot commence par la lettre X

-Ce mot dépasse 2 caractères.

Page 11: Initiation Programmation 13-14 (1)

M.Machkour SMP3 11

Introduction

Les mots de la langue L

Adverbes

Adverbes commençant par X

Page 12: Initiation Programmation 13-14 (1)

M.Machkour SMP3 12

Introduction

Traitement de l'information

La tâche principale d'un ordinateur est le

traitement de l'information.

Ce traitement se compose de 4 fonctions :

– Saisie des données (entrées),

– Mémorisation des données,

– Opérations sur les données,

– Restitution des résultats.

Page 13: Initiation Programmation 13-14 (1)

SMP3

Module : LCI2

Élément : Informatique 1

Initiation à la programmation

Algorithmique

Page 14: Initiation Programmation 13-14 (1)

Ch. Les concepts de base

Page 15: Initiation Programmation 13-14 (1)

M.Machkour SMP3 15

Algorithmique

Objectifs

Maîtriser les concepts ou les notions :

Algorithme

Instruction

Donnée

Variable

constante

Page 16: Initiation Programmation 13-14 (1)

Pourquoi écrire un algorithme

- Programme = Algorithme + Données.

- Programme = Traduction d'un algorithme

dans un langage de programmation.

- Algorithme = programme pour machine

abstraite.

- Algorithme = Programme indépendant de

machine.

M.Machkour SMP3 16

Page 17: Initiation Programmation 13-14 (1)

M.Machkour SMP3 17

Algorithmique

Notion d'instruction

Une instruction est un ordre qu'on demande à

un ordinateur d'exécuter.

Une instruction est, en général, composée de

- opération: +,*…

- des arguments 2, 3, x, y, s ,v, rayon…

Ces arguments sont appelés : données.

Page 18: Initiation Programmation 13-14 (1)

M.Machkour SMP3 18

Algorithmique

Exemples d'instructions

– Calculer 2 + 3 est une instruction ,

+ est le nom de l'opération (opérateur),

2 et 3 sont les données (opérandes).

– Lire une valeur au clavier : instruction de

lecture. On la représente par le mot Lire

– Écrire une valeur à l'écran : instruction

d'écriture. On la représente par le mot Écrire.

Page 19: Initiation Programmation 13-14 (1)

M.Machkour SMP3 19

Algorithmique

Étapes de résolution d'un problème

Ordinateur = machine programmable

Rédaction de programme

Rédaction d'algorithmes

Les étapes à suivre pour rédiger un algorithme

Page 20: Initiation Programmation 13-14 (1)

M.Machkour SMP3 20

Algorithmique

Les étapes de résolution d'un problème en

programmation

i. Établir la liste des données en entrée ( entrées), la

liste des données en sortie( sorties ou résultats) et

les liens entre elles.

ii. Construire un chemin de résolution qui permet

d'obtenir les données en sortie à partir des données

en entrée. C'est ce qu'on appelle un schéma de

résolution.

iii. Décrire le schéma de résolution en termes

d'instructions élémentaires acceptées par

ordinateur. C'est l'algorithme.

Page 21: Initiation Programmation 13-14 (1)

M.Machkour SMP3 21

Algorithmique Exemple

Problème : Automatiser le calcul de surface d'un disque.

Identification des données d'entrées et de sorties- Donnée en entrées : rayon, pi

- Données en sorties : surface

- Relations entre les données : surface= PI*rayon * rayon.

Chemin de résolution- Donner une valeur à rayon (affectation ou une lecture)

- Donner une valeur à PI

- Calculer PI*rayon*rayon

- Mettre la valeur de PI*rayon*rayon dans surface (stocker ou affecter)

- Afficher la valeur de surface (Ecrire).

Traduire le chemin en algorithme(une structure à respecter)

Page 22: Initiation Programmation 13-14 (1)

M.Machkour SMP3 22

Algorithmique

Notion d'algorithme

Un algorithme est une suite finie

d'instructions élémentaires exécutables

par ordinateur.

Page 23: Initiation Programmation 13-14 (1)

M.Machkour SMP3 23

Algorithmique

Exemple d'algorithme

Algorithme surfaceDisque;

Constantes

PI=3.14;

Variables

rayon, surface : réels ;

DébutRayon 5;

Surface rayon*rayon*PI;

Ecrire("surface=",surface);

Fin.

Page 24: Initiation Programmation 13-14 (1)

M.Machkour SMP3 24

Algorithmique

Notion de donnée

Les données sont les objets manipulés par

les instructions d'un algorithme.

Exemples

Instruction1 : calculer 2 + 3

Instruction2 : calculer rayon * rayon * PI

Données

Page 25: Initiation Programmation 13-14 (1)

M.Machkour SMP3 25

Algorithmique

Nature des données

Les données peuvent être – Données variables ou simplement variables

Exemples :

- rayon (calculer la surface de (+) disque)

- surface

– Données constantes ou simplement constantes

Exemple PI, ou la valeur 3.14• PI est dite constante symbolique,

• 3.14 est dite constante littérale.

– Autres exemples de constantes• La constante de coulomb C sa valeur est 8.98 * 109

• La charge E=1.6*10-19

Page 26: Initiation Programmation 13-14 (1)

M.Machkour SMP3 26

Algorithmique

Remarque

Une constante symbolique peut être

manipulée directement par son nom ou

par sa valeur littérale.

Exemple

rayon*rayon*PI

ou

rayon*rayon*3.14

Page 27: Initiation Programmation 13-14 (1)

M.Machkour SMP3 27

Algorithmique

Déclaration des données

Les variables et les constantes symboliques

utilisées dans un algorithme doivent être

déclarées.

Pourquoi?

Réservation de l'espace mémoire.

La déclaration d'une donnée comprend

- le nom,

- le type et

- la nature de la donnée.

Page 28: Initiation Programmation 13-14 (1)

M.Machkour SMP3 28

Algorithmique

Le nom- Le nom permet de distinguer la donnée parmi les autres données de l'algorithme.

- Ce nom doit être un identificateur.

Définition d'identificateur

Identificateur : un nom qui commence par une lettre ou le caractère souligné suivi de lettres ou de chiffres ou le caractère souligné.

Page 29: Initiation Programmation 13-14 (1)

M.Machkour SMP3 29

Algorithmique

Remarque

On préfère que l'identificateur soit significatif (si c'est possible).

Page 30: Initiation Programmation 13-14 (1)

M.Machkour SMP3 30

Algorithmique

Exemples d'identificateurs

R ou rayon

S ou surface

PI,

P, V, T, Adresse, Ville.

P12

P1Abc_V

Page 31: Initiation Programmation 13-14 (1)

M.Machkour SMP3 31

Algorithmique

Contre-exemples

1nom,

nom étudiant,

nom!

A chaque nom est associée une adresse unique dans la mémoire de l’ordinateur.

Page 32: Initiation Programmation 13-14 (1)

M.Machkour SMP3 32

Algorithmique

Lien entre nom de données et mémoire

A chaque nom de donnée déclarée est

associée une adresse physique d'une case

mémoire de l’ordinateur.

Cette case mémoire contient la valeur de la

donnée

10Adresse1 rayon

Valeur de la donnée rayon

Page 33: Initiation Programmation 13-14 (1)

M.Machkour SMP3 33

Algorithmique

Le type

Le type désigne l'ensemble ou l'intervalle des

valeurs que peut prendre la donnée. On

s'intéresse aux types simples qui sont :

– Entiers(1,-1…),

– Réels(2.3…),

– Caractères(‘a’,’ !’),

– Chaîne de caractères (suite de caractères entre

guillemets: " bonjour" ).

Page 34: Initiation Programmation 13-14 (1)

M.Machkour SMP3 34

Algorithmique

La nature

La nature d'une donnée indique si la

donnée est constante ou variable.

– La donnée constante ne change pas de

valeur dans l'algorithme.

– La donnée variable peut changer de valeur

dans l'algorithme.

Page 35: Initiation Programmation 13-14 (1)

M.Machkour SMP3 35

Algorithmique

Syntaxe de déclaration d'une variableLes variables se déclarent dans une zone dite Variables.

La règle de déclaration d'une variable est la suivante :

nom_variable : type;

Page 36: Initiation Programmation 13-14 (1)

M.Machkour SMP3 36

Algorithmique

Exemple

Variables rayon : réel;

surface : réel ;

n : entier;

Ou bien

Variables rayon, surface : réel;

n :entier;

Zone variable

Déclaration des variables

Page 37: Initiation Programmation 13-14 (1)

M.Machkour SMP3 37

Algorithmique

Syntaxe de déclaration d'une constante

Les constantes se déclarent dans une rubrique

nommée Constantes.

La syntaxe utilisée est la suivante:

nom_constante_symb = valeur_constante_litt;

Page 38: Initiation Programmation 13-14 (1)

Exemple

Constantes

PI = 3.14 ;

M.Machkour SMP3 38

Page 39: Initiation Programmation 13-14 (1)

Exemple

Constantes

PI = 3.14 ;

C = 8.98 e 9;

E =1.6e-19;

M.Machkour SMP3 39

Page 40: Initiation Programmation 13-14 (1)

M.Machkour SMP3 40

Algorithmique

Règle à respecter

Les variables se déclarent après les

constantes.

Exemple

Constantes

PI=3.14 ;

Variables

Rayon, surface : réels;

Page 41: Initiation Programmation 13-14 (1)

M.Machkour SMP3 41

Algorithmique

Remarques- Les constantes littérales de type caractères sont

entre apostrophes.

Constantes

GENRE1='F';

GENRE2='M';

- Les constantes littérales de type chaîne de caractères sont entre guillemets.

Exemples

ConstantesSALUT="salam";

Page 42: Initiation Programmation 13-14 (1)

M.Machkour SMP3 42

Algorithmique

Notion expression

Une expression est une combinaison logique

– d'identificateurs,

– de valeurs ,

– d'opérateurs (+,*,/,-,%...) et

– d’autres symboles tels que (), .

Exemples Contre-exemples • 1 2*+3

• 2+3 (2+5*2

• rayon * rayon *pi

• (pi*rayon)*2

Page 43: Initiation Programmation 13-14 (1)

M.Machkour SMP3 43

Algorithmique

Instructions élémentaires

Instruction d'affectation

sert à affecter la valeur d'une expression à une variable. On la note par le symbole

Pour affecter la valeur d'une expression à une variable

on écrit :

Nom_variable expression;

Page 44: Initiation Programmation 13-14 (1)

M.Machkour SMP3 44

Algorithmique

Exemple1 (expression constante)

rayon 5;

Après cette instruction la valeur de rayon est 5.

La case mémoire associée à la variable rayon

contient donc la valeur 5.

Page 45: Initiation Programmation 13-14 (1)

M.Machkour SMP3 45

Algorithmique

Exemple2(expression variable)

rayon 5;

r rayon;

Après ces instructions la valeur de r est 5.

Page 46: Initiation Programmation 13-14 (1)

M.Machkour SMP3 46

Algorithmique

Exemple 3 (expression composée)

rayon 5;

Surface pi*rayon*rayon;

Après cette instruction la valeur de surface est

78.5.

Page 47: Initiation Programmation 13-14 (1)

M.Machkour SMP3 47

Algorithmique

Instruction de lecture : LirePermet de lire des valeurs à partir du clavier et les affecte aux variables.

La règle de cette instruction est :

Lire (var1, var2, …);

Page 48: Initiation Programmation 13-14 (1)

M.Machkour SMP3 48

Algorithmique

Exemple 1

Lire(rayon);

A l'exécution de cette instruction, quand on saisit la valeur 8 au clavier, elle sera la valeur de la variable rayon.

Page 49: Initiation Programmation 13-14 (1)

M.Machkour SMP3 49

Algorithmique

Exemple 2

Lire(nom, age);

nom et age sont des variables.

Page 50: Initiation Programmation 13-14 (1)

M.Machkour SMP3 50

Algorithmique

Instruction d'écriture : Ecrire

permet d'afficher les valeurs des constantes, des variables ou des expressions (après les avoir évaluées) à l'écran.

Sa règle est la suivante :Ecrire (liste_expressions);

Page 51: Initiation Programmation 13-14 (1)

M.Machkour SMP3 51

Algorithmique

Exemples- Ecrire (5);

- Ecrire (rayon); affiche la valeur de rayon :5

- Ecrire (surface); affiche à l'écran la valeur de surface :78.5

- Ecrire (pi*rayon*rayon); affiche aussi 78.5

- Ecrire("surface"); affiche le mot surface.

- Ecrire ('s'); affiche la lettre s.

Page 52: Initiation Programmation 13-14 (1)

M.Machkour SMP3 52

Algorithmique

Structure générale d'un algorithme

Algorithme Nom_algorithme;

Constantes

Liste_de_constantes;

Variables

Liste_de_varaibles;

Début

Liste_instructions;

Fin.

Page 53: Initiation Programmation 13-14 (1)

M.Machkour SMP3 53

Algorithmique

Exemples d'algorithmes

– Calcul de la surface d'un disque

– Calculer de la somme des n premiers entiers

1+2+3…+n

– Permutation des valeurs de deux variables.

Page 54: Initiation Programmation 13-14 (1)

M.Machkour SMP3 54

Algorithmique

Exemple 1 surface d'un disque

i. Identification des données d'entrées et de sorties

• Donnée en entrées : rayon, pi

• Données en sorties : surface

• Relations entre les données : surface= pi*rayon * rayon.

ii. Chemin de résolution• Donner une valeur à rayon (affectation ou une lecture)

• Calculer pi*rayon*rayon

• Mettre pi*rayon*rayon dans surface (affectation)

• Afficher la valeur de surface (Ecrire).

iii. Traduire le chemin en algorithme

Page 55: Initiation Programmation 13-14 (1)

M.Machkour SMP3 55

Algorithmique

Algorithme surfaceDisque;

Constantes

PI=3.14;

Variables

rayon, surface : réels ;

Débutrayon 5; // ou bien lire(rayon) ;

//Il ne faut pas écrire rayon=5;

surface rayon*rayon*PI;

Ecrire("surface=",surface);

Fin.

Page 56: Initiation Programmation 13-14 (1)

M.Machkour SMP3 56

Exemple 2

Calcul de la somme

1+2+3…n avec n un entier à saisir au clavier.

i. Identification des données d'entrées et de sorties• Donnée en entrées : n

• Données en sorties : somme

• Relations entre les données : somme= n*(n+1)/2

ii. Chemin de résolution• Donner une valeur à n ( lire(n))

• Calculer n*(n+1)/2

• Mettre n*(n+1)/2 dans somme(affectation)

• Afficher la valeur de somme (Ecrire).

iii. Traduire le chemin en algorithme

Page 57: Initiation Programmation 13-14 (1)

M.Machkour SMP3 57

Algorithme sommeN ;

Constantes

Variables

n, somme: entiers ;

Début

Lire(n) ;

somme n*(n+1)/2 ;

Ecrire (somme); ou bien Ecrire("la sommes est:" , somme) ;

Fin.

Page 58: Initiation Programmation 13-14 (1)

M.Machkour SMP3 58

Exemple 3

Permuter les valeurs de deux variables x et y.

Par exemple

Au début x contient 12 et y contient 13

Après permutation la valeur de x est 13 et celle de y est 12.

12x 13y

13x 12y

Page 59: Initiation Programmation 13-14 (1)

M.Machkour SMP3 59

Exemple 3 (suite)

Solutions pour la permutation

Si on fait x y ; et y x ;on aura

xy yx

x et y ont même valeur celui de y (13).

13y12x 13x13yet

Page 60: Initiation Programmation 13-14 (1)

M.Machkour SMP3 60

Exemple 3 (suite)

La raison?

La valeur de x n'a pas été conservée. Elle a

été écrasée par la valeur de y(13).

Solution ?

Ajouter une autre variable z pour

conserver provisoirement la valeur de x.

Page 61: Initiation Programmation 13-14 (1)

M.Machkour SMP3 61

Exemple 3(suite)

Solution

z x;

xy;

yz;

12x…z

13y12x

12z13y

12z

13x

12y

Page 62: Initiation Programmation 13-14 (1)

M.Machkour SMP3 62

Exemple 3 (suite)

i. Identification des données d'entrées et de

sorties

• Donnée en entrées : x et y

• Données en sorties : x et y échangées

ii. Chemin de résolution

• Donner une valeur à x;

• Donner une valeur à y;

• Échanger les valeurs de x et y;

• Afficher x et y.

iii. Traduire le chemin en algorithme

Page 63: Initiation Programmation 13-14 (1)

M.Machkour SMP3 63

Exemple 3 (suite)

Algorithme permutation;

Variables

x,y,z: entiers ;

Début

Lire(x) ; ou x 12;

Lire(y) ; ou y13;

z x ;

xy ;

y z ;

Ecrire ("la valeur de x après permutation : " , x ) ;

Ecrire ("la valeur de y après permutation : " , y) ;

Fin.

Page 64: Initiation Programmation 13-14 (1)

M.Machkour SMP3 64

Une autre solution

Pour permuter les valeurs de deux

variables : méthode de différences

x(12) et y(13)

xx-y; x(12-13)

yx+y; y(-1+13), x-y +y

xy-x; x(12-(-1)), x+y -x

Page 65: Initiation Programmation 13-14 (1)

M.Machkour SMP3 65

Exercice

Écrire un algorithme qui lit un réel est affiche son carré.

Algorithme carré ;

Variables x,y: réels;

Début

Lire(x);

yx*x;

Ecrire ("le carré de ", x , " est : " , y);

Fin.

Page 66: Initiation Programmation 13-14 (1)

M.Machkour SMP3 66

Bloc d'instruction

Un bloc d'instructions est une suite d'instructions délimitées par les mots début et fin

ExempleDébut

Lire(rayon);

surface=rayon*rayon*PI;

Ecrire (surface);

Fin.

Note.

En langage C

Le mot début est représenté par {

Le mot fin par }.

Bloc d'instructions

Page 67: Initiation Programmation 13-14 (1)

M.Machkour SMP3 67

Environnement d'un algorithme

L'environnement d'un algorithme est l'ensemble des données déclarées dans les rubriques constantes et variables

Exemples

L'environnement de l'algorithme surfaceDisque est constitué de la constante PI et les variables rayon et surface.

L'environnement de permutation est x,y et z.

Page 68: Initiation Programmation 13-14 (1)

M.Machkour SMP3 68

Exemples

L'environnement de l'algorithme

surfaceDisque est constitué de

la constante PI et les variables rayon et

surface.

L'environnement de permutation est : x,y et z.

Page 69: Initiation Programmation 13-14 (1)

Ch. Les structures de contrôle

Page 70: Initiation Programmation 13-14 (1)

M.Machkour SMP3 70

Les structures de contrôles

Une structure de contrôle sert à contrôler l'exécution d'une instruction ou d'un bloc d'instructions.

Deux types de structures de contrôles: Structure conditionnelle si l'exécution de

l'instruction ou du bloc dépend d'une condition

Structure répétitive (itérative ou boucle) si l'exécution de l'instruction ou du bloc peut être répétée plusieurs fois(basée aussi sur une condition).

Page 71: Initiation Programmation 13-14 (1)

M.Machkour SMP3 71

Exemples

Si x est positif alors

Calculer la racine carrée.

Si a est différent de 0 alors

Calculer –b/a

Pour tout i de 1 jusqu à 100 faire

Affecter à s la somme s+i.

Contrôle ou condition

Instruction

Page 72: Initiation Programmation 13-14 (1)

M.Machkour SMP3 72

Notion de condition

Une condition est une expression dont la valeur est soit vraie, soit fausse (expression booléenne ou de type booléen).

Page 73: Initiation Programmation 13-14 (1)

M.Machkour SMP3 73

Exemples

- 2 > 3

- 2 < 3

- 2=3

Remarques

- Le type booléen={vraie (v), fausse(f)}

- On peut aussi déclarer des variables de type booléen.

Page 74: Initiation Programmation 13-14 (1)

M.Machkour SMP3 74

Exemples de déclaration avec le type booléen

Variables

test booléen;….

test 2>3;

test2<3;

Page 75: Initiation Programmation 13-14 (1)

M.Machkour SMP3 75

Condition et opérateurs

Les conditions sont exprimées par des opérateurs de comparaison et des opérateurs booléens :

- Les opérateurs de comparaison sont

=, <, <=, >, >= et ≠

- Les opérateurs booléens s'utilisent avec des opérandes booléens

Et(And), ou (or) et non(not)

Page 76: Initiation Programmation 13-14 (1)

M.Machkour SMP3 76

Définition de l'opérateur ET

Soit A et B deux expressions booléennes

L'expression A ET B est vraie ssi

A est vraie et B est vraie.

Exemples

(2>3) ET (2=2) fausse

(2<3) ET (2=2) vraie

(2>3) ET (2<2) fausse

Page 77: Initiation Programmation 13-14 (1)

M.Machkour SMP3 77

Définition de l'opérateur OU

Soit A et B deux expressions booléennes

L'expression A ou B est fausse ssi

A est fausse et B est fausse.

Exemples- (2>3) OU (2=2) vraie

- (2<3) OU (2=2) vraie

- (2>3) OU (2<2) fausse

Page 78: Initiation Programmation 13-14 (1)

M.Machkour SMP3 78

Définition de l'opérateur non

A est une expression booléenne.

Si A est vraie, non(A) est fausse

Si A est fausse, non(A) est vraie

Exemples

- e1=(1<2) ET (2=2) e1=?

- e2=non(non(1<2) ou (2=3)) e2=?

Page 79: Initiation Programmation 13-14 (1)

M.Machkour SMP3 79

Lois de De Morgan

Si A et B deux expressions booléennes

alors

non(A ET B)=non(A) OU non(B)

non(A OU B)=non(A) ET non(B)

Page 80: Initiation Programmation 13-14 (1)

M.Machkour SMP3 80

Structures conditionnelles

Forme 1

Si (condition) alors

instr1; | bloc_instr

finsi

Page 81: Initiation Programmation 13-14 (1)

M.Machkour SMP3 81

Exemple

Chercher la surface d'un disque de rayon

saisi au clavier. Il faut s'assurer tout

d'abord que le rayon soit positif.

Page 82: Initiation Programmation 13-14 (1)

M.Machkour SMP3 82

Algorithme surfaceDisque;

Constantes

PI=3.14;

Variables

rayon, surface:réels ;

DébutLire(rayon);

Si (rayon>0 ) alors

debut

Surface rayon*rayon*PI;

Ecrire("surface=",surface);

fin

finsi

Fin.

Page 83: Initiation Programmation 13-14 (1)

M.Machkour SMP3 83

Structures conditionnellesForme 2

…Si (condition) alors

instr1; | bloc_instr1

SinonInstr2; | bloc_instr2

….

finsi

Page 84: Initiation Programmation 13-14 (1)

M.Machkour SMP3 84

Exemple

Chercher la surface d'un disque de rayon

saisi au clavier. Il faut s'assurer tout

d'abord que le rayon soit positif. Si le

rayon saisi est négatif, afficher le message

rayon non valide.

Page 85: Initiation Programmation 13-14 (1)

M.Machkour SMP3 85

solution Algorithme surfaceDisque;

Constantes

PI=3.14;

Variables

rayon, surface:réels ;

Début

Lire(rayon);

Si (rayon>0 ) alors

début

surface rayon*rayon*PI;

Ecrire("surface=",surface);

fin

Sinon

Ecrire(" rayon non valide");

finsi

Fin.

Page 86: Initiation Programmation 13-14 (1)

M.Machkour SMP3 86

Exercices

1/Chercher le minimum de deux entiers

saisis au clavier.

2/Chercher le minimum de trois entiers

saisis au clavier.

3/Donner la solution de ax+b=0. a et b

sont deux réels à saisir.

Page 87: Initiation Programmation 13-14 (1)

M.Machkour SMP3 87

Ex1 Solution1

Algorithme minimum1;

Variables

a, b, min :entiers;

Début

Lire(a,b);

Si (a<b) alors

mina;

Sinon

min b;

Finsi

Ecrire ("le min est:",min);

Fin.

Ex1 Solution2

Algorithme minimum2;

Variables

a, b, min :entiers;

Début

Lire(a,b);

min a;

Si(min > b) alors

min b;

Finsi

Ecrire ("le min est:",min);

Fin.

Page 88: Initiation Programmation 13-14 (1)

M.Machkour SMP3 88

Ex1 Solution3

Algorithme minimum3;

Variables

a, b, min :entiers;

Début Lire(a,b);

Si(a<b) alors

Ecrire ("le min est:",a);

Sinon

Ecrire ("le min est:",b);

Finsi

Fin.

Page 89: Initiation Programmation 13-14 (1)

M.Machkour SMP3 89

Ex2 Solution

Algorithme minimum;

Variables

a, b, c, min :entiers;

Début

Lire(a, b, c );

min a;

Si (min > b) alors

min b;

Finsi

Si (min > c) alors

min c;

Finsi

Ecrire ("le min est:",min);

Fin.

Page 90: Initiation Programmation 13-14 (1)

M.Machkour SMP3 90

Ex 3 solution

Algorithme equation;

Variables a,b,x :réels;

Début

Lire(a,b);

Si (a≠0) alors

débutX-b/a;

Ecrire("la sol est :", x);

Fin

SinonEcrire ("il y a 0 ou plusieurs solutions");

Finsi

Fin.

Page 91: Initiation Programmation 13-14 (1)

M.Machkour SMP3 91

Ex 3 solution plus complète

Algorithme equation1;

Variables a, b, x :réels;

Début

Lire(a,b);

Si (a≠0) alors

début

X=-b/a;

Ecrire("la sol est :", x);

fin

Sinon

si (b=0) alors

Ecrire ("Il y a plusieurs solutions.");

sinon

Ecrire ("Il n y a pas de solutions.");

Finsi

Finsi

Fin.

Structure conditionnelle à l'intérieur

d'une autre structures

conditionnelles imbriquées

Page 92: Initiation Programmation 13-14 (1)

M.Machkour SMP3 92

Exercices supplémentaires1/Ecrire un algorithme qui lit la moyenne d'un étudiant

et affiche s'il est admis ou non.

2/Ecrire un algorithme qui lit la moyenne d'un étudiant et affiche la mention associée.

3/Ecrire un algorithme qui lit trois notes d'un étudiant, calcule sa moyenne et l'affiche avec la mention associée.

4/Ecrire un algorithme qui lit un entier et affiche s'il est pair ou impair.

5/Ecrire un algorithme qui lit trois nombres et affiche s'ils sont ordonnés ou non.

Page 93: Initiation Programmation 13-14 (1)

M.Machkour SMP3 93

Ex 2 supp

Algorithme mention;

Variables

moy : réels;

mention : chaîne de caractères;

Début

Lire(moy);

si (moy<12) alors

mention="passable";

sinon

Si (moy<14) alors

mention="A.B";

Sinon

Si (moy<16 ) alors

mention="B";

sinon

mention="T.B";

Finsi

Finsi

Finsi

Ecrire ("la mention est :", mention);

Fin.

Page 94: Initiation Programmation 13-14 (1)

M.Machkour SMP3 94

Structures conditionnelles : choix multiple

Forme 3

Selon (expression)

début

Cas val1 : liste_instructions1;

Cas val2 : liste_instructions2;

sinon : Liste_instructions;

Fin

Page 95: Initiation Programmation 13-14 (1)

M.Machkour SMP3 95

Fonctionnement de selonSi expression=val1 alors on exécute

liste_instructions1. Sinon, on passe comparer

expression avec vali.

Si expression=vali alors seront exécutées

liste_instructionsi.

Si expression est différent de toutes les valeurs vali,

on exécute les instructions de sinon si elle est

présente. Sinon on passe à l'instruction suivante de

l'algorithme.

Page 96: Initiation Programmation 13-14 (1)

M.Machkour SMP3 96

Exemple

Ecrire un algorithme qui lit un opérateur op

(+,-,/,*) et deux entiers a et b puis affiche

le nom et le résultat de l'opération a op b.

Entrées op, a, b;

Sorties la valeur de a op b et le nom de

l'opération.

Page 97: Initiation Programmation 13-14 (1)

M.Machkour SMP3 97

Algorithme operateur;

Variables op caractère;

a,b, r : entiers;

DébutLire(op);

Lire(a,b);

Selon (op)

débutCas '+' : r a+b; ecrire ("la somme de a et b est:", r);

Cas '-' : r a-b; ecrire("la différence entre a et b est:", r);

Cas '*' : r a*b;ecrire("la multiplication de a par b est:", r);

Cas '/' : r a/b; ecrire ("la division de a par b est:", r);

Sinon : ecrire (op , " : opérateur non valide");

Fin

Fin.

Page 98: Initiation Programmation 13-14 (1)

M.Machkour SMP3 98

Les structures itératives

Trois façons pour exprimer les itérations ou les

répétitions de la même instruction (ou bloc)

– Tantque (condition) faire

– Faire …tantque(condition)

– Pour

Page 99: Initiation Programmation 13-14 (1)

M.Machkour SMP3 99

La structure Tantque(condition)

Tantque (condition) faire

Instr1;

Instr2;

Fin tantque

Liste d'instructions à répéter

Page 100: Initiation Programmation 13-14 (1)

M.Machkour SMP3 100

Fonctionnement La structure Tantque(condition)

– Si la condition est vraie, on exécute les instrs et on passe

vérifie la condition de nouveau. Si elle est encore vraie,

on ré-exécute les instrs et ainsi de suite. Ce processus se

répète jusqu'à ce que la condition soit fausse.

– Si la condition est fausse à l'entrée de la boucle, les

instructions ne seront jamais exécutées.

Page 101: Initiation Programmation 13-14 (1)

M.Machkour SMP3 101

Exemple

Écrire un algorithme qui affiche les valeurs de 1 à 10.

Page 102: Initiation Programmation 13-14 (1)

M.Machkour SMP3 102

RéponseAlgorithme écriture;

Var i : entier;

Début

i 1;

Tantque (i<=10) faire

écrire(i);

i i+1; //compteur

fin tantque

fin.

Page 103: Initiation Programmation 13-14 (1)

M.Machkour SMP3 103

Exemple

Écrire un algorithme qui lit 10 entiers.

Page 104: Initiation Programmation 13-14 (1)

M.Machkour SMP3 104

RéponseAlgorithme lecture;

Var i,n : entier;

Début

i 1;

Tantque (i<=10) faire

lire(n);

i i+1; //compteur

fin tantque

fin.

Page 105: Initiation Programmation 13-14 (1)

M.Machkour SMP3 105

Exemple

Écrire un algorithme qui lit 10 entiers et les affiche.

Page 106: Initiation Programmation 13-14 (1)

M.Machkour SMP3 106

RéponseAlgorithme lecture_écriture;

Var i ,n: entier;

Début

i 1;

Tantque (i<=10) faire

lire(n);

écrire(n);

i i+1; //compteur

fin tantque

fin.

Page 107: Initiation Programmation 13-14 (1)

M.Machkour SMP3 107

Exemple

Écrire un algorithme qui lit m entiers et les affiche. m est un entier à

lire au clavier.

Page 108: Initiation Programmation 13-14 (1)

M.Machkour SMP3 108

RéponseAlgorithme lecture_écriture;

Var i ,n,m: entier;

Début

lire(m); //Le nombre de valeurs à lire.

i 1;

Tantque (i<=m) faire

lire(n); //lecture des valeurs.

écrire(n); //écriture des valeurs.

i i+1; //compteur

fin tantque

fin.

Page 109: Initiation Programmation 13-14 (1)

M.Machkour SMP3 109

Exercices

1) Écrire un algorithme qui calcule la somme 1+2+3+…+n. n à lire au clavier.

2) Écrire un algorithme qui affiche les diviseurs d'un nombre lu au clavier. Utiliser l'opérateur mod.

Page 110: Initiation Programmation 13-14 (1)

M.Machkour SMP3 110

Exercice 1Algorithme Somme;

Var s,n, i : entier;

Début

s 0;

i 1;

lire(n);

Tantque (i<=n) faire

s s+i;

i i+1;

fin tantque

écrire(s);

fin.

Page 111: Initiation Programmation 13-14 (1)

M.Machkour SMP3 111

Exercice 2Algorithme Diviseurs;Variables

n, i:entiers;

Début

Lire(n);

i1;

Tantque (i<=n ) faire

Si (n mod i)=0 alors

Ecrire( i);

Finsi

ii+1;

Fin tantque

Fin .

Page 112: Initiation Programmation 13-14 (1)

M.Machkour SMP3 112

Exercice

Écrire un algorithme qui calcule et affiche la somme des

diviseurs d'un nombre lu au clavier. Utiliser l'opérateur mod.

Page 113: Initiation Programmation 13-14 (1)

M.Machkour SMP3 113

RéponseAlgorithme SomDiviseurs;

Variables

n, i,som :entiers;

Début

Lire(n);

i1;

som0;

Tantque (i<=n) faire

Si (n%i)=0 alors

somsom+i;

Finsi

ii+1;

Fin tantque

Ecrire ("la somme des divseurs est :", som);

Fin .

Page 114: Initiation Programmation 13-14 (1)

M.Machkour SMP3 114

La structure Tantque(condition) une autre variante

Tantque (condition) faireInstr; |bloc_instr

Page 115: Initiation Programmation 13-14 (1)

M.Machkour SMP3 115

Remarque En général, les instrs doivent contenir une instruction

qui assure la sortie de la boucle: rendre la condition

fausse après un certain nombre fini d'itérations.

Page 116: Initiation Programmation 13-14 (1)

M.Machkour SMP3 116

La structure faire … Tantque(condition)

Faire

Instr1;

Instr2;

Tantque (condition);

Page 117: Initiation Programmation 13-14 (1)

M.Machkour SMP3 117

Fonctionnement de la structure

faire … tantque(condition)

– On exécute les instructions délimitées par Faire et Tantque , puis on vérifie la condition.

– Si la condition est vraie, on réexécute les instrs et on passe vérifie la condition de nouveau. Si elle est encore vraie, on exécute les instrs et ainsi de suite. Ce processus se répète tant que la condition est vraie.

– Une fois la condition est fausse on quitte la structure.

Page 118: Initiation Programmation 13-14 (1)

M.Machkour SMP3 118

La structure faire … tantque(condition)

Remarques

– En général, les instrs doivent contenir une

instruction qui assure la sortie de la boucle:

rendre la condition fausse après un certain

nombre fini d'itérations ou autre .

– Les instructions contrôlées par cette structure

sont exécutées au moins une fois.

Page 119: Initiation Programmation 13-14 (1)

M.Machkour SMP3 119

La structure faire … tantque(condition)Exemple

Algorithme Somme;

Var s,n, i : entier;

Débuts 0;

i 1;

lire(n);

Faire

s s+i;

i i+1;

Tantque (i<=n) ;

ecrire(s);

fin.

Page 120: Initiation Programmation 13-14 (1)

M.Machkour SMP3 120

La structure faire … Tantque(condition) Une autre variante

Faire

Instr; |bloc_instr

Tantque(condition);

Page 121: Initiation Programmation 13-14 (1)

M.Machkour SMP3 121

La structure pour

Pour variable_compteur début à fin faire

Intsr1;

Instr2;

..

Finpour

Ce bloc sera exécuté fin-début+1 fois

Page 122: Initiation Programmation 13-14 (1)

M.Machkour SMP3 122

La structure pour

Fonctionnement de la structure

i)On affecte à var_compteur la valeur de début, puis

on exécute les instructions.

ii)Ensuite, on incrémente var_compteur et on vérifie

si sa valeur est <= de celle de fin.

iii)Si var_compteur<=fin, on exécute les instructions

et on passe à ii)

On quitte cette boucle lorsque var_compteur devient

>fin.

Page 123: Initiation Programmation 13-14 (1)

M.Machkour SMP3 123

La structure pour

Remarque

var_compteur, début et fin doivent avoir le

même type ou des types compatibles.

Exemple

Calculer la somme s=1+2+3..+n. n à lire

au clavier

Page 124: Initiation Programmation 13-14 (1)

M.Machkour SMP3 124

La structure pour

Exemple Algorithme Somme;

Variable s,n,i : entier;

Début

Lire(n);

s 0;

pour i1 à n faire

s s+i;

finpour

Ecrire(s);

fin.

Cas de n=3

- i=1, i≤ n = 3 ? => ss+i => s0+1 => s=1

- i devient i+1, donc 1+1=2

- i=2 ≤n=3 ? ss+i => s1+2=>s=3

- i devient i+1, donc 2+1=3

- i=3 ≤n=3 ? => Ss+i => s3+3=>s=6

- i devient i+1, donc 3+1=4

- i=4>n=3, on quitte l boucle.

Page 125: Initiation Programmation 13-14 (1)

M.Machkour SMP3 125

ExerciceChercher la somme des diviseurs d'un entier saisi au clavier.

Réponse Algorithme SomDiv;

Variable s,n,i : entier;

Début

s 0;

Lire(n);

pour i1 à n faire

Si (n%i)=0 alors

s s+i;Finsi

finpour

Ecrire(s);

fin.

Page 126: Initiation Programmation 13-14 (1)

M.Machkour SMP3 126

Exercice

Ecrire un algorithme qui calcule le factoriel d'un entier saisi au clavier.Algorithme factoriel;

Variable fact,n,i : entier;

Début

Lire(n);

fact 1;

pour i1 à n faire

factfact*i;

finpour

Ecrire(fact);

Fin.

Page 127: Initiation Programmation 13-14 (1)

M.Machkour SMP3 127

Exercice

Écrire un algorithme qui lit un entier et affiche s'il est pair ou non.Algorithme parité;

Variable n:entier;

DébutLire(n);

Si (n%2)=0 alors

Ecrire(pair)

Sinon

Ecrire (impair);

Finsi

Fin.

Page 128: Initiation Programmation 13-14 (1)

M.Machkour SMP3 128

La structure pour : une autre variante

Pour variable_compteur début à fin faire

Intsr; | bloc_instrs

Page 129: Initiation Programmation 13-14 (1)

M.Machkour SMP3 129

Organigramme

Définition

-Organigramme =Représentation

graphique d'un algorithme.

-Chaque instruction et chaque structure de

contrôle possède une représentation

graphique.

Page 130: Initiation Programmation 13-14 (1)

M.Machkour SMP3 130

Organigramme

Symbole de l'instruction "affectation"

surface PI*rayon*rayon

Page 131: Initiation Programmation 13-14 (1)

M.Machkour SMP3 131

Organigramme

Symbole de l'instruction "lecture"

Lire(rayon)

Page 132: Initiation Programmation 13-14 (1)

M.Machkour SMP3 132

Organigramme

Symbole de l'instruction "écriture"

Ecrire(rayon)

Page 133: Initiation Programmation 13-14 (1)

M.Machkour SMP3 133

Organigramme

Symbole de "début"

Début

Page 134: Initiation Programmation 13-14 (1)

M.Machkour SMP3 134

Organigramme

Symbole de "fin"

Fin

Page 135: Initiation Programmation 13-14 (1)

M.Machkour SMP3 135

Organigramme

Symbole de "séquence"

Page 136: Initiation Programmation 13-14 (1)

M.Machkour SMP3 136

Organigramme

Reste de l'algorithme (avant ou après l'instruction en cours)

Page 137: Initiation Programmation 13-14 (1)

M.Machkour SMP3 137

Organigramme

Exemple 1 Début

Lire(rayon)

surface rayon*rayon*PI

Écrire(surface)

Fin

Page 138: Initiation Programmation 13-14 (1)

M.Machkour SMP3 138

Organigramme

Si (condition) alors

instr;

Finsi

instr

conditionVraie

Fausse

Page 139: Initiation Programmation 13-14 (1)

M.Machkour SMP3 139

Organigramme

Si (condition) alors

instr1;

Sinon

instr2;

Finsi instr1

conditionvraieFausse

instr2

Page 140: Initiation Programmation 13-14 (1)

M.Machkour SMP3 140

Organigramme

Exemple 2

Fin

R > 0V

F S PI*R*R

Début

Lire(R)

Écrire(S)

Page 141: Initiation Programmation 13-14 (1)

M.Machkour SMP3 141

Organigramme

Exemple 3Recherche de minimum

Fin

X < YvF

min X

Début

Lire(X,Y)

Écrire(min)

min Y

Page 142: Initiation Programmation 13-14 (1)

M.Machkour SMP3 142

Organigramme

Tantque (condition) faire

instr;

Fin tantque V

Finstr

condition

Page 143: Initiation Programmation 13-14 (1)

M.Machkour SMP3 143

Organigramme

Exemple 4 Calcul de s=1+2+3…+n

s s+i

i<=n

Début

Lire(n)

V

F

Ecrire(s)

Fin

i 1

i i+1

s 0

Page 144: Initiation Programmation 13-14 (1)

M.Machkour SMP3 144

Organigramme

Faire

instr;

Tantque (condition)V

F

condition

instr

Page 145: Initiation Programmation 13-14 (1)

M.Machkour SMP3 145

Organigramme

Exemple 5Calcul de S=1+2+3…+n

i<=n

Début

Lire(n)

V

F

Ecrire(s)

Fin

i 1

s s+i

i i+1

s 0

Page 146: Initiation Programmation 13-14 (1)

M.Machkour SMP3 146

Organigramme

pour i début à fin faire

instr;

FinpourV

Finstr

i<=fin

i début

i i+1

Page 147: Initiation Programmation 13-14 (1)

M.Machkour SMP3 147

Organigramme

Exemple 6

Calcul de S=1+2+3…+n

s s+i

i<=n

Début

Lire(n)

V

F

Ecrire(s)

Fin

i 1

i i+1

s 0

Page 148: Initiation Programmation 13-14 (1)

M.Machkour SMP3 148

Exercice

Donner l'organigramme de l'algorithme suivant:

Algorithme sommeN ;

Variables

n, somme: entiers ;

Début

Lire(n) ;

somme n*(n+1)/2 ;

Ecrire (somme); ou bien Ecrire("la sommes est:" , somme) ;

Fin.

Page 149: Initiation Programmation 13-14 (1)

M.Machkour SMP3 149

Réponse

Début

Lire(n)

s n * (n+1)/2

Écrire(s)

Fin

Page 150: Initiation Programmation 13-14 (1)

M.Machkour SMP3 150

Exemple

Donner l'organigramme de l'algorithme suivant:

Algorithme permutation;

Variables

x,y,z: entiers ;

Début

Lire(x) ; ou x 12;

Lire(y) ; ou y13;

z x ;

xy ;

y z ;

Ecrire ("la valeur de x après permutation : " , x ) ;

Ecrire ("la valeur de y après permutation : " , y) ;

Fin.

Page 151: Initiation Programmation 13-14 (1)

M.Machkour SMP3 151

Réponse ?

Page 152: Initiation Programmation 13-14 (1)

M.Machkour SMP3 152

Donner les organigrammes des algo suivants :

Algorithme minimum1;

Variables

a, b, min :entiers;

Début

Lire(a,b);

Si (a<b) alors

mina;

Sinon

min b;

Finsi

Ecrire ("le min est:",min);

Fin.

Algorithme minimum2;

Variables

a, b, min :entiers;

Début

Lire(a,b);

min a;

Si(min > b) alors

min b;

Finsi

Ecrire ("le min est:",min);

Fin.

Page 153: Initiation Programmation 13-14 (1)

M.Machkour SMP3 153

Donner l'organigrammes de l'algo suivant :

Algorithme SomDiviseurs;

Variables

n, i,som :entiers;

Début

Lire(n);

i1;

som0;

Tantque (i<=n) faire

Si (n%i)=0 alors

somsom+i;

Finsi

ii+1;

Fin tantque

Ecrire ("la somme des divseurs est :", som);

Fin .

Page 154: Initiation Programmation 13-14 (1)

M.Machkour SMP3 154

Donner l'organigrammes de l'algo suivant :

Algorithme Somme;

Var s,n, i : entier;

Débuts 0;

i 1;

lire(n);

Faire

s s+i;

i i+1;

Tantque (i<=n) ;

ecrire(s);

fin.

Page 155: Initiation Programmation 13-14 (1)

M.Machkour SMP3 155

Exercice

Donner l'organigrammes de l'algo suivant :Algorithme factoriel;

Variable fact,n,i : entier;

Début

Lire(n);

fact 1;

pour i1 à n faire

factfact*i;

finpour

Ecrire(fact);

Fin.

Page 156: Initiation Programmation 13-14 (1)

M.Machkour SMP3 156

Exercice

Donner l'algorithme associé au schéma

suivant:Début

Lire(a,b)

c a+b

Écrire(c)

Fin

Page 157: Initiation Programmation 13-14 (1)

Ch. Les tableaux

Page 158: Initiation Programmation 13-14 (1)

Introduction

– Représentation de vecteurs

v=(vi)1≤i≤n

– Utilisation de beaucoup de variables

Les notes d'une classe

notes=(notesi)1≤i≤n

M.Machkour SMP3 158

Page 159: Initiation Programmation 13-14 (1)

• Définition

– Tableau est une collection d'objets ou

d'éléments de même type.

– Les éléments d'un tableau partage le même

nom : nom du tableau

M.Machkour SMP3 159

Page 160: Initiation Programmation 13-14 (1)

Représentation logique d'un tableau

Remarque

Chaque case représente une variable.

Val1 val2 val3 val4 … valnNom du tableau

M.Machkour SMP3 160

Page 161: Initiation Programmation 13-14 (1)

Exemple de tableau d'entiers nommé t

(avec 6 éléments)

1 14 5 15 12 16t

M.Machkour SMP3 161

Page 162: Initiation Programmation 13-14 (1)

Exemple de tableau de réels nommé

notes

12.1 14.3 5 15.25 12.5 16notes

M.Machkour SMP3 162

Page 163: Initiation Programmation 13-14 (1)

Exemple de tableau de chaînes nommé

noms(avec 4 éléments)

noms Khalid Ali Mohammed Said

M.Machkour SMP3 163

Page 164: Initiation Programmation 13-14 (1)

Exemple de tableau de caractères nommé

lettres

A M L d H flettres

M.Machkour SMP3 164

Page 165: Initiation Programmation 13-14 (1)

Exercice

nom du tableau?

taille?

type?

1 4 11 13 10m

SMP3M.Machkour 165

Page 166: Initiation Programmation 13-14 (1)

Indice d'un élément du tableau

– Les éléments d'un tableau sont identifiés par

un numéro ou une position appelé indice de

l'élément (numéro de la case).

– Si un élément se trouve à la case n son indice

est n.

– La position d'un élément dans le tableau est

comprise entre 1 et le nombre d'éléments du

tableau.

M.Machkour SMP3 166

Page 167: Initiation Programmation 13-14 (1)

Création d'un tableau

– Nom du tableau

– Type des éléments de ce tableau

– Nombre d'éléments de ce tableau

M.Machkour SMP3 167

Page 168: Initiation Programmation 13-14 (1)

Syntaxe de création d'un tableau

nomTableau[nbre_éléments] : type;

M.Machkour SMP3 168

Page 169: Initiation Programmation 13-14 (1)

Exemple

Tableau de 4 réel nommés notes

Notes[4] : réel;

M.Machkour SMP3 169

Page 170: Initiation Programmation 13-14 (1)

Exemple

Tableau de 10 chaînes de caractères

nommés noms

noms[10]: chaîne;

M.Machkour SMP3 170

Page 171: Initiation Programmation 13-14 (1)

Exemple

Tableau de 6 entiers nommé x

x[6]: entiers;

M.Machkour SMP3 171

Page 172: Initiation Programmation 13-14 (1)

Sélection ou accès aux éléments d'un

tableau

nom_tableau[indice_élément]

M.Machkour SMP3 172

Page 173: Initiation Programmation 13-14 (1)

Exemples

Pour la déclaration x[5]: entiers;

on peut parler de

x[1]

x[2]

x[5]

M.Machkour SMP3 173

Page 174: Initiation Programmation 13-14 (1)

Exemple

1 2 3 4 5

m[1] a la valeur 1.

m[5] a la valeur 10.

1 4 11 13 10m

SMP3M.Machkour 174

Page 175: Initiation Programmation 13-14 (1)

Opérations sur les tableaux:

Les éléments d'un tableau se comportent

comme des variables:

– Affectation

– Lecture

– Écriture

– Expressions

– Etc.

M.Machkour SMP3 175

Page 176: Initiation Programmation 13-14 (1)

Manipulation des éléments d'un tableau

Pour montrer la manipulation des

éléments d'un tableau, nous considérons

la déclaration suivante:

x[6]: entiers;

M.Machkour SMP3 176

Page 177: Initiation Programmation 13-14 (1)

Lecture des éléments d'un tableau

Utilisation d'une boucle pour ou autre

pour i 1 à 6 faire

lire(x[i]);

fin pour

M.Machkour SMP3 177

Page 178: Initiation Programmation 13-14 (1)

Écriture des éléments d'un tableau

Utilisation d'une boucle pour ou autre

pour i 1 à 6 faire

écrire(x[i]);

fin pour

M.Machkour SMP3 178

Page 179: Initiation Programmation 13-14 (1)

Initialisation des éléments d'un tableau

Utilisation d'une boucle

pour i 1 à 6 faire

x[i] 1;

fin pour

M.Machkour SMP3 179

Page 180: Initiation Programmation 13-14 (1)

Recherche du maximum d'un tableau de nombres

max x[1];

pour i 2 à 6 faire

si max<x[i] alors

max x[i];

finsi

fin pour

M.Machkour SMP3 180

Page 181: Initiation Programmation 13-14 (1)

Recherche du minimum d'un tableau de nombres

min x[1];

pour i 2 à 6 faire

si min > x[i] alors

min x[i];

finsi

fin pour

M.Machkour SMP3 181

Page 182: Initiation Programmation 13-14 (1)

Moyenne des éléments d'un tableau

som 0;

pour i 1 à 6 faire

somsom+x[i];

fin pour

moysom/6;

M.Machkour SMP3 182

Page 183: Initiation Programmation 13-14 (1)

Utilisation d'une constante pour nombre d'élément du tableau

Constante

NB=6;

variables

x[NB]: entiers;

Pour i1 à NB faire

Fin pour

M.Machkour SMP3 183

Page 184: Initiation Programmation 13-14 (1)

Lire le nombre d'éléments d'un tableau variables

Constante

NB=6;

variables

x[NB]: entiers;

Début

lire(n); //n doit être <= NB

Pour i1 à n faire

opération(x[i]);

Fin pour

M.Machkour SMP3 184

Page 185: Initiation Programmation 13-14 (1)

Une autre notation pour les tableaux

– Déclaration

nomTableau (taille) : type;

– Exemple

x(100) : entiers;

M.Machkour SMP3 185

Page 186: Initiation Programmation 13-14 (1)

Une autre notation pour les tableaux

(suite)

– Accès aux éléments

nomTableau (indice)

– Exemples

Lire(x(2));

Écrire(x(3));

M.Machkour SMP3 186

Page 187: Initiation Programmation 13-14 (1)

Exercice

Écrire un algorithme qui lit les éléments

d'un tableau de réels et les affiche.

M.Machkour SMP3 187

Page 188: Initiation Programmation 13-14 (1)

Réponse

Algorithme tableau;

Constant NB=15;

Variables tab[NB]:réels;

i, n :entier;

Début

Ecrire("Donner le nombre d'éléments du tableau: SVP < =15");

lire(n);

pour i1 à n faire

lire(tab[i]);

fin pour

pour i1 à n faire

Ecrire(tab[i]);

fin pour

Fin.

M.Machkour SMP3 188

Page 189: Initiation Programmation 13-14 (1)

Tri des éléments d'un tableau : tri de sélection

On considère les déclarations suivantes

constante NB=6;

variables x[NB] , aux : entiers;– L'algorithme de tri de sélection est donné par:

Pour i 1 à NB-1 faire

pour j i+1 à NB faire

si (x[i]>x[j]) alors

auxx[i];

x[i]x[j];

x[j]aux;

fin si

fin pour

fin pourM.Machkour SMP3 189

Page 190: Initiation Programmation 13-14 (1)

M.Machkour SMP3 190

Fin.