Cours 2(Algorithmique)
Youssef RACHIDI
[Link]@[Link]
2023/2024, Semestre 1
DUT-Inf 1
Algorithmique
Notions et instructions de base
2021/2022 DUT-Inf 2
Identifier le rôle d’un algorithme
DUT-Inf 3
Structure d’un Algorithme
Algorithme #Nom
déclaration des variables
déclaration des constantes
Début
instruction
instruction
…..
Fin
DUT-Inf 4
Notion de variable
Dans les langages de programmation une variable sert à stocker la valeur
d’une donnée
Une variable désigne en fait un emplacement mémoire dont
le contenu peut changer au cours d’un programme (d’où le nom variable)
Règle : Les variables doivent être déclarées avant d’être utilisées, elle
doivent être caractérisées par :
◦ un nom (Identificateur)
Identificateur
◦ un type (entier, réel, caractère, chaîne de caractères, …)
DUT-Inf 5
Choix des identificateurs (1)
Le choix des noms de variables est soumis à quelques règles qui
varient selon le langage, mais en général:
Un nom doit commencer par une lettre alphabétique
exemple valide : nom1 exemple invalide: 1nom
Doit être constitué uniquement de lettres, de chiffres et du soulignement
_ (Eviter les caractères de ponctuation et les espaces)
valides: SMI2007, SMI_2007 invalides: SMI 2007 , SMI;2007
doit être différent des mots réservés du langage (par exemple en Java:
Java
int, float, else, switch, case, default, for, main, return , …)
DUT-Inf 6
Choix des identificateurs (2)
Conseil: pour la lisibilité du code choisir des noms significatifs
qui décrivent les données manipulées
exemples : TotalVentes2006,
Prix_TTC,
Prix_HT
DUT-Inf 7
Types des variables
Le type d’une variable détermine l’ensemble des valeurs qu’elle peut
prendre, les types offerts par la plus part des langages sont:
Type numérique (entier ou réel)
◦ Byte (codé sur 1octet): de 0 à 255
◦ Entier court (codé sur 2 octets) : -32 768 à 32 767
◦ Entier long (codé sur 4 ou 8 octets)
◦ Réel simple précision (codé sur 4 octets)
◦ Réel double précision (codé sur 8 octets)
Type logique ou booléen: deux valeurs VRAI ou FAUX
Type caractère: lettres majuscules, minuscules, chiffres, symboles, …
exemples: ’A’, ’a’, ’1’, ’?’, …
Type chaîne de caractère: toute suite de caractères, exemples:
" Nom, Prénom", "code postale: 1000", …
DUT-Inf 8
Déclaration des variables
Rappel: toute variable utilisée dans un programme doit avoir fait
l’objet d’une déclaration préalable
En pseudo-code, on va adopter la forme suivante pour la déclaration
de variables
variables liste d'identificateurs : type
Exemple:
Variables i, j,k : entier
x, y : réel
OK: booléen
ch1, ch2 : chaîne de caractères
Remarque: pour le type numérique on va se limiter aux entiers et
réels sans considérer les sous types
DUT-Inf 9
L’instruction d’affectation
l’affectation consiste à attribuer une valeur à une variable
(ça consiste en fait à remplir où à modifier le contenu d'une zone mémoire)
En pseudo-code, l'affectation se note avec le signe ←
Var← e : attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- Var et e doivent être de même type ou de types compatibles
- l’affectation ne modifie que ce qui est à gauche de la flèche
Exp valides: i ←1; j ←i; k ←i+j;
x ←10.3 ; OK ←FAUX; ch1
←"SMI";
ch2 ←ch1 ; x ←4; x ←j;
(voir la déclaration des variables dans le transparent précédent)
DUT-Inf 10
Exercices simples sur l'affectation (1)
Donnez les valeurs des variables A, B et C après exécution des
instructions suivantes ?
Algorithme affectation
Variables A, B, C: Entier
Début
A ← 3;
B ← 7; A=7
A ← B; B=12
B ← A+5; C=5
C ← A + B;
C ← B – A;
Fin
DUT-Inf 11
Exercices simples sur l'affectation (2)
Donnez les valeurs des variables A et B après exécution des instructions
suivantes ?
Variables A, B : Entier
Début
A ← 1;
B ← 2;
A ← B;
B ← A;
Fin
Les deux dernières instructions permettent-elles d’échanger les
valeurs de A et B ?
DUT-Inf 12
Expressions et opérateurs
Une expression peut être une valeur, une variable ou une opération
constituée de variables reliées par des opérateurs
Exemples: 1, b, a*2, a+ 3*b-c, …
L'évaluation de l'expression fournit une valeur unique qui est le résultat de
l'opération
Les opérateurs dépendent du type de l'opération, ils peuvent être :
◦ des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ (puissance)
◦ des opérateurs logiques: NON, OU, ET
◦ des opérateurs relationnels: =, ,<, >, <=, >=
◦ des opérateurs sur les chaînes: & (concaténation)
DUT-Inf 13
Priorité des opérateurs
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité
est le suivant (du plus prioritaire au moins prioritaire) :
◦ ^ : (élévation à la puissance)
◦ * , / (multiplication, division)
◦ % (modulo)
◦ + , - (addition, soustraction)
exemple: 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer
les opérations à effectuer en priorité
exemple: (2 + 3) * 7 vaut 35
3
DUT-Inf 14
Les instructions d'entrées-sorties: lecture/Ecriture
Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur
La lecture permet d'entrer des donnés à partir du clavier
◦ En pseudo-code, on note: Lire (var);
la machine met la valeur entrée au
clavier dans la zone mémoire nommée var
◦ Remarque: Le programme s'arrête lorsqu'il rencontre une instruction
Lire et ne se poursuit qu'après la frappe d’une valeur au clavier et de la
touche Entrée
15
Les instructions d'entrées-sorties: lecture et
écriture (2)
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un
fichier)
◦ En pseudo-code, on note: Ecrire (var) ;
la machine affiche le contenu de la zone mémoire var
◦ Conseil: Avant de lire une variable, il est fortement conseillé d’écrire
des messages à l’écran, afin de prévenir l’utilisateur de ce qu’il doit
frapper
16
DUT-Inf
Exemple (Lecture / Ecriture)
Ecrire un algorithme qui demande un nombre
entier à l'utilisateur, puis qui calcule et affiche le
double de ce nombre ?
17
DUT-Inf
Exemple (Lecture/ Ecriture)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis
qui calcule et affiche le double de ce nombre
Algorithme Calcul_double
variables A, B : entier
Début
Ecrire("entrer la valeur de A ");
Lire(A);
B ← 2*A;
Ecrire("le double de ", A, "est :", B);
Fin
18
DUT-Inf
Exercice (Lecture / Ecriture)
Ecrire un algorithme qui vous demande de saisir
votre nom puis votre prénom et qui affiche ensuite
votre nom complet?
19
DUT-Inf
Exercice: (Lecture / Ecriture)
Ecrire un algorithme qui vous demande de saisir votre nom puis votre
prénom et qui affiche ensuite votre nom complet
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
Ecrire("entrez votre nom");
Lire(Nom);
Ecrire("entrez votre prénom");
Lire(Prenom);
Nom_Complet ← Nom & Prenom;
Ecrire("Votre nom complet est : ", Nom_Complet);
Fin
20
DUT-Inf
Méthode de construction d’un algorithme simple (1/4)
Exemple :
Écrire un algorithme qui consiste a calculer l’air S
d’un cercle selon la formule S = Pi * R* R;
Rappel : Pi = 3.14159 et R le rayon du cercle
21
DUT-Inf
Méthode de construction d’un algorithme simple (2/4)
Méthodologie a suivre :
constantes : Pi = 3.14159
Variables : Rayon, Surface
Types : Rayon, Surface : réel
Expressions et affectation : Surface <- Pi *
(Rayon)^2 ;
Structures conditionnelles et les boucles : ------
Opérations d’entrée-sortie : Lire (Rayon);
22
Écrire (Surface);
DUT-Inf
Méthode de construction d’un
algorithme simple (3/4)
Algorithme Calcul_Aire
Constantes
Pi = 3,14159
Variables
Rayon, Surface : réels
Début
Lire (Rayon);
Surface <- Pi * (Rayon*Rayon) ;
Ecrire (Surface);
Fin
23
DUT-Inf
Fin
24
DUT-Inf