3
École Préparatoire aux Sciences et Techniques, Annaba Module : Informatique 2 Département de mathématiques et d’informatique Série de TD n o 5 : Fonctions Rappel sur les fonctions 1. Une fonction est un bloc d’_________ qui accepte des valeurs en entrée appelées _______ et fournit une valeur en sortie en utilisant le mot clé ________. 2. Donner la syntaxe d’une déclaration d’une fonction. 3. Comment appelle-t-on une instruction dans le programme qui utilise une fonction ? 4. Donner la syntaxe d’un appel de fonction. 5. Quel type de retour est utilisé quand une fonction ne retourne aucune valeur ? 6. Quels sont les deux modes de transmission de paramètres à une fonction ? 7. Quel symbole doit précéder le nom d’un paramètre transmis par variable (ou réfé- rénce) ? 8. Quand un paramètre est transmis par variable (a) La fonction travaille avec une copie de la variable transmise. (b) La fonction travaille avec la variable transmise elle-même. 9. Une valeur par défaut d’un paramètre est utilisée par la fonction quand le programme appelant (fournit/ne fournit pas) une valeur pour ce paramètre. 10. Les paramètres par défaut doivent figurer en (premier/dernier) dans la déclaration d’une fonction. 11. Lors d’une surcharge de fonction, la déclaration des paramètres de la surcharge doit différer en _____ et/ou en _______. 12. Comment appelle-t-on une fonction qui fait appel à elle-même ? Exercice 1 Ecrire une fonction 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 retourne la distance AB. Tester cette fonction dans un programme principal. Exercice 2 Ecrire une fonction ayant en paramètres 2 entiers a et b et qui échange les contenus de a et de b. Tester cette fonction dans un programme principal. Exercice 3 1. Ecrire une fonction AND qui permet de calculer le ET (.) logique de deux booléens. 2. Ecrire une fonction OR qui permet de calculer le OU (+) logique de deux booléens. 3. Ecrire une fonction NOT qui permet de calculer le NON logique d’un booléen. 4. En utilisant les fonctions AND, OR et NOT, écrire une fonction XOR ()qui permet de calculer le XOR de deux booléens. (Rappel : A B = A. ¯ B + ¯ A. B) 1

serie5.pdf

  • Upload
    zaki

  • View
    5

  • Download
    1

Embed Size (px)

Citation preview

Page 1: serie5.pdf

École Préparatoire aux Sciences et Techniques, Annaba Module : Informatique 2Département de mathématiques et d’informatique

Série de TD no 5 : Fonctions

Rappel sur les fonctions

1. Une fonction est un bloc d’_________ qui accepte des valeurs en entrée appelées_______ et fournit une valeur en sortie en utilisant le mot clé ________.

2. Donner la syntaxe d’une déclaration d’une fonction.

3. Comment appelle-t-on une instruction dans le programme qui utilise une fonction ?

4. Donner la syntaxe d’un appel de fonction.

5. Quel type de retour est utilisé quand une fonction ne retourne aucune valeur ?

6. Quels sont les deux modes de transmission de paramètres à une fonction ?

7. Quel symbole doit précéder le nom d’un paramètre transmis par variable (ou réfé-rénce) ?

8. Quand un paramètre est transmis par variable

(a) La fonction travaille avec une copie de la variable transmise.

(b) La fonction travaille avec la variable transmise elle-même.

9. Une valeur par défaut d’un paramètre est utilisée par la fonction quand le programmeappelant (fournit/ne fournit pas) une valeur pour ce paramètre.

10. Les paramètres par défaut doivent figurer en (premier/dernier) dans la déclarationd’une fonction.

11. Lors d’une surcharge de fonction, la déclaration des paramètres de la surcharge doitdifférer en _____ et/ou en _______.

12. Comment appelle-t-on une fonction qui fait appel à elle-même ?

Exercice 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 retourne la distance AB. Tester cettefonction dans un programme principal.

Exercice 2

Ecrire une fonction swap ayant en paramètres 2 entiers a et b et qui échange les contenusde a et de b. Tester cette fonction dans un programme principal.

Exercice 3

1. Ecrire une fonction AND qui permet de calculer le ET (.) logique de deux booléens.

2. Ecrire une fonction OR qui permet de calculer le OU (+) logique de deux booléens.

3. Ecrire une fonction NOT qui permet de calculer le NON logique d’un booléen.

4. En utilisant les fonctions AND, OR et NOT, écrire une fonction XOR (⊕)qui permetde calculer le XOR de deux booléens. (Rappel : A⊕ B = A.B + A.B)

1

Page 2: serie5.pdf

EPST Annaba Module : Informatique 2 Série de TD no 5

Exercice 4

Le factoriel d’un nombre n, noté n!, est le produit des nombres entiers strictement positifsinférieurs ou égaux à n. Le factoriel peut être formellement défini de deux manières :

n! =n

∏i=1

i = 1× 2× 3× · · · × (n− 1)× n (1)

n! ={

1 si n ∈ {0, 1}n× (n− 1)! sinon (2)

1. En utilisant la formule (1), écrire une fonction itérative qui calcule le factoriel d’unnombre.

2. En utilisant la formule (2), écrire une fonction récursive qui calcule le factoriel d’unnombre.

3. Quelle version est plus efficace en terme de temps ?

4. Quelle version est plus efficace en terme d’espace mémoire ?

Exercice 5

1. Ecrire une fonction existe qui teste si une valeur existe dans un tableau. La fonctionretourne true si elle trouve la valeur et false sinon.

2. Ecrire une version récursive de la fonction existe.

3. Ecrire une fonction somme qui calcule et retourne la somme des éléments d’un tableau.

4. Ecrire une version récursive de la fonction somme

5. Ecrire une fonction tri qui trie dans l’ordre croissant un tableau.

6. Ecrire une version récursive de la fonction tri.

Exercice 6

Soit les deux surcharge d’une fonction appelée somme :

int somme(int i, int j) {

cout << "somme int";

return i + j;

}

double somme(double i, double j) {

cout << "somme double";

return i + j;

}

Que se passe-t-il lorsqu’on fait chacun des appels suivants dans un programme :

1. somme(2,4)

2. somme(2.0,4.0)

3. somme(2.0,4)

2

Page 3: serie5.pdf

EPST Annaba Module : Informatique 2 Série de TD no 5

Exercice 7

Ecrire une fonction minmaxmoy qui accepte en entrée un tableau d’entiers ainsi que sataille et qui retourne le maximum, le minimum et la moyenne des valeurs du tableau. Lafonction doit être de type void.

Problème 1 : Chiffrement par décalage

En cryptographie, le cryptage ou chiffrement par décalage, aussi connu comme le chiffrede César, est une méthode de chiffrement très simple utilisée par Jules César dans ses cor-respondances secrètes (cf. wikipedia).

Le texte crypté s’obtient en remplaçant chaque lettre du texte original par une lettre àdistance fixe. Pour les dérnieres lettres de l’alphabet, on reprend au début. Par exemple si ladistance choisie est de 3, on a :

texte original : ECOLE PREPARATOIRE AUX SCIENCES ET TECHNIQUES

texte crypté : HFROH SUHSDUDWRLUH DXA VFLHQFHV HW WHFKQLTXHV

1. Ecrire une fonction crypter qui permet de crypter un message en utilisant le chiffre-ment par décalage. La fonction accepte en entrée un tableau de caractères, sa tailleainsi que la distance choisie.

2. Ecrire une fonction decrypter qui permet de décrypter un message. La fonction ac-cepte en entrée un tableau de caractères, sa taille ainsi que le distance choisie.

3. Réécrire la fonction decrypter en faisant appel à la fonction crypter.

Problème 2 : Carré rebondissant

Un objet de forme carré se déplace sur une grille de 10x10 cases . L’objet se déplace d’unecase à chaque mouvement vers une direction qui peut être : nord-est, nord-ouest, sud-est ousud-ouest. L’objet rebondit quand il touche l’une des paroies de la grille.

En supposant que les constantes ne, no, se et so sont déclarée et de type int, écrire unefonction deplacer(int & x, int & y, int & direction) qui calcule les nouvelles coor-données de l’objet. La fonction devra aussi mettre à jour la direction de l’objet en cas derebondissement.

Une version éléctronique de ce document est disponible sur : http://skebir.developpez.com/epst

3