C++ TP - Schéma itératif [it] Exercices de cours

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

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

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)

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

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

Programmation avec Xcas ou Python

CORRECTION EXERCICES ALGORITHME 1

L ALGORITHMIQUE. Algorithme

Continuité et dérivabilité d une fonction

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

avec des nombres entiers

Algorithmes récursifs

Rappels sur les suites - Algorithme

Cours d algorithmique pour la classe de 2nde

L exclusion mutuelle distribuée

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Limites finies en un point

Maple: premiers calculs et premières applications

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Quelques tests de primalité

I. Introduction aux fonctions : les fonctions standards

Plus courts chemins, programmation dynamique

4. Les structures de données statiques

I. Polynômes de Tchebychev

Comparaison de fonctions Développements limités. Chapitre 10

Chapitre 5 : Flot maximal dans un graphe

Initiation à l algorithmique

Magnitudes des étoiles

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

Algorithmique et Programmation, IMA

Algorithmique, Structures de données et langage C

Introduction à l étude des Corps Finis

CH.6 Propriétés des langages non contextuels

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Par combien de zéros se termine N!?

LE PROBLEME DU PLUS COURT CHEMIN

L informatique en BCPST

FONDEMENTS DES MATHÉMATIQUES

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

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

1.6- Génération de nombres aléatoires

Dérivation : cours. Dérivation dans R

Introduction à la théorie des graphes. Solutions des exercices

Correction de l examen de la première session

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Figure 3.1- Lancement du Gambit

Cours d arithmétique Première partie

Chap III : Les tableaux

1 I ) Une première approche de l algorithme en seconde, saison 2010 _ Antoine ROMBALDI

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Chapitre 10 Arithmétique réelle

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Informatique Générale

Resolution limit in community detection

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

La fonction exponentielle

Correction du baccalauréat ES/L Métropole 20 juin 2014

Raisonnement par récurrence Suites numériques

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Cours d Informatique

Programmation Classique en langage C

CCP PSI Mathématiques 1 : un corrigé

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Qualité du logiciel: Méthodes de test

Introduction à l algorithmique et à la programmation M1102 CM n 3

Chapitre VI - Méthodes de factorisation

Dans une année, il y a 12 mois. Dans une année, il y a 52 semaines. Dans une année, il y a 4 trimestres. Dans une année, il y a 365 jours.


Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

MIS 102 Initiation à l Informatique

Chaînes de Markov au lycée

Algorithme. Table des matières

Découverte du tableur CellSheet

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

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

1 Recherche en table par balayage

Chapitre 2. Eléments pour comprendre un énoncé

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Programmation linéaire

Représentation des Nombres

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

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

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

Jean-Philippe Préaux

Mathématiques I Section Architecture, EPFL

Chapitre 1 : Évolution COURS

Représentation d un entier en base b

Cours 1 : Qu est-ce que la programmation?

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Correction TD algorithmique

Eléments de Théorie des Graphes et Programmation Linéaire

Transcription:

C++ TP - Schéma itératif [it] Exercices de cours Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 17 avril 2015 Table des matières 1 Appréhender le cours 2 1.1 Le nombre de poissons / pg-itnpoissons1.................. 2 1.2 Somme des cubes / pg-itscubes1....................... 3 1.3 Calcul par récurrence d un minimum / pg-itvmin1............. 4 1.4 Comptage d entiers / pg-itcomptage1.................... 5 2 Appliquer le cours 6 2.1 Fonction puissance / puissancea1...................... 6 2.2 PREVU pour produit de deux entiers.................... 6 2.3 Procédure quorest / quoresta1....................... 7 2.4 Fonctions gerase / gerasea1......................... 8 3 Approfondir le cours 9 3.1 Fonction euclide / euclidea1......................... 9 3.2 Fonction arithgeo / arithgeoa1....................... 10 3.3 Fonction arcsinapprox / pg-itarcsina1................... 11 1

Unisciel algoprog it00aexerc-texte, April 17, 2015 2 1 Appréhender le cours Cette section n utilise pas le module @[Algorithmes paramétrés]. 1.1 Le nombre de poissons / pg-itnpoissons1 Un poissonnier sert un client qui a demandé x Kg de poisson. Il pèse successivement différents poissons et s arrête dès que le poids total égale ou dépasse x Kg. Cet exercice donne le nombre de poissons servis. Exemple d exécution. Poids voulu (en gr)? 1000 Poids du poisson? 350 ==> 1 poisson(s) pour un poids total de 350 gr Poids du poisson? 280 ==> 2 poisson(s) pour un poids total de 630 gr Poids du poisson? 375 ==> 3 poisson(s) pour un poids total de 1005 gr En vous basant sur l exemple d exécution, comment faut-il procéder? Écrivez un programme qui demande et saisit le poids voulu de poissons dans poidsvoulu (réel). Affichez l invite : Poids voulu (en gr)? Déclarez puis initialisez à zéro les variables poidstotal (poids total, réel) et npoissons (nombre de poissons, entier). Demandez successivement le poids du poisson dans poidspoisson (réel), actualisez vos variables et affichez l état actuel jusqu à ce que le poidstotal égale ou dépasse le poidsvoulu (où [x] désigne le contenu de x) : ==> [npoissons] poisson(s) pour un poids total de [poidstotal] Testez.

Unisciel algoprog it00aexerc-texte, April 17, 2015 3 1.2 Somme des cubes / pg-itscubes1 Écrivez un programme qui demande et saisit le nombre d entiers dans n (entier). Affichez l invite : Somme des cubes jusqu a? Calculez la somme des cubes de 1 à n dans rs (entier) : n j 3 j=0 Affichez le résultat. Somme des cubes jusqu à? 9 ==> 2025

Unisciel algoprog it00aexerc-texte, April 17, 2015 4 1.3 Calcul par récurrence d un minimum / pg-itvmin1 Écrivez un programme qui demande et saisit le nombre d entiers dans n. Affichez l invite : n? Comment trouver le minimum de n entiers donnés au fur et à mesure? Donnez une définition par récurrence du minimum. Comment initialiser la suite? Complétez votre programme de sorte à calculer le minimum des n entiers donnés au fur et à mesure dans vmin (entier). Affichez (où [x] désigne le contenu de x) : ==> Le minimum est [vmin] n? 5 9 4 12-6 3 ==> Le minimum est -6

Unisciel algoprog it00aexerc-texte, April 17, 2015 5 1.4 Comptage d entiers / pg-itcomptage1 Cet exercice demande une série d entiers puis compte le nombre de valeurs positives et de valeurs négatives. Définissez la constante sentinelle de valeur 0. Écrivez un programme qui demande et saisit une série d entiers dans nombre jusqu à ce que l utilisateur introduit la valeur sentinelle. Testez. Déclarez et initialisez les compteurs du nombre de valeurs positives npos (entier) et celui des valeurs négatives nneg (entier). Complétez la structure TantQue afin d actualiser le compteur concerné selon le signe de nombre. Aide simple Notez que le test «Si nombre = sentinelle» n est jamais réalisé dans la boucle puisque c est la condition d arrêt du TantQue. Affichez (où [x] désigne le contenu de x) : Le nombre de valeurs positives est [npos] Le nombre de valeurs negatives est [nneg] Entrez une serie d entiers (Finir par 0) 5 3 8-5 2-2 0 Le nombre de valeurs positives est 4 Le nombre de valeurs negatives est 2

Unisciel algoprog it00aexerc-texte, April 17, 2015 6 2 Appliquer le cours 2.1 Fonction puissance / puissancea1 Les relations suivantes définissent la puissance n-ème d un réel x : 0 pour n = 0 x n = x n 1 x pour n 1 1/x n pour n < 0 Écrivez une fonction puissance(x,n) qui calcule et renvoie x n avec x réel et n entier. Outil C++ La fonction valeur-absolue abs(x) est définie dans la bibliothèque <cstdlib>. Écrivez un programme qui demande un réel dans x et un entier dans n puis calcule et affiche x n et x n. Votre réel et votre entier? 3 4 ==> 3^4 vaut 81 ==> 3^(-4) vaut 0.012345679 2.2 PREVU pour produit de deux entiers

Unisciel algoprog it00aexerc-texte, April 17, 2015 7 2.3 Procédure quorest / quoresta1 La relation de la division entière est : a = q n b + r n avec 0 r n < b les suites étant définies par : q n = q n 1 + 1 r n = r n 1 b q 0 = 0, r 0 = a Pouvez la relation. Écrivez une procédure quorest(a,b,quotient,reste) qui calcule par opérations additives le quotient de la division entière de a par b dans quotient (entier) et le reste de cette division dans reste (entier). Les entiers a et b sont supposés positifs. Aide simple Initialisez le quotient et le reste, puis utilisez une boucle TantQue (son équivalent en programmation) qui traduit la récurrence. Écrivez un programme qui demande deux entiers positifs dans a et b, calcule le quotient et le reste de a par b puis affiche l opération de la division entière. Deux entiers positifs? 50 6 50 = 8 * 6 + 2

Unisciel algoprog it00aexerc-texte, April 17, 2015 8 2.4 Fonctions gerase / gerasea1 Ce problème calcule le PGCD (plus grand commun diviseur) et le PPCM (plus petit commun multiple) de deux entiers positifs par l algorithme de De Gerase. Rappel : le PGCD de deux entiers positifs est le plus grand entier qui divise les deux entiers. L algorithme de De Gerase calcule le PGCD de deux entiers positifs a et b par soustraction du plus petit dans le plus grand des deux entiers jusqu à ce que les deux entiers soient égaux. Écrivez le SDR de l algorithme de De Gerase. Déduisez une fonction gerase(a,b) qui calcule et renvoie le PGCD des entiers a et b supposés positifs en appliquant l algorithme de De Gerase. Pour calculer le PPCM de deux entiers positifs a et b, la méthode de De Gerase consiste à faire converger les valeurs a et b vers une valeur commune en augmentant a de a si elle est plus petite que b ou en augmentant b de b si elle est plus petite que a. Écrivez une fonction geraseppcm(a,b) qui calcule et renvoie le PPCM de deux entiers a et b supposés positifs en appliquant l algorithme de De Gerase. Écrivez un programme qui demande deux entiers positifs dans a et b puis calcule et affiche leur PGCD et leur PPCM. Deux entiers positifs? 24 42 ==> PGCD(24,42) = 6 ==> PPCM(24,42) = 168

Unisciel algoprog it00aexerc-texte, April 17, 2015 9 3 Approfondir le cours 3.1 Fonction euclide / euclidea1 L algorithme d Euclide [mathématicien grec du IIIè siècle avant J.C.] calcule le PGCD (plus grand commun diviseur) de deux entiers positifs a et b comme suit : a si b = 0 gcd(a, b) = gcd(b, a mod b) sinon Écrivez le SDR (Système De Récurrence) de l algorithme d Euclide. Concluez. Écrivez une fonction euclide(a,b) qui calcule et renvoie le PGCD de deux entiers a et b supposés positifs en appliquant l algorithme d Euclide. Outil C++ L opération mod (reste de la division entière) est noté %. Écrivez un programme affiche leur PGCD. qui demande deux entiers positifs dans a et b puis calcule et Deux entiers positifs? 24 42 ==> PGCD(24,42) = 6

Unisciel algoprog it00aexerc-texte, April 17, 2015 10 3.2 Fonction arithgeo / arithgeoa1 Soient a et b deux réels tels que 0 < a < b et soient (u n ) et (v n ) les suites définies par : Il est mathématiquement prouvé que : u 0 = a, v 0 = b u n+1 = u n v n v n+1 = un+vn 2 1. n N : u 0 u n < u n+1 < v n+1 < v n v 0 2. Les deux suites sont adjacentes. Leur limite commune l est appelée moyenne arithmético-géométrique de a et b. Le graphe de précédence u v ayant un circuit, comment obtenir un graphe sans circuit? Soient deux variables un et vn représentant les deux suites (u n ) et (v n ). Écrivez une fonction arithgeo(a,b,epsilon) qui calcule et renvoie une valeur approchée de la moyenne arithmético-géométrique de a (réel) et b (réel) à la précision epsilon (réel) près. Outil C++ Les fonctions racine-carrée sqrt(x) et valeur-absolue fabs(x) sont définies dans la bibliothèque <cmath>. Écrivez un programme qui demande deux réels dans a et b puis calcule et affiche la moyenne arithmético-géométrique de a et b à 10 5 près. Deux réels? 5 11 ==> Moyenne arithgeo est 7.7053344807

Unisciel algoprog it00aexerc-texte, April 17, 2015 11 3.3 Fonction arcsinapprox / pg-itarcsina1 Lorsque x est proche de 0, le développement limité de l arc sinus est : arcsin(x) = x + x3 2 3 + 1 3 x5 1 3 5... (2n 1)x2n+1 + 2 4 5 2 4 6... (2n) (2n + 1) + o(x2n+2 ) = 1 3... (2j 1)x 2j+1 2 j (j!)(2j + 1) j=1 Écrivez une fonction arcsinapprox(x,n) qui calcule et renvoie une approximation de arcsin(x) jusqu au rang n en évitant tout calcul inutile et en factorisant au maximum les opérations. Écrivez un programme qui demande un réel dans x et un entier dans n puis calcule et affiche l arc sinus approximé de x à l ordre n. Votre réel et votre entier? 0.01 10 Arcsin de 0.01 approximé à l ordre 10 vaut 0.0000001667