Описание на алгоритъм и решения на задачи / примери и програма

вписана и описана окръжност

Познанието за заобикалящия ни свят е еволюирало бавно. Всеки възникнал проблем изисквал решения на конкретни задачи, прилагане на определен алгоритъм. Насоката в развитието не е било права линия. Постепенно са се формирали нови понятия, изграждани са връзки между тях. Изразът “единствено вярно решение” е присъщ на политиците. Във физиката, както и в математиката и информатика са били използвани различни методи за изчисляване модела на явления и процеси. Всеки нов метод за изчисление е бил проверяван и съпоставян с вече познати и изпитани методи. Натрупването и съхраняването на информация за вече открити решения на задачи и проблеми ни позволява следващ етап на развитие.

Една и съща задача може да бъде решена по различни начини, но алгоритмите използвани за решението ще бъдат по-добре обмисляни и разбрани, ако има възможност за сравняване с вече готово решение. За голяма част от разглежданите задачи е даден пример за конкретни входни данни, какъв би бил крайният резултат. Всички решения на задачи се предхождат от описание на конкретен алгоритъм.

Решените примери (даден е сорс кода за всяка отделна програма) илюстрират работата на характерни алгоритми. Материалът приложен в тази част на сайта е пряко свързан както с приложените електронни уроци, така и с електронните пособия.

Отделните теми са дадени в отделни страници, описани като ред от лявото вертикално меню има условие на задачата, алгоритъм за решение и самия сорс код. Следва примерна задача:

вписана и описана окръжност

Имаме триъгълник с въведени дължини на страните a,b,c. Търсим разстоянието между центровете на вписана и описана около триъгълника окръжност.

Пример: 3,4,5 Изход:1.118
вписана и описана окръжност Алгоритъм:
Лицето на триъгълника изчисляваме по формулата на Херон S=sqrt(p*(p-a)*(p-b)*(p-c))
Ще ползваме една от теоремите на Ойлер.
Ойлеровата права е права в триъгълник и преминава през пресечената точка на височините, на медианите и през центъра на описаната окръжност.
Центърът на вписаната окръжност е пресечната точка на трите ъглополовящи в триъгълника. Радиусът на вписаната окръжност е: r=(2*S)/(a+b+c);
Центърът на описаната окръжност е пресечната точка на трите симетрали на страните на триъгълника. Радиусът на описаната окръжност е: R=a*b*c/(4*S);
Разстоянието между центровете на вписаната и описаната окръжност е: OI=sqrt(R*R-2*R*r);

Следващата програма съдържа пример и решение на задача за разстояние между центровете на вписана и описана около триъгълник окръжност:

#include <iostream>

#include <cmath>

using namespace std;



int main()

{ double a,b,c,p,R,r,S,OI;

   cout<<"Za triygylnik ABC sa wywedeni dylvini na stranite mu a,b i c.\n";

   cout<<"Tyrsim razstoqnieto OI mevdu centrowete na wpisanata i \n";

   cout<<"opisanata okryvnost po teoremata na Ojler OI=sqrt(R*R-2*R*r)\n";


   cout<<"Primer: 3,4,5 Izhod 1.118\n";

   cout<<"Wywedete strana a: ";cin>>a;

   cout<<"Wywedete strana b: ";cin>>b;


   cout<<"Wywedete strana c: ";cin>>c;

   p=(a+b+c)/2;// poluperimetyr na triygylnika

   S=sqrt(p*(p-a)*(p-b)*(p-c));//lice na triygylnik po Heron

   cout<<"Lice na tiygylnik: "<<S<<endl;


   R=a*b*c/(4*S);// radius na opsiana okryvnost

   cout<<" radius na opsiana okryvnost: "<<R<<endl;

   r=(2*S)/(a+b+c);//radius na wpsiana okryvnost 

   cout<<" radius na wpsiana okryvnost: "<<r<<endl;


   OI=sqrt(R*R-2*R*r);

   cout<<"Razstoqnie mevdu centrowete na dwete okryvnosti: "<<OI<<endl;

system("pause");

return 0;

}//kraj na programa wpisana opisana okryvnost 

Начало на страницата

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

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: