Rappels rapides. La logique algorithmique



Documents pareils
Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Algorithmique et programmation : les bases (VBA) Corrigé

Correction TD algorithmique

Algorithmique et Programmation, IMA

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0


Corrigé des TD 1 à 5

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Feuille TD n 1 Exercices d algorithmique éléments de correction

TD3 - Facturation avec archivage automatisé

Cours d algorithmique pour la classe de 2nde

Programmation Objet - Cours II

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Comment créer et utiliser une fonction

Application 1- VBA : Test de comportements d'investissements

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Examen Médian - 1 heure 30

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Algorithmique avec Algobox

Créer le schéma relationnel d une base de données ACCESS

EXCEL TUTORIEL 2012/2013

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Le langage C. Séance n 4

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Algorithmique et structures de données I

NOS FORMATIONS EN BUREAUTIQUE

CORRECTION EXERCICES ALGORITHME 1

Les différents types de données et leurs opérations de base

Algorithmique avec Algobox

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Excel 2007 Niveau 3 Page 1

Algorithme. Table des matières

LimeSurvey. Pour obtenir un compte sur le LimeSurvey de l Université de Genève, remplissez le formulaire de demande en ligne.

L emprunt indivis - généralités

Système de Gestion Informatisée des. Exploitations Agricoles Irriguées avec Contrôle de l Eau

Visual Basic for Applications

Algorithmique & programmation

CATALOGUE DES FORMATIONS 2014

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Objectifs du TP : Initiation à Access

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Probabilités conditionnelles Loi binomiale

Créer sa première base de données Access Partie 3/4 - Création d un formulaire

Rappels sur les suites - Algorithme

Guide d utilisation pour W.access - Client

Access 2007 FF Access FR FR Base

Module Communication - Messagerie V6. Infostance. Messagerie

ALGORITHMIQUE ET PROGRAMMATION En C

Bases de programmation. Cours 5. Structurer les données

Cours d Informatique

STAGE IREM 0- Premiers pas en Python

Adama MBODJI MBODJ.SYSTEM

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

Utiliser un tableau de données

IV- Comment fonctionne un ordinateur?

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Préparation à l examen EFA en Macro

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

Cours Bases de données 2ème année IUT

Utiliser une base de données

La gestion des boîtes aux lettres partagées

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

COURS DE MS EXCEL 2010

Découvrir la messagerie électronique et communiquer entre collègues. Entrer dans le programme Microsoft Outlook Web Access

1. Structure d'un programme FORTRAN 95

Les suites numériques

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

SOMMAIRE. Travailler avec les requêtes... 3

Initiation à Excel. Frédéric Gava (MCF)

Les différents types de relation entre les tables

CORRIGES DES CAS TRANSVERSAUX. Corrigés des cas : Emprunts

Optimiser son utilisation du logiciel Sirius

Formations 2015 Bureautique

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Algorithmes récursifs

Utilisation des fonctions financières d Excel

SUPPORT DE COURS ACCESS 2010

TABLEAU CROISE DYNAMIQUE

Utiliser le service de messagerie électronique de Google : gmail (1)

alg - Classes, instances, objets [oo] Exercices résolus

Base de données Guide de l utilisateur

1 Démarrage de Marionnet

Introduction à MATLAB R

Les structures. Chapitre 3

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Stockez et organisez vos données sous Excel. Une approche systématique, structurée et simplifiée

À propos de votre liseuse... 5

Formation VBA 3 Interagir

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

C f tracée ci- contre est la représentation graphique d une

EXCEL PERFECTIONNEMENT CALCULS AVANCES

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur)

Transcription:

Rappels rapides Les grands axes de la rénovation (cf document joint) Le programme complet des classes de première de la série Sciences et technologies de la gestion Spécialité «Gestion» et Spécialité «Communication» La partie du programme qui nous intéresse : THÈMES SENS ET PORTÉE DE L ÉTUDE NOTIONS ET CONTENUS À CONSTRUIRE 2. Le système d information et les bases de données (Durée indicative : 30 heures) 2.4. La logique algorithmique (7 heures) L'expression algorithmique permet de dégager les principes de construction d'un traitement programmé quel que soit l'environnement logiciel de sa mise en œuvre. - Représentation des données Type, variable, constante - Représentation et exécution des traitements Algorithme, programme Séquence, alternative, répétitive Fonction La logique algorithmique Plan Introduction : Algorithme et programme 1. Objets et actions élémentaires Les objets élémentaires : notions de type, de variable et de constante Les actions élémentaires (lecture, écriture, affectation) 2. Actions structurées : Séquence, alternative, répétitive 3. Données structurées : les tables 4..Programmation structurée : les fonctions Remarque : la partie «Données structurées : les tables» n apparaît pas clairement dans le référentiel MAIS le lien est évident avec les autres parties du programme et cet aspect est abordé par ailleurs lors de l étude des bases de données relationnelles, son rappel ici permet de mettre en évidence le lien entre bases de données et algorithmique. Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 1 of 20

Introduction : Qu est-ce que programmer? «Le but de la programmation est de fournir à l ordinateur une liste d instructions qui lui permettent de résoudre un problème.» Avant d écrire le programme, il est primordial de comprendre le problème, savoir quoi faire et aussi savoir comment le faire faire à l ordinateur. Pb à résoudre Enoncé précis Algorithme Programme Compréhension du problème Résolution du problème Codification La compréhension du problème L étude de l énoncé porte principalement sur la recherche des données fournies et des résultats attendus. La résolution du problème Il s agit de trouver les structures de données adaptées ainsi que les structures de traitement qui permettront de trouver les résultats à partir des données ; on aboutit à un algorithme. La codification C est la traduction de l algorithme en un programme écrit dans un langage compréhensible par l ordinateur. Il est absolument nécessaire de tester algorithme et programme afin de les valider. Pour cela on réalise un jeu d essai Exemple : Calcul facture EDF Le problème à résoudre : On désire mettre à disposition des abonnés EDF un petit programme leur permettant de calculer euxmêmes le montant de leur prochaine facture trimestrielle. Enoncé précis Réaliser un petit programme permettant à un abonné EDF de calculer lui-même le montant de sa prochaine facture trimestrielle. Chaque abonné doit payer tous les trimestres un abonnement fixe de 5 et 10 centimes par KW/H consommé. Pour calculer la facture il faut donc connaître les relevés de compteur de début et fin de période. Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 2 of 20

Algorithme algo fact_edf Const abo_trimestre=5 prix_kwh_ttc=0.10 var VP:entier NV:entier Mont_conso,Mont_total:reel Conso:entire nb kwh consommés début afficher "CALCUL FACTURE TRIMESTRIELLE EDF" a_la_ligne saisir "valeur précédente du compteur : ",VP Saisir "nouvelle valeur du compteur : ",NV conso <-- NV-VP mont_conso <-- conso * prix_kwh_ttc mont_total <-- mont_conso+abo_trimestre afficher "montant abonnement : ",abo_trimestre afficher "montant de la consommation : ", mont_conso afficher "montant de la facture :", mont_total," euros" fin Le logiciel Alg exec permet de tester des algorithmes en simulant leur exécution. Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 3 of 20

Exemple de programmation avec VBA dans Access (Visual Basic Application) : peu convivial et peu utile tel quel il est la traduction simple de l algorithme dans un langage de programmation (Nouveau module dans une base de données Access) Public Sub Total_Facture_EDF() ' déclaration des constantes Const abo_trimestre = 5 Prix_kwh_ttc = 0.1 ' déclaration des variables Dim vp, nv, conso As Integer Dim mont_conso, mont_total as single vp = InputBox("Ancienne valeur du compteur") nv = InputBox("Nouvelle valeur du compteur") ' InputBox permet la saisie de valeurs dans une boite de dialogue conso = nv - vp mont_conso = conso * Prix_kwh_ttc mont_total = mont_conso + abo_trimestre 'le symbole d'affectation est le signe égal MsgBox ("Montant de l'abonnement : ") & abo_trimestre & " euros" MsgBox ("Montant de la consommation : ") & mont_conso & " euros" MsgBox ("Montant total de la facture : ") & mont_total & " euros" ' MsgBox permet l affichage de valeurs dans une boite de dialogue End Sub L exécution du module donnera : Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 4 of 20

Exemple de programmation avec VBA dans Excel : création d une fonction personnalisée Feuille de calcul Excel Fonction VBA total_facture personnalisée Public Function total_facture(vp, nv As Integer) As Single ' déclaration des constantes Const abo_trimestre = 5 Prix_kwh_ttc = 0.1 ' déclaration des variables Dim conso As Integer conso = nv - vp total_facture = abo_trimestre + conso * prix_kwh_ttc End Function Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 5 of 20

Exemple de programmation avec un langage orienté objet (Delphi) : création d un programme mis à disposition des clients EDF (cet exemple est donné à titre strictement indicatif) Le bouton est un objet qui a des propriétés et qui va réagir à un évènement : lorsque l utilisateur du programme clique sur le bouton la partie de programme va être exécutée. On parle de programmation évènementielle procedure TForm1.BitBtn1Click(Sender: TObject); const abo_trimestre=5; prix_kwh_ttc=0.1; var vp,nv,conso:integer ; mont_conso, mont_total : real; begin vp:= strtoint(e_vp.text); nv:= strtoint(e_nv.text); end; conso:=nv-vp; mont_conso := conso * prix_kwh_ttc ; mont_total := mont_conso+abo_trimestre; L_mont_conso.caption:=Floattostr(mont_conso); L_abo_trimestre.caption:=Floattostr(abo_trimestre); L_mont_total.caption:=Floattostr(mont_total); Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 6 of 20

Exemple de programmation dans un formulaire Access.première version Private Sub Commande_Click() ' déclaration des constantes Const abo_trimestre = 5 Const kw_heure = 0.1 ' déclaration des variables Dim vp, nv, conso As Integer Dim mont_conso, mont_total As Single vp = vp_compteur nv = nv_compteur conso = nv - vp mont_conso = conso * kw_heure mont_total = mont_conso + abo_trimestre MsgBox ("Montant de l'abonnement : ") & abo_trimestre & " euros" MsgBox ("Montant de la consommation : ") & mont_conso & " euros" MsgBox ("Montant total de la facture : ") & mont_total & " euros" End Sub Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 7 of 20

Exemple de programmation dans un formulaire Access.autre version On utilise une fonction qu on a Programmée dans le module Public Function calcul_facture(vp, nv As Integer) As Single ' déclaration des constantes Const abo_trimestre = 5 kw_heure = 0.1 ' déclaration des variables Dim conso As Integer Dim mont_conso, mont_total As Single conso = nv - vp mont_conso = conso * kw_heure mont_total = mont_conso + abo_trimestre calcul_facture = mont_total End Function Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 8 of 20

1. Objets et actions élémentaires Les objets élémentaires Variable et constante Exemple d algorithme : Déclarations Constantes COEFF = 2 Coefficient de l écrit Variables Données NOTE : Entier Note de l élève à l écrit NOTO : Entier Note de l élève à l oral NOM_E : Chaîne Nom de l élève Résultats MOY : Réel Moyenne de l élève RECU :Booléen type oui/non (vrai /faux) Résultats intermédiaires TOT : Entier Total écrit oral Début Fin Saisir NOM_E Saisir NOTE Saisir NOTO TOT NOTE * COEFF + NOTO MOY TOT / (COEFF+1) Afficher Moyenne :, MOY Si MOY>= 10 Alors afficher " reçu " Sinon afficher " à l année prochaine " Fin Si Une variable - a un nom : identificateur de la variable - a un type : c est la définition du domaine dans lequel une variable peut puiser son contenu - représente une information - a un statut (Donnée, résultat, résultat intermédiaires) Résultats MOY : Réel Moyenne de l élève - a une valeur à un instant donné Une constante est une variable qui a une valeur constante tout au long de l algorithme, autrement dit une valeur qui ne changera pas à chaque exécution du programme Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 9 of 20

Type d une variable Type d objet Valeurs exemples Exemples d opérations associées Numérique Entier 12-5 Opérateurs de comparaison (=, <, >, <=, >=) Opérateurs algébriques +, -,*, /, Division entière (DIV) et Reste de la division entière (Modulo) Ex : 9 DIV 4 donnera 2 et 9 MOD 4 donnera 1... Numérique Réel 56,789123-2 Opérateurs de comparaison (=, <, >, <=, >=) Opérateurs algébriques +, -, *, / Caractère A, a,1 Chaîne de caractères Toto 84.56.78.52 Opérateurs de comparaison (=, <, >, <=, >=) Concaténation : mise bout à bout (&)... Logique ou booléen Vrai Faux Oui Non 0 1 Opérateurs logiques ET, OU, NON... (abordés plus loin) Les actions élémentaires Il s agit des Instructions d entrée/sortie et de l affectation Instruction d entrée : la lecture (Périphérique d entrée UC) L action de lecture consiste à donner une valeur à une variable. Cette action implique, le plus souvent, l intervention de l utilisateur du programme qui va fournir la valeur en la tapant au clavier. Cette action peut être notée Lire ou Saisir Instruction de sortie : l écriture (UC Périphérique de sortie) La machine informe l utilisateur de la valeur d une variable Cette action peut être notée Ecrire ou Afficher Affectation «prend la valeur de» Affecter : donner une valeur à une variable Ex 1 : Affectation par une valeur constante X 10 Nom "Jeanneret " Ex 2 : Affectation par le résultat d un calcul Y X Tot_amt Tot_amt + annuite Compteur compteur +1 Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 10 of 20

2. Actions structurées 2.1 Structure séquentielle (Séquence) Séquence : enchaînement d actions dans un ordre déterminé. «Une chose après une autre» Schéma action1 action 2 action 3... action n Exemple Début Fin Saisir x Saisir y z x + y Afficher z Attention à l ordre L ordre des actions et est indifférent (On aurait pu faire avant n est possible que si x et y ont une valeur n est possible que si z a une valeur L expérience montre que cette structure qui paraît pourtant simplissime n est pas toujours vraiment maîtrisée par les élèves sans doute parce qu elle semble évidente! 2.3 Structure conditionnelle (Alternative) Alternative simple : schéma Si condition alors action_si_vrai sinon action_si_faux FinSi ou Si condition alors action_si_vrai FinSi Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 11 of 20

Exemple simple Résultat d un examen Si moyenne >= 10 alors afficher Candidat reçu sinon afficher Candidat recalé FinSi Structures imbriquées par exemple... Si condition_1 alors Si condition_2 alors action_si_1_2_vrai sinon action_si_1_vrai_2_faux FinSi sinon action_si_1_faux FinSi Les élèves font souvent l erreur dans le cas sinon de réaliser des tests inutiles et aberrants sur le plan de la logique du style si x<8 alors sinon si x >=8 et x<=10. Exemples de structures imbriquées Une entreprise accorde, en fin d année, à ses clients une ristourne calculée ainsi : CA < 20 000 2% 20 000 <= CA <50 000 5 % Ca >= 50 000 7 % Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 12 of 20

Utilisation des opérateurs logiques «ET», «OU inclusif» et «NON» pour lier les conditions : ET vrai vrai faux faux vrai faux faux vrai Attention aux pièges de la langue française : il est aberrant de faire deux tests d égalité sur une même variable comme par exemple de tester ville = "Paris " ou ville = "Lons" pour obtenir une liste des clients parisiens et lédoniens (une variable a un seul contenu à un instant donné) OU INCLUSIF vrai vrai faux faux vrai faux faux vrai NON vrai faux Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 13 of 20

2.4 Structure itérative (Itération ou boucle) 2.4.1 Itération Pour (Cas où le nombre d itérations est connu à l avance ) Pour compteur valeur initiale à valeur finale Traitement Fin Pour Exemple : calcul de la moyenne d un devoir donné dans une classe de 5 élèves. Total 0 Pour i 1 à 5 Afficher Entrer la note de l élève : Saisir note total total + note Fin Pour moy total / 5 Afficher La moyenne du devoir est : ;moy Trace en mémoire centrale Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 14 of 20

2.4.2 Itération Tant Que Itération Répéter Jusqu à (Cas où le nb d itérations n est pas connu à l avance) Deux structures itératives permettent de répéter «en boucle» une partie de traitement sans savoir au début combien de boucles on fera Exemple on demande à un coureur de faire des tours de piste de stade : on pourrait lui dire OU de «faire des tours» jusqu à ce qu il soit fatigué de «faire des tours» tant qu il n est pas fatigué Répéter Tour de piste Jusqu à fatigue Itération Répéter Jusqu à On fait d abord un tour puis si on est fatigué on s arrête si on n est pas fatigué on refait un tour etc.. On s interrogera donc ainsi sur l état de fatigue à la fin de chaque tour On est donc obligé de faire au moins un tour Itération TantQue * Tant que non fatigue tour de piste Fin Tant Que On s interroge d abord : si on est fatigué on ne fait rien sinon on fait un tour. etc. On s interrogera ainsi sur l état de fatigue avant de commencer un tour On peut donc ne pas faire de tour Schémas Itération Répéter Jusqu à Répéter traitement Jusqu à condition d arrêt du traitement Itération TantQue * Tant que condition de réalisation du traitement traitement Fin Tant Que * Si la condition teste la valeur d une variable, celle-ci doit avoir une valeur ; il est alors nécessaire de l initialiser avant le début de l itération la condition d arrêt du traitement est l inverse de la condition de réalisation du traitement càd condition d arrêt du traitement = NON(condition de réalisation du traitement) Exemple 1 : saisie contrôlée d une note Réfexion préalable : - la note est acceptable si elle est >=0 ET <= 20 - la note est inacceptable si elle est <0 OU >20 Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 15 of 20

Répéter Saisir note Jusqu à note>=0 ET note <=20 Saisir note Tant que NON (note>=0 ET note <=20) Saisir note Fin Tant Que Saisir note Tant que note<0 OU note >20) Saisir note Fin Tant Que Exemple 2 : calcul d une indemnité kilométrique à verser à des employés, avec affichage du total des indemnités Calcul selon un barème par tranche 0.3 entre 0 et 5000 km 0.35 entre 5 000 et 10 000 km 0.4 au-delà de 10 000 km Exemple 3 : calcul de la valeur acquise par un capital placé à intérêts composés. Exemple de calcul pour un capital initial de 100, placé à 10 % pendant 3 périodes. Période Caipital placé Intérêts Valeur acquise en fin de période 1 100 100 * 10 % = 10 100 + 10 = 110 2 110 110 * 10 % = 11 110 + 11 = 121 3 121 121 * 10 % = 12,1 121 + 12,1 = 133,1 Données C : réel { Capital placé } Taux : réel { taux d intérêt } N : entier { durée de placement en périodes} Résultats VA : réel {valeur acquise } Autres variables Compteur : entier Int : réel { montant annuel des intérêts} Saisir C ; Taux ; N Pour compteur 1 à N Afficher C Int C * Taux Afficher Int VA C + Int Afficher VA C VA Fin Pour Saisir C ; Taux ; N compteur 1 Répéter Afficher C Int C * Taux Afficher Int VA C + Int Afficher VA C VA compteur compteur + 1 Jusqu à compteur > N Saisir C ; Taux ; N compteur 1 Tant que compteur <= N Afficher C Int C * Taux Afficher Int VA C + Int Afficher VA C VA compteur compteur + 1 Fin Tant Que Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 16 of 20

3. Données structurées de type table Les traitements portent sur des données qui sont souvent des informations extraites des bases de données. Ces données se présentent donc sous la forme de table. Travail avec des données de type table Exemple : traitement d une table de candidats NumCandidat NomCandidat PrénomCandidat Note_E_Candida Note_O_Candidat Recu t 4578 Dupont Jules 10 8,5 4895 Durand Germain 14 12,5 4812 Duraton Manuel 11,5 16 La table CANDIDAT est constituée d enregistrements. Type Enregistrement de la table «Candidat» NumCandidat : entier NomCandidat : chaine [20] PrénomCandidat : chaine [20] Note_E_Candidat : réel Note_O_Candidat : réel Recu : booléen On veut un algorithme permettant de compléter la table CANDIDAT. Les candidats reçus sont évidemment ceux dont la moyenne est supérieure ou égale à 10. Algo Var Moy : réel Début OuvrirTable(CANDIDAT) TantQue NON FIN (CANDIDAT) faire Lire Enregistrement (CANDIDAT) Moy (Note_E_Candidat + Note_O_Candidat)/2 Si Moy>=10 alors recu.vrai.. Sinon recu.faux FinSI Ecrire Enregistrement (CANDIDAT) Fin Tantque FermerTable(CANDIDAT) Fin Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 17 of 20

On veut améliorer cet algorithme en comptant le nombre total de candidats traités ainsi que le nombre de candidats reçus. Algo Var Moy : réel Nb_cand, Nb_recus : entier Début OuvrirTable(CANDIDAT) Nb_Cand <- 0 Nb_Recus <- 0 TantQue NON FIN (CANDIDAT) faire Lire Enregistrement (CANDIDAT) Moy (Note_E_Candidat + Note_O_Candidat)/2 Si Moy>=10 alors recu.vrai.. Nb_recus nb_recus + 1 Sinon recu.faux FinSI Ecrire Enregistrement (CANDIDAT) Nb_Cand <- Nb_Cand+ 1 Fin Tantque FermerTable(CANDIDAT) Afficher " Nombre total de candidats : ", Nb_Cand Afficher " Nombre de candidats reçus : ", Nb_Recus Fin On veut encore améliorer en calculant la moyenne générale des candidats. Algo Var Début Fin Moy : réel Nb_cand, Nb_recus : entier Tot_Moy, Moy_gen : réel OuvrirTable(CANDIDAT) Nb_Cand <- 0 Nb_Recus <- 0 Tot_Moy 0 TantQue NON FIN (CANDIDAT) faire Lire Enregistrement (CANDIDAT) Moy (Note_E_Candidat + Note_O_Candidat)/2 Si Moy>=10 alors recu.vrai.. Nb_recus nb_recus + 1 Sinon recu.faux FinSI Tot_Moy Tot_Moy + Moy Ecrire Enregistrement (CANDIDAT) Nb_Cand <- Nb_Cand+ 1 Fin Tantque FermerTable(CANDIDAT) Afficher " Nombre total de candidats : ", Nb_Cand Afficher " Nombre de candidats reçus : ", Nb_Recus Moy_gen Tot_Moy / Nb_cand Afficher " Moyenne générale : ", Moy_gen Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 18 of 20

4. Programmation structurée : les fonctions Les problèmes à résoudre sont souvent très gros, il est intéressant alors de décomposer un problème en sous-problèmes distincts qui seront plus petits (donc plus faciles à résoudre) et dont la résolution pourra être confiée à d autres personnes ce qui permettra de répartir le travail. On utilise ainsi des procédures et des fonctions qui sont autant de «sous-programmes» et qui permette d avoir un programme principal plus simple. Seule la fonction est au référentiel Exemple : algorithme de la fonction destinée à calculer l indemnité versée aux représentants Les représentants se voient attribuer une indemnité selon les règles de gestion suivantes : L indemnité totale est composée : - d une indemnité de repas : 10 pour chaque repas pris à l extérieur - d une indemnité kilométrique qui est fonction du nombre de kilomètres parcourus - 20 jusqu à 500 km, 22 entre 500 et 800 km, 24 au-delà de 800 km Algorithme principal var nr,nk : entier indemnite : réel Début saisir "Nombre de repas pris : ",nr saisir "Nombre de km parcourus : ",nk indemnite <-- Calcul_ind(nr,nk) afficher "Indemnité totale : ", indemnite Fin Dans le programme principal on «utilise» la fonction NomVar NomFonction(liste des paramètres effectifs) Algorithme de la fonction Fonction Calcul_ind(nb_rep,nb_km : entier) : réel const prix_repas=10 ind1 = 20 ind2 = 22 ind3 = 24 var Ind_dis,Ind_rep,Ind_tot : réel début Ind_rep <-- prix_repas * nb_rep si nb_km < 500 alors ind_dis <-- ind1 sinon si nb_km < 800 alors ind_dis <-- ind2 sinon ind_dis <-- ind3 finsi finsi Ind_tot <-- ind_rep + ind_dis Retourner ind_tot fin En-tête de la fonction : fonction nomfonction (liste des paramètres) : type du résultat La liste des paramètres précise, pour chaque paramètre, son nom et son type. La dernière instruction de la fonction indique la valeur retounée, on peut la noter : retourner résultat ou nomfonction <-- résultat Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 19 of 20

Une fonction est un donc algorithme autonome, réalisant une tâche précise, auquel on transmet des valeurs (paramètres effectifs) lors de son appel et qui retourne un résultat unique à la fin de son exécution. Appel de la fonction dans l action appelante NomVar NomFon(liste des paramètres effectifs) Déclaration (description) de la fonction Fonction NomFon(liste des paramètres) : TypeRésultat Var : déclaration des variables locales Début Action_1... Action_N Retourner expression Fin fonction Rem avec Alg Exec au lieu de Retourner expression c est ValRet et en VBA NomFon. Autre exemple : Calcul du coût d un emprunt Action principale Var CapitalEmp : réel { Capital emprunté } TauxEmp : réel { Taux de l emprunt } DuréeEmp : entier { durée de l emprunt } Début Fin Saisir CapitalEmp, TauxEmp, DuréeEmp Si CapitalEmp > 0 et TauxEmp > 0 et DuréeEmp > 0 alors afficher «le coût de l emprunt est de», CoûtEmprunt(Capital, DuréeEmp, TauxEmp) sinon afficher «Calcul impossible : une des valeurs est négative ou nulle» Fin si { Coût d un emprunt à remboursement en fin de contrat } Fonction CoûtEmprunt(Capital : réel, Durée : entier, Taux : réel) : réel Var i : entier { numéro de l année traitée } CapitalDû : réel {capital à rembourser } Début i 1 CapitalDû Capital Tant que i <= Durée faire Intérêt CapitalDû * Taux / 100 { intérêts pour l année traitée } CapitalDû CapitalDû + Intérêt { capital à rembourser en fin d année } i i + 1 Fin tant que Retourner CapitalDû - Capital { coût de l emprunt } Fin fonction Elisabeth.jeanneret@ac-besancon.fr - La logique algorithmique Page 20 of 20