Намиране на обиколката на фигура

Кодът по-долу е в помощ на курсистите по “Увод в програмирането“. Задачите изискват специфични умения и за това няма да бъдат натоварвани от излишни неща към този момент. Средата за разработка е Microsoft Visual Studio 2012, на някои от другите среди има нужда от добавяне на допълнителни библиотеки.

Идеята на задачата е да се намери обиколката на фигура съставена от две окръжности и две прави както е показано на изображението по-горе.

В началото въвеждаме координатите на двете точки, които принадлежат едновременно на права и окръжност. След това дефинираме променлива от тип double, в която ще пазим дължината на линията, в случая на двете линии взети заедно. Намирането на дължината на една линия става след като се извадят координатите на двата и края, но в случая координатите на края са (0;0) и няма да натоварваме излишно изчисленията. След като се вземат координатите на краищата се построяват прави по осите Х и У, така се получава правоъгълен триъгълник като катетите са разликата м/у Х координатите и У координатите. По Питагор се намира и дължината на хипотенузата (правата) , а тя е
C = sqrt(A^2 + B^2). Аналогично и за другата права и понеже търсим дължината на правите сумираме двете отсечки.

При намирането на радиуса на окръжността си използва същата логика от Питагоровата теорема. Понеже търсим дължина на 2-те окръжности, ги сумираме. Накрая записваме дължината на правите и окръжностите в обща променлива, която извеждаме.


#include <iostream>
using namespace std;

int main()
{
	int xPoint1, yPoint1;
	cout << "Enter the cordinates of the point on the circle1:" << endl;
	cin >> xPoint1 >> yPoint1;

	int xPoint2, yPoint2;
	cout << "Enter the cordinates of the point on the circle2:" << endl;
	cin >> xPoint2 >> yPoint2;

	double lengthLine = (sqrt(pow(xPoint1, 2) + pow(yPoint1, 2))) + 
		(sqrt(pow(xPoint2, 2) + pow(yPoint2, 2)));
	//In lengthLine calculate length of each line with Pythagorean theorem: 
	//hypotenuse = sqrt (cathetus1 ^ 2 + cathetus2 ^ 2)
	//Cathetus1 is subtraction between X coordinate of each points of the line
	//Cathetus2 is subtraction between Y coordinate of each points of the line

	int xCenter1, yCenter1;
	cout << "Enter the cordinates of the center on the circle1:" << endl;
	cin >> xCenter1 >> yCenter1;

	int xCenter2, yCenter2;
	cout << "Enter the cordinates of the center on the circle2:" << endl;
	cin >> xCenter2 >> yCenter2;

	double circuit = ((sqrt(pow(xPoint1 - xCenter1, 2) + pow(yPoint1 - yCenter1, 2))) * 2 * 3.14) + 
		((sqrt(pow(xPoint2 - xCenter2, 2) + pow(yPoint2 - yCenter2, 2))) * 2 * 3.14);
	//In the lengthCircle calculate length of the each circle like a calculating length of the line.
	//Again use Pythagorean theorem for find radius or diameter.
	//Next use formula for circuit.
	//Circuit = 2 * Pi * R or Circuit = Pi * D			R - radius	D - diameter

	double length = lengthLine + circuit;
	//At last collect length of lines and circles.
	
	cout << "Length of the figure is: " << length << endl;

	return 0;
}

Terminal

Leave a comment