0% ont trouvé ce document utile (0 vote)
108 vues48 pages

Introduction Algorithmique et Programmation

Ce document introduit les concepts de base de l'algorithmique et de la programmation. Il définit notamment les notions d'algorithme, de programme, de langage de programmation, de variable, de type de données, d'affectation et présente les instructions élémentaires comme les tests et les boucles.

Transféré par

real life
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
108 vues48 pages

Introduction Algorithmique et Programmation

Ce document introduit les concepts de base de l'algorithmique et de la programmation. Il définit notamment les notions d'algorithme, de programme, de langage de programmation, de variable, de type de données, d'affectation et présente les instructions élémentaires comme les tests et les boucles.

Transféré par

real life
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction à l’algorithmique et programmation

Aicha Karite
Business school
Université Euro-Méditerranéenne de Fès

1ère année EBS, AU: 2020-2021


I- Objectif

II- Introduction

III- Notion d’algorithme

IV- Notions et Instructions de base

2020-2021 Algorithmique et programmation 2


I- Objectif

I Apprendre les concepts de base de l’algorithmique et de la


programmation.
I Être capable de mettre en oeuvre ces concepts pour analyser
des problèmes simples et écrire les programmes correspondants.

2020-2021 Algorithmique et programmation 3


II- Introduction

Définition.1
I Un programme correspond à la description d’une méthode de
résolution pour un problème donné.
I Cette description est effectuée par une suite d’instructions
d’un langage de programmation.
I Ces instructions permettent de traiter et de transformer les
données (entrées) du problème à résoudre pour aboutir à des
résultats (sorties).
I Un programme n’est pas une solution en soi mais une méthode
à suivre pour trouver les solutions.

2020-2021 Algorithmique et programmation 4


Langages informatiques

Définition.2
Un langage informatique est un code de communication,
permettant à un être humain de dialoguer avec une machine en lui
soumettant des instructions et en analysant les données matérielles
fournies par le systéme.

I Le langage informatique est l’intermédiaire entre le


programmeur et la machine.
I Il permet d’écrire des programmes (suite consécutive
d’instructions) destinés à effectuer une tâche donnée
I Exemple : un programme de résolution d’une équation du
second degré

2020-2021 Algorithmique et programmation 5


Langages de programmation

I Deux types de langages :


I Langages procéduraux : Fortran, Cobol, Pascal, C, ...
I Langages orientés objets : C++, Java, Python ...
Le choix d’un langage de programmation n’est pas facile, chacun a
ses spécificités et correspond mieux à certains types d’utilisations

2020-2021 Algorithmique et programmation 6


III- Notion d’algorithme

Définition.3
I Un programme informatique permet à l’ordinateur de résoudre
un problème
I Avant de communiquer à l’ordinateur comment résoudre ce
problème, il faut en premier lieu pouvoir le résoudre nous
même.
I Un algorithme peut se comparer à une recette de cuisine
I Le résultat c’est comme le plat à cuisiner
I Les données sont l’analogues des ingrédients de la recette
I Les règles de transformations se comparent aux directives ou
instructions de la recette

2020-2021 Algorithmique et programmation 7


Algorithme informatique

I Un algorithme est une suite d’instructions ayant pour but de


résoudre un problème donné. Ces instructions doivent être
exécutées de façon automatique par un ordinateur.
Exemples :
I préparer une recette de cuisine
I montrer le chemin à un touriste
I etc...

2020-2021 Algorithmique et programmation 8


Algorithme et programme

I L’élaboration d’un algorithme précède l’étape de


programmation
I Un programme est un algorithme
I Un langage de programmation est un langage compris par
l’ordinateur
I L’élaboration d’un algorithme est une démarche de résolution
de problème exigeante
I La rédaction d’un algorithme est un exercice de réflexion qui se
fait sur papier
I L’algorithme est indépendant du langage de programmation
I Par exemple, on utilisera le même algorithme pour une
implantation en Java, ou bien en C++ ou en Visual Basic
I L’algorithme est la résolution brute d’un problème informatique

2020-2021 Algorithmique et programmation 9


Algorithmique

I algorithme = méthode de résolution


I algorithme vient du nom du célèbre mathématicien arabe Al
Khawarizmi (Abu Ja’far Mohammed Ben Mussa Al-Khwarismi)
I L’algorithmique désigne aussi la discipline qui étudie les
algorithmes et leurs applications en Informatique
I Une bonne connaissance de l’algorithmique permet d’écrire des
algorithmes exacts et efficaces

2020-2021 Algorithmique et programmation 10


IV- Notions et Instructions de base

Instructions de base
I Un programme informatique est formé de quatre types
d’instructions considérées comme des petites briques de base :
I l’affectation de variables
I la lecture et l’écriture
I les tests
I les boucles

2020-2021 Algorithmique et programmation 11


Notion de variable

I Une variable sert à stocker la valeur d’une donnée dans un


langage de programmation
I Une variable désigne un emplacement mémoire dont le
contenu peut changer au cours d’un programme
I Chaque emplacement mémoire a un numéro qui permet d’y
faire référence de façon unique : c’est l’adresse mémoire de
cette cellule.
I Règle : La variable doit être déclarée avant d’être utilisée, elle
doit être caractérisée par :
I un nom (Identificateur)
I un type qui indique l’ensemble des valeurs que peut prendre la
variable (entier, réel, booléen, caractère, chaîne de caractères,
...)
I Une valeur

2020-2021 Algorithmique et programmation 12


Identificateurs : règles

Le choix du nom d’une variable est soumis à quelques règles qui


varient selon le langage, mais en général :
I Un nom doit commencer par une lettre alphabétique
Exemples : E1 (1E n’est pas valide)
I doit être constitué uniquement de lettres, de chiffres et du
soulignement (" _ ") (éviter les caractères de ponctuation et
les espaces)
Exemples : S1, S_1 (S 1, S-1, S ;1 : sont non valides)
I doit être différent des mots réservés du langage (par exemple
en C : int, float, double, switch, case, for, main, return, ...)

2020-2021 Algorithmique et programmation 13


Identificateurs : conseils

Conseil :
pour la lisibilité du code choisir des noms significatifs qui décrivent
les données manipulées.
Exemples : NoteEtudiant, Prix, Somme...
Remarque
en pseudo-code algorithmique, on va respecter les règles citées,
même si on est libre dans la syntaxe.

2020-2021 Algorithmique et programmation 14


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 :
I Type numérique (entier ou réel)
I Byte (codé sur 1octet)
I Entier court (codé sur 2 octets)
I Entier long (codé sur 4 octets)
I Réel simple précision (codé sur 4 octets) : précision d’ordre
10−7
I Réel double précision (codé sur 8 octets) : précision d’ordre
10−14

2020-2021 Algorithmique et programmation 15


I Type logique ou booléen : deux valeurs VRAI ou FAUX
I Type caractère : lettres majuscules, minuscules, chiffres,
symboles,..
Exemples : "A","b", "1", " ?", ...
I Type chaîne de caractère : toute suite de caractères
Exemples : " ", " Nom, Prénom", "code postale : 1000", ...

2020-2021 Algorithmique et programmation 16


Déclaration des variables

Rappel
toute variable utilisée dans un programme doit avoir fait l’objet
d’une déclaration préalable.
I En pseudo-code, la déclaration de variables est effectuée par la
forme suivante :
Variables liste d’identificateurs : type
I Exemple :
Variables i, j, k : entier
x, y : réel
OK : booléen
Ch1, ch2 : chaîne de caractères

2020-2021 Algorithmique et programmation 17


Constante

I Une constante est une variable dont la valeur ne change pas au


cours de l’exécution du programme, elle peut être un nombre,
un caractère, ou une chaine de caractères.
I En pseudo-code, Constante identificateur=valeur : type (par
convention, les noms de constantes sont en majuscules)
I Exemple : pour calculer la surface des cercles, la valeur de pi
est une constante mais le rayon est une variable.
Constante PI=3.14 : réel
I Une constante doit toujours recevoir une valeur dès sa
déclaration.

2020-2021 Algorithmique et programmation 18


Affectation

I L’affectation consiste à attribuer une valeur à une variable


(c’est-à-dire remplir ou modifier le contenu d’une zone
mémoire).
I En pseudo-code, l’affectation est notée par le signe ←
Var ← e : attribue la valeur de e à la variable Var
I e peut être une valeur, une autre variable ou une expression
I Var et e doivent être de même type ou de types compatibles
I l’affectation ne modifie que ce qui est à gauche de la flèche
Exemples : i ← 1 , j ← i, k ← i + j
x ← 10.3, OK ← FAUX
(avec i, j, k : entier ; x :réel ; OK :booléen)

2020-2021 Algorithmique et programmation 19


I Les langages de programmation C, C++, Java, ... utilisent le
signe égal = pour l’affectation ←

Remarques
I Lors d’une affectation, l’expression de droite est évaluée et la
valeur trouvée est affectée à la variable de gauche. Ainsi,
A ← B est différente de B ← A
I Certains langages donnent des valeurs par défaut aux variables
déclarées. Pour éviter tout problème il est préférable
d’initialiser les variables déclarées.

2020-2021 Algorithmique et programmation 20


Syntaxe générale de l’algorithme

Algo exemple
/* La partie déclaration de l’algorithme /
Constantes (les constantes nécessitent une valeur dès leur
déclaration)
var 1 ← 20 : entier
var 2 ← ”bonjour !” : chaîne
Variables ( les variables proprement dites)
var3, var4 : réels
var5 : chaîne
Début (corps de l’algorithme)
/* instructions */
Fin

2020-2021 Algorithmique et programmation 21


Affectation : exercices

Exercice 1 :
Donnez les valeurs des variables A, B et C après exécution des
instructions suivantes ?
Variables A, B, C : Entier
Début
A←5
B←3
A←B
C ←A+B
A←2
C ←B −A
Fin

2020-2021 Algorithmique et programmation 22


Exercice 2 :
Quelles seront les valeurs des variables A, B et C après exécution
des instructions suivantes ?
Variables A, B, C : Entier
Début
A←3
B ← 10
C ←A+B
B ←A+B
A←C
Fin

2020-2021 Algorithmique et programmation 23


Exercice 3 :
Quelles seront les valeurs des variables A et C après exécution des
instructions suivantes ?
Variables A, B : Entier
Début
A←5
B←2
A←B
B←A
Fin
2) les deux dernières instructions permettent-elles d’échanger les
deux valeurs de B et A ? Si l’on inverse les deux dernières
instructions, cela change-t-il quelque chose ?

2020-2021 Algorithmique et programmation 24


Exercice 4 :
Ecrire un algorithme permettant d’échanger les valeurs de deux
variables A et B.

2020-2021 Algorithmique et programmation 25


Expressions et opérateurs

I 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, ...
I L’évaluation de l’expression fournit une valeur unique qui est le
résultat de l’opération
I Les opérateurs dépendent du type de n, ils peuvent être :
I des opérateurs arithmétiques : +, -, *, /, % (modulo), ˆ
(puissance)
I des opérateurs logiques : NON( !), OU(| |), ET (&&)
I des opérateurs relationnels : =, <, >, <=, >=
I des opérateurs sur les chaînes : & (concaténation)
I Une expression est évaluée de gauche à droite mais en tenant
compte des priorités des opérateurs.

2020-2021 Algorithmique et programmation 26


Expression : remarques

I On ne peut pas additionner un entier et un caractère


I Toutefois dans certains langages on peut utiliser un opérateur
avec deux opérandes de types différents, c’est par exemple le
cas avec les types arithmétiques (4 + 5.5)
I La signification d’un opérateur peut changer en fonction du
type des opérandes
I l’opérateur + avec des entiers effectue l’addition, 3+6 vaut 9
I avec des chaînes de caractères il effectue la concaténation
"bonjour" + " tout le monde" vaut "bonjour tout le monde"
I x+y/z : est une expression arithmétique dont le type dépend
des types de x, y et z

2020-2021 Algorithmique et programmation 27


I (x>y) | | !(x=y+1) : est une expression booléenne (| | dénote
l’opérateur logique ou et ! Dénote la négation)
I Avant d’utiliser une variable dans une expression, il est
nécessaire qu’une valeur lui ait été affectée.
I La valeur de l’expression est évaluée au moment de
l’affectation
I x ←4
I y ←6
I z ←x +y
I Ecrire(z)
I y ← 20
I Ecrire(z)

2020-2021 Algorithmique et programmation 28


Priorité des opérateurs

I Pour les opérateurs arithmétiques donnés ci-dessus, l’ordre de


priorité est le suivant (du plus prioritaire au moins prioritaire) :
I () : les parenthèses
I ˆ : (élévation à la puissance)
I * , / : (multiplication, division)
I % : (modulo)
I + , - : (addition, soustraction)
Exemples : 9 + 3 * 4 vaut 21
I En cas de besoin, on utilise les parenthèses pour indiquer les
opérations à effectuer en priorité
Exemples : (9 + 3) * 4 vaut 48
I A priorité égale, l’évaluation de l’expression se fait de gauche à
droite

2020-2021 Algorithmique et programmation 29


Les opérateurs booléens

I Associativité des opérateurs "et" et "ou"


a et (b et c) = (a et b) et c
I Commutativité des opérateurs "et" et "ou"
a et b = b et a a ou b = b ou a
I Distributivité des opérateurs "et" et "ou"
a ou (b et c) = (a ou b) et (a ou c)
a et (b ou c) = (a et b) ou (a et c)
I Involution (homographie réciproque) : non non a = a
I Loi de Morgan : non(a ou b)=non a et non b
non (a et b) = non a ou non b

2020-2021 Algorithmique et programmation 30


Tables de vérité

2020-2021 Algorithmique et programmation 31


Les instructions d’entrées et sorties : lecture et écriture

I Les instructions de lecture et d’écriture permettent à la


machine de communiquer avec l’utilisateur
I La lecture permet d’entrer des donnés à partir du clavie
En pseudo-code, on note : lire (var)
La machine met la valeur entrée au clavier dans la zone
mémoire nommée var
I Remarque : Le programme s’arrête lorsqu’il rencontre une
instruction Lire et ne se poursuit qu’après la saisie de l’entrée
attendue par le clavier et de la touche Entrée (cette touche
signale la fin de l’entrée)
I 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

2020-2021 Algorithmique et programmation 32


I L’écriture permet d’afficher des résultats à l’écran (ou de les
écrire dans un fichier)
I En pseudo-code, on note :écrire (liste d’expressions)
la machine affiche les valeurs des expressions décrite dans la
liste.
Ces instructions peuvent être des variables ayant des valeurs,
des nombres ou des commentaires sous forme de chaines de
caractères.
I Exemple : écrire(a, b+2, "Message")

2020-2021 Algorithmique et programmation 33


Exemple
Ecrire un algorithme qui demande un nombre entier à l’utilisateur,
puis qui calcule et affiche le carré de ce nombre
Algorithme Calcul_du_Carre
Rôle : calcul du carre
Données : un entier
Résultats : le carre du nombre
variables A, B : entier
Début
écrire("entrer la valeur de A ") lire(A)
B ←A∗A
écrire("le carre de ", A, "est :", B)
Fin

2020-2021 Algorithmique et programmation 34


Exercice : lecture et écriture
Ecrire un algorithme qui permet d’effectuer la saisie d’un nom, d’un
prénom et affiche ensuite le nom complet.

2020-2021 Algorithmique et programmation 35


Corrigé
Algorithme AffichageNomComplet
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez le nom")
lire(Nom)
écrire("entrez le prénom")
lire(Prenom)
Nom_Complet ← Nom&””&Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin

2020-2021 Algorithmique et programmation 36


Tests : instructions conditionnelles

I Définition : une condition est une expression écrite entre


parenthèse à valeur booléenne.
I Les instructions conditionnelles servent à n’exécuter une
instruction ou une séquence d’instructions que si une condition
est vérifiée
I En pseudo-code :
Si condition alors
instruction ou suite d’instructions1
Sinon
instruction ou suite d’instructions2
Finsi.

2020-2021 Algorithmique et programmation 37


2020-2021 Algorithmique et programmation 38
I Remarques :
I la condition ne peut être que vraie ou fausse
I si la condition est vraie alors seules les instructions1 sont
exécutées
I si la condition est fausse seules les instructions2 sont exécutées
I la condition peut être une expression booléenne simple ou une
suite composée d’expressions booléennes
I La partie Sinon est optionnelle, on peut avoir la forme
simplifiée suivante :
Si condition alors
instruction ou suite d’instructions1
Finsi

2020-2021 Algorithmique et programmation 39


Si...Alors...Sinon

Exemple
Algorithme ValeurAbsolue1
Rôle : affiche la valeur absolue d’un entier
Données : la valeur à calculer
Résultat : la valeur absolue
Variable x : réel
Début
Ecrire (" Entrez un réel : ")
Lire (x)
Si x < 0 alors Ecrire ("la valeur absolue de ", x, "est :",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est :",x)
Finsi
Fin

2020-2021 Algorithmique et programmation 40


Exercice (tests)

I Ecrire un algorithme qui demande un nombre entier à


l’utilisateur, puis qui teste et affiche s’il est divisible par 7 ou
non.

2020-2021 Algorithmique et programmation 41


Corrigé

I Algorithme Divsible_par7
Variable n : entier
Début
Ecrire (" Entrez un entier : ")
Lire (n)
Si (n%7=0) alors
Ecrire (n," est divisible par 7")
Sinon
Ecrire (n," n’est pas divisible par 7")
Finsi
Fin

2020-2021 Algorithmique et programmation 42


Conditions composées

I Une condition composée est une condition formée de plusieurs


conditions simples reliées par des opérateurs logiques : ET,
OU, OU exclusif (XOR) et NON
I Exemples :
I x compris entre 2 et 6 : (x >= 2) ET (x < =6)
I n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)
I deux valeurs et deux seulement sont identiques parmi a, b et
c : (a=b) XOR (a=c) XOR (b=c)
I L’évaluation d’une condition composée se fait selon des règles
présentées généralement dans ce qu’on appelle tables de vérité

2020-2021 Algorithmique et programmation 43


Tests imbriqués

I Les tests peuvent avoir un degré quelconque d’imbrications

2020-2021 Algorithmique et programmation 44


Tests imbriqués : exemple 1

2020-2021 Algorithmique et programmation 45


Tests imbriqués : exemple 2
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors Ecrire ("Ce nombre est négatif")
Finsi
Si n = 0 alors Ecrire ("Ce nombre est nul")
Finsi
Si n > 0 alors Ecrire ("Ce nombre est positif")
Finsi
I Remarque : dans l’exemple 2 on fait trois tests
systématiquement alors que dans l’exemple 1, si le nombre est
négatif on ne fait qu’un seul test
I Conseil : utiliser les tests imbriqués pour limiter le nombre de
tests et placer d’abord les conditions les plus probables
2020-2021 Algorithmique et programmation 46
Tests imbriqués : exercice

I Le prix de disques compacts (CDs) dans espace de vente varie


selon le nombre à acheter :
5 DH l’unité si le nombre de CDs à acheter est inférieur à 10,
4 DH l’unité si le nombre de CDS à acheter est compris entre
10 et 20 et 3 DH l’unité si le nombre de CDs à acheter est
au-delà de 20.
I Ecrivez un algorithme qui demande à l’utilisateur le nombre de
CDs à acheter, qui calcule et affiche le prix à payer

2020-2021 Algorithmique et programmation 47


Tests imbriqués : corrigé

2020-2021 Algorithmique et programmation 48

Vous aimerez peut-être aussi