0% ont trouvé ce document utile (0 vote)
101 vues42 pages

Algo&c

HZLOODFJSZ?LVD V DSVJKEDNJKNDVD +®ric Sturm (z-lib.org) (1).pdf existe déjà sur Scribd, veuillez tVDVJDNJKCD

Transféré par

ABCDEFGH
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues42 pages

Algo&c

HZLOODFJSZ?LVD V DSVJKEDNJKNDVD +®ric Sturm (z-lib.org) (1).pdf existe déjà sur Scribd, veuillez tVDVJDNJKCD

Transféré par

ABCDEFGH
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique et

programmation C
Plan du cours
Introduction à l'algorithmique 01

Les Variables, Déclaration des


variables, L'instruction
d'affectation, Expressions et 02
opérateurs, Lecture et Ecriture

Les tests, les boucles, les


tableaux, les fonctions 03
Introduction
Notion de programme
Si l’on s’intéresse aux applications de l’ordinateur, on s’aperçoit qu’elles sont très nombreuses.
En voici quelques exemples :
Suivi médical de patients
Gestion de stocks
dans un hôpital ….

Etablissement de feuille Calcul de la trajectoire


de paie, de factures d’un satellite

 Un ordinateur pour qu’il puisse effectuer des tâches aussi variées il suffit de le programmer.
Notion de programme
 L’ordinateur est capable de mettre en mémoire un programme qu’on lui fournit puis l’exécuter.
 L’ordinateur possède un ensemble limité d’opérations élémentaires qu’il sait exécuter. Un programme est
constitué d’un ensemble de directives, nommées instructions, qui spécifient :
les opérations élémentaires à exécuter.
la façon dont elles s’enchaînent.
Pour s’exécuter

Informations données Informations résultats


Programme

 Exemple: un programme de paie nécessite des informations données : noms des employés, situations de famille,
nombres d’heures supplémentaires, etc…
Les résultats seront imprimés sur les différents bulletins de paie.
Le processus de la programmation
Les différentes étapes du processus de programmation: Lors de l’étape d’exécution, il
se peut que des erreurs
Dans un deuxième temps, on syntaxiques sont signalées,
exprime dans un langage de ce qui entraîne des
Dans un premier temps, on
programmation donné, le corrections en général simple
procède à ce qu’on appelle
résultat de l’étape précédente. ou des erreurs sémantiques
l’analyse du problème posé
Ce travail, quoi qu’il soit facile, plus difficiles à déceler.
ou encore la recherche d’un
algorithme qui consiste à exige le respect strict de la
définir les différentes étapes syntaxe du langage de
La programmation de la résolution du problème. programmation.
consiste, avant tout, à C’est la partie essentielle
déterminer la démarche dans le processus de
permettant d’obtenir, à programmation.
l’aide d’un ordinateur, la
solution d’un problème
donné. CODAGE
Dans ce dernier cas, le programme
produit des résultats qui ne
correspondent pas à ceux
ANALYSE escomptés : le retour vers l’analyse
sera alors inévitable.

Le processus de la programmation se
déroule en deux phases

 Donc, la résolution d’un problème passe tout d’abord par la recherche d’un algorithme.
Introduction à l'algorithmique
C’est Quoi un Algorithme ?

Définition:
 Un algorithme est une suite d'instructions présentées dans l'ordre des traitements.
 Un algorithme peut être représenté sous 2 formes: organigramme ou pseudo-code
 Les instructions sont des opérations composées de variables, de constantes et d’opérateurs.
 L’algorithme sera toujours accompagné d’un lexique qui indique, pour chaque variable, son type et son rôle.
 Un algorithme est délimité par les mots clés début et fin.

Structure D’un Algorithme:


Entête
 Modèle d’écriture d’un Algorithme
Permet d’identifier l’algorithme avec un nom unique (Identificateur).
Algorithme <Ident_Algo>
Algorithme
∑de Données + ∑ d’instruction Déclarations <Déclarations>
Début
On déclare toutes les données (Variables et Constantes)
<Instructions>
Corps
(Instructions)
Fin

La partie des instructions (Entrées, Traitement et Sorties) Plus utilisé, plus proche de la structure
d’un vrai programme
Introduction à l'algorithmique
Données: variable et constante
Définition
Une Données représente une
information liée à un élément du
problème traité par l’algorithme.

Données

C’est un objet contenant une valeur


C’est un objet contenant une
pouvant être modifiée.
Variable Constante valeur fixe (ne peut jamais
Dans un programme, ça représente
être modifiée).
une zone mémoire dans la RAM.

Déclaration des variables

−Lorsqu’on déclare une variable, on lui attribue un nom et on lui réserve un emplacement mémoire. La taille de cet emplacement
mémoire dépend du type de variable. C’est pour cette raison qu’on doit préciser lors de la déclaration le type du variable.
−La syntaxe d’une déclaration de variable est la suivante :

VARIABLE nom : TYPE


ou
VARIABLES nom1, nom2,….. : TYPE
Introduction à l'algorithmique
 Nom des variables
Le nom (on dit aussi identificateur) d’une variable, dans tous les langages, est formé d’une ou plusieurs lettres, le caractère de
soulignement «_» ou le signe dollar «$»; les chiffres sont également autorisés à condition de ne pas apparaître au début du nom. La
plupart des signes de ponctuation sont exclus en particulier les espaces.

Exemple:
Parmi les identificateurs suivants, indiquer ceux qui sont valides et ceux qui ne le sont pas ?
17S ; Surface Disque; Prix-Total ; N1 ; a?b.
Réponse:
17S : n’est pas valide, puisqu’il commence par un caractère numérique. Doit être : S17
Surface Disque: n’est pas valide, puisqu’il contient un espace. Doit être : SurfaceDisque ou
Surface_Disque.
Prix-Total : n’est pas valide, puisque il contient le signe « - » (moins). Doit être : Prix_Total ou
PrixTotal.
N1 : est valide
a?b : n’est pas valide, puisqu’il contient le caractère « ? ». Doit être : ab.
Introduction à l'algorithmique
Types des variables

Type numérique

Commençons par le cas très fréquent, celui d’une variable destinée à recevoir des nombres. Généralement, les langages de
programmation offrent les types suivants :

−ENTIER:
ENTIER
Le type entier désigne l’ensemble des nombres entiers négatifs ou positifs dont les valeurs varient entre -32 768 à 32 767.
On écrit alors :
VARIABLES i, j, k : ENTIER
−REEL:
Le type réel comprend les variables numériques qui ont des valeurs réelles. La plage des valeurs du type réel est :
-3,40x1038 à -1,40x1045 pour les valeurs négatives
1,40x10-45 à 3,40x1038 pour les valeurs positives
On écrit alors :
VARIABLES x, y : REEL
Introduction à l'algorithmique
Types des variables
Type chaîne

Appelé également caractère ou alphanumérique, dans une variable de ce type, on stocke des caractères, qu’il s’agisse de lettres, de
signes de ponctuation, d’espaces, ou même de chiffres.
On écrit alors :
VARIABLE nom, prenom, adresse : CHAINE
Une chaîne de caractères est notée toujours soit entre guillemets, soit entre des apostrophes. Cette notation permet d’éviter les
confusions suivantes :
•Confondre un chiffre et une suite de chiffres. Par exemple, 423 peut représenter le nombre 423 (quatre cent vingt-trois), ou la suite de
caractères 4, 2, et 3.
•La confusion qui consiste à ne pas pouvoir faire la distinction entre le nom d'une variable et son contenu.
Remarque : Pour les valeurs des variables de type chaîne, il faut respecter la casse. Par exemple, la chaîne « Salut » est différente de la
chaîne « salut ».

Type booléen
Dans ce type de variables on y stocke uniquement des valeurs logiques VRAI ou FAUX, TRUE ou FALSE, 0 ou 1.

On écrit alors : VARIABLE etat : BOOLEEN


Introduction à l'algorithmique
Opérateurs et expressions
Opérateurs

Un opérateur est un signe qui relie deux variables pour produire un résultat. Les opérateurs dépendent des types de variables mis en jeu.
Pour le type numérique on a les opérateurs suivants :
+ : Addition * : Multiplication -: Soustraction / : Division ^ : Puissance
Pour le type chaîne, on a un seul opérateur qui permet de concaténer deux chaînes de caractères. Cet opérateur de concaténation est noté &.
Par exemple : la chaîne de caractères « Salut » concaténer à la chaîne « tout le monde » donne comme résultat la chaîne « Salut tout le monde ».

Expressions

Une expression est un ensemble de variables (ou valeurs) reliées par des opérateurs et dont la valeur du résultat de cette combinaison est unique.
Par exemple :
7 5+4 x + 15 – y/2 nom & prenom

où x et y sont des variables numériques (réels ou entiers) et nom et prenom sont des variables chaîne.

Dans une expression où on y trouve des variables ou valeurs numériques, l’ordre de priorité des opérateurs est important. En effet, la multiplication
et la division sont prioritaires par rapport à l’addition et la soustraction.
Par exemple, 12 * 3 + 5 donne comme résultat 41. Si l’on veut modifier cette ordre de priorité on sera obligé d’utiliser les parenthèse.
Par exemple, 12 * (3 + 5) donne comme résultat 96.
Algorithme
L’instruction d’affectation

L’instruction d’affection est opération qui consiste à attribuer une valeur à une variable. On la notera avec le signe .
Cette instruction s’écrit : VARIABLE valeur
Exemple : MONTANT 3500.

Si dans une instruction d’affectation, la variable à laquelle on affecte la valeur et la valeur affectée ont des types différents, cela provoquera une
erreur. On peut aussi attribuer à une variable la valeur d’une variable ou d’une expression de façon générale.
On écrit : VARIABLE EXPRESSION
Exemple : A B
A B*2+5
Dans ce cas, l’instruction d’affectation sera exécutée en deux temps : D’abord, on calcule la valeur de l’expression, puis on affecte la valeur
obtenue à la variable à gauche.
On peut même avoir des cas où la variable de gauche qui figure dans l’expression à droite. Par exemple : A A+5
Dans cette exemple, après l’exécution de l’instruction d’affectation la valeur de la variable A sera augmenter de 5.

Remarque: l’ordre dans lequel sont écrites les instructions est essentiel dans le résultat final.

Exemple : CAS I CAS II Après exécution des deux instructions d’affection, la valeur de A sera :
A 15 A 30 - Cas I : 30
A 30 A 15 - Cas II : 15
Algorithme
Données: Entrées et Sorties

Données

Les données que l’algorithme doit


Les données que l’utilisateur doit Données Données de
montrer à l’utilisateur. C’est les résultats
fournir à l’algorithme. d’entrée (Inputs) sortie (Outputs)
de l’algorithme (solution du problème)

Données
Intermédiaires

Données utilisées par l’algorithme


pour le traitement lié au problème.

Les instructions de lecture et écriture


−Il existe une instruction qui permet à l’utilisateur de faire entrer des valeurs au clavier pour qu’elles soient utilisées par le programme. La
syntaxe de cette instruction de lecture est :
LIRE NomVariable
−Lorsque le programme rencontre une instruction LIRE, l’exécution du programme s’interrompt, attendant la saisie d’une valeur au clavier.
−Dès que l’on frappe sur la touche ENTER, l’exécution reprend.
Algorithme
Les instructions de lecture et écriture

−Une autre instruction permet au programme de communiquer des valeurs à l’utilisateur en les affichant à l’écran. La syntaxe de cette
instruction d’écriture est :
ECRIRE NomVariable
ou de façon générale
ECRIRE Expression
−Remarque : Avant de lire une variable, il est fortement conseillé d’écrire des libellés à l’écran, afin de prévenir l’utilisateur de ce qu’il doit
frapper. La même chose pour l’instruction d’écriture.
Exemple :
Variables A, CARRE : Réels
Début
Ecrire ‘Entrez un nombre’
Lire A
CARRE A*A
Ecrire ‘Le carré de ce nombre est : ’
Ecrire CARRE
Fin
Algorithme
La structure alternative
Les conditions simples:

−Une condition simple consiste en une comparaison entre deux expressions du même type. Cette comparaison s'effectue avec des opérateurs
de comparaison. Voici la liste de ces opérateurs accompagnés de leur signification dans le cas des types numérique ou chaîne :

Signification Signification
Opérateur
numérique chaîne
= égal à égal à

<> différent différent

< inférieur placé avant dans l'ordre alphabétique

> supérieur placé après dans l'ordre alphabétique

<= inférieur ou égal placé avant dans l'ordre alphabétique ou égal

>= supérieur ou égal placé après dans l'ordre alphabétique ou égal

−Pour la comparaison du type chaîne c'est l'ordre alphabétique qu'est utilisé dans le cas où l'on compare deux lettres majuscules ou
minuscules. Mais si l'on compare majuscules et minuscules, il faut savoir que les majuscules apparaissent avant les minuscules. Ainsi, par
exemple : "M" < "m".
La structure alternative
Algorithme
Les conditions complexes:

−Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées sous la forme simple vu précédemment. A cet
effet, la plupart des langages autorisent des conditions formées de plusieurs conditions simples reliées entre elles par ce qu'on appelle des
opérateurs logiques. Ces opérateurs sont : ET, OU et NON.

•Pour que la condition complexe,


condition1 ET condition2
soit VRAI, il faut impérativement que la condition1 soit VRAI et que la condition2 soit VRAI.
•Pour que la condition
condition1 OU condition2
soit VRAI, il suffit que condition1 soit VRAI ou condition2 soit VRAI. Il est à noter que cette condition complexe sera VRAI si condition1 et
condition2 sont VRAI.
•Le NON inverse une condition :
NON(condition)

est VRAI si condition est FAUX, et il sera FAUX si condition est VRAI.

−L'usage de parenthèses permet de régler d'éventuels problèmes de priorité.


Par exemple, la condition : (a < 0 ET b > 1) OU (a > 0 ET b > 3) est VRAI si l'une au moins des conditions entre parenthèses est VRAI.
La structure alternative
Algorithme
−Supposons que nous avons besoin, dans un programme, d'afficher un message précisant que la valeur d'une variable est positive ou
négative. Avec les instructions de base que nous avons vu (celles qui permettent la manipulation des variables : affectation, lecture, écriture),
on ne peut pas. Il faut introduire une des instructions de structuration du programme (ces instructions servent à préciser comment doivent
s'enchaîner chronologiquement ces instructions de base) qui donne la possibilité d'effectuer des choix dans le traitement réalisé. Cette
instruction s'appelle la structure alternative. Sa syntaxe est :

SI condition ALORS
bloc 1 d'instructions
SINON
bloc 2 d'instructions
FIN SI
−Si la condition mentionnée après SI est VRAI, on exécute le bloc1 d'instructions (ce qui figure après le mot ALORS); si la condition est
fausse, on exécute le bloc2 d'instructions (ce qui figure après le mot SINON).

Exemple : SI a > 0 ALORS


ECRIRE ''valeur positive''
SINON
ECRIRE ''valeur négative''
FIN SI

−Dans ce programme, on vérifie si la valeur de a est supérieure à 0, on affichera le message ''valeur positive''. Dans le cas contraire, il sera
affiche le message ''valeur négative''.
Algorithme
La structure alternative

−La structure alternative peut prendre une autre forme possible où l'une des parties du choix est absente. Elle s'écrit dans ce cas :
SI condition ALORS
bloc d'instructions
FIN SI
Exemple : Dans un programme de calcul du montant d'une facture, on applique une remise de 1% si le montant dépasse 5000 Dhs. Nous
écrirons :
SI montant > 5000 ALORS
montant montant * 0.99
FIN SI

Les structures alternatives imbriquées


−Il peut arriver que l'une des parties d'une structure alternative contienne à son tour une structure alternative. Dans ce cas, on dit qu'on a des
structures alternatives imbriquées les unes dans les autres.
Les structures alternatives imbriquées
Algorithme
Exemple : Ecrire un programme qui donne l’état de l’eau selon sa température.
Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Sinon
Si Temp < 100 Alors
Ecrire “C’est du liquide”
Sinon
Ecrire “C’est de la vapeur”
Finsi
FinSi
Fin
Les structures alternatives imbriquées
Algorithme
On peut aussi écrire :
Variable Temp : Entier
Début
Ecrire “Entrez la température de l’eau :”
Lire Temp
Si Temp =< 0 Alors
Ecrire “C’est de la glace“
Finsi
Si Temp > 0 Et Temp < 100 Alors
Ecrire “C’est du liquide”
Finsi
Si Temp > 100 Alors
Ecrire “C’est de la vapeur”
Finsi
Fin
La structure alternative
Algorithme
Autre forme:

Dans des langages de programmation, la structure alternative peut prendre une autre forme qui permet d’imbriquée plusieurs. Sa
syntaxe est :
SELON expression
valeur1 : action1
valeur2 : action2

valeurN : actionN
SINON : action
FIN SELON

Si expression est égale à valeur i, on exécute action i et on passe à la suite de l’algorithme. Sinon on exécute action et on passe
à la suite de l’algorithme.
Les structures répétitives
Algorithme
Reprenons le programme du surveillant général qui calcule la moyenne des notes. L’exécution de ce programme fournit la moyenne des
notes uniquement pour un seul élève. S’il l’on veut les moyennes de 200 élèves, il faut ré exécuter ce programme 200 fois. Afin d’éviter
cette tâche fastidieux d’avoir ré exécuter le programme 200 fois, on peut faire recourt à ce qu’on appelle les structures répétitives.
On dit aussi les structures itératives ou boucles.
Une structure répétitive sert à répéter un ensemble d’instructions. Il existe trois formes de structures répétitives : POUR, TANT QUE,
REPETER.
La structure POUR

Cette structure permet de répéter des instructions un nombre connu de fois. Sa syntaxe est :
POUR compteur = val_initial A val_final PAS DE incrément
Instructions à répéter
FIN POUR
compteur c’est ce qu’on appelle compteur. C’est une variable de type entier.
val_initial et val_final sont respectivement les valeur initiale et final prise par le compteur. Ce sont des valeurs entières.
incrément est la valeur d’augmentation progressive du compteur. La valeur par défaut du pas est de 1.
Dans de telle on peut ne pas le préciser.
Les structures répétitives
Algorithme
Remarques : Pour un pas positif, la valeur négative doit être inférieure à la valeur finale. Pour un pas négatif, valeur négative doit être
supérieure à la valeur finale.
Si la valeur initiale est égale à la valeur finale, la boucle sera exécutée une seule fois.
Exemple : Réécrivons le programme du surveillant général de façon qu’il puisse calculer les moyennes de 200 élèves.

VARIABLES mat, phy, ang, fra, hg, moyenne : REELS


VARIABLE i : ENTIER
Début
POUR i = 1 A 200
ECRIRE “Entrez la note de math :”
LIRE mat
ECRIRE “Entrez la note de physique :”
LIRE phy
ECRIRE “Entrez la note de français :”
LIRE fra
ECRIRE “Entrez la note d ’anglais :”
LIRE ang
ECRIRE “Entrez la note d’histoire-Géo :”
LIRE hg
moyenne ((mat + phy) * 5 + fra * 4 + (ang
+ hg) * 2) / 18
ECRIRE “La moyenne est : ”, moyenne
FIN POUR
Fin
Algorithme
Les structures répétitives

La structure TANT QUE

Cette structure permet de répéter les instructions tant qu’une condition est satisfaite. Sa syntaxe est :
TANT QUE condition
Instructions à répéter
FIN TANT QUE
condition c’est une condition qu’on appelle parfois condition d’arrêt. Cette condition est testée avant la première exécution.
Cette structure diffère de la première par le fait qu’on va répéter des instructions pour un nombre de fois inconnu au préalable.
Exemple : Reprenant toujours le programme de notre surveillant. S’il ne sait pas combien de moyennes à calculer on ne pourra pas utiliser
la structure POUR. Dans ce cas on est obligé d’utiliser la structure TANT QUE. Le programme sera alors :
Algorithme
Les structures répétitives

Variables mat, phy, ang, fra, hg, moyenne : Réels


Variable reponse : Chaîne
DEBUT
reponse “o”
TANT QUE reponse = “o”
Ecrire “Entrez la note de math :”
Lire mat
Ecrire “Entrez la note de physique :”
Lire phy
Ecrire “Entrez la note de français :”
Lire fra
Ecrire “Entrez la note d’anglais :”
Lire ang
Ecrire “Entrez la note d’histoire-Géo :”
Lire hg
moyenne ((mat + phy) * 5 + fra * 4 + (ang + hg) * 2) / 18
Ecrire “La moyenne est : ”, moyenne
Ecrire “Voulez-vous continuer oui (o) /non (n) ?”
Lire reponse
FIN TANT QUE
FIN
Algorithme
La structure REPETER

Cette structure sert à répéter des instructions jusqu’à ce qu’une condition soit réalisée. Sa syntaxe est :
REPETER
Instructions à répéter
JUSQU'A condition
Considérons le programme suivant :
Variables a , c : Entiers
DEBUT
REPETER
Lire a
c c*c
Ecrire c
JUSQU'A a = 0
Ecrire « Fin »
FIN
Les tableaux
Algorithme
Les tableaux à une seul dimension

Imaginez que l’on veuille calculer la moyenne des notes d’une classe d’élèves. Pour l’instant on pourrait l’algorithme suivant :

Si l’on veut toujours calculer la moyenne des notes d’une classe mais en gardant en mémoire toutes les notes des élèves pour d’éventuels
calculs (par exemple calculer le nombre d’élèves qui ont des notes supérieurs à la moyenne). Dans ce cas il faudrait alors déclarer autant
de variables qu’il y a d’étudiants. Donc, si l’on a 10 élèves il faut déclarer 10 variables et si l’on a N il faut déclarer N variables et c’est pas
pratique. Ce qu’il faudrait c’est pouvoir par l’intermédiaire d’une seule variable stocker plusieurs valeurs de même type et c’est le rôle des
tableaux.
Les tableaux
Algorithme
Les tableaux à une seul dimension

−Un tableau est un ensemble de valeurs de même type portant le même nom de variable. Chaque valeur du tableau est repérée par un
nombre appelé indice.
−Les tableaux c’est ce que l’on nomme un type complexe en opposition aux types de données simples vus précédemment.
−La déclaration d’un tableau sera via la syntaxe suivante dans la partie des déclarations :

Tableau nom_tableau (nombre) : Type


nom_tableau : désigne le nom du tableau
nombre : désigne le nombre d’éléments du tableau. On dit aussi sa taille
Type : c’est le type du tableau autrement dit le type de tous ces éléments

Exemples :
Tableau Note (20) : Réel
Note (20) est un tableau qui contient vingt valeurs réelles.
Tableau nom (10) , prenom (10) : Chaîne
Nom (10) et prenom (10) sont deux tableaux de 10 éléments de type chaîne.
Un tableau peut être représenté graphiquement par (exemple Note (15)) :
Les tableaux
Algorithme
Si l’on veut accéder (en lecture ou en écriture) à la i ème valeur d’un tableau en utilisant la syntaxe suivante :
nom_tableau (indice)
Par exemple si X est un tableau de 10 entiers :
 X (2) -5
met la valeur -5 dans la 2 ème case du tableau
 En considérant le cas où a est une variable de type Entier, a X (2)
met la valeur de la 2 ème case du tableau tab dans a, c’est- à- dire -5
 Lire X (1)
met l’entier saisi par l’utilisateur dans la première case du tableau
 Ecrire X (1)
affiche la valeur de la première case du tableau

Remarques :
- Un tableau possède un nombre maximal d’éléments défini lors de l’écriture de l’algorithme (les bornes sont des constantes explicites, par
exemple 10, ou implicites, par exemple MAX). Ce nombre d’éléments ne peut être fonction d’une variable.
- La valeur d’un indice doit toujours :
• être un nombre entier
• être inférieure ou égale au nombre d’éléments du tableau
Les tableaux
Algorithme
Exemples:
Les représentations graphiques des tableaux X (4) et voyelle (6) après exécution de ces programmes.
1. Considérons les programmes suivants:
Tableau X (4) : Entier
DEBUT
X (1) 12
X (2) 5
X (3) 8
X (4) 20
FIN
Tableau voyelle (6) : Chaîne
DEBUT
voyelle (1) «a»
voyelle (2) «e»
voyelle (3) «i»
voyelle (4) «o»
voyelle (5) «u»
voyelle (6) «y»
FIN
Les tableaux
Algorithme
Exemples:
2. Que fournira l’exécution de ce programme :
Tableau suite (8) : Entier
Variable i : Entier
DEBUT 1
Suite (1) 1
1
2
Suite (2) 1
3
POUR i = 3 A 8 5
suite (i) suite (i - 1) + suite (i - 2) 8
FIN POUR 13
POUR i = 1 A 8 21
Ecrire suite (i)
FIN POUR
FIN

Ecrire un algorithme permettant de saisir 5 réelles au clavier, les stocker dans un tableau, calculer leur somme et les afficher avec leur
somme à l’ecran.
Les tableaux
Algorithme
Les tableaux dynamiques

Il arrive fréquemment que l’on ne connaisse pas à l’avance le nombre d’éléments que devra comporter un tableau. Bien sûr, une solution
consisterait à déclarer un tableau avec une taille très grande. Cela pourra avoir comme conséquence soit que cette taille ne nous nous
suffira pas ou qu’une place mémoire immense sera réservée sans être utilisée.
Afin de surmonter ce problème on a la possibilité de déclarer le tableau sans préciser au départ son nombre d’éléments. Ce n’est que dans
un second temps, au cours du programme, que l’on va fixer ce nombre via une instruction de re-dimensionnement : Redim.

Exemple :
On veut saisir des notes pour un calcul de moyenne, mais on ne sait pas combien il y aura de notes à saisir. Le début de l’algorithme sera
quelque chose du genre :
Tableau Notes () : Réel
Variable nb en Entier
DEBUT
Ecrire “Combien y a-t-il de notes à saisir ?“
Lire nb
Redim Notes(nb-1)

FIN
Les tableaux
Algorithme
Les tableaux multidimensionnels

Nous avons vu qu’un tableau à une dimension correspond à une liste ordonnée de valeurs, repérée chacune par un indice.
Dans tous les langages de programmation, il est possible de définir des tableaux à deux dimensions (permettant par exemple de représenter
des matrices). Ainsi, on pourra placer des valeurs dans un tableau à deux dimensions et cela consiste comme dans le cas des tableaux à
une dimension à donner un nom à l’ensemble de ces valeurs. Chaque valeur est alors repérée par deux indices qui précise la position.
On déclare un tableau à deux dimensions de la façon suivante :

Tableau nom_tableau (i , j ) : Type


nom_tableau : désigne le nom du tableau
i : désigne le nombre de lignes du tableau
j : désigne le nombre de colonnes du tableau
Type : représente le type des éléments du tableau

Exemple :
Soit T (3 , 5) un tableau d’entiers. On peut représenter graphiquement par :
T (1 , 4) et T(3 , 4) sont deux éléments du tableau. Entre parenthèse on trouve les valeurs des
indices séparées par une virgule. Le premier sert à repérer le numéro de la ligne, le second le
numéro de la colonne.
Les tableaux
Algorithme
Les tableaux multidimensionnels
On accède en lecture ou en écriture à la valeur d’un élément d’un tableau à deux dimensions en utilisant la syntaxe suivante :
Nom_tableau (i , j)
Par exemple si T est défini par : Tableau T ( 3 , 2) : Réel
 T (2 , 1) -1.2; met la valeur -1.2 dans la case 2,1 du tableau
 En considérant le cas où a est une variable de type Réel, a T (2 , 1); met -1.2 dans a
Exemple
Remplissage d’un tableau à deux dimensions
Tableau X (2 , 3) : Entier
Variables i , j , val : Entiers
DEBUT
val 1
POUR i = 1 A 2
POUR j = 1 A 3
X (i , j) val
val val + 1
FIN POUR
FIN POUR
POUR i = 1 A 2
POUR j = 1 A 3
Ecrire X (i , j)
FIN POUR
FIN POUR
Fin
Les fonctions et procédures
Algorithme
En programmation, donc en algorithmique, il est possible de décomposer le programme qui résout un problème en des sous-programmes qui
résolvent des sous parties du problème initial. Ceci permettra d’améliorer la conception du programme et ainsi sa lisibilité.
L’utilisation des sous-programmes s’avère utile aussi dans le cas où on constate qu’une suite d’actions se répète plusieurs fois.
Il existe deux types de sous-programmes les fonctions et les procédures. Un sous- programme est obligatoirement caractérisé par un nom (un
identifiant) unique.
Le nom d’un sous-programme comme le nom d’une variable doit :
 Contenir que des lettres et des chiffres
 Commencer obligatoirement par une lettre
Le programme qui utilise un sous- programme est appelé programme appelant. Un sous-programme peut être invoqué n'importe où dans le
programme appelant en faisant référence à son nom.
Un programme ainsi doit suivre la structure suivante :
Définition des constantes
Définition des types
Déclaration des variables
Définition des sous- programmes
DEBUT
Instructions du programme principal
FIN
Les fonctions et procédures Algorithme
Les fonctions
Une fonction est un algorithme autonome, réalisant une tâche précise. Il reçoit des paramètres (valeurs) en entrée et retourne une valeur en sortie
(résultat). La notion de fonction est très intéressante car elle permet, pour résoudre un problème, d’employer une méthode de décomposition en sous-
problèmes distincts. Elle facilite aussi la réutilisation d’algorithmes déjà développés par ailleurs.
Déclaration d’une fonction
Une fonction est introduite par un en-tête, appelé aussi signature ou prototype, qui spécifie :
- Le nom de la fonction, les paramètres donnés et leur type, le type du résultat.
- La dernière instruction de la fonction indique la valeur retournée.

- Un argument (appelé paramètre formel) d’un sous- programme est une


variable locale particulière qui est associée à une variable ou constante du
programme appelant. Puisque qu’un argument est une variable locale, il
admet un type.
- Lorsque le programme appelant appelle le sous-programme il doit indiqué
la variable ou la constante de même type, qui est associée au paramètre.
- Une fonction n’affiche jamais la réponse à l’écran car elle la renvoie
simplement à l’algorithme appelant.
- Une fonction possède un seul type, qui est le type de la valeur retournée
qui est affecté au nom de la fonction.
Les fonctions et procédures
Algorithme
Les fonctions

Une fois la fonction définie, il est possible (en fonction des besoins) à tout endroit du programme appelant de faire appel à elle en utilisant
simplement son nom suivi des arguments entre parenthèses.
Les parenthèses sont toujours présentes même lorsqu’il n’y a pas de paramètre.
Les arguments spécifiés lors de l’appel de la fonction doivent être en même nombre que dans la déclaration de la fonction et des types prévus.
Dans le programme appelant ces arguments sont appelés paramètres effectifs.
La valeur ainsi renvoyée par la fonction peut être utilisée dans n’importante quelle expression compatible avec son type.

Exemple 2:
Exemple 1:
Fonction Factorielle ( nbr : Entier): Entier
Fonction Puissance ( A : Entier): Entier
Variables
Variables
R,i: Entiers
P: Entier
Début
Début
R<------1
P<------ A ^ 2
Pour i-----1 à nbr
Retourne P
R----R*i
Fin
Fin Pour
Retourne R
Fin
Les fonctions et procédures
Algorithme
Les fonctions

Appel de la fonction

Méthode 1: nom_var ----- nom-fonction(arg1, arg2,….)

Méthode 2: nom_var1 ----- nom_var2/nom_fonction (arg1, arg2,….)

Méthode 3: Ecrire (nom_fonction(arg1,arg2, ….)) Algorithme combinaison


Fonction Factorielle ( nbr : Entier): Entier
Voici un exemple de programme complet : Variables
R,i: Entiers
Algorithme fonction_puissance Début
Fonction Puissance ( A : Entier): Entier R<------1
Variables Pour i-----1 à nbr
P: Entier R----R*i
Début Fin Pour
P<------ A ^ 2 Retourne R
Retourne P Fin
Fin Appel de la Variables
Variables fonction a,b:Entiers
X: Entier C:Réel
Début Début
Ecrire ‘’ donner un nombre: ‘’ Ecrire’’ Donner deux nombre:’’
Lire X Lire a,b
Ecrire ‘’ La puissance de nombre ‘’,X, ‘’est:’’,Puissance (X) C ------ Factorielle (a)/Factorielle (a-b)*Factorielle(b)
Fin Ecrire’’le nombre de combinaison de’’,b,’’parmi’’, a, ‘’est:’’,C
Fin
Les fonctions et procédures
Algorithme
Les procédures
Les procédures sont des sous- programmes qui ne retournent aucun résultat. Elles admettent comme les fonctions des paramètres.
On déclare une procédure de la façon suivante :
PROCEDURE nom_procedure (Argument1 : Type , Argument2 : Type ,….)
Déclarations
DEBUT
Instructions de la procédure
FIN
Et on appelle une procédure comme une fonction, en indiquant son nom suivi des paramètres entre parenthèses.
nom-procédure(arg1, arg2,….) Algorithme procedure_puissance
Procédure Puissance ( A : Entier)
Exemple:
Variables
Procédure Puissance ( A : Entier) P: Entier
Début
Variables
P<------ A ^ 2
P: Entier Ecrire ‘’ La puissance de nombre ‘’,A, ‘’est:’’,P
Fin
Début
Variables
P<------ A ^ 2 X: Entier
Début
Ecrire ‘’ La puissance de nombre ‘’,A, ‘’est:’’,P
Ecrire ‘’ donner un nombre: ‘’
Fin Lire X
Puissance (X)
Fin
Algorithme
Les variables locales et globales
La portée d’une variable est l’ensemble des sous- programmes où cette variable est connue c'est-à-dire que les instructions de ces sous-
programmes peuvent utiliser cette variable.
Une variable définie au niveau du programme principal (problème appelant) est appelée variable globale. Sa portée est totale : tout sous-
programme du programme principal peut utiliser cette variable.
Cependant, une variable définie au sein d’un sous-programme est appelée variable locale. La portée d’une variable locale est uniquement le
sous-programme qui la déclare.
Exemple:
Algorithme varlocglob
Variables a , x : Entier //a et x sont des variables globales
Fonction F1 ( b: Entier ) : Entier;
Variable y:entier // y est une variable locale
Début
x---b*2
y---b*x
Fin
Début
a---10
a----F1(a)
Ecrire ‘’x=‘’,x
Fin
Algorithme
Les variables locales et globales

Remarques:

Vous aimerez peut-être aussi