Introduction Un algorithme consiste retranscrire un processus logique a l aide d un langage naturel Un algorithme est la description d un traitement qui consiste a transformer des données appelées entrées, afin de produire d’autre données appelées sorties. Les entrées et les sortis représentent les variables manipulés par l’algorithme Ecrire un algorithme c’est : Analysé et comprendre le problème : edudier les données fournis et les résultat attendus Résoudre le problème c est trouver les structures de données adaptées ainsi que l enchaînement des actions à réaliser pour passer des données au résultat. Comment exécuter un algorithme sur un ordinateur ? Il faut traduire cet algorithme a l aide d un langage de programmation connu par l ordinateur. Déclaration d une variable Une variable correspond à un type de variable. Les principaux types sont / - Chaîne de caractères - Entier - Décimal - Date - Booléen (valeur vraie ou fausse 0 ou 1) - Etc. Les affectations Affecter une variable consiste à lui donner une valeur. Cette valeur peut être soit une constante, soit une valeur d une autre variable, soit le résultat d un calcul. Ex : si A est variable de type Byte (valeur 0- 255) on peut écrire : A <- 3, A<- 3+4, A<- 2B, A <- (BxB)/C Le symbole <- est le symbole d affectation (il peut être remplace par =) Si une variable est numérique A<- 0 Si une variable est chaîne de caractères A <- « 0 », ou A <- « lettres » L’entrée d information La primitive d entrée ou saisir (entrée clavier) et lire (lecture en provenant du DD) Le but de ces primitives est de permettre a l ordinateur d affecter une variable extenso=rieur a une autre variable. Le nom de cette adresse se trouve la valeur, a un moment donne de la variable. La primitive de sortie : écrire, afficher, imprimer. Le but est de permettre a l ordinateur de sortir la valeur d une variable vers les périphérique extérieurs. Les outils Début si Alors Action 1 Sinon Action2 1 Fin si Structure imbriquée Si (condition est vraie) Alors Si (condition est vraie) Alors Action 1 Sinon Action2 Fin si Sinon Action2 Fin si Les Structures itératives Une structure itérative permet de répéter une suite d instruction autant de fois que l on veut ou lorsqu’une condition devient fausse (notion de boucle) Différentes structures permettent de réaliser cette forme de traitement : - Pour - Tant que - Répéter jusqu'à ce que Structure itérative pour On sait à l’avance combien de fois on veut itérer Pour l de 1 a 10 Faire Actions Fin pour (i i+1) Il faut donc connaître la valeur de début de i ainsi que sa valeur d’arrive. A chaque tour de boucle, la variable i sera incrémentée de 1. Structure itérative tant que Tant que la condition vraie alors action EX : Réponse : chaîne de caractère Réponse « oui » ou saisir réponse (initialisation) Tant que réponse « oui » Faire Actions Saisir réponse Fin tant que Structure itérative jusqu'à ce que 2 Répéter l’action jusqu’ a ce que condition devient fausse Réponse= chaîne Répéter réponse = chaîne Action Saisir réponse Jusqu'à ce que soit vraie Exo : Ecrire un algorithme qui demande a l’utilisateur un nombre compris entre 1 et 3 jusqu’ a ce que la réponse convienne. Début Variable N : entier N0 Saisir « entrez un nombre entre 1 et 3 » ; N Tant que N<1 ou N>3 Afficher « saisie erronée. Recommencez » Saisir « entrez un nombre entre 1 et 3 » ; N Fin tant que Fin Exo : Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu'à ce que la réponse convienne. En cas de réponse supérieure a 20, on fera apparaître un message : « plus petit ! » ; et inversement, « plus grand ! » si le nombre est inférieur a 10. Début Variable N : entier N 0 Saisir « entrez un nombre entre 10 et 20 » ; N Tant que N<10 ou N>20 Faire Si N<10 Alors Afficher « plus grand ! » Sinon Afficher « plus petit ! » Fin Si Saisir « entrez un nombre entre 10 et 20 » ; N Fin de tant que Fin Exo : Ecrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l utilisateur entre le nombre 17 le programme affichera les nombres de 18 à 27. Début Variable N, i : entier Saisir « entrez un chiffre » ; N Afficher « les 10 nombres suivants sont : » 3 Pour i= N+1 à N+10 Afficher i Fin Pour équivalent a ii+1 Fin Exo : Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit Table 7 : 7x1 =7 7x2=14 Début Variable N, i : entier Saisir « entrez un chiffre» ; N Ecrire « la table de multiplication de ce nombre est : » Pour i = 1 a 10 Afficher N ; « x » ; i ; « = » ; N*i Fin pour Fin Exo : Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu'à ce nombre. Par exemple, si l’on entre 5 le programme doit calculer : 1+2+3+4+5=15 Début Variable n, i, somme : entier Saisir « entrez un chiffre » ; n Somme0 Pour i= 1 a N Sommesomme+1 Fin pour Afficher « la somme est : », somme Fin Variable n, i, f : entier Saisir « entrez un chiffre » ; n F 0 Pour i= 2 a N ff*1 Fin pour Afficher « la somme est : », f Exo : Debut variable n , i , pg : entier Pg 0 Pour i 1 a 20 Saisir « entrez numero » ;n Si n< pg alors 4 Pg n Ipgi Fin si Fin pour Ecrire « le nombre le plus grand etait : », pg Ecrire « il a ete saisi en position numero », ipg Fin Structure alternative selon cas : Selon cas <variable> Cas <expression> <action1> Cas < expression > <action2> Cas < expression > <action3> Fin selon algo calcul des frais de deplacement variables : nbkm : entier puissance : entier tarif : reel frais : entier saisir puissance saisir nbkm si nbkm <= 100 alors frais = 0 sinon si puissance >= 1 et puissance <= 3 alors tarif = 1 sinon si puissance <= 4 et puissance <= 6 alors tarif = 1.5 sinon si puissance <= 7 et puissance <= 8 alors tarif = 2 sinon si puissance <= 9 et puissance <= 12 alors tarif = 2.5 sinon si puissance > 12 alors tarif =3 sinon tarif = 0 Fin si Fin si 5 Fin si Fin si Fin si Fin si Procédures et fonctions Sont des séquences d action qui seront nommées et qui seront considères comme étant dans des algorithmes auxiliaires. Ces procédures et fonctions seront appelées a parier d un algorithme principal. Les procédures La procédure est désigner par un nom La procédure est appelée une ou plusieurs fois dans un ou plusieurs algos principaux Le procédure a besoin de variable élémentaires déclarées dans un l’algorithme On dira que les variables ont une portée globale L intérêt d utiliser des procédures est de permettre une plus grande lisibilité de l algorithme principal (appelant) - gaine de temp. Peu être appelée dans plusieurs algos principaux mise a jour aisée Private sub cmd_clac_fahr_click ( ) Procedure_farem_cel MsgBox”la temperature est de “&f&” degrés F.” End sub Private sub procedure_farem_cel ( ) f = ( txt_valeur * 9/5 ) + 32 End sub Private sub cmd_clac_text_click ( ) Procedure_farem (txt_valeur) MsgBox”la temperature est de “& Celsius &” degrés C.” End sub Private sub procedure_farem (degree as single) Celsius = (degree * 9/5) + 32 End sub Les fonctions Une fonction est une procédure particulière qui ne renvoie, dans l’algo principal, qu’un et un seul résultat. La fonction est appelée ans l’algorithme principal, directement dans une instruction : En général, elle apparaît dans la partie droite d une affectation 6 Lors de son appel, la fonction est évaluée à partir d arguments qui lui sont fournis. Le résultat vient se substituer au nom de la fonction dans l »expression appelante. Function fahr(cel as integer) as single Fahr = (cel * 9/5) + 32 End function Appel de la function Private sub cmd_calc_Fahr_Click () MsgBox”La temperature est de “ & fahr(txt_cel) & “ degrés C.” End sub 7