Académique Documents
Professionnel Documents
Culture Documents
2022 – 2023
2
DEROULE DU COURS
Début : 22 Février 2023
Fin : 17 Mars 2023
Chap I : Ordinateur, Programme et Langage
Chap II : Variables et instruction d'affectation
Chap III : Les structures de choix
Chap IV: Les structures de répétition
Chap V : Introduction au langage de programmation(C, Pascal,Java,…)
Chap VI : Algorithmes de tri quadratiques
Chap VII : Les tableaux
Chap VIII : Les fonctions et procédures
Chap IX : Les structures de données
Travaux Dirigés (xx h)
Travaux Pratiques : (xx h)
Evaluation : 17/03/2023 3
Chapitre 0
Discipline Informatique
4
4
Chapitre 0 : Discipline Informatique
5
5
Chapitre I
Ordinateur, Programme et Langage
6
6
Chapitre I : Ordinateur, Programme et Langage
L’ordinateur
9
9
Chapitre I : Ordinateur, Programme et Langage
L’ordinateur
UNITE DE TRAITEMENT
11
11
Chapitre I : Ordinateur, Programme et Langage
Programme
13
13
Chapitre I : Ordinateur, Programme et Langage
Langage
14
14
Chapitre I : Ordinateur, Programme et Langage
Programmation
15
15
Chapitre I : Ordinateur, Programme et Langage
Algorithme
16
16
Conclusion
Étapes de conception d'un programme informatique
17
17
Chapitre II
Variables et instruction d'affectation
18
18
Chapitre II : Variables et instruction d'affectation
Notion de Variable
✓ Les variables servent à « nommer » des emplacements ou adresses de
la mémoire;
✓ Une variable est un espace mémoire nommé de taille fixe, prenant au
cours du déroulement de l’algorithme un nombre indéfini de valeurs
différentes;
✓ Permettent de manipuler des valeurs sans connaître leurs emplacements
exactes;
Coté machine Coté Programmeur
001 A
010 B
011 Montant
19
Mémoire Centrale 19
Chapitre II : Variables et instruction d'affectation
Type d’une Variable
✓ Le type d’une variable permet
– De savoir quel est l’espace mémoire occupé par une variable
– Quelles sont les opérations autorisées sur la variable
✓ Les types de base:
- Entiers
Une variable de type entier peut prendre comme valeur
l'ensemble des nombres entiers signés. Les opérations associées sont
les opérations usuelles +,-,*,/.
- Réels
Une variable de type réél peut prendre comme valeur
l'ensemble des nombres réels. Les opérations associées sont les
opérations usuelles +,-,*,/.
20
20
Chapitre II : Variables et instruction d'affectation
Type d’une Variable
- Caractères
Une variable de type car peut prendre comme valeur l'ensemble des
caractères imprimables.
On notera les valeurs entre guillemets. On considère souvent que les
caractères sont ordonnés dans l'ordre alphabétique.
Les valeurs :
o "1" qui est un caractère,
o 1 qui est un entier,
o 1. qui est un réel
sont différentes et ne seront pas codés de la même manière dans la mémoire
de la machine.
- Booléens
Une variable de type booléen prend comme valeur VRAI ou FAUX.
Les opérations usuelles sont ET, OU et NON qui sont données dans les
tables qui suivent.
21
21
Chapitre II : Variables et instruction d'affectation
22
22
Chapitre II : Variables et instruction d'affectation
Affectation d’une Variable
➢ Rôle :
Instruction de MODIFICATION de la valeur d’une variable à partir d’une
expression. Elle est notée par ←.
➢ Conséquence : s’il y avait une valeur dans la variable, elle est perdue
(écrasée par la nouvelle valeur)
➢ Important : le type du résultat de l’expression doit être compatible avec le type
de la variable.
24
24
Chapitre II : Variables et instruction d'affectation
Instruction de lecture
➢ Rôle :
Instruction d’ENTREE qui permet l’interactivité avec l’utilisateur. Utilise un
périphérique d’entrée.
➢ Syntaxe : Lire(< identificateur de variable1>, [<identificateur de variable2>, …]);
✓ Exemples :
Lire(Taux);
➢ Mécanisme :
1. Interruption du déroulement de l’algorithme
2. Attente d’une entrée de l’utilisateur
3. Rangement de la valeur entrée dans la variable dont l’identificateur suit le
mot réservé lire
➢ Conséquence : s’il y avait une valeur dans la variable, elle est perdue (écrasée
par la nouvelle valeur)
➢ Important : le type de la valeur entrée doit être compatible avec le type de la
variable.
25
25
Chapitre II : Variables et instruction d'affectation
Instruction d’Ecriture
➢ Rôle :
Instruction de SORTIE qui permet l’interactivité avec l’utilisateur. Utilise un
périphérique de sortie.
➢ Mécanisme :
Prend les expressions les unes après les autres et envoie leur valeur en sortie
(écran).
Exemple :
Soit x une variable qui contient la valeur entière 13. L’instruction Ecrire("le
successeur de ", x, " est ", x+1) envoie à l’écran le résultat de 4 expressions
; on pourra lire : “ le successeur de 13 est 14 ”.
26
26
Chapitre II : Variables et instruction d'affectation
Expression
➢ Définition : Une expression simple est :
✓ Une valeur (constante explicite) ex: 13, 21.73, ‘t’
✓ L’identificateur d’une variable (c'est à dire l'accès à sa valeur) : nb, g ou
lettre
✓ La combinaison de valeurs et/ou identificateurs de variables et d'opérateurs
( et d’appels de fonctions qui seront abordés ultérieurement) :
ex : nb + 10 où nb et 10 sont les opérandes et + l’opérateur
✓ Dans les expressions complexes, les opérandes peuvent être eux mêmes
des expressions :
ex: (nb + 10 ) * G
Priorité : les opérateurs {* / div mod,} sont prioritaires sur les opérateurs {+ -}
28
28
Chapitre II : Variables et instruction d'affectation
Expression
➢ Expressions booléennes(1/2)
46 > 100 est une expression booléenne dont la valeur est faux
Si x est une variable réelle contenant la valeur 5.45, x < 10 est une
expression booléenne dont la valeur est vrai.
30
30
Chapitre II : Variables et instruction d'affectation
Expression
31
31
Chapitre II : Variables et instruction d'affectation
Structure d’un algorithme
Algorithme Carre;
Constante Pi=3,14; g=10;
Type T1; T2;
Fonction F1;
Procedure P1;
Début
Instructions;
Fin.
32
32
Chapitre III
Les structures de contrôle
33
33
Chapitre III : Les structures de contrôle
Il y a trois structures principale de contrôle qui permettent de
construire des algorithmes
✓ Bloc d'instruction
Début
instruction1
instruction2
.............
Fin
Ex: Algorithme Carre;
Var a,b,c, D: Réel;
Début
a ←Lire(); // Est équivalent à Lire(a);
b ←Lire();
c ←Lire();
D←b*b-4*a*c;
Ecrire(‘’La valeur de D est :’’, D);
Fin.
34
34
Chapitre III : Les structures de contrôle
✓ Alternative
Alternative simple
Si ExpressionBooléenne alors
BlocInstruction1
Sinon
BlocInstruction2
Finsi;
Ex:
Si (D>0) alors
Ecrire(‘’ll y a deux solutions’’)
Sinon Si (D=0) alors
Ecrire(‘’ll y a une solution double’’)
Sinon
Ecrire(‘’ll n’y a pas de solution dans IR’’)
Finsi
Finsi;
35
35
Chapitre III : Les structures de contrôle
Alternative multiple
Selon que D
cas cas1 : BlocInstruction1
cas cas2 : BlocInstruction2
.............
autrement : BlocInstruction
Finselonque
Ex:
Selon que abréviation
"M" : Ecrire(" Monsieur " );
"Mme" : Ecrire(" Madame " );
"Mlle" : Ecrire(" Mademoiselle " );
Autres : Ecrire(" Monsieur, Madame " );
FinSelonque
36
36
CHAPITRES
I, II et III
TRAVAUX DIRIGES
37
37
Chapitre IV
Les structures de répétition
38
38
Chapitre IV : Les structures de répétition
• La condition doit finir par devenir vraie (on répète le traitement jusqu’à
ce que la condition soit vraie, i.e. tant que la condition est fausse)
• Le traitement est réalisé au moins une fois, car le test est effectué
après.
Répéter
<instruction>
Jusqu’à <condition>
✓ Exemple: L’algorithme ci-dessous calcule 10 !
Début
i ← 1;
Fac ← 1;
Répéter
Fac ← Fac*i;
i←i+1;
Jusqu’à (i >10);
Afficher(Fac); 41
Fin; 41
Chapitre IV : Les structures de répétition
✓ Principe de la boucle Pour
La boucle POUR permet d’effectuer un traitement à plusieurs reprises en
incrémentant ou décrémentant automatiquement une variable entière.
L’instruction Pour:
• Initialise une variable de boucle (le compteur)
• Incrémente cette variable de la valeur de « pas »
• Vérifie que cette variable ne dépasse pas la borne supérieure
Attention :
• le traitement ne doit pas modifier la variable de boucle
43
43
Chapitre IV : Les structures de répétition
Est équivalent à
cpt ← 0;
Tant que cpt <nbVal Faire
Afficher("Donnez une valeur :");
Saisir(valeur);
totalValeurs ← totalValeurs+ valeur;
cpt ← cpt + 1;
FinTantQue
44
44
Chapitre IV : Les structures de répétition
46
46
Chapitre IV : Les structures de répétition
Est équivalent à
47
47
Chapitre IV : Les structures de répétition
48
48
CHAPITRE
IV
TRAVAUX DIRIGES
49
49
Chapitre V
Les Fonctions et Procédures
50
50
Chapitre V : Les Fonctions et Procédures
▪ Les fonctions
Une fonction est une section d'algorithme qui a un objectif
bien défini et un nom. Elle possède des variables locales qui ne sont
pas visibles à l'extérieur de la fonction.
Une fonction retourne une valeur par l'instruction simple
retourne (Expression).
Syntaxe:
fonction NomDeFonction (ListeParamètres) : TypeRésultat;
//déclarations des variables ou fonctions locales
début
// partie instruction qui contient l'appel à retourne
finFonction
Exemple:
Fonction exemple(val n:entier;ref m: entier):Entier;
Var Tot:Entier;
début
Tot ← n*m;
Retourne(Tot);
finFonction 51
51
Chapitre V : Les Fonctions et Procédures
▪ Les Procédures
Une procédure est une section d'algorithme qui a un objectif
bien défini et un nom. Elle possède des variables locales qui ne sont
pas visibles à l'extérieur de la fonction.
A l’opposé de la fonction, elle ne retourne pas une valeur et
n’a pas de type de résultat.
Syntaxe:
Procedure NomDeFonction (ListeParamètres);
//déclarations des variables ou fonctions locales
début
// partie instruction
finProcedure
Exemple:
Procedure exemple(val n:entier;ref m: entier);
Var Tot:Entier;
début
Tot ← n*m;
m ← 23*Tot+n*Tot;
finProcedure
52
52
Chapitre V : Les Fonctions et Procédures
53
53
PausoLogique
Question :
Qui suis-je?
54
54
Chapitre VI
Les types de données personnalisées
Les Enregistrements et les Tableaux
55
55
VI.1- Les Enregistrements
✓ Définition
Un enregistrement est un type de données défini par
l'utilisateur et qui permet de grouper un nombre fini d'éléments (ou
champs) de types éventuellement différents(hétérogène).
✓ Déclaration
Nom_type = Enregistrement
champ 1 : Type 1
----
champ n : Type n
Fin Nom_Type
✓ Exemple
Fiche = Enregistrement
nom, prénom : Chaîne;
sexe : Caractère;
numéro : Entier non signé;
moyenne : Réel;
Fin Fiche 56
56
VI.1- Les Enregistrements
✓ Exemple (Ecriture)
Var Etudiant : Fiche ;
Etudiant.nom ← ‘’Charles’’ ;
Etudiant.prenom ← ‘’NGUEMA’’ ;
Etudiant.sexe ← ‘’M’’ ;
Etudiant.numero ← 25;
Etudiant.moyenne ← 14.25;
Autrement
Avec Etudiant Faire
nom ← ‘’Charles’’ ;
prenom ← ‘’NGUEMA’’ ;
sexe ← ‘’M’’ ;
numero ← 25;
moyenne ← 14.25;
Fin Avec
✓ Exemple (Lecture)
Var Moyenne : Entier non signé;
Moyenne ← Etudiant.moyenne; 57
57
VI.1- Les Enregistrements
✓ Exemple (Pascal)
Fiche = Record
nom, prenom : String;
sexe : Char;
numéro : Integer;
moyenne : Real;
End;
Etudiant.nom := ‘’Charles’’ ;
Etudiant.prénom :=‘’NGUEMA’’ ;
Etudiant.sexe :=‘’M’’;
Etudiant.numéro := 25;
Etudiant.moyenne := 14.25;
58
58
VI.2- Les Tableaux
✓ Définition
Un tableau est un vecteur ou un regroupement d’éléments
de même type.
✓ Déclaration
Nom_type_tableau = Tableau de[1..Max] de Nom_type ;
✓ Exemple
Fiche = Enregistrement
nom, prénom : Chaîne;
sexe : Caractère;
numéro : Entier non signé;
moyenne : Réel;
Fin Fiche
59
59
VI.2- Les Tableaux
✓ Exemple
Fiche = Enregistrement
nom, prénom : Chaîne;
sexe : Caractère;
numéro : Entier non signé;
moyenne : Réel;
Fin Fiche
0 1 2 3 4 5 6 …. Max
Liste_Etudiants
60
60
VI.2- Les Tableaux
➢ En Ecriture
Lire(A);
T[i] ←A;
➢ En Lecture
Ecrire(T[i]) ;
0 1 2 3 4 5 6 …. Max
T
61
61
VI.2- Les Tableaux
✓ Parcours d’un tableau
Var T: Tableau [1…Max] de Fiche;
➢ En Ecriture
Pour i ← 0 à Max Faire
Lire(T[i]. Nom);
Lire(T[i]. Prénom);
FinPour
➢ En Lecture
Pour i ← 0 à N Faire
Ecrire(T[i]. Nom) ;
Ecrire(T[i]. Prénom) ;
FinPour
0 1 2 3 4 5 6 …. Max
T
64
64
VI.3- Les Applications
Exercice 1:
- La désignation du produit
- La référence du produit
- Sa quantité en stock
Exercice 2:
Proposer une structure pouvant permettre la manipulation des nombres
complexes (Ensemble ℂ).
65
65
VI.3- Les Applications
Exercice 3:
Soit un tableau T de nombre de taille Max initialisé à 0. Proposer des
algorithmes qui permettent de :
Exercice 4:
Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite
saisir les valeurs par l’utilisateur.
66
66
VI.3- Les Applications
Exercice 5:
- un numéro (entier) ;
- un numéro de téléphone (10 caractères maximum) ;
67
67
PausoLogique
Question :
Qui suis-je?
68
68
Chapitre VII
Les types de données avancées
Les Fichiers et Les Pointeurs
69
69
VII.1- Les Fichiers
A-Définition
B-Accès à un fichier
C-Manipulation de fichiers
D-Exemple en Pascal
70
VII.1- Les Fichiers
A-Définition:
B-Accès à un fichier :
➢ accès séquentiel ;
o Dans le cas d'un fichier texte, cela signifie qu'on lit le fichier ligne
par ligne (enregistrement par enregistrement).
71
71
VII.1 : Les Fichiers
➢ accès direct;
C-Manipulation de fichiers :
Accès direct :
o Décaler(F, position, décalage) ;
position::= Début_fichier | Fin_fichier | Position_courante
73
73
VII.1- Les Fichiers
D-Exemple en Pascal: Ouverture et fermeture des fichiers
ASSIGN(F1,’CLIENT.DAT’) ;
REWRITE(F1) ; {création et ouverture du fichier F1 en
écriture}
………
{ initialisation du fichier avec READ/WRITE}
………
CLOSE(F1) ; {Fermeture du fichier}
RESET(F1); {Ouverture du fichier en lecture/écriture}
………
………
{Manipulation du fichier READ,WRITE,SEEK etc… }
………
………
CLOSE(F1) ; {fermeture du fichier}
74
74
VII.2: Les Pointeurs
1-Définition
2-Liste Linéaire
3-Déclaration
4-Primitives
5-Quelques Algorithmes
6-Listes doublement chainées
75
VII.2: Les Pointeurs
1-Définition:
Un pointeur est une variable dont la valeur est une adresse mémoire.
Un pointeur, noté P, pointe sur une variable dynamique notée P^.
Le type de base est le type de la variable pointée. Le type du
pointeur est l'ensemble des adresses des variables pointées du type
de base. Il est représenté par le symbole ^ suivi de l'identificateur du
type de base.
77
77
VII.2: Les Pointeurs
3-Déclaration :
Soit l’exemple ci-dessous basé sur la liste vue plus haut:
Type Cellule= Structure
Info : Chaîne;
Suivant : Liste;
Fin Structure;
Afin de développer des algorithmes sur les listes linéaires chainées, on construit une
machine abstraite avec les opérations suivantes :
• Allouer(P) : Allocation d’un espace de taille spécifiée par le type de P.
• Libérer(P) : Libération de l’espace pointé par P.
• Valeur(P) : Consultation du champ Valeur du maillon pointé par P.
• Suivant(P) : Consultation du champ Suivant du maillon pointé par P.
• Aff_Adr(P, Q) : Dans le champ Suivant du maillon pointé par P, on range
l’adresse Q.
• Aff_Val(P,Val) : Dans le champ Valeur du maillon pointé par P, on range la
valeur Val.
79
79
VII.2: Les Pointeurs
5-Quelques Algorithmes :
Déclarations des types pour la liste :
Type Liste = ^Element
Type Element = Structure
Info : chaîne de caractères;
Suivant : Liste;
Fin Structure
Algorithme CréationListe2Elements;
Var Tete, P : Liste
NombreElt : entier
DEBUT
Tete ← Nil; /* pour l'instant la liste est vide*/
Allouer(P) ; /* réserve un espace mémoire pour le premier élément */
Lire(P^.Info); /* stocke dans l'Info de l'élément pointé par P la valeur saisie */
P^.Suivant ← Nil; /* il n'y a pas d'élément suivant */
Tete ← P; /* le pointeur Tete pointe maintenant sur P */
/* Il faut maintenant ajouter le 2e élément, ce qui revient à insérer un élément en tête de liste */
Allouer(P); /* réserve un espace mémoire pour le second élément */
Lire(P^.Info); /* stocke dans l'Info de l'élément pointé par P la valeur saisie */
P^.Suivant ← Tete; /* élément inséré en tête de liste */
Tete ← P;
FIN
80
80
VII.2: Les Pointeurs
5-Quelques Algorithmes :
Algorithme CréationListeNombreConnu;
Var Tete, P : Liste;
NombreElt : entier;
Compteur : entier;
Debut
Lire(NombreElt);
Tete ←Nil;
Pour Compteur de 1 à NombreElt Faire
Allouer(P); /* réserve un espace mémoire pour l’élément à ajouter */
Lire(P^.Info); /* stocke dans l'Info de l'élément pointé par P la valeur saisie */
P^.Suivant ←Tete; /* élément inséré en tête de liste */
Tete ← P; /* le pointeur Tete pointe maintenant sur P */
Fin Pour
Fin
Exercices d’applications:
Proposer pour chaque point ci-dessous un algorithme qui :
1- Crée une liste chaînée contenant un nombre indéterminé d'éléments,
2- Affiche tous les éléments d’une liste,
3- Recherche un élément dans une liste,
4- Supprime un élément d’une liste
5- Insère un élément à une position donnée.
81
81
VII.2: Les Pointeurs
6-Listes Doublement chainées :
✓ Il existe aussi des liste chaînées, dites bidirectionnelles, qui peuvent être parcourues dans
les deux sens, du 1er élément au dernier et inversement.
Exercices d’applications:
Proposer pour chaque point ci-dessous un algorithme qui, pour une liste doublement chaînée :
1- Crée une liste contenant un nombre indéterminé d'éléments,
2- Affiche tous les éléments,
3- Recherche un élément dans une liste,
4- Supprime un élément d’une liste,
5- Insère un élément à une position donnée d’une liste.
82
82
PausoLogique
Question :
Qui suis-je?