Кодът по-долу е в помощ на курсистите по “Увод в програмирането“. Задачите изискват специфични умения и за това няма да бъдат натоварвани от излишни неща към този момент. Средата за разработка е 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; }