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

Dimension: px
Commencer à balayer dès la page:

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

Transcription

1 TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION (conditionnelles et repetitives) ' 'C. Monteil (mailto:monteil@ensat.fr) - INP/ENSAT ( Sub CalculAnnuite() 'ROLE Déterminer la valeur de chaque annuité de remboursement ' d'un emprunt à partir du montant de l'emprunt, du taux ' d'intérêt annuel et de la durée de l'emprunt. On affiche ' également le taux d'intérêt global équivalent. ' ' Info. saisies : Capital emprunté (Euros) ' Taux d'intérêt annuel (%) ' Durée de l'emprunt (années) ' ' Affichages : Annuité de remboursement (Euros) ' Taux d'intérêt global équivalent (%) ' 'TEST pour un capital de Euros sur 5 ans a 10% ' l'annuite vaut Euros et le taux global (31,9%) Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt" Dim Annuite As Currency, Capital As Currency Dim TauxAnnuel As Double, TauxGLOBAL As Double Dim Duree As Integer 'Nombre d'années '1.saisie des données : Afficher "Capital emprunté (en Euros) : " Saisir Capital, Afficher "Durée de l'emprunt (en années) : " Saisir Duree, 5 Afficher "Taux d'intérêt annuel (en %) : " Saisir TauxAnnuel, 10 '2.calcul de l'annuité et du taux global TauxAnnuel = TauxAnnuel / 100 'normalisation : 100% = 1 Annuite = Capital * TauxAnnue1 / (1-1 / (1 + TauxAnnuel) ^ Duree) TauxGL0BAL = Duree * Annuite / Capital - 1 '3.affichage des résultats Afficher "Montant de chaque annuité : " & Format(Annuite, "0.00 ") Afficher "Taux d'intérêt global : " & Format(TauxGLOBAL, "0.0%") Sub Equation1erDegre() ' ROLE: tester la structure de contrôle Si...Alors...Sinon ' sur l'exemple de resolution d'une equation du 1er degre ' DONNEES : les 2 coefficients a et b de l'equation a*x+b = 0 ' RESULTAT: la racine de l'equation (si elle existe) Dim CoefA As Double, CoefB As Double, Racine As Double EffacerEcran "Equation du 1er degré a.x + b = 0" '1.saisie des données Afficher "Coefficient a :" : Saisir CoefA, 2 Afficher "Coefficient b :" : Saisir CoefB, -10 '2.resolution et affichage de la solution If CoefA = 0 Then If CoefB = 0 Then Afficher "Equation indeterminee!" Afficher "Equation impossible!" Racine = -CoefB / CoefA : Afficher "Racine = " & Racine Sub DivisionEuclidienne() ' ROLE: tester la structure de contrôle Do... Loop sur l'exemple ' de calcul du quotient et du reste d'une division euclidienne ' DONNEES : le dividende n et le diviseur d ' RESULTATS: le quotient q et le reste r Dim n As Integer, d As Integer 'dividende et diviseur Dim q As Integer, r As Integer 'quotient et reste EffacerEcran "Division euclidienne" '1.saisie des données Do 'saisie de n avec vérification n>=0 Afficher "Entrer un nombre n (entier >= 0)": Saisir n, 20 Loop Until n >= 0 Do 'saisie de d avec vérification d>0 Afficher "Entrer un diviseur d (entier > 0)": Saisir d, 7 Loop Until d > 0 '2.calcul du quotient q et du reste r q = 0: r = n Do While r >= d 'invariant: n = d.q + r q = q + 1 : r = r - d Afficher " Pas n " & q & " : " & n & " - " & q & " * " & d & " = " & r Loop '3.affichage du résultat Afficher "Division de " & N & " par " & d & ": quotient = " & q & ", reste = " & r

2 TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 2 Sub Equation2ndDegre() ' ROLE afficher les racines d'une équation du second degré ' de la forme: CoefA.x2 + CoefB.x + CoefC = 0 ' TEST DE LA STRUCTURE DE CONTROLE Select Case ' DONNEES : les 3 coefficients a, b et c de l'equation a*x^2 + b*x + c = 0 ' RESULTATS: la (ou les) racine(s) de l'equation (si elles existent) Const INDETERMINE = 1, IMPOSSIBLE = 2, AUCUNE_RACINE = 3, _ UNE_RAC_SIMPLE = 4, UNE_RAC_DOUBLE = 5, DEUX_RACINES = 6 Dim CoefA As Double, CoefB As Double, CoefC As Double 'coefficients Dim Racine1 As Double, Racine2 As Double 'racines Dim Determinant As Double Dim CodeCas As Single 'code du cas correspondant : cf. constantes EffacerEcran "Résolution d'une équation du 2nd degré" '1.saisie des données Afficher "Coefficient a : " Saisir CoefA, 1 Afficher "Coefficient b : " Saisir CoefB, -1 Afficher "Coefficient c : " Saisir CoefC, -1 '2.résolution If CoefA = 0 Then 'équation du 1er degré If CoefB = 0 Then If CoefC = 0 Then CodeCas = INDETERMINE CodeCas = IMPOSSIBLE Racine1 = -CoefC / CoefB: CodeCas = UNE_RAC_SIMPLE 'équation du 2nd degré Determinant = CoefB ^ 2-4 * CoefA * CoefC If Determinant > 0 Then Racine1 = (-CoefB - Sqr(Determinant)) / (2 * CoefA) Racine2 = (-CoefB + Sqr(Determinant)) / (2 * CoefA) CodeCas = DEUX_RACINES If Determinant = 0 Then Racine1 = -CoefB / (2 * CoefA) CodeCas = UNE_RAC_DOUBLE CodeCas = AUCUNE_RACINE '3.affichage des solutions Select Case CodeCas Case INDETERMINE Caractères Espace et Souligné pour signifier le prolongement d'une même instruction sur 2 lignes différentes Forme abrégée du If (puisque Then est suivi d'une instruction sur la même ligne) : absent et implicite en fin de ligne Afficher "Equation indéterminée" Case IMPOSSIBLE Afficher "Equation impossible" Case AUCUNE_RACINE Afficher "Pas de racines réelles" Afficher "pas de chance!" Case UNE_RAC_SIMPLE Afficher "Une seule racine " & Racine1 Case UNE_RAC_DOUBLE Afficher "Une racine double" & Racine1 Case DEUX_RACINES Afficher "Deux racines " & Racine1 & " et " & Racine2 Case Afficher "Cas non prevu!!!" End Select Sub CalculMoyenne() ' ROLE: saisir plusieurs notes et afficher leur moyenne ' TEST DE LA STRUCTURE DE CONTROLE Pour ' DONNEES : le nombre de notes a saisir, et chaque note ' RESULTAT: la moyenne des notes saisies Dim NbNotes As Integer 'nombre de notes Dim Total As Integer 'total des notes saisie jusqu'alors Dim Note As Integer 'derniere note saisie Dim Numero As Integer 'numéro de la note à saisir EffacerEcran "Calcul de la moyenne de plusieurs notes" '1.saisie du nombre de notes Afficher "Indiquer le nombre de notes a saisir : " Saisir NbNotes, 4 If NbNotes <= 0 Then Afficher "Nombre de notes (" & NbNotes & ") non valide!" '2.boucle de saisie des notes avec cumul du total Total = 0 For Numero = 1 To NbNotes ' saisir une note et cumuler Afficher "Note " & Numero & "? " Saisir Note, 10 + Numero Total = Total + Note Next Numero '3.affichage du resultat Afficher "La moyenne des " & NbNotes & " notes vaut " & Total / NbNotes

3 TD2 : algorithmes sur les structures de contrôle de l'exécution page 1 Titre (énoncé implicite) Rôle (énoncé explicite) Particularités somme des nombres de 1 à n Donnée : un nombre entier n >= 1 Résultat : un nombre Somme = n On affichera pour vérification le nombre : n * (n+1) / 2 Exemple : n = 5 => S = = 15 boucle simple avec cumul puissance entière d'un nombre quelconque Données : un nombre x (réel non nul), une puissance n (entier positif ou nul) Résultat : un nombre y = x n (rappel : la puissance 0 d'un nombre quelconque non nul vaut 1, et non 0) Méthode : y est calculé sans utiliser l'exponentiation directe, mais par un produit de n facteurs : y = x * x * * x Exemples : 2 3 = 8, 2 0 = 1 test de nombre premier Donnée : un nombre entier n > 1 Résultat : indiquer s'il est premier, sinon Afficher son 1 er diviseur Exemple : 15 n'est pas premier (1 er diviseur = 3) affichage de nombres parfaits tableau de remboursement d'un emprunt Nombre parfait = nombre égal à la somme de ses diviseurs (lui-même étant exclu) Donnée : un nombre entier n > 1 Résultat : indiquer s'il est parfait ou non, et Afficher la liste de ses diviseurs et leur somme Exemple : 6 est parfait (liste de ses diviseurs = 6) (autres nombres < : 28 = ; 496 = ; 8128= ) Données : capital emprunté ( ), taux d'intérêt annuel (%), durée emprunt (années) Résultats : - annuité de remboursement ( ), intérêts totaux ( ) et taux d'intérêt global (%) - pour chaque année : montant des intérêts de l'année, de la part de capital remboursée, et du capital restant à rembourser - Afficher ensuite pour vérification le cumul des intérêts annuels, des parts en capital annuelles, et le rapport (en pourcentage) entre ces 2 grandeurs Exemple : emprunt de à 10% pendant 3 ans => annuité = , intérêts totaux = , taux global = 20.6% Année Part intérêt Part capital Capital restant du Total (rapport : 20.6%) boucle simple avec cumul multiplicatif boucle de recherche à double condition d'arrêt boucle avec cumul partiel boucle avec plusieurs variables interdépendantes et plusieurs cumuls

4 Programme CalculerSommeNombres Rôle : calcule la somme des n premiers nombres entiers (n = nombre à saisir) Saisie : un nombre entier n >= 1 Affichage : un nombre Somme = n On affichera pour vérification le nombre : n * (n+1) / 2 _Exemple: n = 5 => Somme = = 15 Var n, Somme, i : entier TD2 : algorithmes sur les structures de contrôle de l'exécution page 2 Programme TesterNombrePremier Rôle : indique si un nombre saisi au clavier est premier Saisie : un nombre entier n > 1 Affichage : indique s'il est premier, sinon affiche son 1er diviseur _Exemple : 15 n'est pas premier (1er diviseur = 3) Var n, d : entier _ ExisteDiviseur : booléen {vrai si on trouve un diviseur} {1.saisie de la donnée} Afficher ("Entrer un nombre strictement positif"); Saisir (n) {2.calcul de la somme} Somme 0 Pour i de 1 à n Répéter {Somme = somme des nombres de 1 à i} _Somme Somme + i {3.affichage du résultat} Afficher ("La somme des ", n, " premiers nombres entiers vaut ", Somme) Afficher ("Vérification : ", n, "*(", n, "+1)/2 = ", n * (n + 1) / 2) Programme CalculerPuissanceEntiere Rôle : élever un nombre réel (saisi au clavier) à une puissance entière (saisie au clavier) (rappel : la puissance 0 d'un nombre quelconque non nul vaut 1, et non 0) Saisie : un nombre x (réel non nul), un exposant n (entier positif ou nul) Affichage : un nombre y = x puissance n Exemples : 2 puissance 3 = 8, 2 puissance 0 = 1 _NOTA : on n'utilise pas l'opérateur d'exponentiation, mais une boucle multiplicative Var x, y : réel; _ n, i : entier {1.saisie des données} Afficher ("Entrer un nombre réel non nul"); Saisir (x) Afficher ("Entrer un nombre entier positif (exposant)"); Saisir (n) {2.calcul de la puissance} y 1 Pour i de 1 à n répéter {y = x puissance i} _y y * x {3.affichage du résultat} Afficher (x, " puissance ", n, " vaut ", y) {1.saisie de la donnée} Afficher ("Entrer un nombre supérieur à 1"); Saisir (n) {2.boucle de recherche du 1er diviseur autre que 1 et le nombre} d 2 ; ExisteDiviseur FAUX {a priori, pas de diviseur} Tant que (d < n) et Non ExisteDiviseur Répéter {teste si d divise n} _ Si n Mod d = 0 Alors ExisteDiviseur VRAI Sinon d d + 1 {3.affichage du résultat} Si ExisteDiviseur Alors Afficher (n, " n'est pas premier (premier diviseur : ", d, ")") Sinon _ Afficher (n, " est premier") Programme TesterNombreParfait Rôle : indique si un nombre saisi au clavier est parfait : un nombre est dit "parfait" s'il est égal à la somme de ses diviseurs (lui-même étant exclu) Saisie : un nombre entier n > 1 Affichage : indiquer s'il est parfait ou non, et afficher la liste et la somme de ses diviseurs _Exemple : 28 est parfait (diviseurs : = 28) Var n, d, SommeDiviseurs : entier _ ChaineDiviseurs : chaîne {liste des diviseurs trouvés} {1.saisie de la donnée} Afficher ("Entrer un nombre supérieur à 1"); Saisir (n) {2.boucle de cumul des diviseurs} SommeDiviseurs 1; ChaineDiviseurs "1" {1 est forcement un diviseur} Pour d de 2 à n - 1 répéter {teste si d divise n ; si oui, l'ajoute à SommeDiviseurs} Si n Mod d = 0 Alors SommeDiviseurs SommeDiviseurs + d ChaineDiviseurs ChaineDiviseurs & "+" & d {3.affichage du résultat} Si SommeDiviseurs <> n Alors Afficher (n, " n'est pas parfait ") Sinon _ Afficher (n, " est parfait ") Afficher ("Somme de ses diviseurs : ", ChaineDiviseurs, " = ", SommeDiviseurs)

5 Programme CalculerRemboursementEmprunt Rôle : Déterminer la valeur de chaque annuité de remboursement d'un emprunt à partir du montant de l'emprunt ( ), du taux d'intérêt annuel (%) et de la durée de l'emprunt (années). On affiche également le tableau de remboursement en indiquant pour chaque année la part d'intérêts remboursée, la part de capital remboursée, et le capital restant a rembourser TEST : emprunt de à 10% pendant 3 ans => annuité = , intérêts totaux = , taux global = 20.6% Année Part intérêt Part capital Capital restant du _ Total (rapport : 20.6%) Var Annuite, Capital, FraisTotaux, TauxAnnuel, TauxGLOBAL : réel Duree {Nombre d'années}, An {année courante lors du parcours du tableau} : entier _ PartInteret, PartCapital, CapitalRestant, CumulInteret, CumulCapital : réel {1.saisie des données} Afficher ("Capital emprunté (en Euros) : ") ; Saisir (Capital) Afficher ("Durée de l'emprunt (en années) : ") ; Saisir (Duree) Afficher ("Taux d'intérêt annuel (en %) : ") ; Saisir (TauxAnnuel) {2.calcul et affichage de l'annuité et des frais totaux} TauxAnnuel TauxAnnuel / 100 {normalisation : 100% = 1} Annuite Capital * TauxAnnuel / (1-1 / (1 + TauxAnnuel) ^ Duree) FraisTotaux Duree * Annuite - Capital TauxGLOBAL FraisTotaux / Capital Afficher ("Montant de chaque annuité : ", Annuite) Afficher ("Frais totaux : ", FraisTotaux) Afficher ( "Taux d'intérêt global : ", TauxGLOBAL) {3.calcul et affichage du tableau de remboursement} Afficher ("Année", "Part intérêt", "Part capital", "Capital restant du") CumulInteret 0: CumulCapital 0: CapitalRestant Capital Pour An de 1 à Duree Répéter {calcule et affiche les résultats à la fin de l'année An} PartInteret CapitalRestant * TauxAnnuel CumulInteret CumulInteret + PartInteret PartCapital Annuite - PartInteret CumulCapital CumulCapital + PartCapital CapitalRestant CapitalRestant - PartCapital _ Afficher (An, PartInteret, PartCapital, CapitalRestant) Afficher ("Cumul des intérêts : ", CumulInteret) Afficher ("Cumul du capital : ", CumulCapital) Afficher ("Rapport Intérêts/Capital : ", CumulInteret / CumulCapital) TD2 : algorithmes sur les structures de contrôle de l'exécution page 3

6 TD3 : traduction en Visual BASIC des algorithmes du TD2 sur les structures de contrôle de l'exécution page 1 Sub CalculerSommeNombres() 'ROLE : calcule la somme des n premiers nombres entiers (n = nombre à saisir) 'Info à saisir : un nombre entier n >= 1 'Affichages : un nombre Somme = n ' pour vérification le nombre : n * (n+1) / 2 'Exemple: n = 5 => s = = 15 Const TITRE As String = "Somme des n premiers nombres entiers" Dim n As Integer, Somme As Integer, i As Integer '1.saisie de la donnee Afficher "Entrer un nombre strictement positif" Saisir n, 5 '2.calcul de la somme Somme = 0 For i = 1 To n 'Somme = somme des nombres de 1 à i} Somme = Somme + i Next i '3.affichage du resultat Afficher "La somme des " & n & " premiers nombres entiers vaut " & Somme Afficher "Vérification : " & n & "*(" & n & "+1)/2 = " & n * (n + 1) / 2 Sub CalculerPuissanceEntiere() 'ROLE : élever un nombre reel (saisi au clavier) à une puissance entiere (saisie au clavier) ' (rappel : la puissance 0 d'un nombre quelconque non nul vaut 1, et non 0) 'Infos à saisir : un nombre x (réel non nul), une puissance n (entier positif ou nul) 'Affichage : un nombre y = x puissance n 'Exemples : 2 puissance 3 = 8, 2 puissance 0 = 1 'NOTA : on n'utilise pas l'operateur d'exponentiation, mais une boucle multiplicative Const TITRE As String = "Puissance entière d'un nombre réel" Dim x As Double, n As Integer, Puissance As Double, i As Integer '1.saisie des donnees Afficher "Entrer un nombre réel non nul": Saisir x, 2 Afficher "Entrer un nombre entier (exposant)": Saisir n, 10 '2.calcul de la puissance Puissance = 1 For i = 1 To n 'Puissance = x puissance i} Puissance = Puissance * x Next i '3.affichage du resultat Afficher x & " puissance " & n & " vaut " & Puissance Sub TesterNombrePremier() 'ROLE : indique si un nombre saisi au clavier est premier 'Info à saisir: un nombre entier n > 1 'Affichage : indique s'il est premier, sinon affiche son 1er diviseur 'Exemple : 15 n'est pas premier (1er diviseur = 3) Const TITRE As String = "Test de nombre premier" Dim n As Integer, d As Integer, ExisteDiviseur As Boolean 'vrai si on trouve un diviseur '1.saisie de la donnee Afficher "Entrer un nombre supérieur à 1": Saisir n, 15 '2.boucle de recherche du 1er diviseur autre que 1 et le nombre d = 2: ExisteDiviseur = False ' a priori, pas de diviseur Do While (d < n) And Not ExisteDiviseur 'teste si d divise n If n Mod d = 0 Then ExisteDiviseur = True d = d + 1 Loop '3.affichage du resultat If ExisteDiviseur Then Afficher n & " n'est pas premier (premier diviseur : " & d & ")" Afficher n & " est premier" Sub TesterNombreParfait() 'ROLE : indique si un nombre saisi au clavier est parfait : un nombre est dit ' "parfait" s'il est égal à la somme de ses diviseurs (lui-même étant exclu) 'Info à saisir: un nombre entier n > 1 'Affichage : indiquer s'il est parfait ou non, et afficher la somme de ses diviseurs 'Exemple : 28 est parfait (diviseurs = 28) Const TITRE As String = "Test de nombre parfait" Dim n As Integer, d As Integer, SommeDiviseurs As Integer Dim ChaineDiviseurs As String 'liste des diviseurs trouvés '1.saisie de la donnee Afficher "Entrer un nombre superieur à 1": Saisir n, 28 '2.boucle de cumul des diviseurs SommeDiviseurs = 1: ChaineDiviseurs = "1" '1 est forcement un diviseur For d = 2 To n - 1 'teste si d divise n ; si oui, l'ajoute a SommeDiviseurs If n Mod d = 0 Then SommeDiviseurs = SommeDiviseurs + d ChaineDiviseurs = ChaineDiviseurs & "+" & d Next d '3.affichage du resultat If SommeDiviseurs <> n Then Afficher n & " n'est pas parfait " Afficher n & " est parfait " Afficher "Somme de ses diviseurs : " & ChaineDiviseurs & " = " & SommeDiviseurs

7 Sub CalculerRemboursementEmprunt() 'ROLE : Déterminer la valeur de chaque annuité de remboursement ' d'un emprunt à partir du montant de l'emprunt (Euros), du taux ' d'intérêt annuel (%) et de la durée de l'emprunt (annees). ' On affiche également le tableau de remboursement en indiquant ' pour chaque année la part d'interets remboursee, la part de ' capital remboursee, et le capital restant a rembourser 'TEST : emprunt de 10 à 10% pendant 3 ans ' => annuité = , intérêts totaux = , taux global = 20.6% 'Année Part intérêt Part capital Capital restant du ' ' ' 'Total (rapport : 20.6%) Const TITRE As String = "Remboursement d'un emprunt" Dim Annuite As Currency, Capital As Currency, FraisTotaux As Currency Dim TauxAnnuel As Double, TauxGLOBAL As Double, Duree As Integer 'Nombre d'années Dim PartInteret As Currency, PartCapital As Currency, CapitalRestant As Currency Dim An As Integer 'annee courante Dim Message As String 'message multi-lignes a afficher apres la boucle de calcul Dim CumulInteret As Currency, CumulCapital As Currency '1.saisie des données : Afficher "Capital emprunté (en Euros) : " : Saisir Capital, Afficher "Durée de l'emprunt (en années) : " : Saisir Duree, 3 Afficher "Taux d'intérêt annuel (en %) : " : Saisir TauxAnnuel, 10 '2.calcul et affichage de l'annuité et des frais totaux TauxAnnuel = TauxAnnuel / 100 'normalisation : 100% = 1 Annuite = Capital * TauxAnnuel / (1-1 / (1 + TauxAnnuel) ^ Duree) FraisTotaux = Duree * Annuite - Capital TauxGLOBAL = FraisTotaux / Capital Afficher "Montant de chaque annuité : " & Format(Annuite, "# ##0.00 ") Afficher "Frais totaux : " & Format(FraisTotaux, "# ##0.00 ") Afficher "Taux d'intérêt global : " & Format(TauxGLOBAL, "0.0%") '3.calcul et affichage du tableau de remboursement Afficher "Année", "Part intérêt", "Part capital", "Capital restant du" CumulInteret = 0: CumulCapital = 0: CapitalRestant = Capital For An =1 To Duree 'calcule les resultats a la fin de l'annee An PartInteret = CapitalRestant * TauxAnnuel : CumulInteret = CumulInteret + PartInteret PartCapital = Annuite - PartInteret : CumulCapital = CumulCapital + PartCapital CapitalRestant = CapitalRestant - PartCapital Afficher An, Format(PartInteret, "# ##0.00 "), _ Format(PartCapital, "# ##0.00 "), Format(CapitalRestant, "# ##0.00 ") Next An Afficher "TOTAUX : ", Format(CumulInteret, "# ##0.00 "), Format(CumulCapital, "# ##0.00 ") Afficher "Rapport Intérêts/Capital : " & Format(CumulInteret / CumulCapital, "0.0%") TD3 : traduction en Visual BASIC des algorithmes du TD2 sur les structures de contrôle de l'exécution page 2

8 TD4 - Procédures et fonctions Titre Description Particularités Corrigé du TD2 distribution du corrigé du TD2 (TD2.DOC) (4 pages) (uniquement algo, pas VBA) procédure Echanger (pdx, pdy) programme Tester_Procedure_Echanger procédure CalculerSommeDiviseurs programme ChercherNombresParfaits fonction SommeDiviseurs programme ChercherNombresPremiers programme ChercherNbAmis Saisir (pdvariable, pdvaleurpardefaut) en s'inspirant du programme TesterNombreParfait du TD2, définir un programme ChercherNombresParfaits recherchant les nombres parfaits inférieurs à une limite fixée (par ex. 30) et utilisant une procédure CalculerSommeDiviseurs (pdnombre, pdsomme, pddiviseurs ) où pddiviseurs = chaîne des diviseurs "1+2 + " définir une fonction SommeDiviseurs (pdnb) : entier renvoyant la somme des diviseurs seule (sans la liste) et appelant la procédure précédente CalculerSommeDiviseurs ; tester cette fonction en définissant un programme ChercherNombresPremiers affichant la liste des nombres 1 ers inférieurs à une borne fixée définir un programme ChercherNbAmis recherchant les nombres amis inférieurs ou égaux à une borne à saisir au clavier : 2 nombres sont amis si la somme des diviseurs de l'un est égal à l'autre nombre, et réciproquement Mode de passage des paramètres? (la procédure équivaut à : pdvariable pdvaleurpardefaut, ou bien : pdvariable Valeur tapée par l'utilisateur) Paramètres en mise à jour - permutation de 2 variable Procédure avec 2 sorties Fonction appelant une procédure 2 appels d'une même fonction Carte fonctionnelle des appels de procédures / fonctions : Proc. ChercherNombresParfaits Proc. ChercherNombresPremiers Proc. ChercherNbAmis Fonc. SommeDiviseurs Proc. CalculerSommeDiviseurs Traduction en Visual BASIC : cf. TD5.doc et TD5b.xls

9 TD4 - Procédures et fonctions Procédure Echanger (pdx, pdy) ROLE : échanger le contenu des paramètres pdx et pdy M.A J. pdx, pdy : réel Var z : réel _z pdx ; pdx pdy ; pdy z Programme Tester_Procedure_Echanger ROLE : tester le fonctionnement de la procedure Echanger Var variable1, variable2 : réel variable1 1 ; variable2 2 Afficher ("Avant appel : variable 1 = ", variable1, ", variable 2 = ", variable2) Echanger (variable1, variable2) _Afficher ("Après appel : variable 1 = ", variable1, ", variable 2 = ", variable2) Procédure CalculerSommeDiviseurs (pdnombre, pdsomme, pdliste) ROLE : calculer la somme des diviseurs d'un nombre (lui-meme exclu) _ ainsi que la liste des diviseurs trouves sous la forme " " ENTREE pdnombre : entier {nombre a traiter} SORTIE pdsomme : entier {somme des diviseurs de pdnombre (pdnombre exclu)} _ pdliste : chaine {contenant la liste sous forme d'addition} Var d : entier pdsomme 1 ; pdliste "1" {1 est forcement un diviseur} Pour d de 2 à pdnombre - 1 répéter {teste si d divise pdnombre ; si oui, l'ajoute} Si pdnombre Mod d = 0 Alors _ pdsomme pdsomme + d ; pdliste pdliste & "+" & d Programme ChercherNombresParfaits ROLE : afficher les nombres parfaits inférieurs a une borne saisie au clavier Var nmax, n, SommeDiviseurs : entier ; ChaineDiviseurs : chaîne {liste des diviseurs trouvés} {1.saisir la borne de recherche} Afficher ("Entrer une borne de recherche (>1) ") ; Saisir (nmax) {2.boucle de calcul et affichage des nombres parfaits inférieurs à nmax} Pour n de 2 à nmax répéter {tester si n est parfait} {2.1.calculer la somme de ses diviseurs} CalculerSommeDiviseurs (n, SommeDiviseurs, ChaineDiviseurs) {2.2.afficher le resultat} Si SommeDiviseurs = n Alors _Afficher ( n, " est parfait (", ChaineDiviseurs, " = ", SommeDiviseurs, ")" ) Fonction SommeDiviseurs(pdNb) : entier ROLE : renvoyer la somme des diviseurs d'un nombre (lui-meme exclu) ENTREE pdnb : entier {nombre a traiter} {Nota : cette fonction appelle la procédure CalculerSommeDiviseurs} Var SommeDiv : entier ; ListeDiv : chaîne CalculerSommeDiviseurs (pdnb, SommeDiv, ListeDiv) _ SommeDiviseurs SommeDiv Programme ChercherNombresPremiers ROLE : afficher les nombres premiers inférieurs à une borne saisie au clavier Var nmax, n : entier {1.saisir la borne de recherche} Afficher ( "Saisir une borne de recherche (>1) :" ) ; Saisir ( nmax) {2.boucle de calcul et affichage des nombres premiers inférieurs à nmax} Pour n de 2 à nmax répéter {tester si n est premier} Si SommeDiviseurs(n) = 1 Alors _Afficher (n, " est premier") Programme ChercherNombresAmis ROLE: Afficher les couples de nombres amis inferieurs a une limite choisie ; 2 nombres N et P sont amis si la somme des diviseurs de N est egale a P et si la somme des diviseurs de P est egale a N _ EXEMPLE : 220 et 284 sont amis Var BorneMaxi : entier {borne maximale de recherche} _ n, SommeN, p : entier {variables locales auxiliaires} {1.saisir la borne de recherche} Afficher ( "entrez la borne de recherche (>1): " ) ; Saisir (BorneMaxi) {2.boucle de calcul et affichage des couples de nombres amis inférieurs à Bornemaxi} Pour n de 2 à BorneMaxi répéter {tester si n peut etre ami avec un autre nombre} {2.1.calculer la somme des diviseurs de n} SommeN SommeDiviseurs(n) {2.2.filtrer les sommes inférieures au nombre n} Si SommeN < n Alors {2.3.calculer la somme des diviseurs de SommeN=p} p SommeN {seul candidat possible} Si SommeDiviseurs(p) = n Alors Afficher (n, " est ami avec ", p) Institut National Polytechnique de Toulouse Claude MONTEIL Ecole Nationale Supérieure Agronomique de Toulouse

10 Sub Echanger(ByRef pdx As Double, ByRef pdy As Double) 'ROLE : echanger le contenu des 2 paramètres spécifiés 'M.A J.pd x,pd y Dim z As Double z = pdx: pdx = pdy: pdy = z Sub Tester_Procedure_Echanger() 'ROLE : tester le fonctionnement de la procedure Echanger Dim variable1 As Double, variable2 As Double variable1 = 1: variable2 = 2 Afficher "Avant appel : variable 1 = " & variable1 & ", variable 2 = " & variable2 Echanger variable1, variable2 Afficher "Après appel : variable 1 = " & variable1 & ", variable 2 = " & variable2 Sub CalculerSommeDiviseurs(ByVal pdnombre As Integer, _ ByRef pdsomme As Integer, ByRef pdlistediviseurs As String) 'ROLE : calculer la somme des diviseurs d'un nombre (lui-meme exclu) ' ainsi que la liste des diviseurs trouves sous la forme " " 'ENTREE pdnombre : nombre a traiter 'SORTIE pdsomme : somme des diviseurs de n (n exclu) ' pdlistediviseurs : chaine contenant la liste des diviseurs sous forme d'addition Dim d As Integer pdsomme = 1: pdlistediviseurs = "1" '1 est forcement un diviseur For d = 2 To pdnombre - 1 'teste si d divise Nombre ; si oui, l'ajoute If pdnombre Mod d = 0 Then pdsomme = pdsomme + d : pdlistediviseurs = pdlistediviseurs & "+" & d Next d Sub ChercherNombresParfaits() 'ROLE : afficher les nombres parfaits inférieurs a une borne saisie au clavier 'EXEMPLES : 6, 28, 496 et 8128 sont les nombres parfaits inférieurs à Dim nmax As Integer, n As Integer, SommeDiviseurs As Integer Dim ChaineDiviseurs As String 'liste des diviseurs trouvés EffacerEcran "Nombres parfaits" '1.saisir la borne de recherche Afficher "Entrer une borne de recherche (>1) ": Saisir nmax, 500 '2.boucle de calcul et affichage des nombres parfaits inférieurs à nmax For n = 2 To nmax 'tester si n est parfait '2.1.calculer la somme de ses diviseurs CalculerSommeDiviseurs n, SommeDiviseurs, ChaineDiviseurs '2.2.afficher le resultat If SommeDiviseurs = n Then Afficher n & " est parfait (" & ChaineDiviseurs & " = " & SommeDiviseurs & ")" Next n TD5 : traduction en Visual BASIC des algorithmes du TD4 sur les procédures et fonctions page 1 Function SommeDiviseurs(ByVal pdnb As Integer) As Integer 'ROLE : renvoyer la somme des diviseurs d'un nombre (lui-meme exclu) 'ENTREE pdnb : nombre a traiter 'NOTA : cette fonction appelle la procédure CalculerSommeDiviseurs Dim SommeDiv As Integer, ListeDiv As String CalculerSommeDiviseurs pdnb, SommeDiv, ListeDiv SommeDiviseurs = SommeDiv End Function Sub ChercherNombresPremiers() 'ROLE : afficher les nombres premiers inférieurs à une borne saisie au clavier Dim nmax As Integer, n As Integer EffacerEcran "Nombres premiers" '1.saisir la borne de recherche Afficher "Saisir une borne de recherche (>1) :" Saisir nmax, 50 '2. boucle de calcul et affichage des nombres premiers inférieurs à nmax For n = 2 To nmax 'tester si n est premier If SommeDiviseurs(n) = 1 Then Afficher n & " est premier" Next n Sub ChercherNombresAmis() 'ROLE: Afficher les couples de nombres amis inferieurs a une limite saisie au clavier ' 2 nombres N et P sont amis si la somme des diviseurs de N est egale a P ' et si la somme des diviseurs de P est egale a N 'EXEMPLES : (220,284), (1184,1210), (2620,2924), (5020,5564) (couples < 10000) Dim BorneMaxi As Integer 'borne maximale de recherche Dim n As Integer, SommeN As Integer Dim p As Integer, SommeP As Integer EffacerEcran "Nombres Amis" '1.saisir la borne de recherche Afficher "entrez la borne de recherche (>1): " Saisir BorneMaxi, 300 '2.boucle de calcul et affichage des couples de nombres amis inférieurs à BorneMaxi For n = 2 To BorneMaxi 'tester si n peut etre ami avec un autre nombre '2.1.calculer la somme des diviseurs de n SommeN = SommeDiviseurs(n) '2.2.filtrer les sommes supérieures au nombre n If SommeN > n Then '2.3.calculer la somme des diviseurs de SommeN p = SommeN 'seul candidat possible If SommeDiviseurs(p) = n Then Afficher n & " est ami avec " & p Next n Institut National Polytechnique de Toulouse Claude MONTEIL Ecole Nationale Supérieure Agronomique de Toulouse

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

Correction TD algorithmique

Correction TD algorithmique Affectation Correction TD algorithmique Exercice 1 algo affect1b b 5 a b+1 b 2 Il vaut faire passer la notion de variable et la notion de stockage mémoire. Une variable n a donc pas d historique et à un

Plus en détail

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

Feuille TD n 1 Exercices d algorithmique éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

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

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0 UNIVERSITE DES SCIENCES SOCIALES DE TOULOUSE Licence Professionnelles LSi Master FC IGSI Programmation Visual Basic Visite guidée d'un programme Visual Basic 6.0 1. un exemple d'application a) créer dans

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Fiche mathématiques financières

Fiche mathématiques financières Fiche mathématiques financières Thème 1 : Les taux d'intérêts simples et composés Taux d'intérêts simples : Les taux d'intérêts simples sont appliqués dans le cas d'emprunts dont la durée est inférieure

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES TRAVAUX PRATIQUES Le présent travail vise à développer une interface visuelle de programmation des entrées- sorties du port LPT d un PC à l aide du logiciel VISUAL BASIC. I- EDITION ET TEST DU PROGRAMME

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

.NET - Classe de Log

.NET - Classe de Log .NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. I- ACTIVITES NUMERIQUES (12 points) Exercice 1 (3 points) On considère

Plus en détail

Taux d évolution moyen.

Taux d évolution moyen. Chapitre 1 Indice Taux d'évolution moyen Terminale STMG Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Indice simple en base 100. Passer de l indice au taux d évolution, et réciproquement.

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels. Cette partie est consacrée aux nombres. Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels. L aperçu historique vous permettra

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Equations cartésiennes d une droite

Equations cartésiennes d une droite Equations cartésiennes d une droite I) Vecteur directeur d une droite : 1) Définition Soit (d) une droite du plan. Un vecteur directeur d une droite (d) est un vecteur non nul la même direction que la

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

L ALGORITHMIQUE. Algorithme

L ALGORITHMIQUE. Algorithme L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

Complément d information concernant la fiche de concordance

Complément d information concernant la fiche de concordance Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours

Plus en détail

Découverte du tableur CellSheet

Découverte du tableur CellSheet Découverte du tableur CellSheet l application pour TI-83 Plus et TI-84 Plus. Réalisé par Guy Juge Professeur de mathématiques et formateur IUFM de l académie de Caen Pour l équipe des formateurs T 3 Teachers

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4. Série TD 3 Exercice 4.1 Formulez un algorithme équivalent à l algorithme suivant : Si Tutu > Toto + 4 OU Tata = OK Alors Tutu Tutu + 1 Tutu Tutu 1 ; Exercice 4.2 Cet algorithme est destiné à prédire l'avenir,

Plus en détail

Formation VBA 3 Interagir

Formation VBA 3 Interagir Formation VBA 3 Interagir 1 Utilisation des UserForms Les UserForms sont des interfaces largement configurables, il convient de ne pas les limiter à tel ou tel usage qui pourrait être présenté à titre

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

3 Financement et emprunts

3 Financement et emprunts C. Terrier 1 / 6 12/12/2013 Cours Mathématiques financières Auteur : C. Terrier ; mailto:webmaster@cterrier.com ; http://www.cterrier.com Utilisation : Reproduction libre pour des formateurs dans un cadre

Plus en détail

Visual Basic for Applications

Visual Basic for Applications Visual Basic for Applications (sous Excel) Frédéric Cadier ENST Bretagne - Département LUSSI frederic.cadier@enst-bretagne.fr Cadier F. (ENST Bretagne) VBA 1 / 62 Plan de la présentation 1 Excel et VBA

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

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

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Travail de projet sur VBA

Travail de projet sur VBA Travail de projet sur VBA Calcul du Ratio de Sharpe Page 1 sur 25 Table des matières : 1. Introduction 3 2. Démarche générale 3 2.1 Récolte de données 3 2.2 Calculs de rendements 4 2.3 Calculs de volatilités

Plus en détail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2 Série de TD 2 Exercice 2.1 Quel résultat produit le programme suivant? Var val, double : entier ; Val := 231 ; Double := Val * 2 ; Ecrire (Val) ; Ecrire (Double) ;. Exercice 2.2 Ecrire un programme qui

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox Fiche 2 Cette fiche est la suite directe de la première. 1. Instructions conditionnelles : 1.1. Reprise de la fiche 1 : Lecture d'un algorithme : ORDINATEUR INTERDIT : Après

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Continuité en un point

Continuité en un point DOCUMENT 4 Continuité en un point En général, D f désigne l ensemble de définition de la fonction f et on supposera toujours que cet ensemble est inclus dans R. Toutes les fonctions considérées sont à

Plus en détail

PROGRAMMATION EVENEMENTIELLE sur EXCEL

PROGRAMMATION EVENEMENTIELLE sur EXCEL MASTERs SMaRT & GSI PROGRAMMATION EVENEMENTIELLE sur EXCEL Pierre BONNET Programmation évènementielle La programmation évènementielle permet un appel de procédure depuis l'interface HMI d'excel (ou d'un

Plus en détail

Applications des mathématiques. 05082014.pdf. Introduction à la Programmation en Visual Basic 6

Applications des mathématiques. 05082014.pdf. Introduction à la Programmation en Visual Basic 6 Applications des mathématiques 05082014.pdf Introduction à la Programmation en Visual Basic 6 Jean-marc Ledermann 2014 Table des matières 1 Contrôles, propriétés... 2 2 Procédures... 4 3 Variables et formules

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Chapitre 1 : Évolution COURS

Chapitre 1 : Évolution COURS Chapitre 1 : Évolution COURS OBJECTIFS DU CHAPITRE Savoir déterminer le taux d évolution, le coefficient multiplicateur et l indice en base d une évolution. Connaître les liens entre ces notions et savoir

Plus en détail

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

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 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

L emprunt indivis - généralités

L emprunt indivis - généralités L emprunt indivis - généralités Les modalités de calcul d un échéancier de remboursement d un emprunt indivis forment un thème d étude des outils de gestion en BTS HR (partie mathématiques financières)

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

http://cermics.enpc.fr/scilab

http://cermics.enpc.fr/scilab scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,

Plus en détail

FORMATION au VBA Pour EXCEL. Version 2007 & +

FORMATION au VBA Pour EXCEL. Version 2007 & + FORMATION au VBA Pour EXCEL Version 2007 & + Philippe Puig Formateur Informatique http://wwwphilippepuigcom contact@philippepuigcom wwwphilippepuigcom Page 1 sur 87 VBA : introduction Le VBA (Visual Basic

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Algorithmes et programmation en Pascal. Cours

Algorithmes et programmation en Pascal. Cours Algorithmes et programmation en Pascal Faculté des Sciences de Luminy Edouard Thiel Cours Deug 1 Mass MA Module de 75 heures 1997 à 2004 2 Algorithmes et programmation en Pascal Edouard Thiel Table des

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

INF6304 Interfaces Intelligentes

INF6304 Interfaces Intelligentes INF6304 Interfaces Intelligentes filtres collaboratifs 1/42 INF6304 Interfaces Intelligentes Systèmes de recommandations, Approches filtres collaboratifs Michel C. Desmarais Génie informatique et génie

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

Plus en détail

Maple: premiers calculs et premières applications

Maple: premiers calculs et premières applications TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

Probabilités Loi binomiale Exercices corrigés

Probabilités Loi binomiale Exercices corrigés Probabilités Loi binomiale Exercices corrigés Sont abordés dans cette fiche : (cliquez sur l exercice pour un accès direct) Exercice 1 : épreuve de Bernoulli Exercice 2 : loi de Bernoulli de paramètre

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : dutarte@club-internet.fr La maquette

Plus en détail

GENERALITES II. ORGANISATION ET ORGANES DE L EXAMEN III. INSCRIPTION A L EXAMEN, FRAIS ET CONDITIONS D ADMISSION IV. CONTENU ET MATIERE DE L EXAMEN

GENERALITES II. ORGANISATION ET ORGANES DE L EXAMEN III. INSCRIPTION A L EXAMEN, FRAIS ET CONDITIONS D ADMISSION IV. CONTENU ET MATIERE DE L EXAMEN Table des matières I. GENERALITES II. ORGANISATION ET ORGANES DE L EXAMEN III. INSCRIPTION A L EXAMEN, FRAIS ET CONDITIONS D ADMISSION IV. CONTENU ET MATIERE DE L EXAMEN V. DEROULEMENT DE L EXAMEN VI.

Plus en détail