Ahi Te Van

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ahi Te Van as PDF for free.

More details

  • Words: 763
  • Pages: 3
Introduction à l'informatique

2007/2008

TP n° 2 But

Utilisation des boucles, fonctions et fonctions récursives.

Rappels Une boucle while permet d'exécuter plusieurs fois des INSTRUCTIONS tant qu'une CONDITION soit satisfaite. Les INSTRUCTIONS sont placé entre accolades, et la CONDITION entre parenthèses (voir exemple 1). Il est important de noter que la CONDITION est testée avant l'exécution des INSTRUCTIONS. Ainsi si elle est fausse à l'entrée de la boucle, le code n'est jamais exécuté.

Boucle while

Exemple 1 :

#include using namespace std; int main() { char c = 'Z'; while (c != 'Q') { cout << "Tapez le caractere 'Q' pour quitter" << endl; cin >> c; } } Il existe une variante à la boucle while : c'est la boucle for. Toute boucle for peut se réécrire en une boucle while (voir la table d'équivalence 1), mais on préfère l'utiliser pour parcourir des valeurs une par une. Par exemple, pour faire la somme des nombres de 1 à 10, il est conseillé d'utiliser une boucle for (voir exemple 2).

Boucle for

Tab.

boucle while

1  Équivalence entre for et while boucle for

int i=0 ; while (i<10){ /*CODE*/ i = i+1; }

for(int i=0;i<10;i=i+1){ /*CODE*/ }

Exemple 2 :

#include using namespace std; int main() { int sum = 0; for(int i=1;i<=10;i++) { sum = sum + i; } cout << sum << endl; }

1

Exercice 1 : des triangles Écrire un programme triangle.cpp qui ache N caractères sur une ligne. Voici un exemple d'exécution :

Question 1.1

Entrez un caractere : * Entrez un nombre : 6 ****** Question 1.2

Modier ce programme pour qu'il ache un triangle :

Entrez un caractere : * Entrez un nombre : 6 * ** *** **** ***** ****** Écrire un programme entiers.cpp qui ache les N premiers entiers, en allant à la ligne tous les k entiers achés :

Question 1.3

Entrez N : 10 Entrez k : 4 1 2 3 4 5 6 7 8 9 10

Exercice 2 : suite de Fibonacci La suite de Fibonacci est une suite de nombres entiers dénie par :

un = un−1 + un−2

(n ≥ 2),

u(0) = 0,

u(1) = 1.

Écrire un programme fibonacci.cpp qui ache les N premiers nombres de cette suite. Voici un exemple d'exécution : Question 2.1

Entrez u(0) = u(1) = u(2) = u(3) = u(4) = u(5) = u(6) =

N > 2 : 6 0 1 1 2 3 5 8

uN des deux derniers uN −1 √ 1+ 5 . termes calculés. Comparer ce quotient pour diérentes valeurs de N avec le nombre d'or 2 Rappel : pour calculer des racines carrées, charger la librairie mathématique avec #include Question 2.2

Modier ensuite le programme pour calculer et acher le quotient

Exercice 3 : calcul de π On considère la suite double

un + vn , √ 2 vn un+1 , vn+1 = √ 27 On admet que ces deux suites sont adjacentes de limite . π un+1

=

2

u0 = 1, v0 = 2.

Écrire un programme pi.cpp qui calcule et ache les N premiers termes des suites (un ) et (vn ). Voici un exemple d'exécution :

Question 3.1

Entrez u(0) = v(0) = u(1) = u(2) = u(3) = u(4) = u(5) = u(6) =

N : 6 1 2 1.5 v(1) = 1.73205 1.61603 v(2) = 1.67303 1.64453 v(3) = 1.65872 1.65162 v(4) = 1.65517 1.6534 v(5) = 1.65428 1.65384 v(6) = 1.65406

Question 3.2

Modier le programme précédent pour acher aussi une approximation de π à partir de uN .

approx pi = 3.14187 Écrire un programme pi2.cpp pour calculer π à une tolérance d'erreur ε √ près donnée. √ Il sut pour cela de lui faire calculer les premiers termes des suites (un ) et (vn ) et d'arrêter dès que | 27 u1n − 27 v1n | < ε.

Question 3.3

Entrez epsilon : 0.001

Exercice 4 : Représentations des nombres Voici une fonction récursive (c'est-à-dire une fonction qui s'appelle elle-même) qui étant donné un entier positif n ache son écriture binaire :

Question 4.1

void binaire(int n) { if (n<2) cout << n; else { binaire(n/2); cout << n%2; } } Écrire une fonction récursive octale qui étant donné un entier n ache son écriture octale, c'est-à-dire son écriture en base 8. Tester cette fonction avec un programme bases.cpp qui ache en octal des entiers saisis par l'utilisateur. En utilisant une boucle, écrire une fonction binairenonrec équivalente à la fonction binaire ci-dessus, mais qui soit non-récursive. Tester cette fonction.

Question 4.2

3

Related Documents

Ahi Te Van
June 2020 4
Mierdas Ahi!
August 2019 4
Ahi Semanal367
April 2020 2
Te
December 2019 39
Te
October 2019 45