![Page 1: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/1.jpg)
CSII1a Algo/Progr 1
Les bases algorithmiques
Algorithmique CSII1A
![Page 2: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/2.jpg)
CSII1a Algo/Progr 2
Algorithmique, définition
C’est une méthode de résolution de problèmes,
Qu’est ce que l’algorithmique?
Développer des logiciels, écrire des programmes
S’applique à toutes sortes de problèmes mais plus particulièrement à l’informatique:
![Page 3: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/3.jpg)
CSII1a Algo/Progr 3
Objectif d’un logicielMettre en œuvre au sein d’un programme des fonctionnalités plus ou moins complexes
Reçoit des données en entrées, applique des traitements et renvoie des résultats en sorties
Logiciel:
Traitements
Données en entrées
Résultats en sorties
Stocke les données dans une base de données
Gère les interactions avec l’utilisateur au travers d’une interface (IHM), ...
![Page 4: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/4.jpg)
CSII1a Algo/Progr 4
Démarche algorithmique
Il est très difficile d’écrire directement un programme aux fonctionnalités complexes
Elle permet de passer du problème au programme, en écrivant un algorithme
L’algorithmique ou "démarche algorithmique " est une étape intermédiaire
![Page 5: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/5.jpg)
CSII1a Algo/Progr 5
Objectif de l’algorithmique
Modéliser les fonctionnalités nécessite de:
-Identifier les données en entrées
L’algorithmique se focalise sur l’aspect traitement: Modéliser les fonctionnalités à implémenter
La réalisation de la structure des données s’appuie aussi sur une phase de réflexion: l’analyse (Merise)
-Identifier les résultats en sorties
-Définir les traitements à appliquer
![Page 6: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/6.jpg)
CSII1a Algo/Progr 6
Du problème au programme
Passer du problème au programme:
Le problème:Fonctionnalités à mettre en œuvre dans un programe
Langage naturel
Le programme:Executable qui implémente les fonctionnalités
Langage informatique
L’algorithme:Données en entrées,
Résultats à obtenir,
traitements
Langage algorithmique
Par une étape intermédiaire: l’algorithme
![Page 7: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/7.jpg)
CSII1a Algo/Progr 7
Les langagesLes fonctionnalités à mettre en œuvre sont exprimées en langage naturel
Un algorithme est exprimé en pseudo-langage ou langage structuré
Un programme est écrit dans un langage de programmation donnéLe but est de traduire des instructions ou actions complexes en instructions compréhensibles par la machineCes instructions machines sont appelées primitives
![Page 8: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/8.jpg)
CSII1a Algo/Progr 8
Que contient un algorithmeUn algorithme contient la liste des actions à effectuer représentant un programme ou logiciel
Ceci indépendamment de l’implémentation sur machine et des détails qui en découlent:
-Syntaxe et utilisation du langage de programmation cible
-Déclaration et utilisation des bibliothèques, des fonctions, des types à utiliser,…
![Page 9: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/9.jpg)
CSII1a Algo/Progr 9
Représentation d’un algorithmePlusieurs manières de représenter un algorithmeOn peut l’exprimer en langage naturel, exemple une recette de cuisine
Ingrédients: (données en entrée)- 250gr de farine, 250gr de sucre, 250gr de beurre,250ml De lait, 3 oeufs
Objectifs: (résultat en sortie) Faire (et réussir) un gâteau quatre-quart
Exemple de recette: le Quatre-Quart:
![Page 10: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/10.jpg)
CSII1a Algo/Progr 10
RecetteRecette: (les traitements: l’algorithme )
-Faire fondre le beurre
-Mélanger la farine le sucre et les oeufs
-Rajouter le beurre
-Rajouter le lait jusqu’à obtention d’une pâte onctueuse
-Mettre au four 20min thermostat 7
-Dégustez...
![Page 11: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/11.jpg)
CSII1a Algo/Progr 11
Pseudo-langageC’est un langage simplifié proche du langage naturelLa syntaxe est souple contrairement à un langage de programmation
L’intérêt est dans la construction de la solution, sa cohérence et non dans les détails de mise en oeuvre
![Page 12: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/12.jpg)
CSII1a Algo/Progr 12
Pseudo-langage, exempleExemple affiche un message selon la grandeur d’une personneAlgo LaTailledébut Saisir taille si taille > 1,80 Alors Afficher ‘Grand’ sinon Afficher ‘petit’ fin
Comporte des mots clés qui permettent de structurer le langage: Algo, debut-fin, Si-Alors-Sinon
Afficher et Saisir sont des actions (instructions)
![Page 13: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/13.jpg)
CSII1a Algo/Progr 13
OrganigrammeModélisation du même algorithme sous forme d’un organigramme
DEBUT
Saisir Taille
FIN
NonTaille > 1,80 ?
Afficher ‘Petit’ Afficher ‘Grand’
Oui
![Page 14: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/14.jpg)
CSII1a Algo/Progr 14
Représentation, résuméL’idéal est de pouvoir écrire un algorithme directement en langage naturelEn l’état actuel de la technologie (machines et softs), c’est impossibleEn informatique de développement (écrire des programmes) on utilise le pseudo-langage
Les organigrammes seront plutôt utilisés en informatique industrielle: assembleur, automatisme (grafcet)
![Page 15: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/15.jpg)
CSII1a Algo/Progr 15
Les variablesL’exécution d’un programme nécessite de traiter, de calculer un grand nombre de données
Il est indispensable de pouvoir stocker ces données de manière temporaire durant le fonctionnement d’un programme
On va pour cela utiliser des variables
![Page 16: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/16.jpg)
CSII1a Algo/Progr 16
Variables, suiteVariable= Nom unique qui permet d’accéder à un emplacement en mémoire pour y stocker une valeur
Le contenu d’une variable et susceptible d’évoluer (modifier) tout au long de la durée de vie du programme
a 12
![Page 17: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/17.jpg)
CSII1a Algo/Progr 17
ConstantesA l’inverse des variables, les programmes utilisent parfois des valeurs invariantes pendant leur exécution
Exemple: PI = 3.1415
![Page 18: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/18.jpg)
CSII1a Algo/Progr 18
Règles de nommageTous les identifiants dans un même programme doivent être unique
Concerne: Les variables, les constantes, le nom du programme, les procédures & fonctions,...
Ces identifiants doivent respecter une syntaxe
-Le 1er caractère doit être une lettre ou le souligné _
-Les car. suivants: idem + chiffres
-Pas de car. espace, pas de car. spéciaux
![Page 19: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/19.jpg)
CSII1a Algo/Progr 19
Exemple d’identifiantsA correctUser_1 correctNom prenom erreur
1b erreur
Nom_prenom correct
Eviter d’utiliser les caractères accentués
![Page 20: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/20.jpg)
CSII1a Algo/Progr 20
Déclaration des variablesIl faut déclarer les variables et constantes avant de les utiliser, en début de programmeLes variables doivent être typéesExemple:
Algo LaTaillevar taille : réel début Saisir taille si taille > 1,80 Alors Afficher ‘Grand’ sinon Afficher ‘petit’ fin
![Page 21: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/21.jpg)
CSII1a Algo/Progr 21
Déclaration des constantesExemple:
Algo LePerimetreconst PI = 3.1415 var Per : réel début instructionsfin
La déclaration des constantes diffère de celle des variables: pas de type spécifiéNom constante = valeur
![Page 22: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/22.jpg)
CSII1a Algo/Progr 22
Affectation des variablesBut de l’affectation: Placer une valeur dans une variable, la valeur est mémorisée
a := 12 oua <- 12
Syntaxe: variable := valeur ( := ou <- )
Exemple:
![Page 23: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/23.jpg)
CSII1a Algo/Progr 23
Instructions d’entrées/sortiesCes instructions permettent d’interagir avec l’utilisateurAfficher un résultat: Afficher(<valeur>)
Saisir une valeur: Saisir <var>
Exemple: Afficher ( ‘x?’) Afficher ( ‘tva=’,tva)
exemple: Saisir (a)
![Page 24: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/24.jpg)
CSII1a Algo/Progr 24
Types de donnéesLes données manipulées par les programmes doivent toutes être typéesLes variables sont typés explicitement:
var : type
Les constantes sont typées implicitement PI = 3.1415, PI sera un réel
Les types : entier, réel, booléen, caractère, Chaîne de caractères, tableau
![Page 25: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/25.jpg)
CSII1a Algo/Progr 25
Type entierEnsemble des valeurs: ZOpérateurs arithmétiques: +, -, *
-DIV division entière
-MOD Modulo, reste de la division entière
-ENT Partie entière d’un réel
Exemple: 15 DIV 9 = 1, 15 MOD 9 = 6 ENT(3.1415) = 3
Opérateurs relationnels: =, <, >, >=, <=, <>
-Différent: <> ou !=
![Page 26: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/26.jpg)
CSII1a Algo/Progr 26
Type réelEnsemble des valeurs: ROpérateurs arithmétiques: +, -, *, /Opérateurs relationnels: idem entierReprésentation des nombres réels: notation scientifiqueExp: 3.1415 0.31415 . 10+1
![Page 27: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/27.jpg)
CSII1a Algo/Progr 27
Type booléenEnsemble des valeurs: vrai , fauxOpérateurs logiques: ET, OU, NONOpérateurs relationnels: idem entier
faux < vrai
![Page 28: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/28.jpg)
CSII1a Algo/Progr 28
Type caractèreChaque caractère est codé par un entiertable ASCII
Cette table permet de représenter 256 caractèresLe système UNICODE tend aujourd’hui à remplacer ASCII: Un caractère est représenté sur 2 octetsUNICODE permet de d’intégrer les principaux alphabets du monde (cyrillique, grec, asiatique,…)
Pour garder la compatibilité avec l’existant, le début d’UNICODE est la table ASCII
![Page 29: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/29.jpg)
CSII1a Algo/Progr 29
Type caractère, suite
Les caractères sont ordonnés (sur leur code ASCII):
‘0’ < ‘9’ < ‘A’ < ‘Z’ < ‘a’ < ‘z’On peut leur appliquer les opérateurs relationnelsAutres opérations:- ord(‘A’) = 65
Le caractère ‘A’ vaut 65, ‘B’= 66, ‘0’= 48,...
- chr(65) = ‘A’
![Page 30: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/30.jpg)
CSII1a Algo/Progr 30
Type Chaîne de caractères Regroupe plusieurs caractères, stocke du texte
Permet de représenter des mots, des phrases
Construire une chaîne à partir de 2 chaînes de caractères: opération de concaténation
Exemple: s1 := ‘bon’ s2 := ‘jour’ str := s1 + s2Str contiendra: ‘bonjour’
![Page 31: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/31.jpg)
CSII1a Algo/Progr 31
Type TableauStocke plusieurs données de même type
Tableau à 1 dimension, exemple:
tab : Tableau [1..100] d’entiers
Tableau à 2 dimensions, exemple:
tab : Tableau [1..100, 1..100] de réels
On peut créer des tableaux de dimension n
Accès à un élément du tableau: lecture ou écritureLecture: Afficher(tab[i])Ecriture: tab[i]:= val
![Page 32: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/32.jpg)
CSII1a Algo/Progr 32
Les instructions
-Instructions alternatives (ou sélectives)
-Instructions itératives (ou répétitives)
Ce sont les instructions de base en algorithmique-programmation que l’on retrouve dans tous les langages informatiques
Il existe 2 catégories d’instructions:
![Page 33: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/33.jpg)
CSII1a Algo/Progr 33
Les instructions alternativesInstruction Si-Alors, forme simple
Si condition Alors action(s) FinSi
-La condition est traitée, si elle est vrai, alors l’action (ou les) est exécutée
Instruction Si-Alors-sinon
Si condition Alors action1 sinon action2 FinSi
-La condition est traitée, si elle est vrai, alors l’action1 (ou les) est exécutée,-Si la condition est fausse, alors c’est l’action2 qui sera exécutée
![Page 34: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/34.jpg)
CSII1a Algo/Progr 34
Imbrications de siIl est possible d’imbriquer des structures si-alors-sinon dans la clause si et la clause sinonExemple:
Si cond Alors Si cond2 Alors act2 FinSiSinon Si cond3 Alors act3 Sinon act4 FinSiFinSi
Ne pas dépasser 4 ou 5 niveaux d’imbrication
![Page 35: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/35.jpg)
CSII1a Algo/Progr 35
Instruction de choixEquivalent à des Si-alors imbriqués, exemple:
Si cond Alors Act1Sinon Si cond2 Alors Act2Sinon Si cond3 Alors Act3Sinon Si cond4 Alors Act4 ...
S’écrira plus facilement avec une structure Choix:Choix var Faire val1: act1 val2: act2 val3: act3 Sinon Act5FinChoix
Remarque:var doit être de type ordinal: booléen, entier, car.
![Page 36: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/36.jpg)
CSII1a Algo/Progr 36
Les Instructions itératives3 types de boucles:
Pour
TantQue
Répéter Jusqu’a
![Page 37: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/37.jpg)
CSII1a Algo/Progr 37
Instruction PourStructure du Pour:Pour var := valInit A valFin Faire ActionFinPour
Exemple:Pour i := 0 A 5 Faire Afficher ‘Bonjour n°’, iFinPour
Résultat:Bonjour n°0Bonjour n°1Bonjour n°2Bonjour n°3Bonjour n°4Bonjour n°5
i en sortant de la boucle vaut 6
![Page 38: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/38.jpg)
CSII1a Algo/Progr 38
Instruction TantQueStructure du TantQue:TantQue condition Faire Action // exécutée tant que condition est VRAIFinTantQue
Exemple:i := 0TantQue i <= 5 Faire Afficher ‘Bonjour n°’, i i := i +1FinTantQue
Résultat:Bonjour n°0Bonjour n°1Bonjour n°2Bonjour n°3Bonjour n°4Bonjour n°5
![Page 39: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/39.jpg)
CSII1a Algo/Progr 39
Instruction répéter-JusquaStructure du Répéter-Jusqu’a:Répéter Action // exécutée jusqu’à ce que Jusqua Condition // la condition deviennent VRAI
Exemple:i := 0Répéter Afficher ‘Bonjour n°’, i i := i +1Jusqua i > 5
Résultat:Bonjour n°0Bonjour n°1Bonjour n°2Bonjour n°3Bonjour n°4Bonjour n°5
![Page 40: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/40.jpg)
CSII1a Algo/Progr 40
Exercices, TD n°1Exercice 1:Saisir un nombre et afficher s’il est pair ou impair.
Exercice 2:Résoudre l’équation du 1er degré ax + b = 0,les coefficients a et b seront saisis
Exercice 3:Résoudre l’équation du 2nd degré ax² + bx+c = 0,les coefficients a et b et c seront saisis
![Page 41: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/41.jpg)
CSII1a Algo/Progr 41
TD n°1, suiteExercice 4a:Saisir un nombre et afficher si c’est un nombre premier ou non.
Exercice 4b:Afficher les 100 premiers nombres premiers.
![Page 42: CSII1a Algo/Progr1 Les bases algorithmiques Algorithmique CSII1A](https://reader034.vdocuments.pub/reader034/viewer/2022051211/551d9da0497959293b8ced0b/html5/thumbnails/42.jpg)
CSII1a Algo/Progr 42
TD n°1, exercice 5Exercice 5:Faire rechercher un nombre à l’utilisateur en 5 coups maximum. Afficher à chaque étape
-Afficher à chaque étape ‘trop grand’ ou ‘trop petit’
-Afficher à la fin ‘gagné’ ou ‘perdu’ ainsi que le nombre de coups.