Algorithmique, programmation et structures de

publicité
Algorithmique, programmation
et structures de données I
TD/TP 2
Polytech Marseille - INFO – 3ème année
Année 2016-2017
De manière à adopter une bonne habitude de travail, chaque exercice doit être étudié en TD
puis en TP. L’analyse menée en TD, éventuellement en plusieurs étapes, doit aboutir (sur
papier) à un pseudo-code (ou équivalent). Celui-ci est à transposer, durant la séance de TP
suivante, en un code écrit en C, en respectant les règles de programmation préconisées par
l’équipe pédagogique. Ce code doit être compilé et testé.
Boucles et tableaux
Exercice 1
1. Modifiez le programme « prix HT → prix TTC » que vous avez déjà écrit (exercice 1 de
la première fiche), pour qu’il répète plusieurs fois les opérations : lecture au clavier d’un
prix HT, calcul du prix TTC correspondant, affichage de ce prix.
Pour indiquer qu’il désire arrêter l’utilisation du programme, le client donne comme prix
HT la valeur 0.
2.
Modifiez le programme précédent afin qu’il affiche, à la fin du travail, le nombre de calculs
qui ont été faits et la somme des prix TTC.
Exercice 2
1.
Ecrivez un programme qui affiche les valeurs du sinus de tous les angles de 0 à 90 degrés,
par pas de 15 degrés. On souhaite un affichage de la forme :
sin(0) = 0.000000
sin(15) = 0.258819
sin(30) = 0.500000
. . .
sin(90) = 1.000000
2.
Modifiez le programme précédent, de sorte qu’il affiche les valeurs du sinus des angles de
0 à 90 degrés, par pas de P degrés, où P est une valeur lue au clavier.
3.
Modifiez le programme précédent, afin qu’il affiche les valeurs du sinus des angles de D à
F degrés, par pas de P degrés, où D, F et P sont des valeurs lues au clavier.
Exercice 3
Ecrivez un programme qui lit au clavier une suite x0, x1, x2, . . . de nombres entiers positifs ou
nuls et qui en affiche la moyenne. La frappe d’un nombre négatif indique la fin de la suite.
Exercice 4
Ecrivez un programme qui lit au clavier une suite x0, x1, x2, . . . de nombres entiers positifs ou
nuls et qui les affiche dans l’ordre inverse de leur lecture. La frappe d’un nombre négatif indique
la fin de la suite. Nous avons des raisons de penser qu’il n’y aura pas plus de 100 nombres.
Exercice 5
Ecrivez un programme qui lit au clavier une suite x0, x1, x2, . . . de nombres entiers tels que
0 ≤ xi ≤ 20 et qui calcule et affiche le nombre d’apparitions de chaque valeur dans la suite. La
frappe d’un nombre négatif indique la fin de la suite.
Exercice 6
Ecrivez un programme qui affiche tous les couples (x, y), où x est un entier compris entre 1 et
p et y un entier compris entre 1 et q ; p et q sont deux entiers lus au clavier. L’affichage doit se
faire comme sur l’exemple suivant, qui correspond à p = 3 et q = 5 :
(1, 1) (1, 2) (1, 3) (1, 4) (1, 5)
(2, 1) (2, 2) (2, 3) (2, 4) (2, 5)
(3, 1) (3, 2) (3, 3) (3, 4) (3, 5)
Exercice 7
A l’aide de boucles, écrivez un programme affichant à l’écran la pyramide suivante :
Il n’est évidemment pas question d’écrire explicitement les plus de 100 instructions d’affichage
Exercice 8
Ecrivez un programme qui affiche un tableau rectangulaire T de réels, comme ceci :
1.0
2.0
3.0
4.5 10.5
5.0
6.0
7.5
8.0 26.5
9.0 10.2 11.3 12.0 42.5
15.0 18.2 21.8 24.5 79.5
La dernière colonne est faite des sommes des lignes, la dernière ligne des sommes de colonnes.
Les nombres de lignes et de colonnes de T sont connus à l’avance.
Au début, T est entièrement rempli de zéros. Ensuite, votre programme doit répéter
indéfiniment les opérations suivantes :
- lecture de trois nombres i, j et x (i, j entiers, x flottant). Convention : i négatif indiquera
la fin du programme ;
- remplacement de la valeur courante de Ti,j par x et mise à jour des sommes
correspondantes.
Exercice 9
Quelle est la plus petite valeur de n telle qu’un algorithme dont le temps d’exécution est 100n2
tourne plus vite qu’un algorithme dont le temps d’exécution est 2n.
Téléchargement