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!