Превръщане на ъгъл - градуси в радиан

алгоритъм за превръщане на ъгъл - градуси в радиан
периметър по въведени две страни и ъгъл
радиус на описана окръжност по въведени две страни и ъгъл
ъгли в триъгълник
отношение на ъгли в триъгълник
хорда и ъгъл на дъга

Нека имаме два лъча, които се срещат в обща точка, наречена връх. Като количествена мярка един ъгъл дава разликата в наклона на тези два лъча. Като мерна единица за размер на ъгъл често се ползва градус или радиан. Ако раменете на един ъгъл са взаимно перпендикулярни ще казваме, че това е прав ъгъл - 90 градуса. Така, най-голямата дъга в окръжността има 360 градуса. Един радиан е равнинният ъгъл между два радиуса, които отрязват от окръжност дъга с дължина равна на радиуса на същата окръжност. Означението е rad и често се изпуска, т.к. радиан е безразмерна величина. За изразяване на съотношението ъгъл - градуси в радиан се ползва ирационалното число на Лудолф pi = 3.1415925….. Използва се факта, че най-големият ъгъл в окръжност е 360 градуса или 2pi радиана. Зависимостта за превръщане на ъгъл от градуси в радиан се изразява чрез: ygyl * pi / 180, където ygyl е ъгъл в градуси. Зависимостта за превръщане на ъгъл от радиан в градуси се изразява чрез: ygyl * 180 / pi, където ygyl е ъгъл в радиан. Един радиан е малко над 57 градуса. Често използвана мярка за ъгъл е десетичен градус - реално число с цяла част градуси, десетичен остатък - минути. секунди. Пример: ъгъл 38.5 десетични градуса е 38 градуса и 30 минути.

Често срещани означения за ъгъл:
остър ъгъл - (мярка < 90°);
прав ъгъл (мярка = 90°) - двете рамена на ъгъла са взаимно перпендикулярни. В триъгълник хипотенузата е срещулежащата страна срещу прав ъгъл;
тъп ъгъл ( 90° < мярка < 180°). В триъгълник това е най-големият ъгъл срещулежащ срещу най-голямата страна в същия триъгълник;
изправен ъгъл (мярка 180°). Двете рамена на този вид ъгъл лежат на една права;
съседни ъгли - образуват се при пресичане на две прави от една равнина. Сумата на два съседни ъгъла има мярка 180°;
срещулежащ ъгъл - ъгъл срещу страна в триъгълник или диагонал в многоъгълник;
прилежащ ъгъл - най-често в триъгълник. Сумата от двата прилежащи ъгъла към страна от триъгълник е < 180°;
външен ъгъл (в триъгълник) - прилежащия ъгъл към посочения вътрешен ъгъл в същия триъгълник; насочен ъгъл - ъгъл, на който едното рамо е избрано за първо, а другото за второ. В този случай са възможни отрицателни стойности за ъгъл.
В полярна координатна система разстояние между две точки в равнината се дава с радиус вектор и полярен ъгъл, отчитащ наклона на радиус вектора спрямо абсицисната ос.
При изчисляване на ъгъл в триъгълник често се налага ползване на синусова или косинусова теорема:
синусова теорема
   a / sinA = b / sin/B = c / sinC = 2 * R
   R = a*b*c / (4 * sqrt(p*(p-a)*(p-b)*(p-c)))
   hc = b*sinA = a*sinB

   S = 0.5*a*b*sin(C) = 0.5*a*c*sin(B) = 0.5*b*c*sin(A)
   S = R*R*sin(A)*sin(B)*sin(C) = a*b*c / (4*R)

косинусова теорема
   a^2 = b^2 + c^2 - 2*b*c*cosA
   b^2 = a^2 + c^2 - 2*a*c*cosB
   c^2 = a^2 + b^2 - 2*a*b*cosC

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

алгоритъм за превръщане на ъгъл - градуси в радиан

Често срещан случай е въвеждане данни за ъгъл с мярка градуси, минути, секунди като се ползват цели числа. В езиците за програмиране стойност на ъгъл се въвежда в радиани, като се ползват рационални числа.

   Следващата примерна програма демонстрира алгоритъм за превръщане на ъгъл - градуси в радиан:

#include <iostream>
using namespace std;

#define pi 3.1415925 //chislo na Ludolf
#define ygyl  pi / 180 // ygyl ot gradusi w radian 

int main() 
{ double yg,rad;
  cout<<"W ezicite za programirane kato mqrka za ygyl se polzwa radian.\n";
  cout<<"Naj-golqmata dyga w okryvnostta ima ygyl 360 [gradusa] ili 2*pi [rad].\n";
  cout<<"Imate estestweno chislo N ot interwala [0..360], \n";
  cout<<"predstawlqwasho ygyl na dyga w okryvnost.\n";
  cout<<"Da se systawi programa, chrez koqto se wywevda estestweno\n"; 
  cout<<"chislo N ot interwala [1..180] i se izwevada\n";
  cout<<"ygyla w radiani.\n";
  cout<<"Primer: 180 Izhod: 3.14159\n";
  cout<<"Wywedete ygyl na dygata w gradusi [0..360]: ";cin>>yg;
  rad=ygyl * yg;
  cout<<" ygyl na dygata w radiani: "<<rad<<endl;

system("pause");
return 0;
}//kraj na programa ygyl gradusi radiani

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

периметър по въведени две страни и ъгъл

Да разгледаме следната задача: Дадени са дължини на две от страните в триъгълник a,b, както и заключения между тях ъгъл C. Търсим периметъра P на този триъгълник.

Алгоритъм:    Ще ползваме косинусова теорема - тази теорема е валидна за всички видове Евклидови триъгълници.
  c*c = a*a + b*b - 2*a*b*cos(C), където C е ъгъл заключен между страните a, b.
  Стойността на ъгъла се въвежда в градуси, но се предава в радиани като параметър на функцията косинус.
  Следващата примерна програма дава решена задача за периметър по въведени две страни и ъгъл чрез косинусова теорема:
 
#include <iostream>
#include <cmath>
 using namespace std;
 double const pi=3.141592;
 #define ygyl pi/180 // ygyl ot gradusi w radian 

int main() 
{ double a,b,c, Cyg, P;
  cout<<"Imate wywedeni dylvini na dwe ot stranite w triygylnik a,b, \n";
  cout<<"kakto i zakliucheniq mevdi tqh ygyl C. Tyrsim perimetyra P \n";
  cout<<"na tozi triygylnik. Ygylyt C e w gradusi [1..179], a stranite realni\n";
  cout<<"chisla. Da se systawi programa, chrez koqto se wywevdat a,b,C i se izwevda P.\n";
  cout<<"Primer: a=3, b=4 C=90 Izhod P=12\n";

  cout<<"Wywedete strana a: ";cin>>a;
  cout<<"Wywedete strana b: ";cin>>b;
  cout<<"Wywedete ygyl C: ";cin>>Cyg;
  Cyg *=  ygyl ;//ygyl ot gradusi w radian
  c= sqrt(a*a + b*b - 2*a*b*cos(Cyg));//cosinusowa teorema
  P=a+b+c;
  cout<<"Perimetyr: "<<P<<endl;
  system ("pause");
return 0;
}//kraj na programa ygyl ot gradusi w radian

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

радиус на описана окръжност по въведени две страни и ъгъл

Да разгледаме следната задача: Дадени са дължини на две от страните в триъгълник a,b, както и заключения между тях ъгъл. Търсим радиуса R на описаната около този триъгълник окръжност.

радиус на описана окръжност по въведени две страни и ъгъл Алгоритъм:    Ще ползваме косинусова теорема за намиране на третата страна от триъгълника: c= sqrt(a*a + b*b - 2*a*b*cos(Cyg));
   Знаем срещулежащия ъгъл C.
   Ще ползваме синусова теорема: a/sin(A) = b/sin(B) = c/sin(C) = 2*R
   където R е радиуса на описаната около този триъгълник окръжност.
   Стойността на ъгъла се въвежда в градуси, но се предава в радиани като параметър на функцията синус.
   Следващата примерна програма дава решена задача за радиус на описана окръжност чрез синусова теорема:

#include <iostream>
#include <cmath>
 using namespace std;
 double const pi=3.141592;
#define ygyl pi / 180 // ygyl ot gradusi w radian 


int main() 
{ double a,b,c, Cyg, R;
 cout<<"Imate wywedeni dylvini na dwe ot stranite w triygylnik a,b, \n";
  cout<<"kakto i zakliucheniq mevdi tqh ygyl C. Tyrsim radiusa na opisanata  \n";
  cout<<"okolo tozi triygylnik okryvnost R. Ygylyt C e w gradusi [1..179], \n";
  cout<<"a stranite realni chisla. Da se systawi programa, chrez koqto se \n";
  cout<<"wywevdat a,b,C i se izwevda R.\n";
  cout<<"Primer: a=3, b=4 C=90 Izhod 2.5\n";

  cout<<"Wywedete strana a: ";cin>>a;
  cout<<"Wywedete strana b: ";cin>>b;
  cout<<"Wywedete ygyl C: ";cin>>Cyg;
  Cyg*= ygyl ; // ygyl ot gradusi w radian 
  c= sqrt(a*a + b*b - 2*a*b*cos(Cyg));
  R=c/(2*sin(Cyg));//sinusowa teorema
  cout<<"radius na opisana okryvnost: "<<R<<endl;
 system ("pause");
return 0;
}//kraj na programa ygyl ot gradusi w radian 

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

ъгли в триъгълник

Да разгледаме следната задача: Дадени са дължини на две от страните в триъгълник - a,b, както и радиуса R на описаната около същия триъгълник окръжност. Търсим ъглите в същия триъгълник.

Алгоритъм:   Ще ползваме синусова теорема: a/sin(A) = b/sin(B) = c/sin(C) = 2*R
  От тази теорема ще намерим ъглите срещулежащи на страните a и b.
  Сборът на ъглите в триъгълник е 180 градуса, така последния неизвестен ъгъл е C = 180 - A - B
  Използвана е библиотечната функция asin за изчисляване на ъгъл по въведено отношение.
 
  Следващата примерна програма дава решена задача за ъгли в триъгълник. Изчислените ъгли се извеждат в десетични градуси.
 
#include <iostream>
#include <cmath>
 using namespace std;
 double const pi=3.141592;

void ygyl (double a, double b, double R)
{double Cyg, Ayg, Byg; 
//a/sin(A) = b/sin(B) = c/sin(C) = 2*R  sin(B) = b/(2*R) sinusowa teorema
 Byg = asin(b/(2*R));//sinusowa teorema
 Byg*=180/pi;// ygyl ot radian w gradusi
 Ayg = asin(a/(2*R));//sinusowa teorema
 Ayg*=180/pi;// ygyl ot radian w gradusi
 Cyg=180-Ayg-Byg;//sumata na 3-te ygyla e 180 gradusa 
 cout<<"Izwevdam yglite w desetichni gradusi:\n";
 cout<<" ygyl sreshu strana A w gradusi : "<<Ayg<<endl;
 cout<<" ygyl sreshu strana B w gradusi : "<<Byg<<endl;
 cout<<" ygyl sreshu strana C w gradusi : "<<Cyg<<endl;
} // ygyl 

int main() 
{ double a,b, R;
  cout<<"Imate wywedeni dylvini na dwe ot stranite w triygylnik a,b - realni\n";
  cout<<"chisla, kakto i R radiusa na opisanata okolo tozi triygylnik okryvnost.\n";
  cout<<"Tyrsim yglite na tozi triygylnik w desetichni gradusi. \n";
  cout<<"Da se systawi programa, chrez koqto se wywevdat dylvina za a,b,R\n";
  cout<<"i se izwevdat trite ygyla w tozi triygylnik - desetichni gradusi.\n";
  cout<<"Primer: a=3, b=4 R=2.5 Izhod A=36.8699 B=53.1301 C=90\n";
  cout<<"Wywedete strana a: ";cin>>a;
  cout<<"Wywedete strana b: ";cin>>b;
  cout<<"Wywedete radiusa R: ";cin>>R;
  ygyl ( a, b,  R);
system ("pause");
return 0;
}//kraj na programa ygyl w triygylnik

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

отношение на ъгли в триъгълник

Вътрешните ъгли в триъгълник са представени като отношение между естествени числа. Търсим размер на всеки отделен ъгъл от триъгълник в десетични градуси. Пример:1, 2, 3 Изход: 30,60,90.

Алгоритъм:

Сборът от вътрешните ъгли в триъгълник е 180 градуса. Въвеждат се коефициентите o1,o2,o3. Изчислява се тяхната сума S. Търсим общ множител за всеки отделен ъгъл o0 = 180/S. Стойностите за всеки отделен ъгъл са: I-ви ъгъл yg1=o0*o1; II-ри ъгъл yg2=o0*o2; III-ти ъгъл yg3=o0*o3;

   Следващата примерна програма дава решена задача за отношение на ъгли в триъгълник:
#include<iostream>
using namespace std;

const int all=180;//suma na ygli w triygylnik


void ygyl (int o1, int o2, int o3)
{ double obs,yg1,yg2,yg3;
  obs=180/(o1+o2+o3);
  cout<<"Obsh nnovitel: "<<obs<<endl;
  yg1=obs*o1;
  yg2=obs*o2;
  yg3=obs*o3;
  cout<<"1-wiq ygyl e: "<<yg1<<endl;
  cout<<"2-riq ygyl e: "<<yg2<<endl;
  cout<<"3-tiq ygyl e: "<<yg3<<endl;
  }// ygyl 

int main()
{ int o1,o2,o3;
  cout<<"W triygylnik wytreshinte ygli sa wywedeni kato otnoshenie.\n";
  cout<<"Da se systawi programa, chrez koqto se wywevdat estestweni chisla\n";
  cout<<"o1, o2, 03 ot interwala [1..100] za otnoshenie mevdu ygli i se \n";
  cout<<"izchislqwat yglite na triygylnika w desetichni gradusi.\n";
  cout<<"Primer 1,2,3 Izhod:30,60,90.\n";
  cout<<"Wywedete koeficient za ygyl 1 [1..10]: ";cin>>o1;
  cout<<"Wywedete koeficient za ygyl 2 [1..10]: ";cin>>o2;
  cout<<"Wywedete koeficient za ygyl 3 [1..10]: ";cin>>o3;
  ygyl  ( o1, o2, 03);
system("pause");
return 0;
}//kraj na programa ygli w triygylnik

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

хорда и ъгъл на дъга

Дадена е окръжност с радиус R и хорда в нея с дължина L. Да се изчисли ъгъл на по-малката дъга, принадлежаща към хордата.

хорда и ъгъл на дъга    Алгоритъм:    Разглеждаме равнобедрен триъгълник с основа хорда L и бедра – радиус R.    Спускаме височина към основата и разглеждаме вече правоъгълен триъгълник, чийто ъгъл при върха е половината от търсения ъгъл – sin(A/2) = 0.5*L / R.
   Функция синус с аргумент ъгъл изчислява отношение на срещулежаща страна към хипотенуза.
   Функция аркус синус с аргумент отношение на срещулежаща страна към хипотенуза изчислява ъгъл.
   Използваме библиотечна функция asin за изчисляване на търсения ъгъл на по-малката дъга.
   Формираният ъгъл от двата радиуса се явява централен ъгъл в тази окръжност, така ъгълът при върха на равнобедрения триъгълник е търсения ъгъл на по-малката дъга.
   Следващата примерна програма дава решена задача за хорда и ъгъл на дъга:

#include <iostream>
#include <cmath>
using namespace std;
double const pi=3.141592;
#define ygyl 180/pi  //preobrazuwane ygyl w radian - gradusi  

int main()
{ double R,L,yg,a;
  cout<<"Imame okryvnost s radius R i horda w neq s dylvina L.\n";
  cout<<"Tyrsim ygyla na po-malkata dyga, prinadlevasha na hordata.\n";
  cout<<"Primer: R=5, L=5 Izhod ygyl = 60.\n";

  cout<<"Wywedete radius: ";cin>>R;
  cout<<"Wywedete dylvina ma horda: ";cin>>L;
  yg = 2 * asin(0.5*L/R);
//Pitagorowa teorema R - hipotenuza 0.5*L - katet za 1/2 ot dygata
  yg *=  ygyl; 
  cout<<"dygata e s ygyl w gradusi: "<<yg<<endl;
system("pause");
return 0;
}//kraj na programa horda ygyl na dyga
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

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

 
Размер на шрифта
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
Търсене в сайта: