Vous êtes sur la page 1sur 34

Cours Atelier de

programmation
Enseignant : Maha Maalej

Année Universitaire: 2020/2021 Groupe : LEM-A1


Introduction
Terminologie
• L’informatique: c’est l’ensemble des sciences qui étudient le traitement
automatique de l’information
• L’ordinateur : c’est une machine qui permet l’automatisation du traitement de
l’information
• La programmation : c’est un moyen qui permet l’automatisation de
l’information. Elle regroupe l’ensemble des activités permettant la conception, la
création et la mise en œuvre de programme informatique
• Programme : c’est l’ensemble des opérations et des instructions que la machine
doit exécuter pour arriver à un résultat pour un problème donné
• Langage de programmation : est un langage qui permet de formuler des
algorithmes et de produire des programmes informatiques.
2020/2021 Cours Initiation à la programmation 2
1. Historique des langages de programmation

1ère génération : 2ème génération : 3ème génération: 4ème génération:


1010110010011101100 • add x,y : • x:=x+y; en • Les langages
Assembleur Pascal orientés vers les
Addition x y • x+=y; en Basic requêtes des bases
• Cobol, Fortran de données
moyennant des
• Le langage C en
requêtes
1972: un des Nom Prénom moyenne
premiers langages
de programmation • Les langages
Langage machine ou système pour le orientés objet:
langage bas niveau développement • C++, Java,
d'Unix Python, matlab,
Langage haut Javascript, PHP
niveau
compréhensible
par l’être humain
2020/2021 Cours Initiation à la programmation 3
2. Le système binaire

• Le langage machine est une suite de bits interprétable par la machine


• Le système binaire est la base 2 mathématique, permettant de représenter des
nombres à l'aide de seulement 2 chiffres : le 0 et le 1.
• En base 10, on utilise 10 chiffres, de 0 à 9 ;
• En base n, on utilise n chiffres, de 0 à n – 1 ;
Exemple : le nombre 1101 s'analyse dans une base B : 1*B3+1* B2+0*B1+1*B0
• 1101 en base B = 10 : 1* 10 3 + 1*10 2+0*10 1+1*10 0 = 1101
• 1101 en base B = 8 : 1* 8 3 + 1*8 2 +0*8 1 + 1*8 0 = 577
• 1101 en base B = 2 : 1* 2 3 + 1*2 2 +0*2 1 + 1*2 0 = 13

2020/2021 Cours Initiation à la programmation 4


2. Le système binaire
Valeur binaire sur Valeur décimale
2 bits
• Avec un bit il est ainsi possible d'obtenir deux états : soit 1, soit 0. 0 0 0

• Grâce à 2 bits, il est possible d'obtenir quatre états différents 22: 0 1 1


1 0 2
1 1 3

Valeur binaire sur Valeur décimale


3 bits
000 0
• Avec 3 bits, il est possible d'obtenir huit états différents 23 :
001 1
• En général, avec n bits, il est possible d’obtenir 2n états différents : 010 2
21 = 2 26= 64 011 3
22 = 4 27= 128 100 4
23 = 8 28= 256 101 5
24 = 16 29= 512
110 6
25= 32 210= 1024
111 7

2020/2021 Cours Initiation à la programmation 5


Opérations

Exemple : somme et multiplication

1 1
1010010 110 =6
+ 10010 * 101 =5
1100100 110
1100 .
11110 =30

2020/2021 Cours Initiation à la programmation 6


Code ASCII

• Chaque caractère possède son code correspondant en code ASCII (American Standard
Code for Information Interchange) lors de la numérisation dans la machine.
• Le code ASCII de base représente les caractères sur 7 bits
(c'est-à-dire 128 caractères possibles, de 0 à 127).
A->65 a-> 97 0->48
B->66 b->98 1->49
. . .
. . .
Z->90 z->122 9->57
• Il suffit de modifier le 6ème bit (en code binaire) pour passer de majuscules à minuscules,
• c'est-à-dire ajouter 32 au code ASCII en base décimale.

2020/2021 Cours Initiation à la programmation 7


3. Le cycle de vie d’un programme

Phase d’analyse • Ecrire une suite


d’instructions pour
(Algorithme) : résoudre un problème

Phase de • Traduire l’algorithme en un


programmation programme moyennant un
(Programme) : langage de programmation

• Compilation du
Phase de test : programme et l’exécuter
par la machine

2020/2021 Cours Initiation à la programmation 8


4. Algorithmique de base

• Un algorithme est une procédure de calcul qui prend en entrée un ensemble de


variables et qui délivre en sortie un résultat après l’exécution d’un ensemble
d’instructions.
• Exemple:
• Problème : trier une suite de nombres entiers dans l'ordre croissant.
• Entrée : n nombres entiers
• Sortie : les entiers en entrée triés dans l'ordre croissant.
• Exemple: si on a en entrée les entiers (5,9,4,3), un algorithme de tri fournira le résultat (3,4,5,9).

2020/2021 Cours Initiation à la programmation 9


4. Algorithmique de base

• Un algorithme est correct, si pour toute instance du problème il se termine et


produit une sortie correcte.

• Une structure de données est un moyen de stocker et d'organiser des données


pour faciliter leur stockage, leur utilisation et leur modification.

• L'efficacité d'un algorithme est mesurée par son coût (complexité) en temps et
en mémoire.

2020/2021 Cours Initiation à la programmation 10


4. Algorithmique de base

• Types
• Variables
• Expressions
• Instructions simples
• Structures de contrôle
• Fonctions et Procédures

2020/2021 Cours Initiation à la programmation 11


4.1 Types
• Types prédéfinis : entier (entier) , car (caractère) , booléen (booléen) (vrai ou faux),
réel (réel)
• Définition de type : type NomDeType = TypePrédéfini;
• Tableau : Ensemble de variables regroupées dans une même structure
• Une variable de type tableau porte un nom et divisée en cases alignées les unes aux
autres sur un même axe.
• Type du tableau : dépend du type des valeurs qu’il contient. Un tableau peut
contenir des valeurs de tous types : entier, réel, booléen, etc.
• Déclaration tableau : Nom-Tableau : Tableau de Nombre-éléments type-éléments ;
Exemple: T : Tableau de 10 réel ;

2020/2021 Cours Initiation à la programmation 12


Type abstrait

• Un type abstrait est un triplet composé :


• d'un nom ;
• d'un ensemble de valeurs ;
• d'un ensemble d'opérations définies sur ces valeurs.
• Les types abstraits de base de l'algorithmique sont : entier, caractère,
booléen, réel que l'on écrit entier, car, booléen, réel
• Une variable est un triplet composé :
• d'un type (déjà défini) ;
• d'un nom (a priori toute chaîne alphanumérique) ;
• d'une valeur.

2020/2021 Cours Initiation à la programmation 13


4.2 Variables

• Variables : un objet informatique qui associe un nom à une valeur qui peut
éventuellement varier au cours du temps
• variables NomDeVariable: TypePrédéfini;
• Exemple : variables nom : char
• Toute variable doit être déclarée et recevoir une valeur initiale.
Remarque
• Les valeurs :
• '1' est un caractère ;
• 1 est un entier ;
• 1.0 est un réel ;

2020/2021 Cours Initiation à la programmation 14


4.3 Expressions

Expressions :
• Une expression est un ensemble de valeurs, reliées par des opérateurs, et
équivalent à une seule valeur
• Exemple: 2*val+3

2020/2021 Cours Initiation à la programmation 15


4.4 Instructions

• Un algorithme contient plusieurs instructions.

• Instruction: Commande élémentaire interprétée et exécutée par le processeur.


• Les instructions arithmétiques : +, -, *, /

• Les instructions logiques : not, and, or

• Les instructions de contrôle du flux d’instructions : branchements, boucles, appels de


procédure

• Les instructions d’entrée-sortie : read, write

2020/2021 Cours Initiation à la programmation 16


4.4 Instruction simple

• Affectation : Opération qui attribue une valeur ou une expression à une variable.

• En langage d’algorithme, l’affectation s’écrit :

NomDeVariable ← ExpressionDuTypeDeLavariable;

• variable ← valeur

• Exemple: chaine ← "salut" , tableau ← [5,2,9,3]

• variable ← expression

• Exemple: resultat ← n*(n+1)

2020/2021 Cours Initiation à la programmation 17


4.5 Structure de contrôle

Un algorithme est composé de plusieurs instructions qui sont regroupées en bloc


• Bloc d'instruction :
Instruction_1
Instruction_2
.............
Instruction_n

Exemple : lire un entier et l’afficher


variables a:entier;
Debut
Lire (a);
Ecrire(a);
fin

2020/2021 Cours Initiation à la programmation 18


4.5 Structure de contrôle

Structure de contrôle si
Oui Non
• Alternative : Expression
si ExpressionBooléenne Booléenne
alors
BlocInstruction1
sinon
BlocInstruction2 BlocInstruction1 BlocInstruction2
finsi;
Exemple: afficher le plus grand nombre parmi a, b, c
si a>b et a>c
alors ecrire (‘a est le plus grand’);
sinon si b>a et b>c
alors ecrire (‘b est le plus grand’);
sinon ecrire (‘c est le plus grand’);
finsi

2020/2021 Cours Initiation à la programmation 19


4.5 Structure de contrôle
Structure de contrôle Oui selon Non
• Alternative multiple : cas1
selon que cas cas1 :
BlocInstruction1
cas cas2 :
BlocInstruction2
autrement :
BlocInstruction Oui Non
cas2
BlocInstruction3 1
finselonque

Exemple: Afficher la mention selon la note BlocInstruction


Autrement
SELON QUE 2
cas Note ≥ 16 : ECRIRE ("TB");
cas Note ≥ 14 : ECRIRE ("B");
cas Note ≥ 12 : ECRIRE ("AB"); BlocInstruction
cas Note ≥ 10 : ECRIRE ("Passable"); 3
Autrement : ECRIRE ("ajourné");
FIN SELON QUE

2020/2021 Cours Initiation à la programmation 20


4.5 Structure de contrôle
Structure de contrôle (boucle tant que…faire)
Répétition : lorsqu’on a un bloc d’instruction qui se répète on aura recours au boucle sous l’une des formes
suivantes: Pour…faire , Répéter…jusqu’à, tant que …faire
• le bloc d'instruction peut ne pas être exécuté
tant que ExpressionBooléenne faire
BlocInstruction Tant que Non
Expression_
Booléenne?
fintantque;
• Exemple : calculer la somme de 1 à 10 Oui
faire
s ← 0;
i ← 1; BlocInstruction

Tant que i<=10 faire


Fin Tant que
s ← s+i; Instruction suivante
i ← i+1;
fintantque
2020/2021 Cours Initiation à la programmation 21
4.5 Structure de contrôle

Structure de contrôle (boucle pour …faire)


• le bloc d'instruction peut ne pas être exécuté et il y a une variable indicatrice
pour VariableIndicatrice allant de ValeurInitiale à ValeurFinale par pas de ValeurPas faire
BlocInstruction i←0
finpour;
Non
Exemple: Calculer la somme de 1 à 10 i<=10

s ← 0; Oui

Pour i allant de 1 à 10 par pas de 1 faire BlocInstruction

s ← s+i;
Finpour; i ← i+1

Sortie de la
boucle

2020/2021 Cours Initiation à la programmation 22


4.5 Structure de contrôle
Structure de contrôle (boucle répéter …jusqu’à)
• le bloc d'instruction est exécuté au moins une fois
répéter répéter BlocInstruction
BlocInstruction
jusqu'à ExpressionBooléenne
Expression_
finrépéter; Jusqu’à Booléenne Non
Exemple: Calculer la somme de 1 à 10
s←0; Oui
i←1; Sortie de la boucle
répéter
s ← s+i;
i ← i+1;
jusq’à i > 10;
finrépéter

2020/2021 Cours Initiation à la programmation 23


4.6 Fonctions et procédures

• Un sous-algorithme peut se présenter sous forme de fonction ou de procédure.

• Une fonction est un sous-algorithme qui, à partir de donnée(s), calcule et rend à


l'algorithme un seul résultat alors qu'en général, une procédure affiche le(s)
résultat(s) demandé(s).

2020/2021 Cours Initiation à la programmation 24


4.6 Fonctions et procédures : Fonctions
• Une fonction est un bloc d’instructions qui retourne obligatoirement une seule
valeur résultat à l’algorithme appelant.
• Il est nécessaire de préciser le type de la fonction qui est en réalité le type de cette
valeur résultat.
Écriture de la fonction :
fonction NomDeFonction (ListeParamètres):TypeRésultat
// déclarations des variables locales autres que les paramètres
début
// partie instruction qui contient l'appel à retourne()
fin

2020/2021 Cours Initiation à la programmation 25


4.6 Fonctions et procédures : Fonctions

• Liste des paramètres


• Les paramètres sont passés :
• par valeur: dans une procédure, un paramètre est passé par valeur ne peut être qu'un
paramètre en entrée
on écrit : val ListeVariable:NomDeType
• par référence: lorsque ces variables ne sont pas affectées par le contenu des variables du
programme appelant, mais par leur adresse (leur référence).
on écrit : ref ListeVariable:NomDeType

• L’appel d’une fonction peut être effectué en spécifiant, au moment souhaité, son nom et
éventuellement ses paramètres et l’affecter à une variable qui a le même type que celui du
type de résultat de la fonction ; cela déclenche son exécution.

2020/2021 Cours Initiation à la programmation 26


4.6 Fonctions et procédures : Fonctions

• Exemple:
Fonction perimetre_rectangle (largeur, longueur : entier) : entier
Debut
Retourner (2*(largeur+longueur))
Fin Retourner le résultat de la fonction

2020/2021 Cours Initiation à la programmation 27


4.6 Fonctions : Exemple

Ecrire un algorithme qui contient une fonction qui calcule la somme de


100 nombres.

2020/2021 Cours Initiation à la programmation 28


4.6 Fonctions : corrigé
Algorithme essai;
Variables
I, Som : entier;
Fonction Somme: entier
Variables
S : entier ;
Debut /*Début de la fonction*/
S ←0 ;
Pour I ← 1 a 100 Faire
S ← S + I;
FinPour ;
retourner S;
Fin /*Fin de la Fonction */
Debut /*Début de l’algorithme*/
Som ← Somme ;
Ecrire ('La somme des 100 premiers nombres est', Som) ;
Fin. /*Fin de l’algorithme*/

2020/2021 Cours Initiation à la programmation 29


4.6 Fonctions et procédures : Procédures

• Une procédure est un bloc d’instructions nommé et déclaré dans l’entête de


l’algorithme et appelé dans son corps à chaque fois que le programmeur en a
besoin.
Écriture de la procédure :
Procédure NomDeProcedure (Nom_Paramètre : Type_praramètre;……)
// déclarations des variables locales autres que les paramètres
début
// bloc d’instructions
fin

2020/2021 Cours Initiation à la programmation 30


4.6 Fonctions et procédures : Procédures

• Liste des paramètres


• Les paramètres sont passés :
• par valeur: dans une procédure, un paramètre est passé par valeur ne peut être qu'un
paramètre en entrée
on écrit : val ListeVariable:NomDeType
• par référence: lorsque ces variables ne sont pas affectées par le contenu des variables du
programme appelant, mais par leur adresse (leur référence).
on écrit : ref ListeVariable:NomDeType

• L’appel d’une procédure peut être effectué en spécifiant, au moment souhaité, son nom et
éventuellement ses paramètres ; cela déclenche l’exécution des instructions de la procédure.

2020/2021 Cours Initiation à la programmation 31


4.6 Fonctions et procédures : Procédures

• Exemple:
Procédure périmètre_rectangle (largeur, longueur : entier)
Début
Ecrire ("Le périmètre du rectangle est : ", 2*(largeur+longueur))
Fin

2020/2021 Cours Initiation à la programmation 32


4.6 Procédures : Exemple

Ecrire un algorithme qui contient une procédure qui calcule la somme


de 100 nombres.

2020/2021 Cours Initiation à la programmation 33


4.6 Procédures : corrigé
Algorithme essai;
Variables
I, S : entier;
Procedure Somme
Debut /*Début de la Procédure*/
S ←0 ;
Pour I ← 1 a 100 Faire
S ← S + I;
FinPour ;
Ecrire ("La somme des 100 premiers nombres est", S) ;
Fin /*Fin de la Procédure*/
Debut /*Début de l’algorithme*/
Somme;
Fin. /*Fin de l’algorithme*/

2020/2021 Cours Initiation à la programmation 34

Vous aimerez peut-être aussi