Travail pratique #1 (10% de la session) (version 22 jan)

publicité
8PRO107 Éléments de programmation
Hiver 2015
Travail pratique #1 (10% de la session) (version 22 jan)
Date de remise
À remettre d’ici le 6 13 février 2015 (jour du TD)
(Peut se faire seul ou en équipe de 2 max.)
Objectif général
Ce travail a pour objectif d’introduire l’étudiant à la démarche de résolution de problème par
ordinateur et sa traduction en langage C++.
Notions du langage C++ à acquérir
Les entrées/sorties, les expressions arithmétiques.
INSTRUCTIONS:
 Votre travail pratique sera remis sous forme de dossier compressé dont le nom vous identifie (ex :
votre nom ou code permanent). Ce dossier pourrait ne contenir qu’un document Word (le rapport
décrit plus bas) et un dossier de projets (ou une solution contenant des projets) Visual Studio.
 Pour chacune des questions suivantes auxquelles vous répondrez, vous aurez à écrire un
programme en C++. Le nom de chacun de ces fichiers doit être significatif de son contenu.
Exemple : « salaire.cpp », « figures.cpp » ou autre. Mettre des commentaires dans votre
programme (fichier, but, auteur, date ou autre). Décrire les variables au besoin. Vous remettrez
également pour chacun une copie d’écran montrant l’exécution.
 Dans un rapport sous forme de document Word et pour chacune des questions auxquelles vous
aurez répondu, vous devez :
i. Écrire l'algorithme en pseudo code.
ii. Faire une trace d’exécution (ou pas-à-pas) avec l’entrée indiquée.
iii. Traduire l'algorithme en C++.
iv. Produire un tableau de jeux d’essai et tester votre programme avec ceux-ci (au moins 10).
Indiquez les entrées choisies et le résultat obtenu.
v. Indiquer les valeurs d’entrée pour lesquelles votre programme ne peut pas fonctionner
correctement (ex. un programme qui ne fait que diviser deux nombres ne fonctionne
correctement que si le dénominateur est différent de 0).
Répondre aux trois questions suivantes
Question 1
Écrire un programme qui, à partir de la lecture de deux nombres représentant respectivement un nombre
d’heures et un taux horaire, calcule et affiche un salaire brut (en multipliant les 2). Afficher des messages clairs
pour la saisie et la sortie du résultat. Faire le pas à pas avec les données suivantes : 32 heures à 12.25 $ de
l’heure.
Question 2
Écrire un programme qui, à partir de la lecture d'un nombre représentant une température en degrés
Fahrenheit, affiche son équivalent en degrés Celsius. Afficher des messages clairs pour la saisie et la sortie du
résultat. Faire le pas à pas avec la donnée suivante : -40°F
Question 3
Écrire un programme qui affiche l’aire et le périmètre d’un cercle à partir de la saisie de son diamètre.
r = ½ diamètre
aire = πr2
périmètre = 2πr
Afficher des messages clairs pour la saisie et la sortie des résultats. Faire le pas à pas avec la donnée
suivante : 2.
Répondre à 2 autres questions parmi les 7 suivantes (à votre choix)
Question 4
Le calcul de l’écart-type « σ » de 5 nombres se fait à partir de la formule suivante :

5
1
4
 x
i 1
i
 x
2
Écrire un algorithme qui lit les valeurs des 5 nombres x1, x2, x3, x4, x5 (tous réels), et affiche la valeur de l’écarttype.
Afficher des messages clairs pour la saisie des données et la sortie du résultat. Faire le pas à pas avec les
données suivantes : 1.0 2.0 4.0 3.0 2.0.
Question 5
Les racines de l’équation quadratique suivante :
ax 2  bx  c  0
sont réelles si et seulement si le discriminant
b 2  4ac
est non nul. Écrire un algorithme qui lit les valeurs des coefficients a, b, c et qui affiche la valeur du
discriminant. Afficher des messages clairs pour la saisie des données et la sortie du résultat. Faire le pas à
pas avec les données suivantes : 4.0 3.0 2.0.
Question 6
Concevoir et programmer un algorithme qui lit les longueurs des trois côtés d’un triangle (c1, c2, c3) et en
calcule la superficie à l’aide de la formule suivante (formule de Héron) :
aire  T (T  c1 )(T  c2 )(T  c3 )
où
T
c1  c2  c3
2
Validez que les 3 longueurs fournies peuvent former un triangle (ex : 1, 2, 3 ne forment pas un triangle…).
Afficher des messages clairs pour la saisie des données et la sortie du résultat. Faire le pas à pas avec les
données suivantes : 22, 33, 44.
Question 7
m1
r12
r13
m2
r23
m3
Trois masses; m1, m2, m3 sont distantes de r12, r13 et r23, telles que montrées à la figure précédente.
Si G représente la constante de gravité universelle, la formule suivante donne l'énergie gravitationnelle (E)
retenant les particules ensemble:
m m
mm
m m 
E  G 1 2  1 3  2 3 
r13
r23 
 r12
Écrire un algorithme qui lit les valeurs m1, m2, m3, r12, r13 et r23 (toutes réelles), qui calcule et imprime la valeur
de cette énergie gravitationnelle. Pour une masse en kilogrammes et une distance en mètres, G = 6,67 * 10-11
Newton-mètre2/kg2. Faire le pas à pas avec les données suivantes : 10.0 30.0 20.0 4.0 3.0 2.0.
Question 8
Un système d'équations linéaires de la forme
ax  by  c
dx  ey  f
peut être résolu par les formules suivantes:
x
ce  bf
ae  bd
et
y
af  cd
ae  bd
Écrire un algorithme qui lit les coefficients a, b, c, d, e et f (valeurs réelles) et qui imprime les valeurs de x et y.
Y a-t-il des cas limites où les formules ne s'appliquent pas? Faire le pas à pas avec les données suivantes :
1.0 3.0 2.0 4.0 3.0 2.0.
Question 9
On a effectué récemment une expérience à New York pour y connaître la force gravitationnelle. On a laissé
tomber une balle du haut de quelques édifices en prenant note de la hauteur et du temps requis pour atteindre
le sol. Voici les données:
Hauteur de l'édifice (m)
73.548
121.5
230.04
137.052
151.192
Temps pour atteindre le sol (sec)
3.74
4.84
6.64
5.13
5.41
Écrire un algorithme qui calcule la force gravitationnelle g, en utilisant la formule
y
1 2
gt
2
où y représente la distance parcourue et t le temps de chute. Calculer g pour chacun des cinq essais puis
calculer la moyenne. Imprimer tous les résultats accompagnés de messages appropriés. Le pas à pas n’est
pas obligatoire pour cette question.
Question 10
Quoique la vitesse de la lumière demeure constante sans égard à la vitesse relative de la source lumineuse et
de l'observateur, la fréquence de la longueur d'onde varie (un effet prévu par John Doppler et appelé "effet
Doppler"). La longueur d'onde émise par une source se déplaçant vers un observateur à la vitesse  apparaît
comprimée d'une quantité donnée par la formule:
 
v
c
où c est la vitesse de la lumière. Supposons qu'un avion se dirige vers une station-radio à la vitesse de 360
km/h (104 cm/s) et que la station émet sur une longueur d'onde de 30 m, le différentiel dû à l'effet Doppler est :
v (104 cm / s)  (3 103 cm)
 

c
3 1010 cm / s
 10 3 cm
En conséquence, le pilote doit ajuster son récepteur sur une longueur d'onde de 3000 cm moins 10-3 cm, c'està-dire sur 2999.999 cm, jusqu'à ce qu'il soit à la verticale de la station, et sur une longueur d'onde de 3000.001
cm en s'éloignant de la station. Écrire un algorithme qui lit la longueur d'onde de la station de radio, la vitesse
d'approche de l'avion et qui imprime les longueurs d'onde de réception à bord de l'avion. Faire le pas à pas
avec les données suivantes : 30 360.
Bon travail!
Téléchargement