in C++

Distanta dintre 2 puncte problema rezolvata C++

Fie  A si B doua puncte situate intr-un reper cartezian XOY. Punctul A are coordonatele x1 si  y1 , iar B are coordonatele x2 ,y2 .

Distanta dintre doua puncte din plan:

AB = √(x2 -x1)2+(y2-y1 )2

Coordonatele (x,y) ale mijlocului segmentului AB:

x=(x1 +x2/2

y=(y1 +y2)/2

Enuntul problemei  Clasa a X -a :

Se citesc coordonatele x,y numere intregi ale unui punct P din plan;un numar natural n si coordonatele a n puncte din plan.Se cere sa se scrie un algoritm pentru a determina coordonatele celui mai departat punct, dintre cele n,  fata de punctul P, precum si distanta dintre aceste doua puncte.

Exemplu :

pentru P(1,-2) si  n= 5

coordonatele celor 5 puncte (2,4) ,(-1,5),(-5,-7) ,(8,2),(6,-3)

se vor afisa (8,2) si dmax=8.06226

Rezolvarea  problemei in C++:

#include< iostream.h >
#include< conio.h >
#include< math.h >
// x, y coordonatele lui P
//n nr de puncte din plan
//xf,yf coordonatele primului punct
//a,b coordonatele celorlalte puncte
//distanta dintre puncte =d, dd;
int x,y,n,xf,yf,a,b,i;
float d,dd;
void main (){
cout<<„Introduceti coordonata x a punctului P.”<<endl;
cout<<„x= „;
cin>>x;
cout<<„Introduceti coordonata y a punctului P”<<endl;
cout<<„y= „;
cin>>y;
cout<<„Introduceti numarul de puncte din plan. n= „;
cin>>n;
cout<<„coordonatele primului punc”<<endl;
cin>>xf;
cout<<endl;
cin>>yf;
cout<<„coordonatele punctelor”<<endl;
d=sqrt((x-xf)*(x-xf)+(y-yf)*(y-yf));
for(i=2;i<=n;i++){
cin>>a;
cin>>b;
dd=sqrt((x-a)*(x-a)+(y-b)*(y-b));
if(d<dd){
d=dd;
xf=a;
yf=b;
}
}
cout<<„punctul cel mai indepartat de punctul P are coordonatele („<<xf<<„, „<<yf<<„)”<<endl;
cout<<„distanta dintre puncte este „<<d;

getch();
}

Notiunile teoretice si formulele de la geometrie analitica pe webmateinfo

Voteaza acest articol

3 Comments

  1. webmateinfo 26 noiembrie 2009 Reply
    • deni 17 noiembrie 2011 Reply
      • Marius 13 iunie 2012 Reply

Add a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *