Примери: Точка в равнината
Нека дефинираме структура, която изобразява точка в равнината, като използва нейните декартови координати (вж. фигурата).
Структурата може да бъде дефинирана по следния начин:
struct point { double x; double y; };
Нека сега дефинираме няколко функции, които използват тази структура. Първата функция, която ще разгледаме е функция, която изчислява разстоянието между две точки в равнината като използва Питагоровата теорема (вж. фигурата).
Дефиницията на функцията е представена в следния фрагмент
#include <cmath> using namespace std; double distance(point p1, point p2) { double dx=p1.x-p2.x; double dy=p1.y-p2.y; return sqrt(dx*dx+dy*dy); }
[note]
Сравнете така дефинираната функция distance
с дефиницията на същата функция в раздел Дефиниране на функции.
[/note]
Нека разгледаме още две операции, които често се изпълняват върху точки в равнината – операциите събиране и изваждане. Ако имаме две точки [latex]p_1[/latex] и [latex]p_2[/latex] в равнината с декартови координати [latex](x_1, y_1)[/latex] и [latex](x_2, y_2)[/latex] съответно, то сума на точките [latex]p_1+p_2[/latex] се нарича точка от равнината [latex]P=(X,Y)[/latex], чиито координати се изчисляват по следния начин:
[latex]X=x_1+x_2;\ Y=y_1+y_2[/latex].
Функцията, реализираща тази операция, може да се дефинира по следния начин:
point add(point p1, point p2) { point result={p1.x+p2.x, p1.y+p2.y}; return result; }
Аналогично се дефинира изваждането на точки от равнината. Разликата на две точки в равнината [latex]p_1-p_2[/latex] е отново точка [latex]P=(X,Y)[/latex], чиито координати се изчисляват по следния начин:
[latex]X=x_1-x_2;\ Y=y_1-y_2.[/latex]
Дефиницията на функцията, която реализира операцията изваждане на точки от равнината, е представена в следния фрагмент:
point sub(point p1, point p2) { point result={p1.x-p2.x, p1.y-p2.y}; return result; }
Pingback: CPP-101: Кратък обзор на езика за програмиране C++ | Записки по програмиране