![]() |
Mòdul
2
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
|
Pràctica
d'ampliació ![]() ![]() |
Angle de dos vectors
En aquesta pràctica es podrà comprovar com una funció pot cridar a una altra funció.
|
|||
![]() |
Desenvolupament de la pràctica
Definiu un projecte nou anomenat m2pa2 i afegiu-li un fitxer de font C/C++ anomenat m2pa2.cpp. Escriviu el següent codi:
Explicació del programa Aquest programa permet calcular en graus sexagesimals l'angle que formen dos vectors del pla. Els dos vectors s'introdueixen mitjançant dues funcions scanf() i s'emmagatzemen en les variables ux,uy vx, vy, les dues primeres variables representaran el primer vector i les dues últimes el segon vector. Segons les fórmules de geometria elemental del pla, el cosinus de l'angle que formen dos vectors ve donada per la fórmula: on u·v representa el producte escalar dels vectors u i v, és a dir: i
Una vegada calculat el cosinus de l'angle, per tal de calcular l'angle es fa servir la funció de la llibreria estàndard acos() (arcosinus), aquesta funció accepta un argument del tipus double i retorna un valor, també del tipus double. El valor de retorn és l'angle expressat en radians. Per convertir-lo a graus sexagesimals s'ha de fer la següent conversió: En aquest programa s'han creat quatre funcions: deg(), modul(), prod_esc() i angle(). La declaració d'aquestes funcions és la següent:
Totes accepten arguments del tipus double i retornen valors del tipus double. L'angle que formen els vectors es calcula amb la funció angle(). Aquesta funció crida a la funció pro_esc(), la funció modul() i la funció deg(). A la vegada, la funció mòdul() crida també a la funció prod_esc().
|