• Aucun résultat trouvé

Programmation 3 L2 Informatique 2012-2013 Fiche de TD 1

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation 3 L2 Informatique 2012-2013 Fiche de TD 1"

Copied!
2
0
0

Texte intégral

(1)

Programmation 3

L2 Informatique 2012-2013

Fiche de TD 1

Notions abord´ees :suivre l’ex´ecution de programmes it´eratifs et r´ecursifs ; ´ecriture de programmes et fonctions simples.

Exercice 1. (Analyse d’une fonction it´erative)

Dire ce que fait le programme suivant. Indiquer l’´etat de chacune des variables au fil de l’ex´ecution.

1 # include <s t d i o . h>

2

3 void f (i n t ∗tab , i n t n1 , i n t ∗n2 ) {

4 i n t i ;

5 n1 = n1 − 1 ;

6 f o r ( i = 0 ; 2 ∗ i < n1 ; i++)

7 p r i n t f ( ”%d ” , t a b [ 2 ∗ i ] ) ;

8 ∗n2 = ∗n2 / 2 ;

9 t a b [ 0 ] = t a b [∗n2 ] ;

10 }

11

12 i n t main ( ) {

13 i n t t [ ] = {0 , 1 , 1 , 2 , 3 , 5 , 8 , 1 3 , 2 1 , 3 4};

14 i n t a = 1 0 , b = 1 0 ;

15 f ( t , a , &b ) ;

16 p r i n t f ( ”\n” ) ;

17 f ( t , b , &b ) ;

18 p r i n t f ( ”\n” ) ;

19 r e t u r n 0 ;

20 }

Exercice 2. (Analyse d’une fonction r´ecursive)

Donner la sortie produite par le programme suivant.

1 # include <s t d i o . h>

2

3 void f ( n ) {

4 i f ( n > 0 ) {

5 p r i n t f ( ”%d ” , n ) ;

6 f ( n − 1 ) ;

7 p r i n t f ( ”%d ” , n ) ;

1

(2)

8 }

9 }

10

11 i n t main ( ) {

12 f ( 5 ) ;

13 r e t u r n 0 ;

14 }

Exercice 3. (Petits programmes entre amis)

1. ´Ecrire un programme qui affiche un menu de la forme

1. + 3. *

2. - 4. /

et qui permet de choisir l’une de ces quatre op´erations arithm´etiques. Le pro- gramme accepte ensuite deux nombres entiers en entr´ee et affiche le r´esultat suivant l’op´eration choisie. Si la division est choisie, le programme affiche le quotient et le reste. Veiller `a ce que les entr´ees soient coh´erentes (gestion du d´epassement de capacit´e, division par z´ero,etc.) et `a informer l’utilisateur dans le cas contraire.

2. ´Ecrire un programme qui affiche le capital obtenu en plac¸ant une sommesau taux tpendantnann´ees.

3. ´Ecrire un programme qui admet en entr´ee deux nombresaetctels quea≤cet qui affiche pour chaque entierbv´erifianta≤b≤cune ligne de la forme

b F -> b’ C

o `ub’est la valeur en degr´es Celsius correspondant `abexprim´e en degr´es Fahrenheit.

Rappel :Celsius= 59(Fahrenheit−32).

4. ´Ecrire un programme qui affiche, pour tous les caract`erescune ligne c -> a

o `uaest le code ASCII dec.

Exercice 4. (Petites fonctions entre amis) 1. ´Ecrire une fonction

1 void resoudre (f l o a t a , f l o a t b , f l o a t c , f l o a t ∗s1 , f l o a t ∗s2 ) ; qui calcule les solutions de l’´equationax2+bx+c=0 o `ua,betcsont des flottants.

Donner la raison pour laquelle les param`etres s1 et s2 sont des pointeurs. Int´egrer la fonction dans un programme.

2. ´Ecrire une fonction

1 i n t compter 1 (i n t n ) ;

qui compte le nombre de bits ´egaux `a1dans la repr´esentation binaire den. Utiliser les op´erateurs&et>>. Int´egrer la fonction dans un programme.

3. ´Ecrire une fonction

1 void a f f i c h e r b i n a i r e (i n t n ) ;

qui affiche les 32 bits de la repr´esentation binaire de l’entiern. Int´egrer la fonction dans un programme.

2

Références

Documents relatifs

Exercice 6 Ecrire un programme qui permet de saisir l’ˆ age de 5 personnes puis qui affiche true si au moins 4 personnes sont adultes (ˆ age&gt;18) et false sinon (ne pas utiliser

Repr´ esenter graphiquement D et justifier que l’axe Ox est un axe de sym´ etrie pour

Repr´ esenter graphiquement D et justifier que l’axe Ox est un axe de sym´ etrie pour

Que valent les sorties S et T en fonction des entr´ees A, B,

On pose donc que les 3 nombres sont premiers entre eux, et, par cons´ equent, tous impairs ou bien compos´ es de 2 pairs et 1 impair (situation obtenue apr` es le 1er coup de toutes

niveau recherche en informatique et mathématiques Accès à certaines revues en ligne de niveau recherche en informatique et mathématiques.. Les objectifs de

Mˆeme question que pr´ec´edemment, mais en ne calculant qu’une fois la valeur de 2*x+1 (et sans utiliser de fonction “carr´e”).. Mˆeme probl`eme qu’`a la question 6, mais

Écrire une fonction detruire_tab_2d paramétrée par un entier n et un pointeur tab sur un tableau à deux dimensions de n × m entiers (il n’est pas nécessaire de connaître m