{"id":1696,"date":"2012-04-21T22:25:45","date_gmt":"2012-04-21T20:25:45","guid":{"rendered":"http:\/\/www.auditsi.eu\/?p=1696"},"modified":"2015-02-01T13:58:09","modified_gmt":"2015-02-01T11:58:09","slug":"initiation-a-la-programmation-en-basic-etape-7-boucles","status":"publish","type":"post","link":"https:\/\/www.auditsi.eu\/?p=1696","title":{"rendered":"Initiation \u00e0 la programmation en Basic \u2013 ETAPE 7 : Boucles"},"content":{"rendered":"<p style=\"text-align: justify;\">Pour le moment, notre programme calcule et affiche la mensualit\u00e9 \u00e0 rembourser. La pr\u00e9sente \u00e9tape propose d\u2019\u00e9tablir l\u2019\u00e9ch\u00e9ancier de remboursement.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-Editeur1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1697\" title=\"freeBasic Editeur\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-Editeur1.jpg\" alt=\"\" width=\"663\" height=\"575\" srcset=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-Editeur1.jpg 663w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-Editeur1-300x260.jpg 300w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-Editeur1-1x1.jpg 1w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><\/a>La mod\u00e9lisation d\u2019un \u00e9ch\u00e9ancier est simple : pour une \u00e9ch\u00e9ance donn\u00e9e, le montant des int\u00e9r\u00eats est calcul\u00e9 sur le montant du capital restant d\u00fb et le montant du capital amorti \u00e9gale l\u2019annuit\u00e9 d\u00e9duction faite des int\u00e9r\u00eats. Pour obtenir l&#8217;\u00e9ch\u00e9ancier, il suffit de r\u00e9p\u00e9ter ces calculs sur la dur\u00e9e de remboursement.<\/p>\n<p style=\"text-align: justify;\">Toutes les notions n\u00e9cessaires aux calculs ont \u00e9t\u00e9 vues pr\u00e9c\u00e9demment. Seule manque la technique de programmation qui permet la r\u00e9p\u00e9tition des calculs de remboursements. Cette r\u00e9p\u00e9tition est rendue possible \u00e0 l\u2019aide d\u2019une boucle.<\/p>\n<p style=\"text-align: justify;\"><strong><em>Boucle compteur :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Une boucle est une structure de programmation qui permet de r\u00e9p\u00e9ter un ensemble d\u2019instructions un certain nombre de fois. Il existe plusieurs types de boucles. Celui que nous verrons ici est de type compteur. Il se construit \u00e0 l\u2019aide des mots clefs suivants :<\/p>\n<p style=\"text-align: justify;\">FOR variable compteur = d\u00e9part TO arriv\u00e9e STEP pas<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">[\u2026]<\/p>\n<p style=\"text-align: justify;\">NEXT<\/p>\n<p style=\"text-align: justify;\"><em>Exemple :<\/em><\/p>\n<pre class=\"lang:default decode:true\">FOR i=1 TO 5\r\n  PRINT \u00ab Ligne n\u00b0 \u00ab ,i\r\nNEXT i<\/pre>\n<p style=\"text-align: justify;\">L\u2019instruction <em>FOR<\/em> fera prendre \u00e0 la variable i successivement toutes les valeurs comprises de 1 \u00e0 (<em>TO<\/em>) 5. Cet exemple affichera donc cinq lignes \u00ab Ligne n\u00b0 \u00bb affubl\u00e9es respectivement du chiffre 1, 2, 3\u2026 L\u2019instruction <em>NEXT<\/em> ferme la boucle, le programme repart sur la ligne <em>FOR<\/em> jusqu\u2019\u00e0 ce que la variable i \u00e9gale cinq.<\/p>\n<p style=\"text-align: justify;\">Dans l\u2019exemple pr\u00e9c\u00e9dent, la variable est incr\u00e9ment\u00e9e de un en un. L\u2019instruction <em>STEP<\/em> permet de d\u00e9finir le pas d\u2019incr\u00e9mentation. Par exemple, <em>STEP 2<\/em> incr\u00e9mentera la variable i de deux en deux. Il est \u00e9galement envisageable d\u2019adopter un pas n\u00e9gatif (dans ce cas, la valeur de d\u00e9part du compteur doit \u00eatre sup\u00e9rieure \u00e0 celle d\u2019arriv\u00e9e).<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Boucle-FOR.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1699\" title=\"freeBasic ETAPE 7 Boucle FOR\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Boucle-FOR.jpg\" alt=\"\" width=\"544\" height=\"172\" srcset=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Boucle-FOR.jpg 544w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Boucle-FOR-300x94.jpg 300w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Boucle-FOR-1x1.jpg 1w\" sizes=\"auto, (max-width: 544px) 100vw, 544px\" \/><\/a>Pour \u00e9tablir notre \u00e9ch\u00e9ancier, notre boucle compteur n\u00e9cessite la d\u00e9finition d\u2019une variable de type <em>Integer<\/em>, que nous nommerons i. La valeur de d\u00e9part du compteur sera 1 (la premi\u00e8re \u00e9ch\u00e9ance) et la valeur d\u2019arriv\u00e9e sera <em>duree * 12<\/em>, c\u2019est-\u00e0-dire le nombre de mois (soit le nombre d\u2019\u00e9ch\u00e9ances) ; ainsi programm\u00e9e, la boucle traitera successivement chaque \u00e9ch\u00e9ance.<\/p>\n<p style=\"text-align: justify;\"><strong><em>Calcul des \u00e9ch\u00e9ances :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Le calcul de chaque \u00e9ch\u00e9ance int\u00e8gre le calcul :<\/p>\n<ul>\n<li style=\"text-align: justify;\">Des int\u00e9r\u00eats (variable interet) : les int\u00e9r\u00eats sont calcul\u00e9s en appliquant le taux de r\u00e9mun\u00e9ration sur le montant du capital restant d\u00fb ; ce calcul sera programm\u00e9 ainsi : interet=capitalrestant*taux\/12.<\/li>\n<li style=\"text-align: justify;\">Du capital rembours\u00e9 (variable capitalremb) : cet item est calcul\u00e9 en soustrayant les int\u00e9r\u00eats de l\u2019\u00e9ch\u00e9ance \u00e0 la mensualit\u00e9 ; code-source : capitalremb=mens-interet<\/li>\n<li style=\"text-align: justify;\">Du capital restant \u00e0 rembourser (variable capitalrestant) : calcul\u00e9 par soustraction entre le capital restant d\u00fb et le capital rembours\u00e9 lors de l\u2019\u00e9ch\u00e9ance ; code-source : capitalrestant = capitalrestant &#8211; capitalremb<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Les nouvelles variables introduites ci-avant sont d\u00e9clar\u00e9es en t\u00eate de programme :<\/p>\n<pre class=\"lang:default decode:true  \">Dim capitalrestant As Double\r\nDim interet As Double\r\nDim capitalremb as double<\/pre>\n<p style=\"text-align: justify;\">Il ne reste plus qu\u2019\u00e0 afficher le calcul de chaque \u00e9ch\u00e9ance avec l\u2019instruction <em>PRINT<\/em>.<\/p>\n<p style=\"text-align: justify;\"><strong><em>R\u00e9sultat du programme :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Console.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1700\" title=\"freeBasic ETAPE 7 Console\" src=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Console.jpg\" alt=\"\" width=\"677\" height=\"342\" srcset=\"https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Console.jpg 677w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Console-300x151.jpg 300w, https:\/\/www.auditsi.eu\/wp-content\/uploads\/2012\/04\/freeBasic-ETAPE-7-Console-1x1.jpg 1w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a>Le programme affiche l&#8217;\u00e9ch\u00e9ancier. Dans la prochaine \u00e9tape, nous verrons comment le mettre en forme&#8230;<\/p>\n<p style=\"text-align: justify;\"><strong><em>Conclusion :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Apr\u00e8s cette \u00e9tape, vous savez maintenant programmer des probl\u00e8mes de calcul simples.<\/p>\n<p style=\"text-align: justify;\">Avez-vous des calculs que vous effectuez couramment manuellement que vous souhaiteriez automatiser ? Soumettez-les en commentaires ou par m\u00e9ls, nous y r\u00e9fl\u00e9chirons ensembles.<\/p>\n<p style=\"text-align: justify;\"><strong><em>Code-source du programme \u00e0 ce stade de l&#8217;initiation :<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\">Le code-source fourni ci-apr\u00e8s est t\u00e9l\u00e9chargeable (cf en bas d&#8217;article) :<\/p>\n<pre class=\"lang:default decode:true  \">'Calcul d'un \u00e9ch\u00e9ancier d'emprunt\r\n\r\n'Ecrit en basic sous FreeBASIC\r\n\r\n'Par Beno\u00eet-Ren\u00e9 RIVIERE, www.auditsi.eu\r\n\r\n \r\n\r\n#include \"string.bi\"\r\n\r\n \r\n\r\n'---D\u00e9claration des variables\r\n\r\n'------Param\u00e8tres emprunt\r\n\r\nDim capital As Double\r\n\r\nDim duree As Integer\r\n\r\nDim taux As Double\r\n\r\nDim mens As Double\r\n\r\n'------Variables diverses\r\n\r\nDim i As Integer\r\n\r\n'------Variables emprunt mensualit\u00e9\r\n\r\nDim capitalrestant As Double\r\n\r\nDim interet As Double\r\n\r\nDim capitalremb as double\r\n\r\n \r\n\r\n'---Saisie des param\u00e8tres de l'emprunt\r\n\r\nCls\r\n\r\nColor 11\r\n\r\nPrint \"Calcul d'un \u00e9ch\u00e9ancier d'emprunt\"\r\n\r\nPrint\r\n\r\nColor 15\r\n\r\nPrint \"Saisissez les param\u00e8tres de l'emprunt :\"\r\n\r\nInput \"Capital emprunt\u00e9 : \",capital\r\n\r\nInput \"Dur\u00e9e de l'emprunt en ann\u00e9es : \",duree\r\n\r\nInput \"Taux annuel : \",taux\r\n\r\n \r\n\r\n'---Calcul et affichage de la mensualit\u00e9\r\n\r\ntaux=taux\/100\r\n\r\nmens = (capital*taux\/12) \/ (1-(1+taux\/12)^-(duree*12))\r\n\r\nPrint \"Mensualit\u00e9 : \";Format(mens,\"0.00\")\r\n\r\n'---Calcul, affichage et enregistrement de l'\u00e9ch\u00e9ancier\r\n\r\ncapitalrestant=capital\r\n\r\nFor i=1 To duree*12\r\n\r\n  interet=capitalrestant*taux\/12\r\n\r\n  capitalremb=mens-interet\r\n\r\n  'Affichage de la ligne en cours\r\n\r\n  Print i ; \" : \";Format(capitalrestant,\"0.00\");\" - \";Format(interet,\"0.00\");\" - \";Format(capitalremb,\"0.00\");\" - \";Format(capitalrestant-capitalremb,\"0.00\")\r\n\r\n \r\n\r\n  capitalrestant=capitalrestant-capitalremb\r\n\r\nNext i\r\n\r\n \r\n\r\nSleep<\/pre>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Initiation%20%C3%A0%20la%20programmation%20en%20Basic%20%E2%80%93%20ETAPE%207%20%3A%20Boucles\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Pour le moment, notre programme calcule et affiche la mensualit\u00e9 \u00e0 rembourser. La pr\u00e9sente \u00e9tape propose d\u2019\u00e9tablir l\u2019\u00e9ch\u00e9ancier de remboursement. La mod\u00e9lisation d\u2019un \u00e9ch\u00e9ancier est simple : pour une \u00e9ch\u00e9ance donn\u00e9e, le montant des int\u00e9r\u00eats est calcul\u00e9 sur le montant du capital restant d\u00fb et le montant du capital amorti \u00e9gale l\u2019annuit\u00e9 d\u00e9duction faite des &#8230;<\/p>\n<p><a href=\"https:\/\/www.auditsi.eu\/?p=1696\" class=\"more-link\">Continue reading &lsquo;Initiation \u00e0 la programmation en Basic \u2013 ETAPE 7 : Boucles&rsquo; &raquo;<\/a><\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"https:\/\/static.hupso.com\/share\/buttons\/lang\/fr\/share-small.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"facebook_send\",\"email\",\"print\",\"linkedin\");var hupso_counters_lang = \"fr_FR\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"BenoitRiviere14\";var hupso_url_c=\"\";var hupso_title_c=\"Initiation%20%C3%A0%20la%20programmation%20en%20Basic%20%E2%80%93%20ETAPE%207%20%3A%20Boucles\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[442,39,1207],"tags":[1647,273,905,909,910,908,836,387,252,904,894,911,663,1641],"class_list":["post-1696","post","type-post","status-publish","format-standard","hentry","category-basic","category-cas-pratiques","category-initiation-au-basic","tag-basic","tag-boucles","tag-calcul-de-mensualite","tag-calcul-des-interets","tag-capital-restant-du","tag-compteur","tag-echeancier-demprunt","tag-for-to-next","tag-format","tag-mathematiques-financieres","tag-print","tag-step","tag-tutoriel","tag-vba"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/1696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1696"}],"version-history":[{"count":9,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/1696\/revisions"}],"predecessor-version":[{"id":5826,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=\/wp\/v2\/posts\/1696\/revisions\/5826"}],"wp:attachment":[{"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auditsi.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}