Académique Documents
Professionnel Documents
Culture Documents
Département d’informatique
Pr. L. EL BERMI
Contenu du Module
• Chapitre 1: Généralités
• Introduction
• Codage
Introduction
• L’informatique est la science de traitement automatique de
l’information par des ordinateurs.
• Informatique = information + automatique (mot inventé en 1962
par Philippe Dreyfus)
• Information: ensemble de données ou de connaissances humaines
et des communications dans le domaine technique, scientifique,
économique et social.
• Traitement automatique: toutes les opérations que l’on peut
effectuer sur les informations: saisie, modification, stockage,
transmission,…
• Le traitement de l'information consiste en une suite d'opérations
transformant une représentation de cette information en une autre
représentation plus facile à manipuler ou à interpréter.
Définitions
• Un ordinateur est un ensemble de circuits
électroniques qui traite l'information grâce à un
programme qu'il mémorise, communique et archive
des informations.
• Le traitement de l'information se fait automatiquement
et vise à résoudre un problème bien défini.
Bus
Unités ...
d’entrée-
Imprimante Écran
sortie
Disque
La mémoire contient des instructions et des données
• Tous ces constituants sont reliés entre eux par
l’intermédiaire d’un bus, qui est l’artère
centrale et leur permet de s’échanger des
données.
• Pratiquement tous les ordinateurs actuels ont
cette architecture, qui ce soit les micros
ordinateurs personnels ou les gros ordinateurs
des entreprises.
• Les différences résident essentiellement dans
les performances des constituants.
• L’ensemble des communications à l’intérieur
s’effectue par le langage binaire.
Codage
Comprendre comment un ordinateur :
✓ représente une information (nombre,
caractère, image, son, etc.).
✓ Convertis des entiers ou des virgules
flottantes en représentation binaire et vice
versa.
✓En général on peut distinguer deux types
d’information: instructions et les données.
Les données
Les données: sont les opérandes sur lesquels
portent les opérations, ou produits par celles-
ci. Une addition, par exemple, peut
s’appliquer à deux opérandes, donnant un
résultat qui est la somme des deux opérandes.
On distingue les données numériques,
pouvant être l’objet d’une opération
arithmétique, des données non numériques,
par exemple, les symboles constituant un
texte.
Instructions
• Les instructions représentent les opérations (addition,
par exemple) effectuées par un ordinateur. Elles sont
composées de plusieurs champs:
- Le code de l’opération à effectuer;
- Les opérandes impliqués dans l’opération.
• Le traitement de l’information est une suite
d’opérations transformant une représentation de cette
information en une autre représentation plus facile à
manipuler ou à interpréter.
Exemples: 245+5x2-5=250; Gestion des comptes clients
dans une banque; Recensement de la population;
Inscription, notes des étudiants, …
• Le codage d’une information consiste à établir
une correspondance entre la représentation
externe (habituelle) de l’information (le nombre
65 ou le caractère «A» par exemple) et sa
représentation interne dans la machine (une suite
de bits).
• L’unité de base de la théorie de l’information est
le bit, bit = binary digit, qui signifie en anglais
nombre binaire.
• Un bit, par définition, est un composant
quelconque ne pouvant se trouver que dans deux
états possibles, exclusifs l’un de l’autre. Il prend la
valeur 0 ou 1.
Nombre de bits
Convertir de la base 10 vers une base
quelconque
• Cas de nombre entiers : On divise le nombre
par base b, puis le quotient obtenu par la base
b, et ainsi de suite jusqu’a obtenir un quotient
nul. La suite des restes obtenus correspond
aux chiffres dans la base b visée,
an an−1 ...a1a0
Exemple 1
Sens inverse: binaire en décimal
Comme, on a définit précédemment ( en base
b), convertir un nombre binaire en base décimal
c’est le calcul de la décomposition de ce
nombre. Exemple:
(101)2 = 1 2 2 + 0 21 + 1 2 0 = 5
(10)2 = 1 21 + 0 2 0 = 2
(1111)2 = 1 2 3 + 1 2 2 + 1 21 + 1 2 0 = 15
Chapitre 2: L’élément de base
d’un algorithme
• Introduction
• Définitions
• Principe
Problème
• Je veux informatiser ce problème et le rendre exploitable à
travers ma machine. Qu’est ce que je dois faire ?
2*x + 3 = 0 10*x - 1= 0
0*x + 0 = 0
0*x + 3 = 0
?? a*x + b = 0 ??
Principe d’algorithmique
Énoncé non précis : Problème informel
Spécification
Énoncé précis : Problème formel
Analyse
Algorithme
Programmation
Langage de programmation : Pascal,..
Compilation
Exécutable du programme
Exécution
Résultat
Algorithmique
Exemple :
Définition :
Début
Manipulation Instructions
FIN
Etapes de résolution
• Variables
Donnée ou objet
Définition :
Un objet est toute partie identifiable de l’information
au cours d’un traitement.
Il est caractérisé par son nom, son type et sa valeur.
L’ensemble des objets manipulés par un algorithme
est appelé:
environnement de cet algorithme.
Remarque :
Les objets manipulés par un ordinateur sont :
Les Constantes et Les Variables
Les constantes
Définition :
Syntaxe de la déclaration :
Exemple :
Constante Pi = 3.14
Les variables
Définition :
Ce sont des références (adresses mémoires) où vont
être stockées des valeurs variables. Les différentes valeurs
d’une référence vont appartenir au type de données auquel
appartient la référence.
Remarques :
1°- Le nom d’une variable suite de caractères qui permet d’identifier
la variable d’une manière unique dans un algorithme.
2°- Il existe différents types de variables.
Types de variables: Entier
Définition :
C’est l’ensemble des nombres entiers positifs ou négatifs.
Syntaxe de la déclaration :
Exemple :
a et b sont, par exemple,
Variable a,b : Entier les coefficients de
l’équation : ax + b = 0
Types de variables: Réel
Définition :
Exemple :
Exemple :
Exemple :
Variable Décision : Booléen
Autres types de déclarations
Objets : Type Tableau
Un tableau permet de représenter un ensemble de valeurs ayant des
propriétés communes et appartenant toutes au même type. Ces variables sont
principal.
Manipulations des variables
Définition :
On appelle instruction toute commande élémentaire que
l’on doit appliquer sur des objets pour avoir des sorties bien
définies.
Définition :
Une action est un événement qui change l’état d’un objet
d’un état initial donné à un état final désiré. Une action a une
durée d’exécution finie et un effet propre et bien défini. Chaque
action porte sur des objets sur lesquels elle s’exécute :
Titre du Problème
✓ Déclaration des Constantes
Déclaration ✓ Déclaration des Variables
des Objets ✓ Déclaration des Tableaux
✓ Déclaration des Procédures et Fonctions
Début
Manipulation Instructions
FIN
Manipulation: Corps d’algorithme
Dans la partie manipulation, on doit commencer par
le mot DEBUT et se termine par le mot FIN :
DEBUT
Instruction 1
Instruction 2
……. Action
…….
Instruction n
FIN
Les instructions
La partie manipulation utilise les différents objets
déclarés dans la partie déclaration et leur applique des
opérations afin de retourner le(s) résultat(s) attendu(s) par le
programmeur. Pour ce fait, il y a différentes actions, dites
instructions, à savoir :
Instructions de dialogue Homme-Machine ;
Instructions d’affectation ;
Instructions à structure alternative ;
Instructions à structure répétitive.
Etc…
Fonction de dialogue Output
L’affichage des informations:
Pour faire comprendre qu’il faut afficher des
informations à l’écran, on utilise l’instruction écrire qui obéit
à la syntaxe suivante :
Écrire (Variable ou ‘ Message’ )
Lire(Variable)
Exemple :
Écrire (‘ Saisissez la valeur de a ’)
Lire(a)
Instruction d’affectation
Définition:
C’est le stockage d’une valeur à un endroit
spécifique(variable). Pour affecter une valeur à une variable,
on écrit :
Variable Valeur
Exemple :
Variable valeur 1 + valeur 2
Variable valeur 1 * valeur 2
Variable valeur + Variable1
◼ Les variables sont des références (adresses mémoires) où vont
être stockées des valeurs qui peuvent changer au cours de
l’exécution du programme. Les mémoires sont repérées par des
numéros (pour l’ordinateur) ou des noms (pour le
programmeur, qui a intérêt à choisir des noms significatifs).
◼ Chaque fois qu’on procède à une nouvelle affectation, l’ancien
contenu de la mémoire est perdu et un nouveau contenu est
placé dans la mémoire.
◼ Les constantes correspondent à des zones mémoires dont le
contenu ne peut pas varier. octet n° 52 ’A’
01000001
Exemple
Quels résultats produit l’algorithme suivant ? Les types de
variables sont-ils corrects
Titre : Calcul
Déclaration
Variable A: Entier
C,B : Réel
D : caractère
E : Booléen
Début
A ← 30
B ← A * 2
Écrire('B=' , B)
Manipulation
C ← (B + A)/4
B ← C / 5
D ← ‘Amine’
E ←(A > 40) Ou (C < B)
Écrire('les valeurs obtenues sont : A = ' , A ,
'B = ' ,B , ' C = ', C , ' D = ', D, ' E = ', E)
Fin
Etat de la mémoire
Instruction A B C D E
Après l’instruction
A ← 30
30
Après l’instruction
B←A*2
30 60
Après l’instruction
C ← (B + A)/4
30 60 22.5
Après l’instruction
B← C/5
30 4.5 22.5
Après l’instruction
D ← ‘Amine'
30 4.5 22.5 Amine
Après l’instruction
E ← (A >40) Ou (C<B)
30 4.5 22.5 Amine Faux
Exercice
Énoncé:
Manipulation :
DEBUT
Écrire ( 'Saisir la valeur du rayon' )
Lire(Rayon)
Surface ⎯ Rayon * Rayon * Pi
Écrire (' La Surface du cercle est : ', Surface)
FIN
Exercice
Indication :
#include<stdio.h>
Void main () {
}
monProgramme.c
#include <stdio.h>
void main()
{
printf(" Bonjour tout le monde ") ;
59
Filière MIP (S1) : Module I111
Compilation d'un programme C
Quelques environnements de développement
Fin }
61 Filière MIP (S1) : Module I111
De l’algorithmique au C
Traduction de l’entête d’un algorithme
64
Filière MIP (S1) : Module I111
De l’algorithmique au C
Traduction des instructions : affectation
Exemple:
Exemple :
66
Filière MIP (S1) : Module I111
De l’algorithmique au C
Exemple : Traduire en C l'algorithme suivant
Exemple :
Opérateurs de comparaison
== égal à
!= différent de
<, <=, >, >= plus petit que, ...
Exemple:
int A,MAX = 1023;
char C,TAB = '\t';
float X = 1.05e-4;
Remarque:
Exemple:
const int MAX = 767;
const double TVA = 0.25;
const double e = 2.7;
const char NEWLINE = '\n';
Exemple:
76
Filière MIP (S1) : Module I111
Les opérateurs particuliers de C
+= ajouter à
-= diminuer de
*= multiplier par
/= diviser par
%= modulo
Exemple
A+=2; A=A+2;
A*=B A=A*B;
A%=B A=A%B;
char A=3; résultat (0.75) est affecté à D qui est aussi du type float. On
int B=4; obtient donc: D=0.75
float C=4;
float D,E; ➢ Pour le calcul de E, A est converti en int et divisé par B. Le
char F; résultat de la division (type int, valeur 0) est converti en float.
D = A/C;
E = A/B; On obtient donc: E=0.000
F = A/C; ➢ Pour le calcul de F, A est converti en float et divisé par C. Le
résultat (0.75) est retraduit en char. On obtient donc: F=0
(<Type>) <Expression>
Exemple
La valeur de A est explicitement convertie
char A=3;
int B=4; en float. La valeur de B est automatiquement
float C;
C = (float)A/B;
convertie en float. Le résultat de la division
(type rationnel, valeur 0.75) est affecté à C.
Résultat: C=0.75
83 Filière MIP (S1) : Module I111
Écriture d'un caractère putchar('a');
Exemples
char A = 225;
char B = '\a';
int C = '\a';
putchar('x'); /* afficher la lettre x */
putchar('?'); /* afficher le symbole ? */
putchar('\n'); /* retour à la ligne */
putchar(65); /* afficher le symbole avec le code 65 (ASCII: 'A') */
putchar(A); /* afficher la lettre avec le code 225 (ASCII: 'ß') */
putchar(B); /* beep sonore */
putchar(C); /* beep sonore */
Remarque:
putchar(B); printf("%c",B) ;
Exemple:
int C;
Scanf("%c",&c);
C = getchar();
Algorithme Calcul
Variable A : Entier
C,B : Réel
D : caractère
E : Booléen
Début
A ← 30
B ←A* 2
Écrire('B=' , B)
C ← (B + A)/4
B←C/5
D ← ‘A’
E ← (A > 40) Ou (C < B)
Écrire('les valeurs obtenues sont : A = ' , A , 'B = ' ,B , ' C =’,C, ' D = ', D, ' E = ', E)
Fin
86
Exemple 2 : Traduire en C l'algorithme suivant
87
Exemple 3 : Traduire en C l'algorithme suivant
Algorithme Commission
Constante M = 4000 * M: montant fixe*
Variable CA : Entier * Donnée d’entrée (CA: chiffre d’affaire) *
Com : Réel * Donnée intermédiaire (Com: commission )*
Sal : Réel * Donnée de sortie(Sal: salaire mensuel )*
DEBUT
Écrire ('Donner le CA mensuel en DHS')
Lire(CA)
Com ⎯ CA * 10/100
Sal ⎯ Com + M
Écrire ('Le salaire mensuel est de : ', Sal, ' en DHS ' )
FIN
88
Chapitre 2: L’élément de base
d’un algorithme
• Structure alternative
Structure alternative
Les conditions :
+ Addition
- Soustraction
* Multiplication
/ Division
Opérateur Signification
= Égal
< Inférieur
> Supérieur
<= Inférieur ou égal
>= Supérieur ou égal
<> différent
Opérations logique
On peut combiner des conditions à l’aide des opérateurs logiques :
Opérateur Signification
Et Et logique
Ou Ou logique
Ou = Xor Ou exclusif
Exemple
Expression Résultat
(4 <7) ET (9>0) Vrai
(1 < 0) OU (1<>1) Faux
Non(13.4 < 15) Faux
Priorité des opérations
Priorité de *, / div et % par rapport à + et -
5 + 9 * 3 = 32 et non 42
5*9+3 = 48 et non 60
Pour les opérateurs de même priorité, associativité à
partir de la gauche
15 / 5 * 3 = 9 et non 1
5 – 2 + 4 = 7 et non –1
On peut utiliser des parenthèses pour changer l’ordre
des opérations :
15 / (5 * 3) = 1
(5 + 9 ) * 3 = 42
Types de variables et Opérations
Priorité de *, / div et % par rapport à + et -
5 + 9 * 3 = 32 et non 42
5*9+3 = 48 et non 60
Pour les opérateurs de même priorité, associativité à
partir de la gauche
15 / 5 * 3 = 9 et non 1
5 – 2 + 4 = 7 et non –1
On peut utiliser des parenthèses pour changer l’ordre
des opérations :
15 / (5 * 3) = 1
(5 + 9 ) * 3 = 42
Structure Alternative: SI
Pour exprimer le fait que des instructions vont être exécutées
dans un cas alors que d’autres instructions peuvent être
exécutées dans l’autre cas, on utilise une structure alternative.
Syntaxe :
Si condition alors
Actions 1
[ Sinon
Actions 2] Option Facultative
Finsi
Exemple
Titre : Test 1 Titre : Test 2
Variable x : entier Variable x : entier
Début Début
Écrire ('Saisir un entier x ') Écrire ('Saisir un entier x ')
Lire (x) Lire (x)
Si (x > 0) alors Si (x > 0) alors
Écrire('x est un nombre positif ') Écrire (' x est un nombre positif ')
Finsi Sinon
Fin Écrire (' x est un nombre négatif ou nul')
Finsi
Fin
Exercice
Dans l’exercice précédent (Calcul la moyenne générale). Afficher
‘Admis’ si un étudiant a une moyenne générale >=10 et Afficher ‘Ajourné’
dans le cas contraire (Moyenne générale < 10).
Solution Classique :
DEBUT
Écrire (' Bonjour tout le monde ') 1
Écrire (' Bonjour tout le monde ') 2
.
.
Écrire (' Bonjour tout le monde ') 300
FIN
Boucle: Tant que
On utilise cette instruction pour exécuter des actions
tant qu’une condition est réalisée.
Syntaxe :
<initialisation>
Tant que Condition Faire
<bloc de traitement>
<bloc de contrôle> Action
exécuté.
◼ Si valeur(T)=Faux on passe à l'instruction suivante.
boucle.
➢ La boucle n'est pas INCONDITIONNELLE. On
Syntaxe :
<Initialisation>
Faire
<bloc de traitement>
<bloc de progression > Action
Jusqu’à Condition
Sémantique :
✓Si valeur(T)= Faux la boucle est à nouveau exécutée.
✓ Si Valeur(T)=Vrai, on passe à l'instruction suivante.
Avec Faire jusqu’à le test est fait à POSTERIORI.
• Il y aura un passage dans la boucle. Le bloc
d’instructions sera exécuté au moins une fois.
• La boucle n’est pas INCONDITIONNELLE. On ne
connaît pas à l’avance le nombre d’itérations.
Exemple
Titre : Boucle2
Variable i , y : Entier
Début
i
y0 Valeurs de y ?
faire
i i+1
y y+i
Écrire (' y = ' , y)
Jusqu’à (i >7)
Fin
Exercice
<Bloc de traitement>
Fin Pour
Exercice
Variable N, i : Entier
Variable a, b, S : Réel
DEBUT
Écrire (' Saisir la valeur de N: ')
Lire (N)
Écrire ('Saisir la valeur du premier terme et les coefs a et b:')
Lire (S , a, b )
Pour i 1 à N faire
S ⎯⎯ a * S + b
Fin Pour
Écrire ( ' Le terme d’’ordre:’, N, ‘est : ', S )
FIN
2) Le nombre d’itérations inconnu : Boucle Faire jusqu’à
Variable N : Entier
Variable a, b, S : Réel
DEBUT
Écrire ('Saisir la valeur du premier terme et les coefs a et b:')
Lire (S , a, b)
N ⎯ 0
Faire
S ⎯⎯ a * S + b
N ⎯ N + 1
Jusqu’à S > 1000
Écrire (' La somme de la série est : ', S)
Écrire (' Le rang est : ', N )
FIN
Exercice
Remarque :
1°- Un tableau peut être d’une ou plusieurs dimensions.
2°- La syntaxe de la déclaration d’un tableau change selon
la dimension de ce dernier
Syntaxe de la déclaration :
Remarques :
1°- Les Fonctions et les Procédures sont caractérisées par des
paramètres d’entrée et des paramètres de sortie.
2°-La fonction retourne une seule valeur tandis que La
procédure peut retourner plusieurs valeurs ou aucune.