You are on page 1of 21
1° G 2020-2021 Programmation : les structures de base et les fonctions 1. Qu’est-ce qu’un algorithme ? 1. Un exemple d’algorithme : parité d°un entier ‘Décrivons un algorithme permettant de comparer deux nombres a et et de donner le plus grand des deux : © Onréalise la différence a—b © On compare cotte différence a 0. * Si. a~b20 alors a est le plus grand des deux nombres et a~B <0 alors b est le plus grand des deux nombres. En étudiant ce processus de plus prés on peut distinguer trots parties + Une ou des entrées: ici deux entrées : les nombres entiers a et b Une suite d'instructions : on pourrait résumer la suite des instructions de cet algorithme comme suit : instruction I :réaliser la différence a—B instruction 2 : comparer cette difference & 0 + Une ou des sorties: ici une sortie : a ou b suivant les cas. Remarque : les instructions successives ne s'appliquent pas uniquement aux entrées a et b. Par exemple, V'instruction 2 Ne s’applique ni a ni a b mais ala différence a~b « produit » par cet algorithme, 2. Définition de Palgorithme Un algorithme peut étre considéré comme une « processus » formée de trois blocs + Les ENTREES qui peuvent éire des nombres, des caractéres, des listes de nombres, des chaines de caractéres... En seconde, les entrées seront essentiellement des nombres de type entier ou décimal comme on le verra plus bas, + Une suite finle d’ INSTRUCTIONS qui s'appliquent, dans un ordre déterming, a des entrées ou & des données produites, par les instructions prévédentes. + Les SORTIES qui sont les résultats obtenus par l'application de la suite, finie et ordonnée, des instructions Cette description peut étre schématisée comme suit : ENTRE! —+ INSTRUCTIONS» SORTIES Remarques > Le mot « algorithme » vient du nom du mathématicien persan al-Khawarizmi (9° sicle) dont le raité d’algébre déerit des procédés de calcul & sutvre étape par étape pour résoudre des problémes qui se raménent souvent a la résolution a 'équations. Divers algorithmes sont en fait conus des l'Antiquité, par exemple l'algorithme d’Buclide donnant le plus grand diviseurs commun de dexct nombres entlers, ou encore le calcul d approximations du nombre x 7 IL. Variables et affectations Pour mémoriser les données initiales, ou les résultats intermédiaires des calcul, an cours de T'exccution d'un algorithme, ‘on utilise des variables. * Du point de vue de ordinateur, une variable est une zone de mémoire au contenu de laquelle on accéde via une adresse. * Dupont de vue algorithmique, une variable a un nom fixe et une valeur qui peut changer au cours de ’exécution de Palgorithme. + Lanature et le réle des variables en informatique et en mathéimatique sont donc différents, bien qu'on utilise le méme mot ‘*__ Pour signifier que l'on affecte la valeur 5 4 la variable nommée a, on écrira par convention : @ 5 Exercice 1 corrigé : affectations Considérons Valgorithme ci-dessous ‘algorithime I 4, B et ¢ sont de type entier acl be2 cea ceath b<-3b-10 Afficher 5 Résumons l'état des variables aprés chague instruction * Pans un premier temps, trois variables sont réservées mais ne contiennent aueune donnée : an : © Aprés Pinstruction 1: 2 Ho ee + Aprés lnstruction 3: remarquons que le contenu de la variable @ ne change pas aprés cete instruction ‘out se passe comme sileconteny dea ae « cope »puis ceollé» danse © Apris Vinstruction 2 + Aprés Vinséruction 4 : le contenu de la variable ¢ est remplacé par Ia somme des contenus des Variables a et b Ce remplacement est di au fait qu'une méme variable ne peut contenir des données distinctes. Les contenus des variables aet 8 sont inchangés gprés cote instruction. :| : BS * Apres linstruction 5: le contenu de la variable b est remplacé par 3x2~10=—4 oi 2 est le contenu de la variable b avant instruction. Les contenus des variables a ete sont inchangés aprés cette instruction Lt] Os Ls] + Aprés Pinsiruction 5 le contenu de la variable b est affiché, autrement dit : ~4 Asera plus pratique, a V'avenir, de présenter l'éat des variables comune suit Numéro instruction | _% aan 1 i I SEP [Me ees 3 1 Heed 4 1 3 ams: 1 B. Exercice 2: a vous 1. Dans lalgorithme suivant, préciser les entrées, les instructions et les sorties algorithe 2 4b ete sont de type entier Saisir le nombre a bead comb aeb-Sa beatbecs3 AMficher & 2. Exécuter Palgorithme 2 aprés saisic de Ventier 6 pour la variable a en utilisant le tableau de mémoires ci-dessous ‘Numéro | ainstruction| * | > | © en | [es|ea Exercice 3 corrige : saisios et affichages En langage Python, la commande : « saisir A » se code : © Lorsque 4 est une chaine de caractires A= input (4: © Lorsque 4 est un entier : int input ("A=") )e52 2 © Lorsque 4 est un réel Aefloat(input(*A=")) Ja commande: « afficher A » se code print (a)=:ff:2- 2 Ja commande : « affecter dA la valeur B » se code: at input nt input ut Prthion 1 Apres la touche # (diése) on peut écrire un commentaire qui ne sera évidemment pas considéré comme une instruction ors de l'exécution du programme. On considire lalgorithme A,B at C sont de type réel Saisir Bed Cea COAB Be-3B-10 Afficher B En langage Python, il se code Zoint Puthon 2 (On peut réaliser un affichage composé d'un « mélange » de caractares et de contenu de variables. La partic « message » s'écrit entre guillemets et le message est séparé de la variable par une virgule. Pour exécuter ce programme, on appuie sur la touche ». Dans la console, on obtient 5 aeftogtlinpuel"aet))= bens? Eats I Bprint('La valeur de @ est!,a)-2- a On saisit, par exemple, la valeur 6,7 puis on appuie sur la touche « Bnirée » du clavier. Dans la console, on obtient Bi 2 Aefloat (input (*4="D)¥ i, easatiss ic. La valeur de ext -4 Point Python 3 : en langage Python, a se code: a**n Par sécurité, un véhicule doit respecter unc distance minimale avec le véhicule qui le précéde, afin avoir le temps de freiner avant une collision. Ce temps correspond & celui de la perception puis de la réaction du conducteur, ainsi que des possibilitss de fieinage da véhicule. Ce temps est fonction de la vitesse v du vebicule. Des études statistiques ont montré que cette distance D peut étre calculée parla formule: D=8+0,2v+0,0030*, ol! vest en dm/ket Den metres. 1. Caleuler Ia distance de freinage pour une vitesse de 100 Jon/h puis de 200 kon’ 2 Exercice 4: vitesse @arrét T ‘Vitesse en krvh Distance d’arrét en m 2. Berire un algoritiame qui affiche cette distance D en sortie lorsqu’est fournie la vitesse v en entrée. Traduire cet algorithme en langage Python. On attend un message final du type :« Pour une vitesse de, v kmv/b, la distance de freinage est :, D , metres Algorithme « vitesse @arrét» [Programme en Iangage Python Exercice§ + indice de masse corporelle avec deux variables On soubaite érire un algorithme permettant de caleuler indice de masse corporelle (IMC) d'un individu, Cet indice se ealcule ma (en kg/m’). Taide de la formule: ZMC + raille 1. Quelles sont les variables qu’il va falloir utilisor dans cet algorithme ? 2. Quelle sera I’instruction de sortie ? 3. Eerire cet algorithme et son codage en langage Python. ‘Algorithme IMC Programme en langage Python 4. Utiliser le programme pour obtenir IMC ’un individu de taille 1,70m et de poids 65kg Exercice 6: olit d'un séjour avec deux variables Une association organise un séjour balnéaire dans un hotel. Le cott joumalier par personne de la pension & ’hdtel est 80€ et celui du voyage est de 300€. 1. Quel est le codt total d'un séjour d’une semaine pour 10 personnes ? 2. Berire un algorithme qui affche le cott total du séjour selon le nombre J de jours réservés et le nombre N de participants. Coder cet algorthme en langage Python, ~ Algorithme coat | Programme en langage Python | Exercice 7 Point Pyihion 4 En langage Python é © Va s’écrit sqrt(a), ¢ Llutilisation des fonctions usueles: racine, sinus, eosin... névessite le chargement d'un module nommé « math», + Ce chargement s'effectue au début du programme en écrivant: from math import, Voir ci-dessous, cron sath Snport™ -riost( input =ricas(snpant .= 3 1. Ecrire un algorithme qui prend en entrées la largeur J et la longueur L d'un rectangle et qui, en sorties, donne I’sire, le périmetre et la longueur de la diagonale de ce rectangle. 2, Traduire eet algorithme en langage Python avec des messages finaux adaptés a la situation. Algorithme aire périmétre Programme en langage Python IIL. La structure Si-Alors ss données & exécuter les unes apres les ms ef boucles, gui ont un effet sur l'exéeution + Unalgorithme ne contient pas seulement des instructions de manipulation autres, ais aussi des instructions dites de contréle ou de structure : condi des autres instructions + Le premier type de telles instructions est celle permettant une exécution conditionnelle. Elle a pour but d'exécuter des instructions seulement dans le cas oi une certaine condition est réalisée. On peut la symboliser comme suit Instructions. i condition alors instructions & réaliser si a condition est réalisée fin Si Instructions. La condition doit pouvoir ire évaluée & vrat ou faux. Its‘agit done d’une expression logigue, plus ou moins compliquée. ‘Sila condition est vérifge les instructions situées entre le Sie le fin Si sont exécuiées, celles situées apr le fin Si le sont ensuit ‘Si la condition n'est pas vérfié, les instructions situées entre le Stet le fin Sine sont pas exécutées et « on passe > a Vinstruction qu suit immédiatement le «fin Si L’organigramme ci-contre permet de visualiser cette structure : les rectangles représentent des instructions. Point Python 5: en langage Python la structure Stalors se code S from math inport= . 5 6 11 instructions... 13.56 (condition): 13" instructions... 16 instructions 5 On remarquera qu'il nest pas nécessaire, en Python, d'indiquer Ia « fini ». L'indentation, autrement dit le décalage vers la aroite des instructions suivant le Si, suffisent d indiquer la « fin-si » Exercice 8 : fa structure Si-ators : corrigé Point Python 6 : en langage Python on compte les tests suivants © Tester le fat que dewe nombre A et B sont égaux sit (A==B) :. On remarquera le double « = » pluiot qu'un seul « = » esting, iui, & affectation. ee Tester si deux nombres A et B sont différents zif (A !=B) +. Al=B Tester sile nombre A est strictement supérieur au nombre B: if A>B): owif(B=B) : ouif(B; A>36 1. Bcrire un algorithme qui prend deux nombres réels A et B en entrées et qui affiche le plus grand des deux en sortie. Het B sont de type reel Saisir A et B Si 4C alors nec in Si Afficher m TV. La structure Si-Alors-Sinon Pour exécuter certaines instructions dans le cas oit une condition est réalisée et d'autres dans le cas oit elle ne I'est pas, om utilise la structure Si-cRot5~siten On peut (a symboliser comme suit Tnsiructions Sj condition alors instructions & réaliser si la condition est réalisée sinon instructions a effectuer si 18 condition n'est pas réalisée fin Si-sinon, Insiructions, c= a ~ > Sila condition est vérifiée les instructions situées entre le Si et le sinon sont exécutées, celles situées entre le sinon et le fin Si-sinon ne le sont pas. Sila condition n'est pas vérifiée, les instructions situées entre e Si et le sinon ne sont pas exécutées, celles situées entre ze sinon et le fin Si-sinon le sont. Dans tous les eas, les instructions situées aprés le fin visualiser cette structure. 5 sinon sont exéoutées. L“organigramme ci-dessus permet de Point Python 7 : en langage Python la structure St-alors-sinon se code Ee (conastion!: Heater avec indentation. "és le else, la prévence du « : » puis un, Exercice 10 : la structure Si-alors-sinon : corrigé 1. Ecrire un algorithme qui prend deuce nombres réels en entrées et qui les affiche dans l’ordre croissant. A et B sont de type reel Saisir Act BB ~ Si ASB alors ‘Afficher A Alfiche B Afficher B Affiche A Hater, Who fin Si-sinon, ed ik 2. Traduire cet algorithme en langage Python. On affichera un message adapié ila situation. 1 Aeflost input") eEReaenpaet =) Tat (aes): rine (ay Exercice 11 : structure si-alors-sinon : ‘Une maison 4’édition recrute des vendeurs & domicile pour placer des collections de livres d'art. Ele propose, au choix, deux types de contrats contrat 1 : wn salaire mensuel fixe de :3150 € + 165 € par collection vendue. ‘contrat 2 pas de salaire five, mais 240 € par collection vendue. 1. Compléter Palgorithme ci-dessous qui prend le nombre x de collections vendues en entrée et qui renvoie, en sorties, Ie ‘numéro du contrat le plus intéressant puis le revenu qu'il permettra de gagner pour ces x collections vendues. En cas de revenus identiques, le contrat | sera privilégié. 2. Traduite cet algorithme en langage Python. On affichera les messages adaptés la situation. [ Lalgorithme contrat ‘Le programme python ] x, R et R, sont de type entier Saisir x R & 3150+65x Re Si... alors | Afficher: « choisir le contrat... et vous gagnere sinon ‘Afficher: « choisir e contrat... et vous gagnere2 Si-sinon . +3. Tester le programme successivement pour une vente de 10 collections puis pour une vente de 50 9 Exercice 12 corrigé : véciproque du théoréme de Pythagore Point Python 8: structure elif: © Is'agit d’une structure propre a Python et qui évite une imbrication de Si-Alors-sinon lorsque I’on est confronté a de ‘multiples conditions. Voir la capture d’éeran ci-dessous. * Lacondition 1 est testée, si elle est verifiée le bloc "instructions 1 est exécuté puis on passe au bloc d'instructions 5. Sila condition 1 n'est pas vérifiée, la condition 2 est teste. © Sila condition 2 est vérifige, le bloc d’instructions 2 est exécuté puis on passe au bloc d’instructions 5. Si la condition 2 n'est pas vérifiée, la condition 3 est testée. ‘* Sila condition 3 est vérifige, le bloc d"instructions 3 est exécuté puis on passe au bloc dinstructions 5. Sila condition 3 nest pas vérifig, le bloc d’instructions 4 est exécuté puis on passe au bloc d’'instructions 5. ¢ On peut évidemment utiliser autant de blocs elif: qu’on le souhal Banstructicns 16 5¢ (condition 1): ap “Blot a anstructions 2 19 elif (conden 21: bloe'a* instructions 2 22 etif, (condition 2) 22° blac dianstructions 3 30° bloc dvinstructions & 2ebloc drinstructices 5 Ecrire un programme Python qui prend, en entrées, les longuewrs BC = 1. AC=b, AB=c des trois cétés d'un triangle ABC et qui renvoie un message adapté précisant si le triangle est rectangle ou non. Si le triangle est rectangle, le message doit préciser en quel point, >> arret(iee) 2 pod 2. Quelques applications de Ia notion de fonction Hxercice 25 corried : une fonction avec deux arguments La surface S en mt? de a peau d'un adulte est donnée appraximativement par la formule ow L est la taille de la ‘personne exprimée en m et M'sa masse exprimée en kg, 1. Ecrire une fonction nommée surface qui prend deacx arguments L et M et retourne la surface corporelle S. from math inport* def susface( a): Sesqre(ty/e rreturn(S) 2. Appeler cette fonction dans la console pour déterminer la surface corporelle d'un adulte qui mesure 1,80 m et pése 75 kg. >>> _surface(.02,75) js -osas02e7s1037083, Exercice 26: fonction Aux urgences, on recouvre les grands brulés d'un médicament liquide afin de calmer les douleurs et de favoriser la cicatrisation. Pour recouvrir une surface de Im’ de peau, on estime que SL de médicament suffisent. 1. Programmer une fonction soin permettant d’obtenir la quantité de médicament suffisante pour calmer un individu connaissant sa taille ¢t sa masse, La fonction surface de l’exercice 25 sera appelée dans ce programme. 2. Un individu brulé se présente aux urgences. Il mesure 1,90 m et pése 92 kg. Quelle quantté de médicament sera-til nécessaire pour soigner ce patient ? Wy Exercice 27: maximum-minimum 1. Programmer une fonction, nommée maximum, qui prend trois réels en arguments et renvoie le plus grand des trois : 2. Programmer une fonction, nommée minimum, qui prend trois réels en arguments et renvoie le plus petit des ois. 3. Berire un programme qui permet la saisie de trois réels et affiche le plus grand des trois et le plus petit des trois. Exercice 28 1, Programme une fonction nommée faet qui prend un enticr 21 en argument et retourne le produit des entiers de 1 an, Info: en mathématiques, le produit des entiers de 1 A n se note mn! ets’appelle factorielle de l'entier n 2. Ecrire un programme qui prend un entier N21 en entrée et qui, pour tout 1

You might also like