• Aucun résultat trouvé

Exercice 2 : Fonctions

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 2 : Fonctions"

Copied!
3
0
0

Texte intégral

(1)

Isup 1 - Programmation TD no3 Matthieu Journault 19 juin 2020

Exercice 1 : Rappel

Q. 1 Afficher un triangle rectangle avec des ´etoiles ; vous demanderez `a l’utilisateur la hauteur. Par exemple avec une hauteur de 4 :

*

**

***

****

Q. 2 Mˆeme question avec un ´echiquier de taille 8×8. Pour afficher des cases blanches et noires, vous pouvez utiliser le caract`ere Unicode correspondant, dans notre cas \u25A1 pour une case blanche et

\u25A0 pour une noire.

Exercice 2 : Fonctions

Q. 3Repr´esenter l’´etat de la m´emoire `a chacun des points de programme suivant (1, 2, . . .)

void f(int x) { /* 5 */

int y; /* 6 */

y = 5; /* 7 */

x = x - 1; /* 8 */

return ; }

int g(int u) { /* 3 */

int v = 3; /* 4 */

f(v); /* 9 */

return v;

}

int main() { /* 1 */

int a = 1; /* 2 */

a = g(a); /* 10 */

}

Q. 4Ecrire une fonction´ plus 1qui prend en param`etre un entiernet retourne son successeur (toujours un entier).

1

(2)

Q. 5 Ecrire une fonction´ plus f qui prend en param`etre deux flottants uet v et retourne le r´esultat de u+v.

Q. 6On peut repr´esenter un polynˆome du second degr´eax2+bx+csous la forme d’un triplet de valeurs (a, b, c). ´Ecrire une fonction discriminant qui prend en param`etre trois valeurs enti`eres (a,b, et c) et retourne ∆, le discriminant de l’´equation ax2+bx+c= 0 tel que ∆ =b2−4×a×c

Q. 7 Ecrire une fonction´ nb solutions qui prend en param`etre trois valeurs enti`eres (a,b, et c) et retourne le nombre de solutions de l’´equation ax2+bx+c= 0. Cette fonction devra utiliser la fonction d´efinie pr´ec´edemment.

Q. 8 Ecrire une fonction´ est solution qui prend en param`etre trois valeurs enti`eres (a,b, et c), ainsi qu’une valeur x et retourne 1 si x est une solution deax2+bx+c= 0, et 0 sinon.

Exercice 3 : Fonctions r´ ecursives

Q. 9Ecrire une fonction´ somme telle que somme(n)retourne la somme des entiers de 1 `a n.

Q. 10Ecrire une fonction´ factorielletelle que factorielle(n)retourne la valeur n!. On rappelle la d´efinition de la fonction factorielle :

n! =

1 si n = 0 n×(n−1)! sinon

Q. 11Que se passe-t-il si on appelle factorielle(-1)? Comment pourrions-nous y rem´edier ?

Q. 12Ecrire deux fonctions mutuellement r´´ ecursivespair et impair qui s’appellent l’une l’autre pour d´eterminer si un entier n est pair ou impair.

Q. 13 Ecrire la fonction´ pgcd telle que pgcd(a,b) retourne le PGCD de a et b. On rappelle que P GCD(a,0) =a et que P GCD(a, b) =P GCD(b, a mod b)1 .

Q. 14Ecrire une fonction´ fibonaccitelle quefibonacci(n)retourne le n-i`eme de la suite de Fibonacci.

Contrairement `a un exercice semblable du TD pr´ec´edent, votre solution ne devra pas faire intervenir de boucle.

On rappelle la d´efinition de la suite de Fibonacci (not´eeF) :

Fn=

0 si n= 0

1 si n= 1

Fn−1+Fn−2 sinon

1. mod´etant le modulo, c’est `a dire le reste de la division euclidienne :a mod b=a(babc ×b)

2

(3)

Q. 15Observer empiriquement le temps de calcul asymptotique de votre fonction Fibonacci. En utilisant une fonction r´ecursive auxiliairefibonacci auxutilisant 3 arguments entiers, proposer une implantation de Fibonacci ayant un coˆut lin´eaire en la valeur de son entr´ee plutˆot qu’exponentiel.

Q. 16Proposer une implantation de la fonction d’Ackermann. Cette fonction a deux arguments entiers et satisfait la relation de r´ecurrence :

A(m, n) =

n+ 1 sim = 0

A(m−1,1) si m >0∧n = 0 A(m−1,A(m, n−1)) si m >0∧n >0

3

Références

Documents relatifs

La différence a reste donc constante, au signe près; et, par conséquent, lès triangles successifs, dont les côtés augmentent indéfiniment, sont tels que le rapport de b à a tend

Utiliser l’option −S compilateur pour mettre en ´ evidence le nombre d’op´ erations machines g´ en´ er´ ees par le compilateur pour la partie instruc- tion de la boucle de

La première étape est l'obtention d'une formule de récurrence, et la troisième étape consiste à trouver une solution au problème posé ; dans le cas de la suite la formule

C’est le cas, par exemple, si nous ´ etudions le volume Y occup´ e par un gaz en fonction temps X , temps ´ egal ` a 0 au moment o` u nous avons actionn´ e un vaporisateur contenant

Tracer dans un repère la courbe de la fonction l

Remarque Le calcul matriciel de (Fn, Fn-1) sera donc fait comme indiqué ci-contre : le calcul de la suite de Fibonacci consiste à calculer une puissance de

Les ´ echantillons pr´ elev´ es seront dilu´ es afin de rester dans la zone de lin´ earit´ e du spectrophotom` etre, zone pour laquelle la densit´ e optique est proportionnelle ` a

Les ´ echantillons pr´ elev´ es seront dilu´ es afin de rester dans la zone de lin´ earit´ e du spectrophotom` etre, zone pour laquelle la densit´ e optique est proportionnelle ` a