Certains voient, à tort, dans l'ordinateur une machine pensante et intelligente, capable de résoudre bien des problèmes. En fait, celui-ci neserait capable de rien si quelqu'un (leprogrammeur en l'occurrence) ne lui avaitfourni la liste des actions à exécuter.
Rappel sur le fonctionnement de l’Ordinateur
La mémoire contient des instructions et des données
?? a*x +b= 0 ??
Je veux informatiser ce problème et le rendre exploitable à travers mon ordinateur.Qu’est ce que je dois faire ?
Algorithme
Un algorithme est une suite finie derègles àappliquerdans un ordre déterminé à un nombre fini dedonnéespour arriver, en un nombre fini d'étapes, à un certainrésultat, et cela indépendamment des données
Définition :
C’est un pseudo-langage qui est conçu pour résoudre les problèmes et applicationssans aucunecontrainte due aux langages de programmation etaux spécificités de la machine. Ce pseudo-langage sera ensuite traduit et codé dans le langage de programmation désiré.
Définition :
Le langage Assembleur est un langage qui utilise des instructions sous forme symbolique (ADD, MOVE).
L’assembleur est lié au microprocesseur, puisque c’est le seul langage que le microprocesseur comprend.
Définition :
On appelle langage de programmation tout ensemble fini de mots réservés qui permettent de traduire les instructions de l’algorithme afin de l’exécuter par l’ordinateur.
Exemple :
Turbo Pascal, Cobol, Fortran, C, Delphi, Visual Basic (VB), C++, Java etc
Définition :
Le programme source est le premier résultat de la traduction d’un algorithme en un langage évolué :
Un nouvel ensemble d’instructions non exécutables
directement par la machine
Définition :
On appelle compilateur tout programme spécial qui permet d’avoir un programme exécutable à partir d’un programme source:
Le programme ainsi obtenu est appelé
programme Objet
Démarche à suivre pour résoudre un problème donné:
Identifier les données du départ (entrées) et celle(s) qu’il faut obtenir (sorties);
Structurer les données (variables ou constantes, type );
Réfléchir pour déterminer les action nécessaires à l’obtention des résultats ; Présenter les résultats.
Objet
Définition :
Un objet est toute partie identifiable de l’information au cours d’un traitement.
Il est caractérisé par son nom, son type et sa valeur.
L’ensemble des objets manipulés par un algorithme est appelé:
environnement de cet algorithme.
Remarque :
Les objets manipulés par un ordinateur sont :
Les Constantes et Les Variables
Définition :
Les Constantes désignent des références à des valeurs invariantes dans le programmeSyntaxe de la déclaration :
Constante Nom_Constante=Valeur
Exemple :
ConstantePi = 3.14
Définition :
Ce sont des références (adresses mémoires) où vont être stockées des valeurs variables. Les différentes valeurs d’une référence vont appartenir au type de données auquel appartient la référence.
Remarques :
1°- Le nom d’une variable ⇒ suite de caractères qui permet d’identifier
la variable d’une manière unique dans un algorithme.
2°- Il existe différents types de variables.
Définition :
C’est l’ensemble des nombres entiers positifs ou négatifs.
Syntaxe de la déclaration :
Variable variable1,variable2,… :Entier
Exemple :
a et b sont, par exemple,
Variablea,b :Entier les coefficients de l’équation : ax + b = 0
Définition :
C’est l’ensemble des nombres réels, c’est à dire les nombres décimaux sans limitation.
Syntaxe de la déclaration :
Variable variable1,variable2,… :Réel
Exemple :
Variablex,y :Réel
Définition :
C’est une suite de caractères, c’est à dire des combinaisons de caractères (lettres, chiffres, symboles..).
Syntaxe de la déclaration :
Variable variable1,variable2,… :Caractère
Exemple :
Variable Nom, Catégorie :Caractère
Définition :
Il s’agit des objets qui ne peuvent prendre que deux valeurs vrai ou faux.Syntaxe de la déclaration :
Variable variable1,variable2,… :Booléen
Exemple :
Variable Décision : Booléen
Autres objets à déclarer
Un tableau permet de représenter un ensemble de valeurs ayant des propriétés communes et appartenant toutes au même type. Ces variables sont identifiées par un même nom mais un numéro de repère(indice) pour chacun.
Autres objets à déclarer
Ce sont des sous-programmes auxquels on peut faire référence à l’intérieur d’un programme . Ils sont conçus pour éviter les répétitions et pour découper des programmes jugés trop longs; ce qui facilite la lisibilité du programme principal.
Définition :
On appelle instruction toute commande élémentaire que l’on doit appliquer sur des objets pour avoir des sorties bien définies.
Définition :
Une action est un événement qui change l’état d’un objet d’un état initial donné à un état final désiré. Une action a une durée d’exécution finie et un effet propre et bien défini. Chaque action porte sur des objets sur lesquels elle s’exécute :
L'Action est une seule instruction ou un groupe d’instructions
La partie manipulation utilise les différents objets déclarés dans la partie déclaration et leur applique des opérations afin de retourner le(s) résultat(s) attendu(s) par le programmeur. Pour ce fait, il y a différentes actions, dites instructions, à savoir :
• Instructions de dialogue Homme-Machine ;
• Instructions d’affectation ;
• Instructions à structure alternative ;
• Instructions à structure répétitive.
• Etc…
L’affichage des informations:
Pour faire comprendre qu’il faut afficher des informations à l’écran, on utilise l’instruction écrire qui obéit à la syntaxe suivante :
Écrire(Variable ou ‘Message’)
Exemples : Écrire (‘ Saisissez la valeur de a ’)
Écrire (‘ Saisissez la valeur de b ’)
Écrire (‘ Saisissez les valeurs de a et b ’)
Écrire (‘Le résultat trouvé est :’,r )
Écrire(r)
La Saisie des informations:
Pour indiquer dans un algorithme que telle donnée doit être lue par le système, on utilise l’instruction lire qui obéit à la syntaxe suivante :
Lire(Variable)
Exemple :
Écrire (‘ Saisissez la valeur de a ’)
Lire(a)
Définition:
C’est le stockage d’une valeur à un endroit spécifique(variable). Pour affecter une valeur à une variable, on écrit :
Variable Valeur |
Exemple :
Variable valeur 1 + valeur 2
Variable valeur 1 * valeur 2 Variable valeur + Variable1
Chaque fois qu’on procède à une nouvelle affectation, l’ancien contenu de la mémoire est perdu et un nouveau contenu est placé dans la mémoire.
Les constantes correspondent à des zones mémoires dont le contenu ne peut pas varier.
Quels résultats produit l’algorithme suivant ? Les types de variables sont-ils corrects
Titre : Calcul
Variable A: Entier
C,B : Réel
D : caractère
E : Booléen
Début
A ← 30
B ← A * 2
Écrire('B=' , B)
C ← (B + A)/4
B ← C / 5
D ← ‘Amine’
E ← (A > 40) Ou (C < B)
Écrire('les valeurs obtenues sont : A = ' , A ,
'B = ' ,B , ' C = ', C , ' D = ', D, ' E = ', E) Fin
Instruction A B C D E
Après l’instruction
A ← 30 30 ————
Après l’instruction
B ← A * 2 30 60 ———
Après l’instruction
C ← (B + A)/4 30 60 22.5 ——
Après l’instruction
Après l’instruction
Après l’instruction
E ← (A >40) Ou (C<B)30 4.5 22.5 Amine FauxÉnoncé:
Écrire l’algorithme permettant le calcul de la surface d’un cercle connaissant son rayon :
Surface = π* Rayon2
Manipulation La valeur du rayon La Surface calculée SolutionTitre : Surface d’un cercle Déclaration : Constante Pi=3.14VariableRayon : Entier * Donnée d’entrée* Variable Surface : Réel * Donnée de sortie* Manipulation : DEBUTÉcrire('Saisir la valeur du rayon' ) Lire(Rayon) Surface Rayon * Rayon * Pi Écrire (' La Surface du cercle est : ', Surface) FIN Exemple : Écrire l’algorithme qui permet de déterminer le salaire mensuel d’un commercial sachant que ce salaire comporte un montant fixe de 4000 DHS et une commission qui représente 10% du chiffre d’affaire réalisé par mois. Ce qu’il faut faire - Analyse du problème• Recenser les données dont on dispose, celles qu’on cherche à produire • Choisir les actions à utiliser pour résoudre le problème - Présentation de l’algorithme* Déclarer toutes les données utilisées (variables, constantes, types) * Organiser les actions * Présenter les résultats AlgorithmeTitre : Commission Déclaration :
Manipulation : DEBUT Écrire ('Donner le CA mensuel en DHS') Lire(CA) Com CA * 10/100 Sal Com + M Écrire ('Le salaire mensuel est de : ', Sal, ' en DHS ' ) FIN Moyenne = [ 3 * Note(Biologie) + 2* Note(Géologie) + Note(LCI)] / 6 Indication :
Entrées: Sortie: NB,NG,NLCI MG Les conditions: On appelle condition simple toute expression de la forme : Variable 1 Opérateur Variable 2
i) Les opérateurs Arithmétiques : ii) Les opérateurs de Comparaison : Pour exprimer les conditions, on utilise les opérateurs conditionnels suivants :
iii) Les opérateurs logiques de relation : On peut combiner des conditions à l’aide des opérateurs logiques :
Instructions à structure alternative (5)Les " tables de vérité "
Instructions à structure alternative (6) Exemple :
Instructions à structure alternative (7)Priorités des opérateurs Priorité de *, / div et % par rapport à + et 5 + 9 * 3 = 32 et non 42 5*9+3 = 48 et non 60 Pour les opérateurs de même priorité, associativité à partir de la gauche 15 / 5 * 3 = 9 et non 1 5 – 2 + 4 = 7 et non –1 On peut utiliser des parenthèses pour changer l’ordre des opérations : 15 / (5 * 3) = 1 (5 + 9 ) * 3 = 42 Instructions à structure alternative (8)Opérateurs et variables: Variables de type entier *, / , % , div , + et - Variables de type Réel *, / , + et - Variables de type caractère ou chaîne de caractères + , CONCAT , Suc, Pred Variables de type Booléen Les opérateurs logiques de relation : et, ou, non L’instruction Si : Pour exprimer le fait que des instructions vont être exécutées dans un cas alors que d’autres instructions peuvent être exécutées dans l’autre cas, on utilise une structure alternative.Syntaxe : Sicondition alors Actions 1 [Sinon Actions 2] Option Facultative Finsi
Instructions à structure alternative (10) Exemples :
Exemple : Dans l’exercice où on a calculé la moyenne générale, Afficher ‘Admis’ si un étudiant a une moyenne générale >=10 et Afficher ‘Ajourné’ dans le cas contraire (Moyenne générale < 10). Solution : …………….(Reste de l’algorithme) Si (MG >= 10) alors Écrire ('Admis') Sinon Écrire ('Ajourné') Finsi FINExercice : Écrire l’algorithme qui permet de calculer le maximum de deux entiers quelconques. Solution : Titre : Maximum Variable a ,b, max : entier Début Écrire('Saisir deux entiers a et b ') Lire(a, b) Si (a > b) alors max a Sinon max b Finsi Écrire ('le maximum de ' , a , ' et de ' , b, ' est : ' , max) Fin Exercice : Écrire l’algorithme qui permet de déterminer le salaire mensuel d’un commercial sachant que ce salaire comporte un montant fixe de 4000 DHS et une commission qui représente 5% du chiffre d’affaire réalisé par mois si ce chiffre est < 30000 et de 10 % dans le cas contraire . Algorithme
Instructions à structure alternative (15) Exercice : La commission est calculée de la manière suivante : •Commission = 15% du CA quand CA > 100000 •Commission = 10% du CA quand 30000 < CA < = 100000 •Dans le cas contraire pas de commission Écrire l’algorithme qui permet de déterminer le salaire mensuel. Algorithme
L’instruction Suivant Cas : L’instruction Suivant cas constitue une structure alternative à la forme en bloc [Si … Alors …Sinon…] et permet de formuler de manière plus simple le choix du groupe d’instructions.
Syntaxe : Exercice : Écrire l’algorithme qui permet de déterminer le nombre de jours d’un mois d’une année donnée ….Reste de l’Algorithme Suivant Cas M Faire Cas 2Action 1 Cas 1, 3, 5, 7, 8, 10 , 12 Action 2 Cas 4, 6, 9, 11 Action 3 Sinon Cas Écrire ( 'Attention : Mois Incorrect ') FINExercice : Un club de sport désire automatiser sa gestion. Les tarifs annuels d’inscription sont définis ainsi : De 0 à 3 ans ne sont pas autorisés à s’inscrire De 3 à 6 ans : gratuit De 6 à 12 ans: 1000 DHS De 12 à 26 ans : 1500 DHS Plus de 26 ans : 2000 DHS ….Reste de l’Algorithme Suivant Cas age Faire Cas 1, 2Écrire ('Vous n’êtes pas autorisé à vous inscrire ')
Cas 3..5 Fin SuivantÉcrire (' le montant à payer en DHS est : ' , Tarif ) FIN (1)Problème : Écrire un algorithme permettant d’afficher 300 fois le message : ‘‘ bonjour tout le monde’’. Solution Classique : DEBUTÉcrire (' Bonjour tout le monde ') 1 Écrire (' Bonjour tout le monde ') 2 . . Écrire (' Bonjour tout le monde ') 300 FIN(2) Boucle « Tant que Faire » L’instruction Tant que : On utilise cette instruction pour exécuter des actions tant qu’une condition est réalisée. Syntaxe :
Boucle « Tant que Faire » Sémantique : Si condition = T Tant que Valeur(T)=Vrai le bloc d'instructions R sera exécuté. Si valeur(T)=Faux on passe à l'instruction suivante. Avec TANT QUE le test est fait àPRIORI. Ø Il se peut que l'on ne rentre jamais dans la boucle. Boucle « Tant que Faire » Solution de l’exercice précédent :Variable i : Entier DEBUTi 0 * Initialisation * Tant que (i < 300) Faire Écrire (' Bonjour tout le monde ') i i + 1 Fin tant que FINBoucle « Tant que Faire » Exercice: Afficher tous les multiples de 9 inférieurs à 485
Boucle « Tant que Faire » Exemple 1:Dans cet algorithme combien de fois la boucle est- elle exécutée ?
Boucle « Tant que Faire » Exemple 2:Dans cet algorithme combien de fois la boucle est- elle exécutée ? Variable n : Entier Début n 15 Tant Que (n<>0) faire Écrire (n) n n-2 Fin Tant que Fin |
Boucle « Faire jusqu’à »
L’instruction Faire jusqu’à :
On utilise cette instruction pour exécuter des actions jusqu'à ce que une condition soit remplie.
Syntaxe :
Faire
Jusqu’à Condition |
Action |
Boucle « Faire jusqu’à »
Sémantique :
Si valeur(T)=Fauxla boucle est à nouveau exécutée.
Si Valeur(T)=Vrai, on passe à l'instruction suivante.
AvecFaire jusqu’àle test est fait àPOSTERIORI.
• Il y aura un passage dans la boucle. Le bloc d’instructions sera exécuté au moins une fois.
• La boucle n’est pas INCONDITIONNELLE. Onne connaît pas à l’avance le nombre d’itérations.
Boucle « Faire jusqu’à »
Titre : Boucle2 Variable i , y : Entier Début i 2 y 0 faire i+1 y y+i Écrire (' y = ' , y) Jusqu’à (i <7) Fin |
Valeurs de y ?
Boucle « Faire jusqu’à »
Titre : Boucle3 Variable i , y : Entier Début i 2 y 0 faire i+1 y y+i Écrire (' y = ' , y) Jusqu’à (i = 7) Fin |
Donner les valeurs de y
Boucle « Faire jusqu’à »
Exercice :
Écrire un algorithme permettant de calculer, pour un entier N> 0, la somme :
Boucle « Faire jusqu’à »
Solution:
Variable N,S, i: Entier DEBUT Écrire ('Saisir une valeur entière positive :') Lire(N) S 0 * initialisation de la boucle* i 0 Faire i i + 1 Écrire ('La somme : S =',S) FIN |
Boucle « Faire jusqu’à »
Exercice :
Écrire un algorithme permettant de calculer la somme :
Boucle « Pour »
L’instruction Pour :
La spécification de cette instruction c’est qu’elle limite le nombre de fois où doit se répéter le bloc Action
Boucle « Pour »
Exercice :
Écrire un algorithme permettant le calcul du factoriel d’un entier N > 0 donné : N !
Solution :
Titre :Factoriel Variable N :Entier i :Entier * i variable intermédiaire F :Entier i =compteur* DEBUT Écrire ('Saisir une valeur entière N > 0: ') Lire(N ) F 1 * initialisation de la boucle* i 0 Pour i 1 à N Faire F F*i Fin Pour Écrire ('Le factoriel de ', N , 'est : ', F) FIN |
Boucle « Pour »
Exercice :
Écrire l’algorithme permettant de calculer la moyenne des notes de N étudiants
Titre :Moyenne Variable N, i: Entier note, S, Moy: Réel DEBUT Écrire (' Saisir le nombre d’étudiants: ') Lire(N) S 0 * initialisation de la boucle* i 0 Pour i 1 à N faire Écrire (' Saisir la note de l’Etudiant ' , i , ': ') Lire(note) Fin Pour Moy S/N Écrire (' La moyenne est : ',Moy) FIN |
Solution :
Boucle « Pour »
Exercice
Écrire un algorithme permettant d’afficher les lettres de l’alphabet. Solution :
Titre :alphabet
Variablelettre: Caractère
* parcourir les lettres de l'alphabet*Début
Pour lettre 'a ' àlettre = 'z '
Faire
Écrire(lettre)
FinPour
Quelle répétition ou Boucle choisir ?
Sinombre d'itérations connu Alors BouclePour Sinon Siitération exécutée au moins une fois Alors BoucleFaire jusqu’à Sinon Boucle Tant que faire |
Boucles « Tant que faire » et « Faire jusqu’à »
Remarques: Soient T une condition et R l’action. Alors il y aéquivalenceentre les bouclesTant que faireetFaire jusqu’à. La syntaxe est la suivante:
Si T alors Faire R Jusqu ’à non(T) FinSi |
Tant Que T faire R Fin Tant Que |
~
Et
R Tant Que non(T) faire R Fin Tant Que |
Faire R jusqu ’à T |
~
Boucle « Pour »
Exercice :
1- Écrire un algorithme permettant de déterminer le Nèmeterme d’une suite numérique connaissant son premier terme et ses coefficients a et b et tels que:
Un= a * Un-1+ b ∀ 1 ≤n ≤N
2- Écrire un algorithme permettant de définir le rang N et le terme correspondant de la suite tels que UN> 1000
Solution :
1) Le nombre d’itérations est connu : BouclePour
Variable N, i: Entier
Variable a, b, S: Réel
DEBUT
Écrire ('Saisir la valeur de N: ')
Lire (N)
Écrire ('Saisir la valeur du premier terme et les coefs a et b:')
Pour i 1 à N faire
S a * S + b
Fin Pour
Écrire ( 'La somme de la série est : ',S)
FIN
Variable N: Entier Variable a, b, S: Réel DEBUT Écrire ('Saisir la valeur du premier terme et les coefs a et b:') Lire(S , a, b) N 0 Faire S a * S + b N N + 1 Jusqu’à S > 1000 Écrire ('La somme de la série est : ',S) Écrire ('Le rang est : ',N) FIN |
Solution :
2) Le nombre d’itérations inconnu : Boucle Faire jusqu’à
Boucle « Pour »
Exercice :
Écrire un algorithme permettant de calculer la somme :
Définition :
Un tableau permet de représenter un ensemble de valeurs ayant des propriétés communes et appartenant toutes au même type. Ces variables sont identifiées par un même nom mais un numéro de repère(indice) pour chacun.
Remarque :
1°- Un tableau peut être d’une ou plusieurs dimensions. 2°- La syntaxe de la déclaration d’un tableau change selon la dimension de ce dernier
Syntaxe de la déclaration :
• Tableau à une dimension :
TabNom-Tableau[nombre de valeurs supportées] : Type
• Tableau à plusieurs dimensions :
TabNom-Tableau[nombre de valeurs supportées en dimension1, nombre de valeurs supportées en dimension 2, ,… ] : Type
Exemples :
• Tableau à une dimension :
- Un tableau pour enregistrer les salaires de 30 employés : TabSalaires[30] :Réel
• Tableau à plusieurs dimensions :
- Une matrice d’entiers de 5 lignes et 7 colonnes :
TabMatrice-Test[5,7 ] :Entier
Matrice-Test[2,3] = 13
Définition :
Ce sont des sous-programmes auxquels on peut faire référence à l’intérieur d’un programme . Ils sont conçus pour éviter les répétitions et pour découper des programmes jugés trop longs ce qui facilite la lisibilité du programme principal.
Remarques :
1°- Les Fonctions et les Procédures sont caractérisées par des paramètres d’entrée et des paramètres de sortie. 2°-La fonction retourne une seule valeur tandis que La procédure peut retourner plusieurs valeurs ou aucune.