Correction TD algorithmique



Documents pareils
Cours d Informatique

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

CORRECTION EXERCICES ALGORITHME 1

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

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

Programmation Objet - Cours II

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

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

Algorithmique et structures de données I

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)

Licence Sciences et Technologies Examen janvier 2010

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

STAGE IREM 0- Premiers pas en Python

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Par combien de zéros se termine N!?

Recherche dans un tableau

Algorithme. Table des matières

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

LE PROBLEME DU PLUS COURT CHEMIN

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

Algorithmique et programmation : les bases (VBA) Corrigé

Application 1- VBA : Test de comportements d'investissements

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.

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Définitions. Numéro à préciser. (Durée : )

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

Introduction à MATLAB R

Propagation sur réseau statique et dynamique

Initiation à la programmation en Python

L'INTÉRÊT COMPOSÉ. 2.1 Généralités. 2.2 Taux

Algorithmique et Programmation, IMA

Algorithmique avec Algobox

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

L ALGORITHMIQUE. Algorithme

Représentation d un entier en base b

Initiation à la Programmation en Logique avec SISCtus Prolog

Rappels sur les suites - Algorithme

Suites numériques. Exercice 1 Pour chacune des suites suivantes, calculer u 1, u 2, u 3, u 10 et u 100 : Introduction : Intérêts simpleset composés.

Chapitre 4 : Exclusion mutuelle


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

Algorithmique avec Algobox

1. Contexte général page Le compte auprès de la BCGE...page La procuration 2.2 Les accès e-banking 2.3 Le bon de retrait 2.

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

4. Les structures de données statiques

Représentation des Nombres

Corrigé des TD 1 à 5

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

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Conversion d un entier. Méthode par soustraction

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Cours Informatique Master STEP

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Date : Tangram en carré page

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

avec des nombres entiers

TD1 PROPAGATION DANS UN MILIEU PRESENTANT UN GRADIENT D'INDICE

Cryptographie et fonctions à sens unique

Probabilités conditionnelles Loi binomiale

Introduction à l étude des Corps Finis

Algorithmes récursifs

FRAIS DE VEHICULE 2012

Les suites numériques

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

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

Raisonnement par récurrence Suites numériques

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

Initiation à LabView : Les exemples d applications :

I. Introduction aux fonctions : les fonctions standards

Régime de retraite patronal-syndical (Québec) de l'association internationale des machinistes (A.I.M.)

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

Structures algébriques

Synthèse «Le Plus Grand Produit»

Chapitre 1 I:\ Soyez courageux!

Logistique, Transports

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Compter à Babylone. L écriture des nombres

V- Manipulations de nombres en binaire

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

TD 3 : suites réelles : application économique et nancière

Jeu de la conso : 8 L'achat d'un véhicule d'occasion

DOCM Solutions officielles = n 2 10.

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Définition des Webservices Ordre de paiement par . Version 1.0

DM 1 : Montre Autoquartz ETA

Fonctions homographiques

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

Probabilités Loi binomiale Exercices corrigés

EXCEL: Les fonctions financières

Utiliser les supports d'exemplaires

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Solutions du chapitre 4

Baccalauréat ES Amérique du Nord 4 juin 2008

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

Probabilités sur un univers fini

Transcription:

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 instant donné ne peut contenir qu une valeur. a 6 b 2 Exercice 2 algo affect2 a 2 a a+1 Une variable peut recevoir le résultat d une fonction de sa propre valeur. La variable b est déclarée mais non utilisée (instanciée), ce n est pas bien. a 3 b? Exercice 3 algo affect3 b a+1 a 2 La variable a est utilisée en partie droite d une affectation sans avoir été instanciée, ce n est pas bien. a 2 1/15

b? Exercice 4 algo affect4 a+5 3 L expression a+5 3 n est pas syntaxiquement correcte. ce n est pas bien. a? b? Exercice 5 algo affect5 a 5 b a+4 a a+1 b a-4 a 6 b 2 Exercice 6 algo affect6 var c : entier a 3 b 10 c a+b b a+b a c a 13 b 13 c 13 2/15

Exercice 7 algo affect7 a 5 b 7 a b b a a 7 b 7 Exercice 8 algo affect8 a 5 b 7 b a a b a 5 b 5 Exercice 9 Écrire un algorithme permettant d'inverser deux variables. //Le coup des deux aquariums algo Echangeab var c : entier a 5 b 7 c a a b b c 3/15

Conditionnelles Exercice 10 Écrire un algorithme qui lit deux valeurs entières et affiche le maximum des deux. algo Max a Lire() b Lire() Si (b<a) alors Ecrire("a est plus grand que b") Ecrire("b est plus grand que a") Si Exercice 11 (calcul de remise (1)) a la caisse d'un supermarché (bien connu à l'isle d'abeau), nous bénéfficions d'une remise de 1% sur le montant de nos achat lorsque celui-ci dépasse 300 euros. Écrire un algorithme qui après lecture du montant initialement du, affiche le montant à payer. Remarques : maladroit d'avoir plus d'une instruction d'écriture du résultat. maladroit d'avoir une clause sinon inutile d'avoir recours à une autre variable. algo Remise1 var montant : réel const tauxremise 0,01: réel montant Lire () Si (300 <montant) alors montant montant * (1-tauxRemise) Si Ecrire("Vous devez " + montant) Exercice 12 (calcul de remise (2)) Même exercice avec : 1% de remise pour un achat compris entre 300 et 750 euros 2% au delà de 750 euros algo Remise2 var montant : réel var tauxremise : réel 4/15

montant Lire () Si (750 <montant) alors tauxremise 0,02 Si (300 < montant) alors tauxremise 0,01 tauxremise 0 Si Si montant montant * (1-tauxRemise) Ecrire("Vous devez " + montant) Exercice 13 Lire trois valeurs entières a, b et c. afficher le maximum des trois. algo Max1 var c : entier var max : entier a Lire () b Lire () c Lire () Si (b a et c a) alors Max a Si (a b et c b) alors Max b Si (a c et b c) alors Max c Si Si Si Ecrire("Le max est " + max) algo Max2 var c : entier var max : entier a Lire () b Lire () 5/15

c Lire () Si (b a et c a) alors Max a Si (c b) alors Max b Max c Si Si Ecrire("Le max est " + max) algo Max3 var c : entier var max : entier a Lire () b Lire () c Lire () max a Si (max b) alors max b Si Si (max c) alors max c Si Ecrire("Le max est " + max) Exercice 14 (calcul d'une facture d'électricité) Trouver le prix à payer sachant qu'une facture inclut une somme de 4 euros de frais fixes et que s'ajoute un prix en fonction de la consommation : 0,1 euro/kwh pour les 100 premiers kilowatts heures 0,07 euro/kwh pour les 150 suivants 0,04 euro/kwh au-delà algo FactureElectricite var concommation : réel var prix : réel const fraisfixe 4 : réel const prixtranche1 0,1 :réel const prixtranche2 0,07: réel const prixtranche3 0,04 : réel const limtranche12 100 : entier const limtranche23 150 : entier 6/15

consommation Lire() Si (consommation limtranche12) alors prix fraisfixe +consommation * prixtranche1 Si (consommation limtranche12 + limtranche23) alors prix fraisfixe + limtranche12*prixtranche1+ (consommation limtranche12) * prixtranche2 prix fraisfixe + limtranche12 * prixtranche1 + limtranche23 * prixtranche prixtranche2 + (consommation (limtranche12+limtranche23)) * prixtranche 3 Si Si Ecrire("Le prix à payer est de " + prix) Exercice 15 (Estimation du prix de revient d'un véhicule) Il existe un barème pour l'évaluation du prix de revient kilométrique des véhicules. Écrire un algorithme effectuant le calcul de ce prix en fonction de nb, nombre de kilomètres parcourus. Règles : Nb de km \ puissance fiscale 5cV 6cV jusqu'à 5000 n1 * 0,43 (= p1) n * 0,47 de 5001 à 20000 (n2 * 0,23) + p1 (=p2) (n * 0,27) + 1000 au delà de 20000 (n3 * 0,28) + p2 n * 0,32 où n est le nombre total de kilomètres parcourus, n1 le nombre de kilomètres parcourus entre 0 et 5000, n2 le nombre de kilomètres parcourus entre 5001 et 20000 et n3 le nombre de kilomètre parcourus au delà de 20000. Exemple : si j'ai parcouru 8500 km, n=8500, n1=5000, n2=3500 et n3=0. algo PrixRevient var puissance : entier var nbkm : entier var prix : réel puissance Lire() nbkm Lire() Si (puissance =5) alors //cas 5 cv Si (nbkm 5000) alors prix nbkm * 0,43 Si (nbkm 20 000) alors prix 5000*0,43 + (nbkm 5000) * 0,23 prix 5000*0,43 + (15000)*0,23+(nbKm-20000)*0,28 Si 7/15

Si //cas 6 cv Si (nbkm 5000) alors prix nbkm * 0,47 Si (nbkm 20 000) alors prix nbkm * 0,27 + 1000 prix nbkm * 0,32 Si Si Si Ecrire(" Le prix est de : " + prix ) Exercice 16 (Le monnayeur) Un distributeur qui rend de la monnaie doit rendre en priorité les pièces les plus grosses. En supposant que la machine rend des jetons de 5, 2 et 1 unités et qu'elle doit vous rendre nb unités, écrire un algorithme qui simule le rendu. On suppose que la caisse de départ de la machine est illimitée. I.e. il y a toujours assez de jetons en caisse pour le rendu. algo Monnayeur var nb : entier var nb5, nb2, nb1 : entier nb Lire() nb5 nb/5 nb nb % 5 //ou nb nb (nb/5)*5 nb2 nb /2 nb nb % 2 //ou nb nb (nb/2)*2 nb1 nb Ecrire(" Il faut rendre") Ecrire(nb5+"jetons de 5") Ecrire(nb2+"jetons de 2") Ecrire(nb1+"jetons de 1") Exercice 17 Même exercice avec une caisse de départ limitée algo MonnayeurcaisseLimite var nb : entier var nb5, nb2, nb1 : entier var nb5dispo, nb2dispo, nb1dispo : entier nb Lire() nb5dispo Lire() nb2dispo Lire() 8/15

nb1dispo Lire() nb5 nb5/5 Si (nb5 > nb5dispo) alors nb5 nb5dispo Si nb nb nb5*5 nb2 nb /2 Si (nb2 > nb2dispo) alors nb2 nb2dispo Si nb nb- nb2*2 Si (nb > nb1dispo) alors Ecrire(" Impossible") nb1 nb //nb5dispo nb5dispo nb5 //nb2dispo nb2dispo nb2 //nb1dispo nb1dispo nb1 Ecrire(" Il faut rendre") Ecrire(nb5+"jetons de 5") Ecrire(nb2+"jetons de 2") Ecrire(nb1+"jetons de 1") Si 9/15

boucle structure itérative Exercice 18 Exécuter l'algorithme suivant. algo boucle2 a 5 Tant que (a > 0) Faire Ecrire(a) a a - 2 Tant que Sorties : 5 3 1 Variables : a -1 Exercice 19 Lire un caractère et l'afficher jusqu'à ce que l'on saisisse 'y'. Réaliser deux versions cet algorithme : 1. une version avec affichage du 'y' final 2. une version sans affichage du 'y' final algo LireaffavecY var car : caractère faire car Lire() Ecrire(car) Tant que (car y ) algo LireaffavecY var car : caractère car Lire() Tant que (car y ) Faire Ecrire(car) Lire(car) Tant que 10/15

Exercice 20 Écrire un algorithme qui affiche les n premiers entiers (de 1 à n). algo NPremiers var n,i : entier n Lire() i 1 Tant que (i n) Faire Ecrire(i) i i + 1 Tant que algo NPremiers2 var n: entier n Lire() Tant que (n <0) Faire Ecrire(n) n n - 1 Tant que Exercice 21 Écrire un algorithme qui affiche la somme des n premiers entiers algo SommePremiers var n, i, somme : entier n Lire() somme 0 i 1 Tant que (i n) Faire Somme somme + i i i + 1 Tant que Ecrire(i) algo SommePremiersv2 var n, i, somme : entier n Lire() somme 0 Pour i de 1 à n pas de 1 faire Somme somme + i Pour Ecrire(i) 11/15

Exercice 22 (Remboursement d'emprunt) calculer le nombre d'années nécessaires au remboursement d'un emprunt à taux d'intérêt fixe et dont le remboursement annuel est fixe également. (attention, le remboursement de la première année doit être strictement supérieur à l'intérêt payé la première année) algo Remboursement var nbannee : entier var emprunt : réel var taux : réel var remboursementannuel : réel emprunt Lire() taux Lire() remboursementannuel Lire() Si (remboursementannuel emprunt * taux) alors Ecrire("Impossible") nbannee 0 Tant que (0 < emprunt) faire nbanne nbannee + 1 emprunt emprunt * (1+taux) remboursementannuel Tant que Ecrire(nbannee) Si Exercice 23 (codage) coder un nombre nb écrit en base 10 en base base (base < 10). Rappel : il faut faire les divisions successives de nb par base jusqu'à obtenir un quotient nul. Nb : on formate le résultat par une concaténation de chaînes. algo codage var nb, base : entier var rep : chaine nb Lire() base Lire() rep "" Faire rep nb % base + rep // concaténation de chaïnes nb nb /base Tant que (nb 0) Ecrire(rep) 12/15

Exercice 24 Écrire un algorithme qui fasse deviner un nombre entier atrouver en donnant des indications (trop grand, trop petit) avec nbessai autorisé. Il faut obtenir un affichage final Gagné! ou Perdu!. algo Devine var atrouver : entier var gagne : booléen atrouver Lire() nbessai Lire() gagne faux Tant que ((1 nbessai) et (Non gagne)) Faire essai Lire() Si (essai=atrouver) alors gagne vrai Si (atrouver < essai) alors Ecrire("Trop grand") Ecrire("Trop petit") Si Si nbessai nbessai -1 Tant que Si (gagne) alors Ecrire("Gagné!") Ecrire("Perdu!") Si Exercice 25 (Décomposition en facteurs premiers) Décomposer un nombre en nombres premiers. Essayer les divisions du nombre par les tous les entiers (à partir de 2) et faire afficher simplement les différents diviseurs. N.b. On effectue les divisions du nombre par les différents entiers, qu'ils soient premiers ou no, de toute façon, un nombre qui n'est pas premier ne pourrait diviser car tous ses diviseurs (plus petit que lui) auraient précédemment divisé le nombre. algo Décomposition1 var nombre : entier var d: entier nombre Lire() d 2 Tant que (nb>1) Faire Si (nb % d = 0) alors Ecrire(d) nb nb/d 13/15

Si Tant que d d + 1 algo Décomposition2 var nombre : entier var d: entier Lire(nombre) d 2 Tant que (nb>1) Faire Tant que (nb % d = 0) Faire Ecrire(d) nb nb/d Tant que d d + 1 Tant que Exercice 26 (Décomposition en facteurs premiers (subsidiaire)) Même exercice mais avec affichage des puissances. algo Décomposition3 var nombre : entier var d: entier var cpt : entier nombre Lire() d 2 cpt 0 Tant que (nb>1) Faire Tant que (nb % d = 0) Faire cpt cpt +1 nb nb/d Tant que Si (0 < cpt) alors Ecrire(d+"ppuissance " + cpt) cpt 0 Si d d + 1 Tant que Exercice 27 Écrire un algorithme qui affiche la somme des n premiers entiers algo SommeNPremierPour var n : entier 14/15

var somme : entier var i : entier n Lire() Somme 0 Pour i de 1 à n Faire Somme somme + i pour Ecrire("La somme est: " + somme) Exercice 28 (Placement d'argent) Si l'on place somme euros au 1 janvier de l'année andepot à taux% (en accumulant les intérêts), quelle va être la somme présente sur le compte le 1 janvier de de l'année anretrait? algo Placement var andepot : entier var anretrait : entier var taux : réel var somme : réel var i : entier andepot Lire() anretrait Lire() somme Lire() Pour i de andepot + 1 à anretrait pas de 1 Faire Somme somme * (1+taux) pour Ecrire("Vous avez sur votre compte : " + somme) 15/15