Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Algorithmique et Programmation
A. Alikacem
2
Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours
Étapes de la construction d'un programme Composantes de base d'un ordinateur Structures de base d'un algorithme
3
Étapes de la construction d’un programme
Algorithme Problème Transcription Description formelle Programme Compilation Langage de programmation Ordinateur Exécution Solution Langage machine
4
Vous avez dit algorithme ?
5
Expression des algorithmes
Le pseudo-code (pseudo-langage) Dérivé du langage Pascal. Permet d’être précis, sans syntaxe lourde lisible sans effort Peut être traduit facilement dans un langage de programmation Il nous évite de rattacher la résolution d’un problème à un langage de programmation particulier Il nous prépare à l’acquisition de bonnes habitudes de programmation: il conduit à la programmation structurée il favorise la conception des algorithmes car il est compatible avec la démarche descendante.
6
Pseudo-Code #include <stdio.h> int main () { int n, i;
Faire la différence entre les contraintes propres à un langage et les difficultés inhérentes à un problème donné Demander n Répéter i [0,n] début si (i % 2) 0 alors Afficher i fin #include <stdio.h> int main () { int n, i; scanf ("%d", &n); for (i=0; i<=n; i++) { if (i%2) { printf ("%d\n", i); } return 0; Plus abstrait, plus lisible, plus concis... Met en avant l'essence de l'algorithme
7
Expression des algorithmes
Le pseudo-code (pseudo-langage) Cette représentation a un intérêt pédagogique, elle facilite l’apprentissage. Introduit les caractéristiques de la machine théorique : Un algorithme va être représenté comme une suite d’actions pouvant être exécutées par une machine idéale. Notion d’action
8
Les actions élémentaires (primitives)
Définition Une instruction qui peut être comprise directement par le système que l'on désire programmer. Exemple : une tortue radio-commandée Les primitives
9
Les actions élémentaires (primitives)
10
Les actions élémentaires (primitives)
11
Les actions élémentaires (primitives)
12
Les actions élémentaires (primitives)
13
Les actions élémentaires (primitives)
?
14
Les actions élémentaires (primitives)
15
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case » ? Une primitive !!!
16
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « reculer d’une case » ? + + =
17
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case en diagonale » ?
18
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case en diagonale » ? +
19
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case en diagonale » ? + +
20
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case en diagonale » ? + + +
21
Les actions élémentaires (primitives)
Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : « avancer d’une case en diagonale » ? + + + =
22
Architecture de Von Neuman
Un ordinateur devrait être composé de: - unité de commande et contrôle (ucc) - unité arithmétique et logique (ual) - mémoire principale (mp) - périphériques d’entrée/sortie (pe/ps) ps ual ucc mp pe
23
Les composantes d’un ordinateur
Les périphériques d’entrée De l’usager à l’ordinateur Stockées dans la mémoire principale de l’ordinateur afin d’être manipulées. Dans un algorithme DEMANDER information action élémentaire
24
Les composantes d’un ordinateur
Les périphériques de sortie De l’ordinateur à l’utilisateur On les utilisera donc pour montrer les résultats du travail d’un programme. Dans un algorithme AFFICHER information IMPRIMER information actions élémentaires
25
Les composantes d’un ordinateur
La mémoire principale Conserver les données entrées par l’usager et de stocker les résultats intermédiaires et finaux. Pour traiter de l’information par un ordinateur, il faut que cette dernière se retrouve en mémoire principale.
26
La mémoire principale 01000000 01100111 00111111 … 0x0109 0x010a
Plusieurs cellules (cases, mots) … 0x0109 0x010a 0x010b Chaque cellule a sa propre adresse contient toujours une suite de bits
27
La mémoire principale 01000000 01100111 00111111 … a lettre temp
Plusieurs cellules (cases, mots) Nous pouvons leur associer un nom Notion d’identificateur
28
La mémoire principale ‘@’ ‘e’ ‘?’ … a lettre temp Notion de type
Plusieurs cellules (cases, mots) Nous pouvons interpréter la signification du contenu différemment (associer un type) Notion de type
29
La mémoire principale ‘@’ ‘e’ 4 a lettre temp Notion de variable
Plusieurs cellules (cases, mots) nom + type = variable une abstraction d’un emplacement mémoire. Notion de variable Comment l’utiliser ? temp 4 temp temp + 1 Le symbole “ ” est appelé opérateur d’affectation ou d’assignation.
30
Un exemple ??? x y ??? DEBUT DEMANDER x y x x 0 AFFICHER x
AFFICHER y FIN
31
Un exemple ??? x y ??? 5 DEBUT DEMANDER x y x x 0 AFFICHER x
AFFICHER y FIN
32
Un exemple x y ??? 5 5 DEBUT DEMANDER x y x x 0 AFFICHER x
AFFICHER y FIN
33
Un exemple x y 5 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y
5 y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y FIN
34
Un exemple x y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y
y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y FIN
35
Un exemple x y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y
y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y FIN
36
Un exemple x y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y
y 5 DEBUT DEMANDER x y x x 0 AFFICHER x AFFICHER y FIN
37
Les composantes d’un ordinateur
L’unité arithmétique et logique (UAL) Composante d’un ordinateur en charge de toutes les opérations de calcul, de comparaison et de logique. Primitives pour le calcul arithmétique
38
L’unité arithmétique et logique
Opérateurs arithmétiques Opérateur Exemple x=9 & y=4 + x + y 13 - x – y 5 * x * y 36 / x / y 2,25 x y 2 % x % y 1
39
L’unité arithmétique et logique
Opérateurs relationnels Opérateur Exemple x=9 & y=4 = x = y FAUX x y VRAI > x > y x y < x < y x y
40
L’unité arithmétique et logique
Opérateurs logiques NON Conditions NON conditions VRAI FAUX Il fait soleil Il ne fait pas soleil
41
L’unité arithmétique et logique
Opérateurs logiques ET x y x ET y FAUX VRAI
42
L’unité arithmétique et logique
Opérateurs logiques OU x y x OU y FAUX VRAI
43
L’unité arithmétique et logique
Évaluation des expressions Les parenthèses et : NON , + , - (monadiques) + élevée * , / , , % . +,- (dyadiques) > , , < , = , ET OU + faible
44
L’unité arithmétique et logique
Un exemple d’évaluation d’expression: x * x ³ 0 ET ( x + 1 ) * ( x + 1 ) < 16 2 9 4 V 3 V
45
Les composantes d’un ordinateur
L’unité de commande et de contrôle (UCC) En charge de contrôler le déroulement d’un programme. Elle dirige le fonctionnement de toutes les autres unités (UAL, mémoire, entrée/sortie) Normalement, un programme s’exécute instruction par instruction, dans l’ordre (de haut en bas) ou elles sont écrites. Cependant, et très souvent, on aura besoin de briser la séquentialité: en utilisant des structures de contrôle d’alternatives; en utilisant des structures de contrôle de répétitions; en faisant des appels de sous-programmes, caractérisés par une référence (appel) à un bloc à l’intérieur d’un autre bloc Primitives de structures de contrôle
46
Unité de commande et contrôle
Structures alternatives Condition Instructions VRAI FAUX SI condition est vrai alors DÉBUT Instructions FIN
47
Unité de commande et contrôle
Structures alternatives SI x < 100 alors DÉBUT x x + 1 y 25 FIN VRAI X < 100 x x + 1 y 25 FAUX
48
Unité de commande et contrôle
Structures alternatives SI condition est vrai alors DÉBUT Instructions v FIN SINON Instructions f VRAI Condition Instructions v FAUX Instructions f
49
Unité de commande et contrôle
Structures alternatives SI x = 0 alors DÉBUT x 100 FIN SINON x x - 1 VRAI x = 0 X 100 FAUX x x - 1
50
Unité de commande et contrôle
Structures itératives n fois? Instructions FAUX VRAI Compteur implicite RÉPÉTER n FOIS DÉBUT Instructions FIN
51
Exemple Le factoriel n Début Si n = 1 ou n = 0 alors Début fact 1 Fin
0. Début Si n = 1 ou n = 0 alors Début fact 1 Fin Sinon Début fact 1 i 2 Répéter n-1 fois Début fact fact * i i i + 1 Fin Fin Fin
52
Unité de commande et contrôle
Structures itératives n fois? Instructions FAUX VRAI Compteur explicite RÉPÉTER i [1,n] DÉBUT Instructions FIN
53
Exemple Le factoriel n Début Si n = 1 ou n = 0 alors Début fact 1 Fin
0. Début Si n = 1 ou n = 0 alors Début fact 1 Fin Sinon Début fact 1 Répéter i [2, n] Début fact fact * i Fin Fin Fin
54
Unité de commande et contrôle
Condition FAUX VRAI Instructions Structures itératives RÉPÉTER DÉBUT Instructions FIN TANT QUE condition
55
Exemple Le factoriel n Début Si n = 1 ou n = 0 alors fact 1 Fin
Sinon fact 1 i 1 Répéter fact fact * i i i + 1 Tant Que i < n+1
56
Unité de commande et contrôle
Structures itératives condition Instructions VRAI FAUX TANT QUE condition DÉBUT Instructions FIN
57
Exemple Le factoriel n Début Si n = 1 ou n = 0 alors fact 1 Fin
Sinon fact 1 i 2 Tant Que i < n+1 fact fact * i i i + 1
58
L’algorithmique impérative
Propriétés : Un nombre fini d’étapes Un nombre fini d’opérations par étape Une suite d’opérations primitives Fournit un résultat (décidabilité) Chaque opération est non ambiguë Effective calculabilité
59
L’algorithmique impérative
Propriétés : Un algorithme doit être indépendant du langage de programmation utilisé. Un programme est un algorithme exprimé dans un langage de programmation capable d’être exécuté par un ordinateur. Peut être exprimé de manière formelle : - en pseudo-code - par un algorigramme - dans un arbre algorithmique - dans un diagrammes structurés
60
Algorithme, programme et ordinateur
Lab#2 Algorithme Problème Transcription (?) Description formelle (?) Programme Compilation Langage de programmation Exécution (?) Ordinateur Solution Langage machine (?)
61
{A: CL est un caractère}
Algorithme: un traitement de texte! début Demander CP {A: CP est un caractère} Afficher CP TANT QUE CP ‘!’ Demander CL {A: CL est un caractère} SI CL = CP ALORS Afficher le caractère de soulignement '_ ' fin Afficher CL CP CL Qu’affiche cet algorithme si les données lues sont: " Etes vous efficace? ... Bonne chance!! " (Les guillemets ne font pas partie des données)
62
Rosalie dans le labyrinthe
Sortie Entrée Les primitives Faire un pas devant elle (se rendre au centre du carré situé immédiatement devant elle). Tourner d'un quart de tour à gauche ou à droite. Détecter un mur placé devant lui (c'est à dire répondre à la question "y a-t-il un mur en face?"; la réponse est oui ou non. Détecter l'entrée du labyrinthe (en l'absence de ce test, Rosalie pourrait sortir par là où elle est entrée!). Détecter la sortie du labyrinthe (en l'absence de ce test, Rosalie ne s'arrêterait pas et continuerait à longer le mur à l'extérieur!).
63
Algorithme: Sortir du labyrinthe en longeant le mur de gauche
Début Avancer d'un pas Faire un quart de tour à gauche Tant que Rosalie n'est pas sortie Tant que mur en face Faire un quart de tour à droite Fin Fin.
64
Il a été démontré que tout cube est égal à la somme
de nombres impairs consécutifs. Par exemple : 1 = 1 8 = = = Décrivez un algorithme qui lit un entier n strictement positif et donne une décomposition de n3.
65
Détermination des nombres de début et de fin de la série
n3 n*n*n s 0 p 1 k 1 Tant que (s n3) début si (s>n3) alors s s - (2*k-1) k k + 1 fin si ( s<n3) alors s s + (2*p -1) p p + 1 x 2*k -1 y 2* (p-1) -1
66
Affichage du développement du cube de n
début n3 n*n*n Afficher n3 " = " k premier Tant que (k < dernier) Afficher k " + " k k+2 fin Afficher dernier
Présentations similaires
© 2025 SlidePlayer.fr Inc.
All rights reserved.