Sunteți pe pagina 1din 3

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();
}

S-ar putea să vă placă și