Académique Documents
Professionnel Documents
Culture Documents
Tout problème à programmer doit être résolu, d’abord sous forme d’algorithme,
Puis, converti en programme dans un langage de programmation comme : C, java,
python…
Un programme est un suite d’instructions exécutable par l’ordinateur traduit la
démarche à suivre pour expliquer le traitement à effectuer sur les données,
permettant de traiter un problème et de renvoyer des résultats.
Représentation d’un algorithme
Il existe deux façon pour représenter un Algorithme :
L’Organigramme : représentation graphique avec des symboles (carrés, losanges, …)
Offre une vue d’ensemble de l’algorithme
Représentation quasiment abandonnée
Le pseudo-code : représentation textuelle avec une série de conventions ressemblant à un
langage de programmation (sans les problèmes de syntaxes)
Plus pratique pour écrire un algorithme
Représentation largement utilisée
Structure générale d’un algorithme
Un algorithme est composé de trois partie principales:
Les variables et les constantes
Une variable est une zone de stockage de la mémoire de l'ordinateur permettant
d’enregistrer une valeur et de l’utiliser ensuite pour faire des calculs.
Comment ça fonctionne ??
Déclaration d’une variable
La partie déclarative d’un algorithme consiste à énumérer toutes les variables dont
on aura besoin au cours de l’algorithme.
Chaque déclaration doit comporter le nom de la variable (identificateur) et son
type
Syntaxe:
Variable Identificateur : Type
Exemple :
Variable surface: réel
Variable a: entier
variable NomPrenom: chaîne
Identificateur
C’est le nom donné à une variable.
Le choix de l’identificateur est soumis à quelques règles qui varient selon le
langage, mais en général :
Il doit commencer obligatoirement par une lettre alphabétique
La suite des caractères doit être constituée de lettres (a-z, A-Z), soit de chiffres
(0..9), soit du caractère soulignement ‘’_’’.
Il ne doit contenir ni espace ni caractères spéciaux.
Type de données
Le type d’une variable est l’ensemble des valeurs qu’elle peut prendre.
Les différents types utilisés en algorithmique :
• Type Entier : il s'agit des variables destinées à contenir un nombre entier positif
ou négatif.
• Type Réel : il s'agit des variables numériques qui ne sont pas des entiers, c'est à
dire qui comportent des décimales
• Type Caractère : Les variables de type caractère contiennent des caractères
alphabétiques ou numériques seul(ex: ‘a ’, ‘3’, ‘A’
• Type Booléen : Les variables qui prennent les valeurs (vrai ou faux) ou les
valeurs (oui ou non).
• Type Chaîne de caractères : représentant un texte, contenant un ou plusieurs
caractères(ex: ’’Bonjour tout le monde’’)
Les opérations
Les opérations les plus fréquentes sur ces valeurs sont résumées dans le tableau ci-
dessous.
Opérateur Signification Exemple
+ Addition R= a +b
- Soustraction R= a –b
* Multiplication R= a*b
/ Division R= a/b si b!= 0
^ Elévation de puissance Y= x^n
DIV Division entière 7 DIV 2 = 3
MOD Reste d’une division MOD(13.5) =3
ENT Partie entière d’un réel ENT(15.36) = 15
Les opérations en algorithmique
Les opérations les plus fréquentes sur les variables sont résumées dans le tableau
ci-dessous.
Opération Symbole
Strictement inférieur à <
Strictement supérieur à >
Inférieur ou égal à <=
Supérieur ou égal à =>
Egal à =
Diffèrent de <>
Les opérations pour le type booléen
Les opérations qu’on peut appliquer à ces valeurs logiques sont : (ET, OU, NON)
Pour simplifier la représentation, on assimile à vrai la valeur (1) et a faux la valeur
(0).
Nous résumons dans une table de vérité les résultats obtenus suivant les valeurs de
deux opérandes:
a b a ET b a OU b Non a
Exemple:
0 0 0 0 1 L’expression 5>2 ET 6<1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
Les constantes
Comme une variable, à une constante correspond un emplacement mémoire
réservé auquel on accède par le nom qui lui a été attribué,
La valeur stockée ne sera jamais modifiée au cours du programme.
Syntaxe:
Constante NOM_DE_LA_CONSTANTE = valeur
Exemple :
Constante PI=3.14
Les instructions de base en algorithmique
• L’instruction d’entrée
• L’instruction de sortie
L’instruction de l’affectation
Le membre gauche de l’affectation doit être une variable déclarée. Il doit correspondre
à une case mémoire qui peut recevoir une valeur.
Exemple d’affectation
Affecter une valeur à une variable
Algorithme nom_algorithme;
(*Déclarations*)
Const
Nom_de_const=valeur_de_const;
Var
Nom_var:nom_type_var;
Début
(*Corps de l’algorithme*)
(*Actions*)
Fin
Exemple d’application: le périmètre d’un cercle
Un algorithme pourra se présenter par un langage algorithmique de la manière
suivante:
Algorithme perimetre_cercle;
Const c=2;
Pi=3.14;
Var
P, R: réels;
Début
Lire (R);
P←c*Pi*R;
Ecrire (P);
Fin
Les Commentaires
Lorsqu’un algorithme devient long, il est conseillé d’ajouter des lignes de
commentaires dans l’algorithme, c’est-à-dire des lignes qui ont pour but de donner
des indications sur les instructions effectuées et d’expliquer le fonctionnement du
programme (algorithme) sans le compilateur ne les prenne en compte.
Il existe trois types de commentaires:
1. // commentaire sur une ligne
2. /* commentaire sur plusieurs ligne */
3. ‘ commentaire
Les structures alternatives et répétitives
Les structures alternatives
Une structure alternative ( conditionnelle) est une notion courante en algorithmique,
Elle permet de tester des variables et de prendre une décision .
Elle permet d’effectuer des actions si une condition est vérifiée.
Les différentes structures conditionnelles:
SI….
Sinon….
SinonSi
Selon…
La structure Conditionnelle: Si…Alors…FinSi
La structure SI est utilisé si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.
Syntaxe:
Si condition Alors
Instruction(s)
FinSi
une condition est une expression logique (booléenne)
Ou une variable logique évaluée à Vrai ou Faux.
La structure Conditionnelle: Si…Alors…FinSi
Exemple1: afficher nombre positif
Algorithme NombrePositif;
Var
N: entier;
Début
Lire (N);
Si N>0 Alors
Ecrire(‘le nombre N est positif);
FinSi
Fin
La structure Conditionnelle: Si…Alors…FinSi
Exemple2: afficher la valeur absolue d’un nombre
Algorithme valeur_absolue;
Var
X: réel;
Début
Lire (X);
Si X<0 Alors
X←-X;
FinSi
Ecrire(‘la valeur absolue est:’, X);
Fin
La structure Conditionnelle: Si…Alors…Sinon…FinSi
La structure SI est utilisé si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.
Syntaxe:
Si condition Alors
Instruction 1;
Sinon
Instruction 2;
FinSi
La structure Conditionnelle: Si…Alors…Sinon…FinSi
Exemple1: afficher le max de deux nombre
Algorithme max;
Var
a,b: entier;
Début
Si a<b Alors
max ← b
Sinon
max ← a
FinSi
Fin
La structure Conditionnelle: Si…Alors…Sinon…FinSi
Exemple2: afficher si un nombre entier saisi au clavier est pair ou impaire
Algorithme Parité
//déclaration des variables
Var n,r: entiers
Début
Ecrire(‘’entrer la valeur de n ’’)
Lire(n)
r ← n Mod 2
Si r=1
Ecrire(‘’impaire) Sinon Ecrire(‘’pair ’’).
Structure conditionelle: Test imbriqué
Dans les cas précédents on a seulement deux situation possibles (paire, impaire),
mais si il y’a plusieurs situations par exemple dans la mention (non admis, passable,
assez bien, bien, très bien) une structure alternative simple ne suffit pas, donc pour
traiter ce cas on doit passer par plusieurs structures alternative on parle ( test
imbriqué).
Syntaxe:
Si condition1 Alors
Instruction 1;
SinonSi Condition 2 alors
Instruction 2;
SinonSi condition3 alors
instruction3;
Sinon
FinSi
La structure Conditionnelle: Si…Alors…Sinon…FinSi
Exemple1: Ecrire un algorithme qui permet de tester le signe d’un nombre ;
Dans le cas de signe d’un nombre on a trois situation : (négatif, nul, positif)
Exemple 2: écrire un algorithme qui affiche les jours de la semaine en toute lettre
selon son numéro saisi au clavier.
Structure conditionnelle à choix multiple
Cette structure permet de choisir le traitement à effectuer en fonction de la valeur
ou de l’intervalle de valeurs d’une variable ou d’une expression.
Syntaxe:
Selon sélecteur faire
valeur 1 : <Traitement1>
valeur 2 : <Traitement2>
……
……
valeur N : <Traitement N>
SINON <Traitement R>
Fin selon
Structure conditionnelle à choix multiple
Exemple1: Ecrire un algorithme qui affiche le mois en toute lettre selon son numéro
saisi au clavier.
Algorithme Mois
Variables N: entier
Début
Ecrire(‘’ Donnez le numero du mois: ’’)
Lire(N)
Selon N faire
1: Ecrire(‘’janvier’’)
FinSelon
Les structures répétitives
Dite aussi itératives ou boucles permet de répéter une ou plusieurs actions un certain
nombre de fois.
Exemple:
Ecrire un algorithme sans boucles qui calcule la somme suivante :
4
𝑖=1 𝑖2
somme =0 , i=1
somme = somme + i*i
i=i+1
somme = somme + i*i
i=i+1
somme = somme + i*i
Les structures répétitives
But des structures itératifs : exécuter plusieurs fois une même suite d'instructions
Il faudrait alors déclarer autant de variables qu’il y a d’étudiants, par exemple N1,
…, N30. 30 instructions lire….
Lire (N1)
Ecrire (‘’enter note 2:’’)
Lire (N2)
Introduction
Solution: On doit réunir ces valeurs dans une seule variable dite structurée et
composée de 30 cases juxtaposées et même dimensions car elles vont recevoir des
données de même type, cette variable s ’appelle Tableau qui permet de définir
plusieurs variable de même type
30 Valeurs réelles
Définition d’un Tableau
Un tableau est une suite d’élément de même type. Il est utilise plusieurs case
mémoire à l’aide d’un seul nom. Comme toutes les cases portent le même nom, elle se
différencient par un numéro ou un indice.
La déclaration d’un tableau permet d’associer à un nom une zone mémoire composée
d’un certain nombre de cases mémoires de même type.
Syntaxe:
Var Tableau identificateur [dimension]:type ;
Exemple:
Variable Tableau Note [10] : réel
Tableau à une dimension
On accède à un élément via son indice
2. Lire (A[6]); affecter une valeur introduite par l’user à l’élément 6 du tab
Ecrire un algorithme permettant d’entrer 5 valeurs réelles au clavier, les stocker dans
un tableau, calculer leur somme et les afficher avec leur somme à l’écran.
Tableau à une dimension
Variable Tableau A(5) en entier
som, i : entier
Début
// Remplissage du tableau
Pour i ← 1 à 5
Ecrire « entrer la note n° », i)
Lire A(i)
som ←0
Pour i ← 1 à 5
Som ← som+A[i]
Ecrire (A(5)
Tableau à une dimension
Exemple 2:
Ecrire un algorithme permettant d’entrer 30 notes réelles au clavier, les stocker dans
un tableau, et les afficher après avoir multiplié toutes ces notes par un coefficient
fourni par l’utilisateur.
Tableau à deux dimension
Reprenons l’exemple des notes en considérant cette fois qu’un étudiant a plusieurs
note( une note pour chaque matière). Pour quatre étudiants, nous aurions le tableau
de relevés des notes suivant:
Info 12 18,5 9 10
Comptabilité 15 11 10 14
Maths 17 14 12 12
Tableau à deux dimension
Les tableau à deux dimensions se représentent comme une matrice ayant un certain
nombre de ligne (première dimension ) et un certain nombre de colonnes (seconde
dimension). La déclaration se fait ainsi:
Syntaxe
Var
Tableau identificateur [dimension1] [dimension1]:type ;
Tableau à deux dimension
Exemple:
tableau A [3][4]:Réel;
Remarque :
Pour parcourir une matrice nous avons besoins de deux boucles, l’une au sein de
l’autre, c’est ce qu’on appelle les boucles imbriquées.
Tableau à deux dimension
Exercice 1:
Ecrire un algorithme qui permet la saisie n notes réelles et d’afficher le nombre des
notes inférieurs ou égales à 10, supposons que n<=40.
Exercice 2:
Exercice 3:
Ecrire à algorithme qui permet de chercher une valeur saisie par l’utilisateur dans un
tableau de taille n saisie par l’utilisateur.
Les structures
Introduction
Une variable est utilisé pour stocker une valeur d’un type donné.
La solution
Les Structures
Une structure est utilisé pour stocker plusieurs valeurs de types différents.
Définition
Une Structure est un modèle qui permet de désigner sous un seul nom un ensemble
de valeurs pouvant être de types différents.
L’accès à chaque élément de la structure nommé champ, se fera par son nom au
sein de la structure.
Structure
Syntaxe:
Une variable de type structure est une variable complexe composée de champs qui
sont des variables simples ou complexes.
Etud1
nom prénom âge moyenne
Etud2
nom prénom âge moyenne
L’accès à un champ d’une structure
Chaque champ d’une structure peut être manipulé comme n’importe quelle variable.
L’accès à un champ se fait en faisant suivre le nom de la variable de type structure
du nom de champ séparé par un point.
.
nom_variable nom_champ
Les fonctions
Les procédures
Avantages des Sous-programmes
Un sous-programme est un « morceau » d'algorithme conçu pour faire un traitement :
– bien défini
– bien délimité
– si possible indépendant du contexte particulier de l’algorithme appelant.
Les fonctions
Les procédures
Avantages des Sous-programmes
Les sous-programmes à pour but de réduire la redondance du code.
1. L'entrée: on fait « rentrer » des informations dans la fonction (en lui donnant des
informations avec lesquelles travailler).
2. Les calculs : grâce aux informations qu'elle a reçues en entrée, la fonction travaille.
3. La sortie : une fois qu'elle a fini ses calculs, la fonction renvoie un (et un seul)
résultat. C'est ce qu'on appelle la sortie, ou encore le retour.
Déclaration d’une fonctions
Le syntaxe:
Fonction nom_fonct (paramètres): type
variables identificateurs: type
Début
instruction(s);
Retourner Expression;
Les paramètres sont facultatifs,
FinFonction mais s’il n’y a pas de paramètres,
les parenthèses doivent rester présentes
Début
moy ← (a+b)/2;
Retourner moy;
FinFonction
Les fonctions
Ecrire une fonction max qui renvoie le plus grand de deux nombres différents.