Académique Documents
Professionnel Documents
Culture Documents
- Correct ;
- Efficace.
a. Les étapes d’élaboration d’un programme
Pour élaborer un programme informatique, il est conseillé de suivre les étapes suivantes :
1ière Etape : Délimitation du problème à résoudre
2ième étape : la rédaction de l’algorithme
Problème Algorithme
(Pseudo-Code)
(Pseudo-Code) (Langage)
Le programme que nous écrivons dans le langage informatique à l’aide d’un éditeur (une
sorte de traitement de texte spécialisé) est appelé programme source (ou code source).
Le seul « langage » que l’ordinateur puisse véritablement « comprendre » est donc très
éloigné de ce que nous utilisons nous-mêmes. C’est une longue suite de 0 et de 1 (les « bits »,
binary digit) traités par groupes de 8 (les « octets », byte), 16, 32, ou même 64.
Algorithmique
Algorithme
Programmation
Code source
1.1.4. L'algorithmique
L’algorithmique est la science des algorithmes.
L’algorithmique s’intéresse à l’art de construire des algorithmes ainsi qu’à caractériser leur
validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité.
• Validité d’un algorithme La validité d’un algorithme est son aptitude à réaliser exactement
la tâche pour laquelle il a été conçu.
• Robustesse d’un algorithme : La robustesse d’un algorithme est son aptitude à se protéger
de conditions anormales d’utilisation.
• Réutilisabilité d’un algorithme : La réutilisabilité d’un algorithme est son aptitude à être
réutilisé pour résoudre des tâches équivalentes à celles pour lesquelles il a été conçu.
• Complexité d’un algorithme : La complexité d’un algorithme est le nombre d’instructions
élémentaires à exécuter pour réaliser la tâche pour laquelle il a été conçu.
• Efficacité d’un algorithme : L’efficacité d’un algorithme est son aptitude à utiliser de
manière optimale les ressources du matériel qui l’exécute.
1.1.5. Notion sur Le compilateur, l’interpréteur et le code source
Votre ordinateur est une machine bizarre, c’est le moins que l’on puisse dire. On ne peut
s’adresser à lui qu’en lui envoyant des 0 et des 1. Ainsi, si je traduis "Fais le calcul 3 + 5" en
Langage informatique, ça pourrait donner quelque chose comme :
0010110110010011010011110.
Le code source : est tout simplement le code de votre programme écrit dans un langage évolué.
Le compilateur : est le programme qui se charge de traduire le programme de haut niveau en
langage compréhensible par l’ordinateur. Il existe un compilateur pour chaque langage de haut
niveau. Le compilateur, récupère les instructions écrites en langage de programmation et les
convertit en langage machine.
La Compilation Consiste à Traduire le Programme source (code source) en langage machine.
L’interpréteur : est le programme chargé de traduire les instructions au fur et à mesure qu’elles
se présentent. La façon d'écrire un programme est intimement liée au langage de programmation.
L’interprétation consiste à traduire chaque instruction du programme source, avant de l’exécuter,
à l’aide d’un programme nommé interpréteur.
Que l'on a choisi, car il en existe énormément. De plus, le compilateur devra Correspondre au
langage choisi : à chaque langage de programmation son compilateur. Le compilateur fait ensuite
appel à un éditeur de liens (en anglais linker ou binder) qui permet d'intégrer dans le fichier final
tous les éléments annexes (fonctions ou Librairies) auquel le programme fait référence mais qui
ne sont pas stockés dans le Fichier source.
Puis il crée un fichier exécutable qui contient tout ce dont il a besoin pour fonctionner de
façon autonome, (sous les systèmes d'exploitation Microsoft Windows ou MS-DOS le fichier ainsi
créé possède l'extension .exe)
Editeur de Liens
Compilateur
A
01010
Montant
01011
NB :
• Le nom d’une variable commence aussi impérativement par une lettre.
• Le nombre maximal de signes pour un nom de variable dépend du langage utilisé.
• Dans beaucoup de langage de programmation le caractère “_” est utilisé dans la déclaration
des variables, Même au début.
• La sensibilité à la casse Les langages demandent une syntaxe rigoureuse, on ne peut donc
pas écrire les Choses de la manière dont on le souhaite. Ainsi, certains langages sont case
sensitive (en français "sensibles à la casse"), Cela signifie qu'un nom ne comportant que
des minuscules ne sera pas considéré comme équivalent au même nom comprenant des
majuscules. Ainsi la variable nommée "Toto" sera une variable différente de la variable
"toto".
c) Les variables publiques et privées
Par défaut, une variable est déclarée au sein d’une procédure, d’une fonction, ou d’une
classe.
Si elle est créée avec cette procédure ou fonction ou classe et elle disparaît avec elle, elle ne
sera visible que dans la procédure ou fonction ou classe qui l’a fait naître et alors une telle variable
est dite par défaut Privées ou locales.
Mais à côté de cela, il est possible de créer des variables qui certes seront déclarées dans une
procédure ou fonction ou classe mais qui du moment où elles existent, seront communes à toutes
les procédures et fonctions de l’application. Alors de telles variables sont dites globales ou
publiques. Avec des telles variables, le problème de la transmission des valeurs d’une procédure
ou fonction à l’autre ne pose plus problème.
Exemples :
• Déclaration d’une variable privée x numérique
Variable x en numérique
• Déclaration d’une variable publique x numérique
Si une variable n’a pas encore de valeur elle est dite non définie. D’ailleurs au début de
l’exécution d’un programme, toutes les variables sont non définies.
Algorithme VariableNonDefini
Lorsque l’on cherche à exécuter l’instruction Z
Variables X, Y, Z en numériques
X+Y, la variable Y est encore non définie. Le calcul
Début
de Z est donc Impossible.
X 3
Z X+Y
Fin
Nombre1 1.2
Nombre2 10
Fin
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
13
Variables R en Caractères
Début
R "Kangela"
Fin
d) Type booléen
Dans la variable de type booléenne on y stocke uniquement les valeurs logiques VRAI ou
FAUX. On peut représenter ces notions de Vrai ou faux par (True ou False), par (1 ou 0), etc.
Ex : Algorithme de typeBoolean
Début
Bool1 10 > 9 (* Dans Bool1 on aura True*)
Affecter à A la valeur 5
A 5
NB :
Plus généralement, on pourra demander de ranger dans une variable le résultat d’un calcul (Cela
n’a de sens que pour des variables numérique).
A B+4
La valeur à placer dans une variable pourra également provenir d’une autre Affecter à A la
valeur B.
A B
2.2 La Syntaxe dans le langage de programmation
La syntaxe définit les règles d’écriture d’un langage de programmation informatique. Pour
spécifier quels sont les programmes syntaxiquement corrects, on utilise des grammaires qui
définissent les règles de formation de programmes. La vérification du fait qu’un programme est
syntaxiquement correct par Rapport à la grammaire partielle donnée plus haut peut être réalisée
par un programme appelé analyseur syntaxique.
2.3 Mots réservés
Dans la plupart des langages, il existe quelques mots que l'on ne peut pas attribuer aux noms
de variables, aux fonctions, Etc. on les appelle mots réservés. Exemple en C (int,void,char,….),
en C#(string,public,private,…..)
2.4 Les constantes
Les constantes sont des données dont la valeur ne peut être modifiée tout au long du
déroulement du programme. On les définit généralement en début de programme. La valeur que
la constante contient peut-être de tout type, suivant ce que le langage autorise.
Syntaxe :
Constante Nom _Constante = valeur
Exemples
Constante Pi =3,14
Constante B = 6
Constante Mois =” Mars”
2.5 Les commentaires
Les commentaires servent à clarifier un programme en donnant des explications. Ils
serviront si jamais une autre personne essaie de comprendre le fonctionnement du programme en
lisant le fichier source, ou bien à la personne qui l'a créé si jamais n’il relit le fichier source
quelques années après l'avoir écrit, Etc.
Il est généralement bon de pouvoir ajouter dans un programme des lignes de texte qui ne
seront pas prises en compte par le compilateur ou l'interpréteur. Ces lignes de textes sont
généralement précédées (ou encadrées) par des caractères spéciaux selon le langage de
programmation.
Dans les algorithmes de ce cours nos commentaires seront encadrés par (* *) Ex : (* Votre
commentaire *) la programmation
2 .6 2 instructions Composés
Les instructions composées sont la séquence, l'alternative et l'itération.
a) La séquence
Ex : x a et y b
x x+y
b) L'alternative
Syntaxe de l'alternative : Si expression logique alors instruction1 Sinon instruction2
Fin si
c) Itération
Syntaxe de l'itération : Tant que condition faire instructions
Fin tant que
2.7 Les Opérateurs
L’opérateur est le symbole qui définit le type d'opération à réaliser l’opérateur est le symbole
d’une opération logique ou mathématique. Il existe des opérateurs :
2.7.1 Opérateurs Arithmétiques
Signes Signification
+ L’addition
- La soustraction
* La multiplication
/ La division
^ Puissance
% Modulo
= L’égalité
≠ Différent
Et Et logique
Ou Ou logique
XOR Ou exclusif
Variables A, B, C, K en caractères
Début
A "Jean"
B "-"
C "Luc"
K A&B&C
Fin
NB :
EXEMPLES :
A+B*C A+ (B*C)
A*B+C %D (A*B)+(C %D)
-A /-B+C ((-A) / (-B))+C
2.8 La lecture et l’écriture (Pour communiquer avec votre programme)
Les instructions permettant au programme de communiquer des valeurs à l’utilisateur en les
affichant à l’écran sont appelées Ecriture. De manière analogue, Les instructions permettant de
fournir des valeurs au programme sont appelées Lecture.
Dès que le programme rencontre une instruction de lecture, l’exécution s’interrompt
attendant la frappe d’une valeur au clavier.
La lecture et l’écriture doivent être comprises du point de vue de la machine qui sera chargée
de les exécuter.
En Pseudo-code:
La lecture est formalisée comme suit :
Exemples :
1. Pour la lecture
Lire A
Signifie Prendre la valeur sur le périphérique et la ranger dans A
Lire x, y
Signifie prendre deux valeurs et les ranger dans x et y. dans cet ordre
2. Pour l’écriture
a) Ecrire A
Signifie Ecrire la valeur d’A sur le périphérique
b). Ecrire x, y
Signifie d'afficher les valeurs de x et y dans cet ordre.
c). Ecrire x
Exemple :
Dans le programme 2 on peut avoir chaque fois entre le nombre et obtenir le double sans
modifier le programme. Comme c’était le cas dans le programme 1.
Exercices d’applications
a) Algorithme AfficherJeanFabrice
Début
R "Jean"
X "Fabrice"
Ecrire R
Ecrire X
Fin
b) Algorithme AfficherKangela
Variables R, X en Caractères
Début
R "Kangela"
X R
Ecrire R
Ecrire X
Fin
b 4
b1 (10>10) ET (5=5)
A 5
B A+4
A A+1
B A- 4
FIN
Syntaxe
Si <Condition> alors
<Insrtuctions>
Finsi
Sous cette Forme conditionnelle, les instructions ne sont exécutées que si <Condition> est
Vérifiée.
Exemple ; Algorithme Affichagenulle
Variable A en entier
Début
Si A=0 alors
Finsi
Fin
Si au moment du Test, la valeur de A est Nulle, Alors l’instruction Ecrire ”La valeur de la
variable A est Nulle ” est exécuté Sinon elle est ignorée.
b) SI ... ALORS ...Sinon
Si<Condition > est vérifié, les instructions sont exécutées. Dans le cas contraire, donc si
<condition> n’est pas vérifiée, alors ce sont les <autres instructions> qui sont exécutées.
Par exemple,
Algorithme : Valeurs DistinctesetEgales
Variables a, b en numériques
DEBUT
ECRIRE ”Saisissez deux valeurs numériques. »
LIRE a, b
Si (a = b) alors
ECRIRE ”Vous avez saisi deux fois la même valeur, à savoir ”, a, ” et ”, b, ”.”
Sinon
d) Suivant cas
Suivant < variable > faire cas < valeur1 > <
Selon la valeur que prend la variable
instructions1 > cas < valeur2 > < instructions2 > <variable>, le bloc d’instructions à exécuter
2.9.2 Boucles
Une boucle permet d’exécuter plusieurs fois de suite une même séquence d’instructions. Cet
ensemble d’instructions s’appelle le corps de la boucle. Chaque exécution du corps d’une boucle
s’appelle une itération, ou encore un passage dans la boucle.
Il existe trois types de boucle :
– Tant que
– Pour
Chacune de ces boucles a ses avantages et ses inconvénients. Nous les passerons en revue
l’une après l’autre
a) Tant que
La syntaxe d’une boucle « Tant que » est la suivante.
tant que < condition >
Fintantque
La condition est évaluée avant chaque passage dans la boucle, à chaque fois qu’elle est
vérifié, on exécute les instructions de la boucle. Une fois que la condition n’est plus Vérifiée,
l’exécution se poursuit après le ‘fintantque ‘. Affichons par exemple tous les nombres de 1 à
5 dans l’ordre croissant.
Algorithme Affichage de Nombre 1 à 5 avec Tant que
Variable i en numérique
DEBUT
i ←1
tant que i≤ 5
ECRIRE i
i ←i + 1
fintantque
FIN
Cet algorithme initialise i à 1 et tant que la valeur de i n’excède pas 5, le contenu de cette
variable i est affichée. Puis incrémentée. Les instructions se trouvant dans le corps de la boucle
sont donc exécutées 5 fois de suite. La variable i s’appelle un compteur, on gère la boucle par
incrémentations successives de i et on sort de la boucle une fois que i a atteint une certaine valeur.
L’initialisation du compteur est très importante ! Si vous n’initialisez pas i explicitement, alors
cette variable contiendra n’importe quelle valeur et votre algorithme ne se comportera pas du tout
comme prévu.
NB :
Pour la boucle “Tant que”, avant d’entrer dans le corps de la boucle, il faut que la condition
soit vrai. Si dans l’exemple ci-dessus i était initialisé à 6 on n’allait pas entrer dans la boucle.
b) Répéter... jusqu’`a
Syntaxe
Répéter
– On exécute le corps de la boucle jusqu’à ce que la condition soit vérifiée, donc tant que la
condition est fausse. Reprenons l’exemple précédent avec une boucle Répéter ... Jusqu’à :
Pour < variable > allant de < premierevaleur > à < dernierevaleur > [par pas de
< pas >]
< instructions >
< Variable > Suivant
La boucle Pour fait varier la valeur du compteur <variable> entre <première valeur > et
<dernière Valeur>. Le <pas> est optionnel et permet de préciser la variation du compteur entre
chaque itération, le pas par défaut est 1 et correspond donc à une incrémentation. Toute boucle «
pour » peut être réécrite avec une boucle tant que. On réécrit de la façon suivante :
< Variable > ←< premierevaleur >
Tant que < variable > <> < dernierevaleur > + < pas >
< Instructions >
< Variable > < variable > + < pas >
Fintantque
La boucle pour initialise le compteur <variable> à la <première valeur>, et tant que la
dernière valeur n’a pas été atteinte, les <instructions> sont exécutées et le compteur incrémenté
de <pas> si le pas est positif, de -<pas> si le pas est négatif.
Algorithme : 1 à 5 avec pour variables i en numérique
Pour i allant de 1 à 5
ECRIRE i
i Suivant
FIN
Observez les similitudes entre cet algorithme et la version utilisant la boucle tant que. Notez
bien que l’on utilise une boucle pour quand on sait en rentrant dans la boucle combien d’itérations
devront être faites. Par exemple, n’utilisez pas une boucle pour contrôler une saisie !
Remarques
Les conditions de choix sont de deux sortes :
- Les conditions simples
Les conditions simples consistent en la comparaison de deux expressions de même type
L’expression est une combinaison des lettres, de chiffres et d’opérateurs
Exemple d’expression
1. A > B
2. Opérateur = "+ "
3. D>0
- Les conditions complexes
Les conditions formées de plusieurs conditions simples reliées entre elles par les opérateurs
logiques. «ET » et/ou « OU »
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
29
1. a<0 et b<0
2. a<0 ou b<0
L’usage des parenthèses permet de régler d’éventuels problèmes de priorité (a<0 et b>1)
ou (a>0 et b>3) est vrai si au moins l’une de condition est vrai.
Les Boucles Imbriqués (Une Boucle contient d’autres boucles)
Il n’y a qu’un bloc d’instructions à répéter lors d’une boucle. Mais le bloc peut être lui-même
composé d’une ou plusieurs boucles. On parle alors des boucles imbriques Syntaxe pour deux
boucles POUR imbriqués
<Instructions1>
…….
10 X 5=50
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
30
Résolution
Variables i, j en Entier Pour i allant de 1 à 9
Pour j allant de 1 à 10
Ecrire i, «X », j,"= «, i*j j suivant i suivant
Fin
NB : C’est le problème posé qui doit guider le programmeur à l’utilisation des boucles
imbriquées.
2.10 Les sous-programmes (Les Fonctions et Procédures)
Les fonctions et procédures permettent de découper un programme complexe en une série
de sous-programmes plus simples, lesquels peuvent être décomposés en fragments plus petits,
ainsi de suite.
Il est souvent nécessaire, pour éviter d'écrire plusieurs fois le même code, de préparer des
blocs de code prêts à l'emploi. Pour que les fonctions et procédures soient facilement réutilisables
on utilise des paramètres. Les valeurs de ces paramètres sont spécifiées au moment de l’appel.
NB :
Pour que le code soit facilement réutilisable, les valeurs qui sont manipulées par les
procédures et fonctions peuvent être passées en paramètres au moment de l’appel de la
procédure ou de la fonction.
Ex1 : Créer l’algorithme d’un programme affichant un message passé en paramètre en utilisant
une procédure.
Procédure AfficherBonjour ( msg en caractère)
Ecrire msg
Fin Procédure
Ex2 : Algorithme d’affichage des valeurs passées en paramètres en utilisant une Procédure
Procédure Afficher_les_valeurs (nbr1 en entier, nbr2 en entier)
Ecrire "Parametre1=", nbr1, "et Parametre2=",nbr2
Fin Procédure
b) L’appel de la procédure
On appelle une procédure que par son nom
Par exemple : l’appel de la procédure de l’exemple1
Début
AfficherBonjour (“Jean”)
Fin
Résultat : Jean
c) Passages de paramètres
Les variables du programme appelant ne sont pas lisibles depuis un sous-programme. Mais
si une procédure, pour s'exécuter, a besoin de la valeur d'une variable définie dans le programme
appelant, on utilise pour la lui communiquer un mécanisme dit "passage de paramètres"
Procédure affiche_Variable(monentier1 en Numerique , monentier1 en numerique)
Ecrire "Les valeurs des entiers passés en paramètre sont :", monEntier1, monEntier2
Fin procédure
Ex : écrire l’algorithme d’une Procédure qui va calculer le produit deux nombres et l’affiché en
messages, lors de son appel. Les deux nombres seront passés en paramètres de la Procédure.
Procédure AfficherProduit (Nbr1 en numérique, Nbr2 en numérique)
b) Exemples :
Ex1 : Fonction avec Paramètres
Fonction successeur (Variable x en Numérique) en Numérique
Renvoyer (x + 1)
Fin fonction
Cette fonction "fabrique" le x + 1. On dit que cette fonction renvoie (ou retourne) x + 1.
Une fois la fonction appelée, on remplace successeur(x) par le résultat retourné par la
fonction.
Ex2 : Fonction Sans Paramètres
Fonction Somme () en Numérique
Variables Nbr1, Nbr2 en numérique
Ecrire "Entrer le Premier nombre"
Lire Nbr1
Ecrire "Entrer le second nombre"
Lire Nbr2
Renvoyer (Nbr2 +Nbr1)
Fin fonction
c) Appel de la fonction
Comme Pour la procédure, l’appel de la fonction s’effectue par son nom
Exemple : Appelons La fonction successeur dans la Principale
Variable nombre en numérique
Début
Ecrire ” Entrer le nombre dont vous cherchez le successeur :”
LIRE nombre
Ecrire " Le successeur de :", nombre, " est" , successeur(nombre)
Fin
NB : Certains traitements ne peuvent être effectué par un algorithme, aussi savant soit-il. D’autres
ne peuvent l’être qu’au prix de souffrance. Dans ce cas il faut utiliser les fonctions prédéfinies
Fournies par le langage de programmation.
En C(sin,cos,sqrt,acos,asin,tan,pow,…..) en Vba(len,right,left,mid, mod,etc) Ex ;
• Sqrt(2) la racine carré de 2 en C sachant que Sqrt se trouve dans math.h
• Mid(chaine ,1,2) : dans la variable chaîne à partir de la 1ierePosition prendre 2 caractères.
Mid est une fonction prédéfini dans VBA.
• SUBSTRING(sexe,1,1)
• Etc
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
34
NB :
• Une fonction peut Prendre en paramètre un Type donné et retourné un autre type
différent de celui entré en paramètre.
• Il existe des fonctions prédéfinies par langages de programmation qui font des taches
bien spécifiques
2.11 La Structures des données
2.11.1 Les tableaux
Un ensemble des valeurs portant le même nom de variable, ayant le même type et repérer
par un nombre (indice) est appelé Tableau. Un tableau est un ensemble fini d’éléments de même
type, stockés en mémoire à des adresses contiguës.
Attention :
Les Indices des tableaux commencent généralement par 0 et non par 1 dans la plupart de
langage de programmation.
Supposons que nous avons besoin dans un programme pour conserver les notes de 20 élèves
; Nous pouvions Toujours utiliser une variable qui prend successivement la valeur de notes.
Si donc, Il est nécessaire de disposer simultanément de ces valeurs, nous pouvons toujours
utiliser 20 variables différentes nommées par exemple :
NoteA NoteB NoteC NoteD NoteC Etc.
Cette information lui permet de réserver l’espace mémoire correspondant. D’autres part, il
faut préciser quel est le type du tableau, Autrement dit le type de tous ses éléments.
a) La déclaration d’un tableau à une dimension
Syntaxe
Note (1) Note (2) …….. Note (10) désignent les éléments du tableau s’appellent
souvent des variables indicés.
Début
Tab(1) 1
Tab(2) 2
Tab(3) 3
Tab(4) 4
Tab(5) 5
Fin
Son exécution place les éléments dans les 5 éléments du tableau tab les valeurs
1 2 3 4 5
Variable i entier
Tableau tab (5) en numérique
Début
Tab(1) 1
Tab(2) 2
Pour i allant de 3 à 8
Tab(i) Tab(i-1)+Tab(i-2)
i suivant
Pour i allant de 1 à 8
Ecrire Tab(i) i suivant
Fin
2.
Variable i entier
Tableau nombre (5) en numérique
Début
Nombre (1) 1
Pour i allant de 2 à 6
Nombre (i) Tab (i-1) +2
i suivant
Pour i allant de 1 à 6
Ecrire Nombre (i) i suivant
Fin
2.11.1.2. Les tableaux à deux dimensions
Le tableau à deux dimensions (à « deux indices ») : il est plus proche que le précédent de
l’idée usuelle que l’on se fait du mot « tableau », à savoir un ensemble de lignes et de colonnes ;
cette fois, chaque valeur du tableau est repérée par deux indices.
Etudiant
Jean 12 13 12 Note(0,2)
René 13 23 5
Patient 9 3 12 Note(0,0)
René 13 14 12
Dans la plus part des langages, il est possible de placer ces différentes valeurs dans un
tableau à deux dimensions.
Note (1,1), Note (0,1) sont des variables indicées. Dans certains langages de programmation
les parenthèses sont remplacées par des crochets (Comme le C, C#, etc).
Chaque note est alors repérée par deux indices qui représente sa position. La 1iere indice
sert à repérer la ligne et le second indice repère la colonne.
a) Déclaration d’un tableau à deux dimensions
Un Tableau doit être déclaré en précisant le nombre et le type de valeurs qu’il contiendra
(La déclaration des tableaux varie d’un langage à un autre).
Syntaxe
Note(0,2) 8
Note(1,0) 19
Note(1,1) 10
Note(1,2) 10
Note(2,0) 19
Note(2,1) 10
Note(2,2) 10
Fin
Ex2 : Affectation avec Boucle
Soit le programme suivant’
Tableau Note(2,3) en numérique
Début
Note(1,1) 10
Note(1,2) 10
Note(1,3) 10
Note(2 ,1) 10
Note(2,2) 10
Note(2,3) 10
Fin
Ce programme peut se transformer de cette façon en utilisant la Boucle "pour"
Tableau Note(2,3) en numérique
Variable i ,j en entier
Début
Pour i allant 1 à 2
Pour j allant 1 à 3 Note(i,j) 10 j suivant i suivant
Fin
Algorithme
Fin
NB :
0x3fffd11
0x3fffd12
0x3fffd13
0x3fffd14
0x3fffd15
Déclarer une variable, c'est attribuer un nom (l'identificateur) à une zone de la Mémoire
centrale. Cette zone est définie par :
- Sa position c'est-à-dire l’adresse de son premier octet
- Sa taille c'est-à-dire le nombre d’octets
Int toto=18;
0x3fffd12
0x3fffd13
0x3fffd14
18
L'adresse contenue dans un pointeur est celle d'une variable qu'on appelle variable pointée.
On dit que le pointeur pointe sur la variable dont il contient l'adresse.
Un pointeur est associé à un type de variable sur lequel il peut pointer. Par exemple,
un pointeur sur entier ne peut pointer que sur des variables entières.
NB. :
- Un pointeur est lui-même une variable et à ce titre il possède une adresse.
- Il convient de ne pas confondre l'adresse de la variable pointeur et l'adresse Contenue dans
le pointeur (adresse de la variable pointée).
Toute variable manipulée dans un programme est stockée quelque part en mémoire
Centrale. Cette mémoire est constituée d’octets qui sont identifiés de Manière univoque par un
numéro qu’on appelle adresse.
P
P^
A
P^.Suivant
Permet d’accéder à l’élément suivant dans une Liste.
• Il est souvent nécessaire de distinguer si un pointeur désigne une variable ou n’en indique
aucun. Nous nous conviendrons de particulariser une valeur de type pointeur, nous appellerons
nil (Valeur d’adresse Nil).
• Si P1 et P2 sont des pointeurs
Si P1 pointe sur une Variable v de type T et on veut que p2 pointe sur la même variable v
de type T. on peut utiliser cette Notation.
P2 P1
P nil
Si P ne contient pas de valeur nil on écrit
P ≠ nil
• désallouer P : Cette instruction n’efface pas le pointeur mais la variable pointée.
NB :
Si le Pointeur est de type T, il ne pointera que sur les variables de type T.
2.12 Les enregistrements
a) Définition et Notion
Un enregistrement est une collection d’informations, structurée en unités d’accès appelés
Articles (Ou enregistrements).
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.
Les objets que nous avons déjà décrits jusqu’ici n’ont qu’une durée brève : Leur existence
se limite à la période d’exécution du programme. Pourtant il y a de très nombreuse application
pour lesquelles les informations traitées doivent être conservés bien au-delà de la durée
d’exécution du programme de traitement.
La notion de fichier est conçue pour répondre aux impératifs :
• Stockage permanent de l’information ;
• Rassemblement d’un volume d’informations pouvant être fractionnées pour le traitement.
Un fichier est toujours enregistré sur un support externe à la mémoire centrale et tout
programme de traitement échangera des informations avec le fichier, l’unité d’accès étant l’article
: on lira le fichier article par article. On l’écrira article par article.
1. Déclaration
Dans un programme, un fichier est désigné par une variable, qu'on déclare dans la section
des variable (C'est une variable particulière qui ne représente pas un espace de la mémoire mais
qui représente un espace dans un périphérique de stockage).
Pour déclarer un fichier séquentiel structuré, il faut indiquer le type des articles
(enregistrements) qui composent ce fichier. Le plus souvent les articles sont de type
enregistrement, déclaré au préalable.
Enumerated signifie que toutes les valeurs sont énumérées (c’est-à-dire comptées une à une).
Dans cette approche données et procédures sont traitées indépendamment les unes
des autres sans tenir Compte des relations étroites qui les unissent. Les fonctions,
procédures et autres suites d’instructions accèdent à une zone où sont stockées les données.
Il y a donc une dissociation entre les données et les fonctions ce qui pose des difficultés
lorsque l’on désire changer les structures de données. Dans les langages procéduraux, les
procédures s’appellent entre elles et peuvent donc agir sur les mêmes données provoquant
ainsi des effets de bord.
De ces problèmes sont issus une autre manière de programmer : la programmation
par objet.
En approche objet, l’évolution des besoins aura le plus souvent tendance à se
présenter comme un changement de l’interaction des objets. S’il faut apporter une
modification aux données, seul l’objet Incriminé (encapsulant cette donnée) sera modifié.
Toutes les fonctions à modifier sont bien identifiées : elles se trouvent dans ce même objet
: ce sont ses méthodes.
Dans une approche structurée, l’évolution des besoins entraîne souvent une
dégénérescence, ou une profonde remise en question, car la décomposition des unités de
traitements (du programme principal aux sous fonctions) est directement dictée par ces
besoins.
D’autre part, une modification des données entraîne généralement une modification
d’un nombre important de fonctions éparpillées et difficiles à identifier dans la hiérarchie
de cette décomposition.
3. 1. Les Classes
a) Notion
Une classe définit la structure des données particulières ainsi que les données
permettant de la manipuler.
Une classe peut être considérée comme un moule à partir duquel on peut créer des
objets. Une classe décrit la structure interne d'un objet : les données qu'il regroupe, les
actions qu'il est capable d'assurer sur ses données. A partir d’une classe, sont Engendrés
les objets réels qui s’appellent des instances de la classe considérée.
Une classe est un ensemble d’objets qui ont en commun :
- Les mêmes méthodes
- Les mêmes types d’attributs
Contenue de la Classe
b.1 Une classe contient :
• Des attributs (ou champs, ou variables d’instances).
L'attribut est definit comme etant la variable interne à la classe.
Les attributs de la classe décrivent la structure de ses instances (les objets).
• Des méthodes (ou opérations de la classe).
Une méthode est définie comme une fonction ou une procédure associée à une
classe.
Les méthodes décrivent les opérations qui sont applicables aux instances de la classe.
Les attributs et les méthodes d'une classe sont des membres de la classe.
NB:
Un attribut ou une méthode sont dits privés si leur utilisation est interdite en dehors
de la classe. Le signe caractérisant le caractère privé d'un attribut est le signe
moins"-" dans le Diagramme de classe.
Un attribut ou une méthode sont dits publics si leur utilisation est autorisée en
dehors de la classe. Le signe caractérisant le caractère privé d'un attribut est le
signe plus"+" dans le Diagramme de classe.
En POO, programmer revient donc à décrire des classes d’objets, à caractériser leur
structure et leur comportement, puis à instancier ces classes pour créer des objets réels.
Un objet réel est matérialisé dans l’ordinateur par une zone de mémoire que les données
et son code occupent.
NB: Il sera possible d'écrire les instructions à l'extérieur de la déclaration de la classe, en précisant
évidement le nom de la classe.
d) Visibilité de la Classe
• Public : La classe pourra être utilisée dans tout votre projet.
• private : La classe ne peut être utilisée que dans le module dans lequel elle est
définie
• protected : La classe ne peut être utilisé dans la sous-classe de celle de laquelle
elle est définie.
NB : Les termes Classe et Objet sont souvent confondus mais il s’agit, en fait d’éléments
distincts. Une classe représente la structure d’un élément alors que l’objet est un
exemplaire créé sur le modèle de cette structure.
Algorithme Deux-Variables-Pour-Une-date
Variables : d1,d2: Date
début
d1 new date(23,4,2003) d2
d1
Fin
3.4 l’héritage
La notion d’héritage est une relation entre différentes classes permettant de définir
une nouvelle classe en se basant sur les classes existantes. On parle d’héritage simple
lorsqu’une classe fille ne possède qu’une classe mère. On parle d’héritage multiple
lorsqu’une classe fille possède plusieurs classes filles.
L’héritage est un mécanisme de transmission des propriétés d’une classe (ses
attributs et méthodes) vers une sous-classe.
NB:
L'Héritage, ou la Notion de Généralisation, précise pour deux classes que l'une est
spécialisé de l’autre : elle possède l'ensemble des attributs et des méthodes de la
première plus les siens propres.
Classe mère ou super Classe ou Classe parent ou classe de Base
Une Classe mère appelé aussi super classe est la classe qui léguera l'ensemble de
ses propretés par héritage
Classe Fille Ou sous classe ou Classe dérivée
Les méthodes et les attributs privés des classes de base sont aussi hérités par les
classes dérivées mais inaccessibles.
Une classe fille appelé aussi sous-classe est une nouvelle classe ayant acquis par définition
de l'héritage tous les attributs et toutes les méthodes de la classe mère. Les classes filles
"Spécialisent" la classe mère.
L'Opérateur super
L'opérateur super permet d'accéder depuis la classe fille aux attributs et aux
méthodes(non Privés) de la classe mère.
Le Protégé
Une nouvelle visibilité apparait avec l'héritage. L’Attribut et la méthode protégés
sont publics pour les classes filles (qui pourra donc les utiliser directement), et privés pour
les autres classes et algorithmes.
Les méthodes et les attributs protégés seront précédés par le symbole #
Une Classe abstraite
Une classe abstraite ne peut pas être instancié. Elle est conçue dans le but de
construire un ou des héritages.
Structure de Création de la classe Abstraite :
classe abstraite Nom_Classe
Début
Fin
Exemples : Soit la Classe Etudiant ayant comme champ (coteMath) héritant de la classe
personne ayant comme champs(nom,prenom,age)
NB :
• Il est recommandé au programmeur d'une classe de cacher le nom et la nature des
attributs de celle-ci. Néanmoins, il est fréquent de devoir fournir aux utilisateurs
des méthodes simples pour accéder à ces attributs (Enlecture ou en modification) .
Les accesseurs sont les méthodes les plus simples permettant d'accéder aux attributs
de l'extérieur de la classe. Les accesseurs, S'ils sont disponibles pour une classe
constituent un moyen de récupérer la valeur d'un attribut ou de la changer.
• Un Accesseur En lecture est une méthode permettant de connaitre la valeur d'un
attribut
• Un Accesseur En Ecriture est une méthode permettant de modifier la valeur d'un
attribut en lui passant la nouvelle valeur en paramètre.
En programmation Orientée Objet, Les méthodes getNom,getPrenom et getAge sont
dites des « Accesseurs en lecture» et les méthodes setNom, setPrenom et setAge sont
dites des « Accesseurs en Ecriture».
3.5 Le Polymorphisme
Le polymorphisme Permet, Grace à l’héritage d’utiliser une instance de classe sous
deux aspects : celui de sa classe associée et celui de sa classe mère.
Exemple :
Un étudiant est une personne, avec des spécificités mais avant tout c’est une
personne. Une instance de la classe Etudiant peut être utilisée comme simple personne
(c’est le polymorphisme).
Algorithme Utilisation_polymorphisme
Début
P1 new personne()
E1 new Etudiant ()
P1 E1
Fin
Autres Notion associée au de polymorphisme (Surcharge et redéfinition des
méthodes)
• Surcharge des Méthodes
La surcharge est la capacité des objets d’une même hiérarchie de classes à répondre
différemment à une méthode de même nom, mais avec des paramètres différents.
En fonction du type et de nombre de paramètres lors de l’appel, la méthode correspondante
sera choisie.
Le mécanisme de surcharge permet de réutiliser le nom d’une méthode déjà définie, pour une
autre méthode qui en différera par ses paramètres.
La méthode surchargée doit conserver la même “intention sémantique”
La surcharge peut se faire sur une méthode définie localement ou héritée.
La classe addition est une méthode surchargée, après l’appel de la méthode Addition,
l’exécution se fera selon qu’on lui a assignée ou non des paramètres
• La Redéfinition des Méthodes
Le polymorphisme est un mécanisme qui permet à une sous classe de redéfinir une méthode
dont elle a hérité tout en gardant la même signature () de la méthode.
La substitution permet de redéfinir des méthodes ou des propriétés héritées d'une classe de
base. Les méthodes substituées peuvent accepter le nombre de paramètre et le type de paramètre
que la méthode ou propriété de la classe.
Exemple
Exemple:
classe Personne
Debut
Ecrire Nom
Ecrire Age
Ecrire Prenom Fin
classe Etudiant Speciale classe Personne
Debut super.Afficher() Fin ou alors
classe Etudiant Speciale classe Personne
Debut
Afficher() Debut super.Afficher() Fin
Fin
3.6 L’encapsulation
L'encapsulation est la capacité permettant de créer et de contrôler l'accès à un groupe
d'éléments. Les classes fournissent les moyens les plus fiable d'assurer l'encapsulation.
L'encapsulation permet de regrouper des informations et les codes les manipulant dans une classe.
L’encapsulation consiste à masquer les détails d’implémentation d’un objet, en définissant
une interface. L’interface est la vue externe d’un objet, elle définit les services accessibles (offerts)
aux utilisateurs de l’objet. L’encapsulation facilite l’évolution d’une application car elle stabilise
l’utilisation des objets : on peut modifier l’implémentation des attributs d’un objet sans modifier
son interface, et donc la façon dont l’objet est utilisé. L’encapsulation garantit l’intégrité des
données, car elle permet d’interdire, ou de restreindre, l’accès direct aux attributs des objets.
Les avantages de l’encapsulation sont :
- Simplification de l’utilisation des objets,
- Meilleure robustesse du programme,
- Simplification de la maintenance globale de l’application.
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
57
NB : Une règle fondamentale de l'encapsulation stipule que les données d'une classe ne doivent
être manipulées que par des méthodes ou les procédures de propriétés. Cette technique est souvent
appelée dissimulation des données. Elle assure la sécurité de fonctionnement de votre code en
masquant les détails internes de la classe et évitant ainsi qu'ils ne soient utilisés de manière
inappropriée.
3.7 Autres Concepts en Programmation Orienté objets
Signature
La signature d’une méthode représente la précision de son nom, du type de ses arguments et
du type de donnée retournée.
• Message
Un message est une demande d’activation d’une méthode envoyé à un objet.
• Méthodes
Une méthode est une fonction ou procédure liée à un objet qui est déclenchée à la réception
d’un message particulier : la méthode déclenchée correspond strictement au message reçu. La liste
des méthodes définies au sein d’un objet constitue l’interface de l’objet pour l’utilisateur : ce sont
les messages que l’objet peut comprendre si on les lui envoie et dont la réception déclenche les
méthodes correspondantes.
Le destructeur
Les destructeurs sont d’autres méthodes particulières d’une classe. Comme les constructeurs,
ils sont appelés implicitement mais uniquement lors de la destruction d’une instance de classe. La
signature du destructeur est imposée.
EXERCICES
1. En procédant comme ci-dessus, dites quelles seront les valeurs des variables a, b et c, après
l’exécution de chacune des instructions :
a 5
b 3
c a+b
d a
e 2c b-a
2. Qu’obtiendra-t-on dans les variables a et b, après exécution des instructions suivantes (dans
cet ordre) ? a ← 5 b ← a + 4 a ← a + 1 b ← a - 4
3.
a) Qu’obtiendra-t-on dans les variables n1 et n2 après exécution des instructions ?
n1← 5 n2 ← 7 n1 ← n2 n2 ← n1
b) Même question avec les instructions : n1 ← 5 n2 ← 7 n2 ← n1 n1 ← n2
4. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Algorithme Affectation1
Variables A, B en Entier
Début
A ←1
B ←A+3
A ← 3 Fin
5. Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes
?
Algorithme Affectation1
Variables A, B, C en Entier
Début
A ←5
B ←3
C ←A+B
A←2
C ← B – A Fin
6. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Algorithme Affectation3
Variables A, B en Entier
Début
A ←5
B ←A+4
A ←A+1
B ←A–4
Fin
7. Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes
?
Algorithme Affectation4
Variables A, B, C en Entier
Début
A ←3
B ← 10
C ←A+B
B←A+B
A ← C Fin
8. Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Algorithme Affectation4
Variables A, B en Entier
Début
A ←5
B ←2
A ←B
B ←A
Fin
14. Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA,
et qui fournit le prix total, le Tva sera inclus dans le total à payer. Faire en sorte que des
libellés apparaissent clairement.
15. 14.Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce
nombre est positif ou négatif (on laisse de côté le cas où le nombre vaut zéro).
16. Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur
produit est négatif ou positif (on laisse de côté le cas où le produit est nul). Attention
toutefois : on ne doit pas calculer le produit des deux nombres.
17. Ecrire un algorithme qui demande un nombre à l’utilisateur, et l’informe ensuite si ce
nombre est positif ou négatif (on inclut cette fois le traitement du cas où le nombre vaut
zéro).
18. Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de
sa catégorie :
• "Poussin" de 6 à 7 ans
• "Pupille" de 8 à 9 ans
• "Minime" de 10 à 11 ans
• "Cadet" supérieur à 12 ans
Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?
19. Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la
réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : «
Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.
20. Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7)
: Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21
…
7 x 10 = 70
21. Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers
jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
22. Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dit
ensuite quel était le plus grand parmi ces 20 nombres :
Entrez le nombre numéro 1 : 12 Entrez le nombre numéro 2 : 14 etc.
Entrez le nombre numéro 20 : 6
Le plus grand de ces nombres est : 14
23. Ecrire un algorithme qui déclare et remplisse un tableau de 7 valeurs numériques en les
mettant toutes à zéro.
24. Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs
par l’utilisateur.
25. Que produit l’algorithme suivant ?
Algorithme Tableau1
Tableau Nb(5) en Entier
Variable i en Entier
Début
Pour i ← 1 à 5
Nb(i) ← i * i
i suivant
Pour i ← 1 à 5
Ecrire Nb(i)
i suivant Fin
26. Que produit l’algorithme suivant ?
Algorithme Tableau2
Tableau N(6) en Entier Variables i, k en Entier
Début
N(1) ← 1
Pour k ← 1 à 6
N(k) ← N(k-1) + 2
k Suivant Pour i ← 1 à 6
Ecrire N(i)
i suivant
Fin
Peut-on simplifier cet algorithme avec le même résultat ?
27. Que produit l’algorithme suivant ?
Algorithme Tableau3
Tableau Suite(7) en Entier
Variable i en Entier
Début
Suite(1) ← 1
Suite(1) ← 1
Pour i ← 2 à 7
Suite(i) ← Suite(i-1) + Suite(i-2)
i suivant Pour i ←1 à 7
Ecrire Suite(i) i suivant Fin
30. Ecrivez un algorithme qui permette la saisie d’un nombre quelconque de valeurs, qui
devront être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le
nombre de valeurs qu’il compte saisir. Toutes les valeurs doivent être ensuite augmentées
de 1, et le nouveau tableau sera affiché à l’écran.
31. Ecrivez un algorithme permettant, toujours sur le même principe, à l’utilisateur de saisir
un nombre déterminé de valeurs. Le programme, une fois la saisie terminée, renvoie la plus
grande valeur en précisant quelle position elle occupe dans le tableau. On prendra soin
d’effectuer la saisie dans un premier temps, et la recherche de la plus grande valeur du
tableau dans un second temps.
32. Quel résultat produira cet algorithme ?
Algorithme Tableau6
Tableau X(2, 3) en Entier
Variables i, j, val en Entier
Début
Val ← 1
Pour i ← 1 à 2
Pour j ← 1 à 3
X(i, j) ← Val
Val ← Val + 1 j Suivant i Suivant
Pour i ← 1 à 2
Pour j ← 1 à 3
Ecrire X(i, j)
j Suivant i Suivant Fin
Algorithme Tableau7
Tableau X(2, 3) en Entier
Variables i, j, val en Entier
Début
Val ← 1
Pour i ← 1 à 2
Pour j ← 1 à 3
X(i, j) ← Val
Val ← Val + 1 j Suivant i Suivant Pour j ← 1 à 3
Pour i ← 1à 2 Ecrire X(i, j) i Suivant j Suivant
Fin
34. Quel résultat produira cet algorithme ?
Algorithme Tableau9
Tableau T(4, 2) en Entier
Variables k, m, en Entier
Début
Pour k ← 1 à 4
Pour m ← 1 à 2
T(k, m) ← k + m m Suivant k Suivant
Pour k ← 1 à 4
Pour m ← 1 à 2
Ecrire T(k, m) m Suivant k Suivant
Fin
35. Quel résultat peut fournir chacun de ces algorithmes?
a) Algorithme pour
Variable X, Y en entiers
Début
Pour X allant de 1 à 3
Pour Y allant de 1 à 3
Ecrire X+1*Y
Y suivant
X suivant
Fin
b) Algorithme répéter Variable X en entier
Début
X 90
Répéter
Ecrire X
X X+1
Jusqu’à(X>10)
Fin
Variable X en entier
Début
X 2
Tant que (X<=10)
Si (X %2=1) alors
Ecrire X
Fin SI
X X+1
Fin tant que
Fin
d) Algorithme multiplication
Variable X, Y en entiers
Début
Pour X allant de 1 à 3
Pour Y allant de 1 à 4
Ecrire X-Y
Y suivant
X suivant
Fin
36. Créer l’algorithme d’un programme Calculant et affichant la somme S, de deux matrices A
et B.
Sachant qu’A et B sont des matrices à 3 Lignes et à 3 colonnes, et les éléments des matrices
A et B sont préalablement saisis par l’utilisateur.
Exemple : A
NB : l’algorithme ne va qu’afficher
37. Écrire l’algorithme d’une fonction qui calcule et retourne le volume d’une sphère.
Sachant que le rayon R sera entré en paramètre. Étant donné que le volume d’une sphère
est donné par V = 4 R
38. Créer L’algorithme d’un programme affichant la somme de nombres entiers pairs se
trouvent dans l’intervalle
39. Créer L’algorithme d’un programme affichant la somme de nombres entiers impairs se
trouvent dans l’intervalle
40. Pour un Capital C, placé au taux périodique T, Pendant n périodes, l’intérêt I s’écrit :
I= C * T * N
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
65
42. Écrire une fonction nommée est Voyelle examinant si un caractère fourni en paramètre est
une voyelle et fournissant un résultat de type booléen. Écrire un petit programme l’utilisant.
43.
a Déclarez une variable enregistrement pour représenter la fiche d'un étudiant sachant
qu'elle contient les informations suivantes : Nom, Prénom, sexe (F ou G), date de
naissance et la moyenne au baccalauréat.
b Affectez respectivement les valeurs suivantes à cette variable : "Kéfi", "Nour", "F",
"27/11/1983" et 13.25
c Ecrivez les instructions permettant de saisir à partir du clavier les champs de la variable
enregistrement Etudiant.
44. Soit la structure Personne constituée par :
– Un nom
– Un numéro fiscal (entier)
Par Ir. Héritier Kangela G2 INFO Algorithme et Méthode de programmation
66
46. Soit la structure Info constituée par le nom, le numéro de téléphone, le numéro de carte
bancaire. Ecrivez un programme qui saisit puis affiche les enregistrements pour 3
personnes.
47. Le chef de département informatique veut automatiser la cotation de 6 cours dans son
institution supérieure, sachant que les points maximums de ces cours sont :
1. L’algorithme /100 pts
2. La programmation orientée objet /120 pts
3. La Méthodologie d’Analyse Informatique / 80 pts
4. La pédagogie comparée /80 pts
5. Le système d’exploitation /120 pts
6. Le langage java /100 pts
Un étudiant qui a au moins 55 % a réussi avec la Mention :
1. Global ....................................................................................................................................II
2. Spécifiques ............................................................................................................................II
BIBLIOGRAPHIE : .....................................................................................................................................III
1.1.3. Un algorithme..........................................................................................................................6
EXERCICES .................................................................................................................................................. 58