Section IV Structures conditionnelles

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

Introduction a L’algorithme
Tris.
APPLICATIONS DE CREX QUELLES SONT LES PRINCIPALES CARACTERISTIQUES DU CODE? QUELS PEUVENT ÊTRE SES UTILISATIONS? EXEMPLES.
Introduction à l’Algorithmique
Algorithmique.
Algorithmique et évaluation
La logique algorithmique
LA LOGIQUE ALGORITHMIQUE. Algorithme Définition Ensemble dopérations Effectuées dans un ordre logique Afin dobtenir un résultat, Afin de résoudre un problème.
Exercice 1 Pour être admis en crèche, un enfant doit avoir moins de 3 ans. Les variables retenues sont les suivantes: AnnéeNaissance, Annéeactuelle.
Algorithmique Résume.
GEF 243B Programmation informatique appliquée
Niveau: 4ème Math Prof: Donia JEBALI Année Scolaire 2007/2008
Ch 3: les structures simples. Objectif: -Distinguer entre les différents données (entrée, sortie..).
Visual Basic for Applications
et évaluation des compétences
2.Les bases de lalgorithmique P. Costamagna – ISEN N1.
Section VII Programmation modulaire Algorithmes et résolution de problèmes FGE.
Section VIII Modularité Partie II
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Section VI Structures répétitives (suite)
Les bases de l’Algorithmique
CPI/BTS 2 Programmation Web Introduction au PHP
Cours de programmation
La structure conditionnelle simple
Calcul et programmation au lycée avec Scilab
Partie 1 Etude de l'existant
Production de modèles algébriques
Algorithmes et résolution de problèmes FGE
Introduction à l’algorithmique
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
Section XI Traitement de fichiers
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Les éléments de base de l’algorithmique
Les structures de contrôle conditionnelles
Algorithmique et Programmation
Algorithmes et résolution de problèmes FGE
Introduction à l’algorithmique
Algorithmes et résolution de problèmes FGE
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
Un processus à suivre pour résoudre un problème
8PRO107 Éléments de programmation
Partie II Sémantique.
LANGAGE PASCAL Introduction rapide….
10/04/ COURS DE LOGIQUE DE PROGRAMMATION 1 ère Multimédia IAD Professeur: Mauricio Caroca.
Algorithmes de tri et de recherche
Exemple à faire: N°2 Ecrire l’Algorithme et le Programme PASCAL qui affiche la somme de deux nombres entiers donnés.
Algorithmique : Introduction
Démarche de résolution
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Initiation à l’Algorithmique
- 5 - Optimisation linéaire et non-linéaire
Introduction à la programmation (420-PK2-SL) cours 8
Les Structures simples
Algorithmique Algorithmique  Pascal
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Facturation - généralités
Algorithmique et programmation
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Les bases de l’Algorithmique
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Algorithmique - Lecture / Ecriture - M me DJEBOURI. D. Faculté de Médecine salle informatique Année universitaire
Transcription de la présentation:

Section IV Structures conditionnelles Algorithmes et résolution de problèmes 18279 FGE

Contenu Introduction Structure SI-ALORS-SINON-FINSI Dans l’organigramme Le pseudo-code Variante SI-ALORS-FINSI Conditions complexes Exemples & exercice Dont un exercice à remettre à l’enseignant Devoir #2

Introduction Les algorithmes présentés auparavant sont élémentaires Séquence simple d’opérations Souvent, les opérations à accomplir peuvent varier dans un algorithme L’algorithme doit décider des opérations à accomplir selon les données fournies ou diverses situations L’ordinateur est apte à appliquer la prise de décision

Exemple #1 Rapport hebdomadaire de ventes (suite) Suite de l’exemple vu la semaine dernière (Section III) Commission de 6% sur les ventes à prix régulier Commission de 3% sur les ventes à prix réduit Montant de base de 200$ garantie On ajoute un bonus à la paie du vendeur Le vendeur reçoit en plus 1% du total de ses ventes si les ventes atteignent ou dépassent 5000$ Modifier l’algorithme en conséquence

Exemple #1 (suite) Lire VentesReg, VentesSpec RegComm = VentesReg * 0.06 Début Fin SpecComm = VentesSpec * 0.03 TotalComm = RegComm + SpecComm + 200 Écrire TotalComm Il faut ajouter à la solution précédente (sans bonus) Une séquence d’opérations calculant le bonus Une opération conditionnelle déterminant quand ajouter le bonus au total Il faut donc un symbole pour représenter la condition dans l’organigramme

Structure SI-ALORS-SINON-FINSI Pour représenter une séquence conditionnelle d’opérations dans l’organigramme On utilise le losange : c’est le symbole conditionnel Pour représenter la convergence des flux d’exécution On utilise le cercle : c’est le symbole de convergence SI La condition est satisfaite? Oui Non SINON ALORS FINSI

Structure SI-ALORS-SINON-FINSI Notes sur la structure conditionnelle La condition doit être clairement stipulée dans le symbole conditionnel Les flux sortant sont identifiés selon le résultat de la condition Les deux flux sortant doivent éventuellement converger Heures > 40 Oui Non

Exemple #1 (suite) Pour ajouter le bonus conditionnel de 1% à l’algorithme, nous définissons deux nouvelles variables intermédiaires TotVentes : Total des ventes Bonus : Bonus de 1% si les ventes atteignent ou excèdent 5000$ TotVentes  5000? Oui Non Bonus = 0 Bonus = TotVentes * 0.01 TotVentes = VentesReg + VentesSpec

Exemple #1 (suite) Algorithme révisé Lire VentesReg, VentesSpec RegComm = VentesReg * 0.06 Début Fin SpecComm = VentesSpec * 0.03 TotalComm = RegComm + SpecComm + Bonus + 200 Écrire TotalComm TotVentes  5000? Oui Non Bonus = 0 Bonus = TotVentes * 0.01 TotVentes = VentesReg + VentesSpec Exemple #1 (suite) Algorithme révisé Insérer le calcul conditionnel du bonus (TotVentes et Bonus) Réviser le calcul de la commission totale (TotalComm)

Pseudo-code L’organigramme représente graphiquement l’algorithme C’est visuel (un dessin vaut mille mots!), mais ça exige plus de travail de mise en page et plus d’espace sur papier Le pseudo-code représente textuellement l’algorithme Moins visuel, mais plus facile à mettre sur papier et requiert moins d’espace

Pseudo-code (suite) L’algorithme est décrit sous forme de mots et phrases Semblable aux langages de programmation (Visual Basic, Pascal, C, …) Cependant, on utilise une syntaxe moins rigide Le pseudo-code est généralement préféré à l’organigramme Plus rapide à écrire et plus facile à traduire en un langage de programmation

Exemple #1 (suite) Pseudo-code de l’algorithme Les mots-clés opérationnels sont écris en majuscules LIRE, ÉCRIRE, SI, ALORS, SINON, FINSI L’indentation dans la structure SI… rehausse la lisibilité LIRE VentesReg, VentesSpec RegComm = VentesReg * 0.06 SpecComm = VentesSpec * 0.03 TotVentes = VentesReg + VentesSpec SI TotVentes  5000 ALORS Bonus = TotVentes * 0.01 SINON Bonus = 0 FINSI TotalComm = RegComm + SpecComm + Bonus + 200 ÉCRIRE TotalComm

Exemple #1 (suite) La structure conditionnelle a une forme standardisée SI condition ALORS séquence d’opérations SINON FINSI Par souci de lisibilité, cette forme doit toujours être respectée LIRE VentesReg, VentesSpec RegComm = VentesReg * 0.06 SpecComm = VentesSpec * 0.03 TotVentes = VentesReg + VentesSpec SI TotVentes  5000 ALORS Bonus = TotVentes * 0.01 SINON Bonus = 0 FINSI TotalComm = RegComm + SpecComm + Bonus + 200 ÉCRIRE TotalComm

Structure SI-ALORS-FINSI Une variante de la structure conditionnelle est employée lorsqu’il n’y a aucune séquence d’opérations à exécuter si la condition est fausse SI condition ALORS séquence d’opérations FINSI La condition est satisfaite? Oui Non

Exemple #2 Rapport de temps supplémentaire Le superviseur doit produire un rapport listant tous les employés ayant travaillé en temps supplémentaire durant la semaine Pour chaque employé ayant travaillé plus de 40 heures, le rapport doit afficher son nom, son numéro d’employé et le nombre d’heures excédentaires Si l’employé n’a pas excédé 40 heures de travail, le rapport ne doit pas contenir son nom

Exemple #2 (suite) Nous devons écrire l’algorithme produisant une ligne du rapport (i.e. pour un employé) Données à lire Nom de l’employé, son numéro et le nombre d’heures travaillées Résultats à produire Si l’employé a travailler plus de 40 heures, afficher son nom, son numéro d’employé et les heures supplémentaires travaillées

Exemple #2 (suite) Définition des variables Variables intermédiaires Nom nom de l’employé Numero numéro de l’employé TotHeures nombre total d’heures travaillées durant la semaine Variables intermédiaires HeuresSup Nombre d’heures supplémentaires travaillées

Exemple #2 (suite) Pseudo-code et organigramme Fin TotHeures > 40? Oui Non HeuresSup = TotHeures - 40 Écrire Nom, Numero, HeuresSup Lire Nom, Numero, TotHeures Début Pseudo-code et organigramme LIRE Nom, Numero, TotHeures SI TotHeures > 40 ALORS HeuresSup = TotHeures - 40 ÉCRIRE Nom, Numero, HeuresSup FINSI

Avantage du pseudo-code Le pseudo-code est facilement traduisible en un langage de programmation Pseudo-code Pascal LIRE Nom, Numero, TotHeures SI TotHeures > 40 ALORS HeuresSup = TotHeures - 40 ÉCRIRE Nom, Numero, HeuresSup FINSI PROGRAM Exemple; VAR Nom: STRING; Numero, TotHeures: INTEGER; BEGIN READLN(Nom, Numero, TotHeures); IF TotHeures > 40 THEN BEGIN HeuresSup := TotHeures – 40; WRITELN(Nom, Numero, HeuresSup); END END.

Exemple #3 Rapport de paie d’employé Données à lire sur l’employé Son nom, numéro d’employé, nombre d’heures travaillées et son taux horaire Résultat à afficher Le nom de l’employé, son numéro et le total de sa paie. Cette dernière est calculée en fonction du taux horaire pour les premières 40 heures travaillées, et à une fois et demi son taux horaire pour les heures supplémentaires

Exemple #3 (suite) Étapes de développement de l’algorithme Assurez-vous de bien comprendre le problème à résoudre (posez des questions) Définissez les variables d’entrées et les variables de sorties Faites les calculs sur papier pour un exemple de données; vous saisirez mieux le processus de solution Commencez à produire le pseudo-code ou l’organigramme, à partir du début En cours de développement, définissez les variables intermédiaires au besoin Finalement validez l’algorithme, et corrigez-le au besoin

Exemple #3 (suite) Variables Variables intermédiaires Nom nom de l’employé Numero numéro d’employé Heures heures totales travaillées Taux taux horaire Variables intermédiaires PaieReg paie au taux régulier PaieSup paie au taux bonifié PaieTot paie totale

Exemple #3 (suite) Pseudo-code LIRE Nom, Numero, Heures, Taux SI Heures > 40 ALORS PaieReg = 40 * Taux PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup SINON PaieTot = Heures * Taux FINSI ÉCRIRE Nom, Numero, PaieTot

Exemple #3 (suite) Organigramme Lire Nom, Numero, Heures, Taux Début Fin Heures > 40? Oui Non PaieTot = Heures * Taux PaieReg = 40 * Taux Écrire Nom, Numero, PaieTot PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup Organigramme

Validation Pour valider un algorithme (à l’aide des diagramme de variables), il faut numéroter les opérations du pseudo-code et/ou de l’organigramme Pseudo-code numéroté : 1. LIRE Nom, Numero, Heures, Taux 2. SI Heures > 40 ALORS 3. PaieReg = 40 * Taux 4. PaieSup = (Heures – 40) * (Taux * 1.5) 5. PaieTot = PaieReg + PaieSup 6. SINON 7. PaieTot = Heures * Taux 8. FINSI 9. ÉCRIRE Nom, Numero, PaieTot

Validation (suite) Organigramme numéroté 3 2 4 5 6 7 8 1 9 Lire Nom, Numero, Heures, Taux Début Fin Heures > 40? Oui Non PaieTot = Heures * Taux PaieReg = 40 * Taux Écrire Nom, Numero, PaieTot PaieSup = (Heures – 40) * (Taux * 1.5) PaieTot = PaieReg + PaieSup Organigramme numéroté Les numéros sont utilisés pour identifier les opérations dans les diagrammes de variables 1. Variable Valeur Nom PaieReg Numero PaieSup Heures PaieTot Taux

Conditions complexes Conditions simples Conditions complexes a < b, a  b, a > b, a  b, a = b, a  b Conditions complexes On peut combiner des conditions simples avec et et ou (a  5) et (a  100) (a = 10) ou (a > 20) La négation (non) peut inverser une condition non((a  5) et (a  100))

Conditions complexes (suite) Exemple : afficher le mot  ALARME si la température quitte la zone de confort Fin Temperature < 18 Ou Temperature > 24? Oui Non Écrire "ALARME" Lire Temperature Début LIRE Temperature SI (Temperature < 18) ou (Temperature > 24) ALORS ÉCRIRE "ALARME" FINSI

Exercice #1 À remettre à l’enseignant avant la fin du cours Faire le travail à la main, sur papier Trouver le plus petit nombre Afficher le plus petit nombre parmi trois nombres fournis en entrée Vous devez remettre à l’enseignant Le pseudo-code ou l’organigramme de votre algorithme La description des variables

Devoir #2 Énoncé distribué sur le site Web Algorithme calculant la note finale d’un(e) étudiant(e) à partir de trois notes d’examen Vous devez fournir le pseudo-code (fichier Word) et l’organigramme (fichier Visio) de votre algorithme