Cour 2 Informatique2 FC
Cour 2 Informatique2 FC
Cour 2 Informatique2 FC
Cour : N° 2________________________________________________________________
Structure de la programmation
<
Enoncé du problème
↓ ← Analyse – Conception
Modélisation de données
Algorithme
↓ ← Codage
Programme source
↓
← Mise au point (compilation,
↺ tests,…)
Solutions
forme de suite de pas à accomplir pour aboutir aux solutions : c’est l’algorithme de
résolution du problème.
3) Codage : il s’agit de traduire l’algorithme en langage de programmation, et sous forme de
fichier texte (c.à.d. suite de caractères sans mise en forme ni mise en page). Le résultat du
codage est un fichier appelé code source du programme.
4) Mise au point : comprend le plus souvent plusieurs étapes répétées jusqu’à ce que le
programme semble satisfaisant :
Compilation : un langage de programmation de haut niveau n’est pas directement
compréhensible par la machine. Il faut donc traduire le code source du programme
vers le langage natif de la machine. Le résultat est un nouveau fichier écrit en langage
machine, et appelé code objet.
Tests : exécution du code objet avec divers cas typiques des entrées, ou jeu de tests.
C’est le moment où la plupart des erreurs apparaissent.
Correction des erreurs : on modifie le code de manière à corriger les erreurs au fil
des tests, et l’on recommence la compilation, exécution et tests, etc.
Etude du problème
Données
Actions
Réflexion → ↓
Algorithme
Programme
(langage évolué)
Traduction
→ ↓
(compilation ou
interprétation)
Programme
(langage machine)
5. Entrée/Sortie et Variables :
a) Structure générale d’un algorithme :
déclarations {
Début déclarations
instructions instructions
Fin }
b) Variable – constante :
Donnée :
Toute donnée est soit une variable, soit une constante.
Variable - constante :
Une variable est, une donnée dont, la valeur va évoluer lors de l’exécution du programme. A
l’opposé, une constante va conserver la même valeur tout au long du traitement. Chaque
donnée (variable ou constante) est définie par :
un identificateur : c’est le nom que l’on lui donne.
un type.
une valeur.
Type :
La valeur d’une variable est codé en binaire. A une nature (numérique. caractère...) de
l’information mémorisée correspond généralement une manière de coder cette information. Le
type d’une variable permet d’associer entre eux, la nature des informations, le codage mais
aussi les limites et opérations associés.
Opérateur :
Un opérateur est un symbole indiquant une opération à effectuer. Les opérateurs sont bien
souvent, binaires « reliant deux opérandes », mais peuvent aussi être unaires ou ternaires. Un
opérateur est bien souvent associé un type de données. On peut classer la plupart des opérateurs
dans trois grandes familles :
1. opérateurs arithmétiques : donnent un résultat, numérique à partir d’opérandes
numériques (addition, soustraction,...).
2. opérateurs relationnels : donnent un résultat logique â partir d’opérandes numériques
(plus grand que, égal, ...).
3. opérateurs logiques : donnent un résultat logique à partir d’opérandes logiques (ET,
OU, …).
Exemple 1
3 + 3 : +, opérateur binaire d’addition.
a ET b : ET, opérateur binaire.
-c : - négation unaire.
NON (a ou b) : NON, opérateur unaire.
Fin }
Affectations :
a. Affectation :
Une affectation 𝐱 ← 𝐞𝐱𝐩𝐫 est une instruction qui permet de spécifier qu’au moment de son
exécution, la variable 𝐱 recevra comme nouvelle valeur la valeur de l’expression 𝐞𝐱𝐩𝐫
spécifiée en partie droite de l’instruction.
b. Expression :
Une expression permet de désigner le calcul d’une « nouvelle » valeur à partir d’autres
valeurs et d’opérations. Les valeurs utilisées dans l’expression peuvent être des constantes,
des valeurs de variables. Des données littérales.
En algorithme En C/C++
𝐢𝐝𝐞𝐧𝐭𝐢𝐟 ← 𝐞𝐱𝐩𝐫; 𝐢𝐝𝐞𝐧𝐭𝐢𝐟 = 𝐞𝐱𝐩𝐫;
Entrées/Sorties :
Un programme a généralement besoin de communiquer avec l’extérieur
affichage de résultats sur un écran.
demande à l’utilisateur de fournir une donnée.
Dans la réalité les instructions d’écriture et de lecture se font sur des périphériques. Une lecture
spécifie qu’une nouvelle valeur d’un variable doit être lue sur un périphérique (typiquement à
l’aide du clavier). Une lecture a comme avantage sur une affectation le fait de rendre le
programme indépendant des données. I.e. le même programme peut s’exécuter sur des données
différentes. Une écriture permet d’écrire sur un périphérique (typiquement l’écran) la valeur
d’une variable, d’une constante ou d’une expression.
En algorithme En langage C/C++ Commentaire
6. Structures de contrôle :
En algorithmique l'ordre des instructions est primordial. Le processeur exécute les instructions dans
l'ordre dans lequel elles apparaissent dans le programme. On dit que l'exécution est séquentielle. Une
fois que le programme a fini une instruction, il passe à la suivante. Tant qu'une instruction n'est pas
terminée, il attend avant de continuer. Par exemple, une instruction de saisie va attendre que
l'utilisateur rentre une valeur au clavier avant de continuer. On doit pouvoir faire des choix (structure
conditionnelle). Par ailleurs, si un traitement identique (ou presque identique) se répète plusieurs fois,
on doit pouvoir faire en sorte de ne l'écrire qu'une fois (structure itérative ou répétitive).
Il existe deux grands types de structures de contrôle :
les structures conditionnelles vont permettre de n'exécuter certaines instructions que sous
certaines conditions ;
les structures répétitives, encore appelées boucles, vont permettre de répéter des instructions
un certain nombre de fois, sous certaines conditions.
Notation :
𝐒𝐈 condition 𝐀𝐋𝐎𝐑𝐒
Action 1
𝐒𝐈𝐍𝐎𝐍
Action 2
𝐅𝐈𝐍𝐒𝐈
Interprétation :
L’exécution d’une telle instruction consiste à évaluer la condition, qui doit être nécessairement une
expression booléenne, c’est à dire lui associer la valeur vrai ou faux, ensuite, si l’évaluation fournit
vrai exécuter action 1, et sinon exécuter action 2.
Exemple :
Ecrire l’algorithme qui demande en entrée deux valeurs entières et retourne le maximum entre eux.
(On suppose que les deux valeurs sont distinctes).
𝐀𝐋𝐆𝐎 maximumAB
𝐕𝐀𝐑 a, b, max : entier ;
𝐃𝐄𝐁𝐔𝐓
Ecrire ("donne deux valeurs") ;
Lire (a, b) ;
𝐒𝐈 (a > 𝑏) 𝐀𝐋𝐎𝐑𝐒
max ← a ;
𝐒𝐈𝐍𝐎𝐍
max ← b ;
𝐅𝐈𝐍𝐒𝐈
Ecrire ("le maximum est : ", max) ;
𝐅𝐈𝐍
Syntaxe en langage C :
Notation :
𝐒𝐈 condition 𝐀𝐋𝐎𝐑𝐒
Action 1
𝐅𝐈𝐍𝐒𝐈
Exemple :
Dans un programme de calcul d'une facture, on veut effectuer une remise de 10% si le montant de la
facture dépasse 50 000 DA.
Supposons que la variable qui contient le montant de la facture s'appelle mont. On veut écrire
l'algorithme qui affiche le montant à payer.
10
𝐀𝐋𝐆𝐎 montant_facture
𝐕𝐀𝐑 mont : réel ;
𝐃𝐄𝐁𝐔𝐓
Ecrire ("donne le montant de la facture") ;
Lire (mont) ;
𝐒𝐈 (mont > 50000) 𝐀𝐋𝐎𝐑𝐒
mont ← mont ∗ 0.9 ;
𝐅𝐈𝐍𝐒𝐈
Ecrire ("le montant de la facture est : ", mont) ;
𝐅𝐈𝐍
Syntaxe en langage C :
11
Exemple :
Voilà l'algorithme qui affiche le mois en toute lettre selon son numéro.
Le numéro du mois est mémorisé dans la variable mois.
𝐀𝐋𝐆𝐎 choix_mois
𝐕𝐀𝐑 mois : entier ;
𝐃𝐄𝐁𝐔𝐓
Ecrire ("donne un numéro entre 1 et 12") ;
Lire (mois ) ;
SELON mois
Cas 1 : Ecrire Janvier ;
Cas 2 : Ecrire ("Février") ;
Cas 3 : Ecrire ("Mars") ;
…
Cas 10 : Ecrire ("Octobre") ;
Cas 11 : Ecrire ("Novembre") ;
Cas 12 : Ecrire ("Décembre") ;
Défaut : Ecrire ("erreur ∶ numéro entre 1 et 12") ;
FINSELON
𝐅𝐈𝐍
Syntaxe en langage C :
12
Si x > y alors
Ecrire (x – y) ;
Sinon
Ecrire (y – x) ;
Finsi
13
Lire (montant) ;
𝐒𝐈 (montant < 1000) 𝐀𝐋𝐎𝐑𝐒
taux ← 1 ;
𝐒𝐈𝐍𝐎𝐍
𝐒𝐈 (montant < 3000) 𝐀𝐋𝐎𝐑𝐒
taux ← 2 ;
𝐒𝐈𝐍𝐎𝐍
𝐒𝐈 (montant < 10000) 𝐀𝐋𝐎𝐑𝐒
taux ← 3 ;
𝐒𝐈𝐍𝐎𝐍
taux ← 4 ;
𝐅𝐈𝐍𝐒𝐈
𝐅𝐈𝐍𝐒𝐈
𝐅𝐈𝐍𝐒𝐈
montant ← montant − montant ∗ taux/100 ;
Ecrire ("le montant est : ", montant) ;
𝐅𝐈𝐍
Les structures imbriquées sont emboîtées. Il est impossible qu'elles se chevauchent. Cela est valable
pour les structures conditionnelles et pour toutes les autres structures.
Dans ce cas, le premier FinSi rencontré dans l'algorithme indique toujours la fin de la structure la plus
imbriquée.
______________________________________________________________________ Cour N°2
14