TD5 Corrige
TD5 Corrige
TD5 Corrige
Questions
void foo()
{
cout << “Ecole”;
}
5. Vrai ou faux : Quand des arguments sont passés par valeur, la fonction utilise les arguments
originaux dans le programme appelant.
Faux
6. Quel est le but de l'emploi des noms d'argument dans une déclaration de fonction ?
Pour clarifier l’usage des arguments
7. Quels éléments de la liste suivante peut légitimement être passé à une fonction ?
1
a. Une constante
b. Une variable
c. Une structure
d. Un tableau
a, b, c, d
8. Quelle est la signification des parenthèses vides dans une déclaration de fonction ?
Les parenthèses vides signifient que la fonction ne prend aucun argument
10. Vrai ou faux : Quand une fonction renvoie une valeur, l'appel de fonction entière peut apparaître
sur le côté droit du signe égal et être assigné à une autre variable.
Vrai
main()
{
int resultat = times2(37); // function call
}
15. Quelle est la raison principale de passer des arguments par référence ?
Pour modifier l'argument original (ou pour éviter de copier un grand argument)
16. Écrire les déclarations pour deux fonctions surchargées appelées bar(). Toutes les deux renvoient
le type int. Le premier prend un argument de type char, et le deuxième prend deux arguments de type
char.
int bar(char);
int bar(char, char);
17. Généralement une fonction inline s’exécute _______ qu'une fonction normale, mais exige
_______ de mémoire
plus rapidement, plus
18. Écrire le déclarateur pour une fonction inline appelée foobar() qui prend un argument de type float
et renvoie le type float.
inline float foobar(float fvar)
a, b
20. Écrire une déclaration pour une fonction appelée blyth() qui prend deux arguments et renvoie le
type char. Le premier argument est de type int et s'appelle i, et le deuxième est type float et s'appelle pi
avec une valeur par défaut de 3.14159.
char blyth(int i, float pi=3.14159);
22. Une variable qui est connue seulement dans la fonction dans laquelle elle est définie est
_______________.
23. L’instruction ______ dans une fonction appelée permet de passer la valeur d'une expression au
programme appelant.
return
24. Le mot-clé ______ est employé dans un en-tête de fonction pour indiquer que la fonction ne
renvoie pas une valeur ou indique que la fonction ne contient aucun paramètre.
void
3
25. La ______ d'une variable est la partie (le bloc) du programme dans lequel la variable peut être
employé.
portée
26. Les trois manières de retourner le control d'une fonction appelée à la fonction d’appel sont ______,
______ et ______.
27. La fonction ______ est employée pour générer des nombres aléatoires
rand
Problèmes
1. Ecrire une fonction distance ayant comme paramètres 4 doubles xa,ya et xb,yb qui réprésentent les
coordonnées de deux points A et B et qui renvoie la distance AB. Tester cette fonction.
Cet exercice a pour but de vérifier les points techniques suivants :
• Création de fonction simple.
• Passage de paramètres par valeur.
• Utilisation de return.
• Appel d'une fonction.
#include<iostream.h>
#include<math.h>
int main() {
double x1,y1,x2,y2,d;
d=distance(x1,y1,x2,y2);
2. Ecrire une fonction swap ayant en paramètres 2 entiers a et b et qui échange les contenus de a et de
b. Tester cette fonction.
Cet exercice a pour but de vérifier les points techniques suivants :
• Création de fonction simple.
• Appel d'une fonction.
• Passage de paramètres par références.
#include<iostream>
using namespace std;
int main()
{
int a,b;
cout<<"Tapez a :";cin>>a;
cout<<"Tapez b :";cin>>b;
swap(a,b);
cout<<"a vaut : "<<a<<endl;
cout<<"b vaut : "<<b<<endl;
return 0;
}
3. Écrire une fonction f ayant en paramètres un tableau t1 de taille quelconque et un entier n indiquant
la taille du tableau, ainsi qu'un tableau t2 de la même taille que t1. f doit renvoyer par un return un
entier nb indiquant le nombre de valeurs comprises entre 0 et 10 dans le tableau t1. f doit mettre dans
le tableau t2 les différentes valeurs comprise entre 0 et 10 qu'elle a rencontrées dans le tableau t1.
Cet exercice a pour but de vérifier les points techniques suivants :
• Écriture d'une fonction ayant comme paramètre un tableau de taille quelconque.
• Extraction d'un sous-liste d'éléments.
• Utilisation de return.
#include<iostream>
using namespace std;
5
int main()
{
int a[10],b[10];
int nb;
saisir(a,10);
nb=f(a,10,b);
cout<<"VOICI LES VALEURS ENTRE 0 ET 10 : "<<endl;
afficher(b,nb);
return 0;
}
Algorithme suggéré :
1. Si le tableau contient un seul élément, alors il est trié (Condition d’arrêt). Sinon aller à 2
#include<iostream>
using namespace std;
int main() {
int t[10] = {5,6,1,3,14,0,55,7,12,4};
triRecursif(t,0,10);
for (int i=0;i<10;i++)
cout << t[i] << "\t";
}