View Full Version : [C++] Problema con esercizio
salve...avrei da creare un programma che calcola l'area di 3 punti nel piano cartesiano messi a seconda d come li vuole l'utente...
utilizzo il linguaggio c++ e ci dev'essere l'utilizzo di funzioni...aiutoooo...nn è semplice....ciaociao
tomminno
24-11-2007, 17:10
salve...avrei da creare un programma che calcola l'area di 3 punti nel piano cartesiano messi a seconda d come li vuole l'utente...
utilizzo il linguaggio c++ e ci dev'essere l'utilizzo di funzioni...aiutoooo...nn è semplice....ciaociao
L'area di 3 punti è semplicissima: 0 comunque tu li disponga sul piano :D
L'esercizio non ha niente di particolare si tratta di scrivere in codice un pò di formule matematiche tipo distanza tra 2 punti (sqrt, somme e sottrazioni), calcolo del coeffciente angolare di una retta (un pò di divisioni), rette perpendicolari (ancora divisioni) e area del triangolo (un pò di prodotti e divisioni).
Ti basta scrivere le funzioni che calcolano questi parametri.
variabilepippo
24-11-2007, 17:40
Una volta calcolata la lunghezza dei lati
AB = RADICE((Xb-Xa)^2 + (Yb-Ya)^2)
AC = RADICE((Xc-Xa)^2 + (Yc-Ya)^2)
BC = RADICE((Xc-Xb)^2 + (Yc-Ya)^2)
applichi la formula di Erone (http://it.wikipedia.org/wiki/Formula_di_Erone).
uhm capito....bhe dai ade provo poi vi faccio sapere...grz mille cmq...ciaociao
ancora piu semplicemente basta che fai una matrice 3x3 con le varie cordinate cartesiane, e come terzo numero in colonna per ogni punto metti 1. calcoli il determinante e quello è il risultato dell'area. esempio
A(1,3)
B(0,5)
C(-1,6)
calcoli il determinante della matrice
1 3 1
0 5 1
-1 6 1
figata il metodo del determinante! ci sai dire "perchè" funziona?
volevo sapere....ma cm faccio a mettere in c++ delle coordinate di punti?? cioè non è possibile dire ad es punto A (3;4) ?
fai così:
# include <iostream>
int punto1[2],punto2[2],punto3[2];
int main() {
std::cout<< "inserisci le coordinate x e y del primo punto";
std::cout<< "coordinata x punto 1";
std::cin>> punto1[0];
std::cout<< "coordinata y punto 1";
std::cin>>punto1[1];
std::cout<< "inserisci le coordinate x e y del secondo punto";
std::cout<< "coordinata x punto 2";
std::cin>> punto2[0];
std::cout<< "coordinata y punto 2";
std::cin>>punto2[1];
std::cout<< "inserisci le coordinate x e y del primo punto";
std::cout<< "coordinata x punto 3";
std::cin>> punto3[0];
std::cout<< "coordinata y punto 3";
std::cin>>punto3[1];
e poi fai il determinante della matrice(che non mi ricordo come si fa)
punto1[0] punto1[1] 1
punto2[0] punto2[1] 1
punto3[0] punto3[1] 1
certo che è proprio tosto quell'esercizio qua....più semplice non poteva darcelo il prof...mamma ke roba...beh dai perlomeno visto che voglio diventare programmatore mi servirà in futuro....
se la matrice è 3x3 usa sarrus:
|a b c|
|d e f| = aei + dhc + bfg - gec - dbi - hfa
|g h i|
ancora piu semplicemente basta che fai una matrice 3x3 con le varie cordinate cartesiane, e come terzo numero in colonna per ogni punto metti 1. calcoli il determinante e quello è il risultato dell'area. esempio
A(1,3)
B(0,5)
C(-1,6)
calcoli il determinante della matrice
1 3 1
0 5 1
-1 6 1
che gran cosa calcolo numerico e matematica computazionale :D
meglio ancora era fare una struct ma il programma funziona lo stesso
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.