Académique Documents
Professionnel Documents
Culture Documents
KHOUKHI Saâdia
2023-2024
4 Les boucles
Définition de l’informatique
INFORMATIQUE ?
INFORMATION AUTOMATIQUE
Science de l’information Art d’entraîner automatiquement des actions
ORDINATEUR
Définition de l’informatique
Un système informatique
Les périphériques sont les organes de l’ordinateur lui permettant de communiquer avec l’exté-
rieur. On distingue trois types de périphériques :
Les Périphériques d’entrée : permettent à l’ordinateur de recevoir des informations
(clavier, souris, microphone, scanner,. . .)
Les Périphériques de sortie : permettent de fournir des informations à l’ordinateur (Écran,
imprimante, graveur, traceur, haut parleur. . .)
Les Périphériques d’entrée / sortie : permettent à l’ordinateur d’échanger les informations
dans les deux sens (lecteur de disquette, modem,. . .)
Allumez un ordinateur, vous n’en tirerez rien ! ! Pour le faire marcher il faut lui fournir un
programme, bref un ordinateur = matériel + programme(s).
Un programme informatique est une liste d’ordres indiquant à un ordinateur ce qu’il
devrait faire. Il se présente sous la forme d’une ou plusieurs séquences d’instructions,
devant être exécutées dans un certain ordre par un processeur . Exemple : Programme de
calcul de la moyenne, programme de vérification des mots de passe. . .
Logiciel : Ensemble de programmes et données qui coopèrent entre eux pour rendre un
service à l’utilisateur.
Le traitement automatique de l’information ou données par ordinateur repose sur des outils
appelés Logiciels (ou programmes). On installe sur un ordinateur deux types de Logiciels :
Les logiciels de base (système d’exploitation) est ensemble de programmes qui gère le fonction-
nement du micro ordinateur visàvis de ses périphériques et qui assure un «pont» entre l’utilisateur
et la machine physique
La gestion des périphériques (affichage à l’écran, lecture du clavier, pilotage d’une impri-
mante, . . .)
La gestion des utilisateurs et de leurs données (comptes, partage des ressources, gestion
des fichiers et répertoires, . . .)
L’interface avec l’utilisateur (textuelle ou graphique) : interprétation des commandes
Le contrôle des programmes (découpage en taches, partage du temps processeur, . . .)
Les logiciels d’applications (programmes d’application) sont des programmes qui exécutent
les tâches que les utilisateurs attendent des ordinateurs, ce sont des programmes développés
généralement par des entreprises de logiciels (des groupes d’ingénieurs) ou par des utilisateurs
eux-mêmes (dans le cas des programmes simples).
Les logiciels de bureautique : Traitement de texte (word), Tableur (Excel). . .
Les logiciels de messagerie et communication via un réseau, Internet.
Les logiciels de programmations :dev c++, eclipse (pour Java), Delphi. . .
Langages informatique
Langage machine
Langage évolué (langage de haut niveau)
1 ∗ 22 + 1 ∗ 21 + 0 ∗ 20
KHOUKHI Saâdia L’algorithmique
Définitions et concepts de base
Algorithmique- Notions et instructions de base
Les structures Conditionnelles
Les boucles
Le langage machine appelé aussi langage binaire, c’est avec ce langage que fonctionnent
les ordinateurs. Il consiste à utiliser deux états (représentés par le chiffre 0 et 1) pour
coder les informations (texte, images etc.)
Pourtant, les ordinateurs font de nombreuses choses. Cependant, pour qu’ils fassent toutes
ses choses, il faut des personnes pour leur dire ce qu’ils doivent faire : les programmeurs,
alias les développeurs.
Pour dire à un ordinateur ce qu’il doit faire, il faut lui parler. Et il faut le faire dans un
langage qu’il comprend. Cependant, parler avec des 0 et des 1 s’avère difficile
On désigne par langage évolué tous les langages se situant au dessus des langages de bas
niveau (langage machine).
La syntaxe des langages évolués est très simplifiée, on y trouve par exemple des mots en
anglais (if, do while, switch, integer, string) donc il est plus accessible et compréhensible
aux gens que le langage machine.
Dans les langages évolués, les commandes sont introduites à l’aide du clavier, à partir
d’un programme en mémoire. Elles sont ensuite interceptées par un programme
"compilateur/Interpréteur", qui les traduit en langage machine.
4 Les boucles
semestre
problème du tri
Entrée : une séquence de n
nombres (a1, : : : ,an)
Sortie : une permutation
(a1’ ; : : : ;an’) de la séquence
d’entrée : a1’<a2’<. . ..<an’
Exemple :
Entrée (31 ;41 ;59 ;26 ;41 ;58),
sortie (26 ;31 ;41 ;41 ;58 ;59)
Exemple illustratif
Notion d’algorithme : si les huis phrases sont bien exécutée par Karim, alors
l’histoire est un algorithme
Notion d’instruction : chacune de huis phrases est une instruction (un ordre)
Notion de valeur : 0, 3, 5, 6, 8, 10
Notion de mémoire : elle est matérialisée par les seaux qui « mémorisent » les
quantités de liquide
Notion de variable : une variable est un emplacement mémoire, ici on a trois
variables (le seau en plastique, le seau en bois et le seau en fer)
Notion des valeurs d’entrée et de sortie : c’est les valeurs que le processeur
reçoit de l’environnement et celles qu’il donne à l’environnement durant l’exu-
cution.
Valeurs en entrée :6, 10
Valeurs en sortie = 0, 3, 8
Notion de variable
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 : A1 exemple invalide : 1A
doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Éviter
les caractères de ponctuation et les espaces)
Valides : SMI2015, SMI_2015 Invalides : SMI 2015, SMI-2015, SMI ;2015
doit être différent des mots réservés du langage (par exemple en Java : int, float,
else, switch, case, default, for, main, return, . . .)
Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les
données manipulées
exemples : TotalVentes2006, Prix_TTC, Prix_HT
Le type correspond au genre d’information que l’on souhaite utiliser. Autrement dit, 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 :
Entier pour manipuler des nombres entiers (1, 115, -7,. . .),
Réel pour manipuler des nombres réels (11. 3, 15.7, -4.3,. . .. . .),
Booléen pour manipuler des valeurs booléennes (vrai ou faux),
Caractère pour manipuler des caractères alphabétiques et numériques (a, b,
3,. . .),
Chaîne de caractères pour manipuler des chaînes de caractères permettant de
représenter des mots ou des phrases (mila, omar,. . ..).
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
Une instruction représente une ou plusieurs actions (opérations) portant sur une ou
plusieurs variables. Il existe deux types d’instruction élémentaires :
Instruction d’affectation ;
Instruction de lecture /écriture.
Instruction d’affectation
L’affectation est une instruction qui stocke la valeur d’une expression dans une
variable. Autrement dit, ça consiste en fait à remplir où à modifier le contenu
d’une zone mémoire
Syntaxe d’affectation :
X ← exp ; se lit : X reçoit exp.
X : variable
← : L’opérateur d’affectation. L’expression d’affectation ne modifie que ce
qui est à gauche de la flèche.
exp : expression. Cette expression peut être une valeur, une autre variable
ou une chaine de caractère. De plus, la variable (X) et l’expresion (exp)
doivent être de même type.
Beaucoup de langages de programmation (C/C++, Java, . . .) utilisent le signe
égal = pour l’affectation ←. Attention aux confusions :
l’affectation n’est pas commutative : A=B est différente de B=A
l’affectation est différente d’une équation mathématique. En effet, A = A + 1
a un sens en langages de programmation, alors que A + 1 = 2 n’est pas
possible en langages de programmation et n’est pas équivalente à A=1
KHOUKHI Saâdia L’algorithmique
Définition
Définitions et concepts de base Représentation
Algorithmique- Notions et instructions de base Notions Fondamentales
Les structures Conditionnelles Variable
Les boucles Instructions
Opérations
Instruction d’affectation
Déclaration ;
Variables i, j,k : entier
x, y : réel
OK : booléen
ch1, ch2 : chaîne de caractères
Exemples Valides :
i←1 j←i k ←i+j
x ← 10.3 OK ← FAUX ch1 ← ”SMI”
ch2 ← ch1 x←4 x←j
Exemples non valides :
Solution :
Algorithme Exemple 1 Explication :
Variables 1 On déclare une variable a de type en-
a : entier tier.
Début
2 On affecte la valeur 12 à la variable a.
a ← 12
a←7 3 On modifie la valeur de la variable a.
Fin
Solution :
Algorithme Exemple 2 Explication :
Variables 1 On déclare deux variables a et b de
a : chaine type chaine de caractères.
b : chaine 2 On affecte la valeur "hello" à la va-
Début riable a.
a ← "hello" 3 On affecte la valeur "world" à la va-
b ← "world" riable b.
Fin
Instructions d’entrées-sorties
Algorithme Calcul_double
Variables
A, B : entier
Début
ecrire("entrer le nombre)
lire(A)
B ← 2*A
ecrire("le double de", A,"est :", B)
Fin
Algorithme OperationArithmetique
Variables
a, b, resultat : entier
Début
ecrire("donner la valeur de a ")
lire(a)
ecrire("donner la valeur de b ")
lire(b)
ecrire("La variable a vaut : " a)
ecrire("La variable b vaut : " b)
resultat ← a + b
ecrire("Résultat : ", resultat)
Fin
Il s’agit d’un type dont les seules valeurs sont vrai ou faux. Les opérateurs logiques
(opération) sur ce type sont :
L’opérateur ET peut être perçu comme l’opération de multiplication entre deux
booléens.
L’opérateur OU peut être perçu comme l’opération d’addition entre deux boo-
léens.
L’opérateur NON correspond à la négation. La négation d’une chose vraie est
faux et celle d’une chose fausse est vraie.
Exemples :
a← faut, b← faut, a ET b ← faux
a← faut, b← vrai, a ET b ← faux
a← faut, b← vrai, a OU b ← vrai
a← faut, NON a ← vrai
Algorithme OperationLogique
Variables
a, b, resultat : booleen
Début
a ← vrai
b ← faux
resultat ← a ET b
ecrire(" a ET b vaut : ", resultat)
resultat ← a OU b
ecrire(" a OU b vaut : ", resultat)
resultat ← NON a
ecrire(" NON a : vaut :", resultat)
Fin
Une chaîne est une suite de caractères. Une chaîne est encadrée par deux Guillemets.
Les opérations prédéfinies sur les chaînes sont :
les comparaisons : <, >, =, ... selon l’ordre lexicographique.
La Concaténation représenter par un & : elle fournit la chaîne obtenue par
concaténation des deux chaînes.
Exemple :
‘art’ > ‘cours’, ‘courage’ > ’cours’.
Écrire 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("entrer votre nom)
lire(Nom)
ecrire("entrer votre prénom)
lire(Prenom)
Nom_Complet ← Nom & Prenom
ecrire("Votre nom complet est : ", Nom_Complet)
Fin
Avec les booléens, il faut faire attention aux règles de priorités de calculs. Le cas
échéant, on doit donc mettre des parenthèses au bon endroit. En conséquence, on
retiendra bien les deux règles suivantes :
L’opérateur NON est prioritaire sur le ET et le OU.
L’opérateur ET est prioritaire sur le OU.
Ainsi, l’opération a ET b OU c est équivalente à (a ET b) OU c et elle est bien
différente de a ET (b OU c).
4 Les boucles
Algorithme AffichageValeurAbsolue
Variable x : réel
Début
Ecrire " Entrez un réel : "
Lire(x)
Si x < 0 alors
x ← -x
Fin si
Ecrire ("la valeur absolue de ", x, "est :",x)
Fin
Algorithme AffichageValeurAbsolue
Variable x : réel
Début
Ecrire " Entrez un réel : "
Lire(x)
Si x < 0 alors
x ← -x
Ecrire ("la valeur absolue de ", x, "est :", x)
sinon
Ecrire ("la valeur absolue de ", x, "est :",x)
Fin si
Fin
Exercice
Ecrire un algorithme qui demande un nombre entier à l’utilisateur, puis qui teste
et affiche s’il est divisible par 3.
Résolution
Algorithme Divsible_par3
Variable n : entier
Début
Ecrire( " Entrez un entier : “)
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n’est pas divisible par 3")
Finsi
Fin
Tables de vérité
AlgorithmeMeteo
Variables beau, chaud : booléen
Debut
ecrire("Fait-il beau ? ")
lire(beau)
ecrire("Fait-il chaud ?")
lire(chaud )
SI chaud ALORS
ecrire("il fait chaud")
SINON
SI beau ALORS
ecrire("Il fait beau, c’est déjà pas mal...")
SINON
ecrire("Désolé pour vous... ")
FIN SI
FIN SI
ecrire("A demain... ")
Fin
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si n < 0 alors
Ecrire ("Ce nombre est négatif")
Sinon
Si n = 0 alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
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
Fin
Remarque : dans la version 2 on fait trois tests systématiquement alors que dans la
version 1, si le nombre est négatif on ne fait qu’un seul test.
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer d’abord
les conditions les plus probables (minimiser la complexité).
KHOUKHI Saâdia L’algorithmique
Définition
Définitions et concepts de base Les conditions simples
Algorithmique- Notions et instructions de base Conditions composées
Les structures Conditionnelles Conditions multiples - SI..ALORS SINON SI...ALORS SINON
Les boucles Conditions imbriqués-SI ... SI ... SINON
Conditions de type cas
Le prix de photocopies dans une reprographie varie selon le nombre demandé : 0,5
DH la copie pour un nombre de copies inférieur à 10, 0,4DH pour un nombre compris
entre 10 et 20 et 0,3DH au-delà.
Écrivez un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées,
puis calcule et affiche le prix à payer.
4 Les boucles
Boucle Tant que
Boucle Pour
Les boucles Répéter . . . jusqu’à . . .
Choix d’un type de boucle
Introduction générale
Syntaxe
TantQue (condition)
instructions
FinTantQue
Exemple-1
Écrire un algorithme qui détermine le premier nombre entier N tel que la somme de 1
à N dépasse strictement 100.
Exemple-1
Écrire un algorithme qui détermine le premier nombre entier N tel que la somme de 1
à N dépasse strictement 100.
AlgorithmeSommeEntier
Variables
som, i : entier
Debut
i←0
som ← 0
TantQue (som <=100)
i ← i+1
som ← som+i
FinTantQue
Ecrire (" La valeur cherchée est N= ", i)
Fin
Exemple-2
Exemple-2
AlgorithmeDistributeurCafe
Variable
rep : chaine de caractere
Debut
rep ← lire("Voulez vous un café ? (O/N)")
SI rep ≠ ”O”ETrep ≠ ”N”ALORS
ecrire ("Saisie erronnée. Recommencez")
rep ← lire("Voulez vous un café ? (O/N)")
SI rep ≠ ”O”ETrep ≠ ”N”ALORS
. . .. . .
FINSI
Fin
Exemple-2
AlgorithmeDistributeurCafe
Variable
rep : chaine de caractere
Debut
rep ← lire("Voulez vous un café ? (O/N)")
TANTQUE (Rep ≠ ”O”ETRep ≠ ”N”)
ecrire ("Saisie erronnée. Recommencez")
rep ← lire("Voulez vous un café ? (O/N)")
FIN TANTQUE
ecrire ("Saisie acceptée")
Fin
Syntaxe
Pour (compteur allant de initiale) jusqu’à (fin) par pas (valeur du pas)
instructions
FinPour
Remarques
Remarque : le nombre d’itérations dans une boucle Pour est connu avant le
début de la boucle
Compteur est une variable de type entier (ou caractère). Elle doit être déclarée.
Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être mentionné,
car par défaut sa valeur est égal à 1. Dans ce cas, le nombre d’itérations est égal
à finale - initiale+ 1
Initiale et finale peuvent être des valeurs, des variables définies avant le début
de la boucle ou des expressions de même type que compteur
Exemple
Exemple
AlgorithmeMultiplication9
Variable
i, mult : Entier
Debut
POUR i DE 1 A 10 PAS DE 1
mult ← i*9
Ecrire( i,"*9 =",mult)
FINPOUR
Fin
La boucle Pour est un cas particulier de Tant Que (cas où le nombre d’itérations est
connu et fixé). Tout ce qu’on peut écrire avec Pour peut être remplacé avec TantQue
(la réciproque est fausse)
Pour [compteur allant de initiale] jusqu’à [fin] par pas [valeur du pas]
instructions
FinPour
Exemple 2
Calculer x à la puissance n où x sont des entiers non nul et positifs (en utilisant les
boucles Pour et TantQue)
Exemple 2
Calculer x à la puissance n où x sont des entiers non nul et positifs (en utilisant les
boucles Pour et TantQue) AlgorithmePuissanceBouclePour
Variables
x, n, i, puiss : entier
Debut
Ecrire(" Entrez respectivement les valeurs de x et n")
Lire(x, n)
puiss ← 1
Pour i allant de n à 1 par pas -1
puiss ← puiss*x
FinPour
Ecrire (x,"à la puissance",n,"est égal à" ,puiss)
Fin
Exemple 2
Calculer x à la puissance n où x sont des entiers non nul et positifs (en utilisant les
boucles Pour et TantQue) AlgorithmePuissanceBoucleTantQue
Variables
x, puiss : reel
n, i : entier
Debut
Ecrire(" Entrez respectivement les valeurs de x et n")
Lire(x, n)
puiss ← 1
i←1
TantQue (i<=n)
puiss ← puiss*x
i ← i+1
FinTantQue
Ecrire (x,"à la puissance",n,"est égal à" ,puiss)
Fin
Répéter
instructions
Jusqu’à condition
Exemple
Exemple
Variables
som, i : entier
Debut
som ← 0
i←0
Répéter
i ← i+1
som ← som+i
Jusqu’à ( som > 100)
Ecrire (" La valeur cherchée est N= ", i)
Fin