- оператор функция
- функция abs
- функция atof
- функция atoi
- функция atol
- оператор break
- оператор case
- функция cell и floor
- функция cin и cout
- функция clock
- оператор const
- оператор continue
- оператор default
- оператор define
- функция div
- оператор do
- функция fgetc
- функция fgets
- оператор for
- функция fprintf
- функция freopen
- функция fseek
- функция fwrite
- оператор if
- оператор itoa
- функция ltoa
- функция main
- функция setprecision и setw
- манипулатори oct, hex
- функция modf
- функция pow
- функция printf
- функция puts
- функция rand
- функция scanf
- функция sin - синус и cos - косинус
- функция sizeof
- функция sqrt
- функция srand
- функция strcat
- функция strchr
- функция strcmp
- функция strcoll
- функция strcspn
- функция strlen
- функция strcpy и strncpy
- функция strrev
- оператор struct
- функция strlwr и strupr
- оператор switch
- функция tan - тангенс
- функция tmpnam
- функция tolower и toupper
- функция void
- оператор while
- съпоставяне do и while
функция sin - синус и cos - косинус на ъгъл в триъгълник
правоъгълен триъгълник - височина и ъгълтриъгълник - височина и два ъгъла
височини в триъгълник - 2 ъгъла и радиус
синус - правоъгълен триъгълник
синус - правоъгълен трапец
синус - височина
синус - ъгъл в радиани
За една окръжност казваме, че най-големият ъгъл в нея е 360 градуса. Така 360 градуса са равни на 2 π радиана, където pi е 3.1415925.. (нарича се също число на Лудолф - Лудолф ван Цойлен). Единица за измерване на равнинен ъгъл е радиан - безразмерна величина. Означава се с rad. Ако в една окръжност с два радиуса се обозначи централен ъгъл, на който съответстващата му дъга по дължина е равна на радиуса на същата окръжност, то този ъгъл е равен на 1 радиан. Тригонометричните функции, в езиците за програмиране, изискват аргумента ъгъл да бъде представен в радиани. Тук разглежданите две функции ( sin и cos ) дават като резултат безразмерна величина - отношение между хипотенуза, прилежаща и срещулежаща страна в правоъгълен триъгълник. Има и обратни функции аркус на синус и косинус. Те изискват аргумент отношение между две страни и връщат резултат - ъгъл в радиани. При изчисляване на всяка тригонометрична функция, включително синус и косинус се ползва математически апарат свързан с изчисляване на редове, т.е. тригонометричните функции налагат допълнителни изчисления в конкретната програма. функция синус sin - изисква аргумент ъгъл в радиани, а като резултат връща отношение между срещулежаща страна към хипотенуза. функция косинус cos - изисква аргумент ъгъл в радиани, а като резултат връща отношение между прилежаща страна към хипотенуза.
Да припомним някои тригонометрични тъждества за синус и косинус:Нека n е естествено число, π - число на Лудолф:
sin (φ + 2*n*π) = sin (φ)
cos (φ + 2*n*π) = cos (φ)
cos (-α) = cos (α) - четна функция;
sin (-α) = - sin (α) - нечетна функция;
sin (90 + α) = cos (α);
cos (90 +α) = - sin (α);
sin (2 * α ) = 2 * sin (α) * cos (α)
синус като сума от два ъгъла:
sin (α + β) = sin (α) * cos (β) + cos (α) * sin (β)
синус като разлика от два ъгъла:
sin (α - β) = sin (α) * cos (β) - cos (α) * sin (β)
косинус като сума от два ъгъла:
cos (α + β) = cos (α) * cos (β) - sin (α) * sin (β)
косинус като разлика от два ъгъла:
cos (α - β) = cos (α) * cos (β) + sin (α) * sin (β)
И двете тригонометричн функции синус и косинус са периодични и ограничени в числовия интервала [-1..1] Описание на библиотечните функции в езика C++ sin, cos се съдържа във файла cmath.
Библиотечните функции синус и косинус имат за аргумент ъгъл в радиани и връщат като резултат съответно:
sin синус - отношение на срещулежаща страна в правоъгълен триъгълник към хипотенуза. Диапазон на възможни стойности [-1..1];
cos косинус - отношение на прилежаща страна към хипотенуза. Диапазон на възможни стойности [-1..1].
правоъгълен триъгълник - височина и ъгъл
Имаме правоъгълен триъгълник, за който са въведени: дължина на височината към хипотенузата hc и един от острите му ъгли ygа. Търсим периметър на този триъгълника и диаметър на описаната около триъгълника окръжност.
а) изчисляване на другия остър ъгъл ygb = 0.5 * pi - yga
б) изчисляване дължина на катета a, сключващ ъгъл yga с хипотенузата a =hc / sin (yga);
в) проекцията на катета върху хипотенузата ca=hc / cos (yga);
г) изчисляване дължина на катета b, сключващ ъгъл ygb с хипотенузата b = hc / sin (ygb);
д) проекцията на катета върху хипотенузата cb = hc / cos (ygb);
е) диаметърът на описаната окръжност D = ca+cb е дължината на хипотенузата
ж) периметърът на триъгълника P= a+b+(ca+cb) е сума от дължините на страните в триъгълника
Следва пример с използване на библиотечна функция sin:
#include<iostream>
#include <cmath>
using namespace std;
double const pi=3.1415925;
int main()
{double hc, yg,yga,ygb,a,b,ca,cb,P,D;
cout<<"Imate prawoygylen triygylnk zadaden s hc dylvina na wisochinata kym\n";
cout<<"hipotenuzata i a edin ot ostrite mu ygli. Ygylyt se wywevda w gradusi.\n";
cout<<"Da se izchislqt: diametyr na opisanata okryvnost i perimetyr na triygylnika.\n";
cout<<"Primer: 10 45 Izhod D=20, P=48.2843 \n";
cout<<"Wywedete dylvina na wisochinata [9..99]: "; cin>>hc;
cout<<"Wywedete ostyr ygyl w gradusi [10..80]; ";cin>>yg;
yga=yg*pi/180;//preobrazuwame gradusi w radiani za sin i cos
ygb=0.5*pi-yga; // 0.5*pi=90 gradusa
a=hc / sin (yga); // sin (yga)=hc/a - sinus sreshulevasha strana kym hipotenuza
cout<<"Dylvinata na katet a: "<<a<<endl;
ca=a * cos (yga); // cos (yga) = ca/a - cosinus prilevasha strana kym hipotenuza
b=hc / sin (ygb);
cout<<"Dylvinata na katet b: "<<b<<endl;
cb=b * cos (ygb);
D=ca+cb;
cout<<"Diametyr na opisanata okryvnost: "<<D<<endl;
P=a+b+D;
cout<<"Perimetyr na triygylnika: "<<P<<endl;
system("pause");
return 0;
} //kraj na programa sin i cos
триъгълник - височина и два ъгъла
Имаме триъгълник с въведени: ha - височина към страна а, както и двата принадлежащи към същата страна - ъгъл C и ъгъл B. Търсим P - периметър на този триъгълник.
Алгоритъм:Разглеждаме двата правоъгълни триъгълника, образувани от страни c, b - хипотенузи и общ катет ha.
Въведен е по един остър ъгъл за всеки от триъгълниците – ъгъл C и ъгъл B.
Изчисляваме страна c = ha / sin (B);
Изчисляваме страна b = ha / sin (C);
Изчисляваме страна a = c * cos (C) + b * cos (B) - като проекции на вече изчислените страни;
Следващата примерна програма дава решена задача за периметър на тръгълник по въведени височина към страна и два прилежащи ъгъла чрез използване на библиотечна функция sin и функция cos:
#include <iostream>
#include <cmath>
using namespace std;
double const pi=3.141592;
double ygyl (double C,double B, double ha)
{ double a,b,c,P;
//formirani sa 2 prawoygylni triygylnika s wywedeni ostyr ygyl i katet
c= ha / sin (B);// strana a
b= ha / sin (C); //strana b
cout<<c<<":"<<b<<endl;
a= c * cos (C) + b * cos (B) ;
P= a+b+c;
return P;
}// ygyl i wisochnina sin cos
int main()
{double C,B,ha,yg,P;
cout<<"Imame triygylnk s wywedeni: wisochina ha kym strana a i ygli\n";
cout<<"A, B prilevashi kym strana a. Tyrsim perimetyr P na triygylnika. \n";
cout<<"Primer: C=30; B=30; h=10 Izhod: P=74.641 \n";
cout<<"Wywedete ygyl C: ";cin>>yg;
C=pi*yg/180; // sin i cos - ygyl w radiani
cout<<"Wywedete ygyl B: ";cin>>B;
B=pi*yg/180; // ygyl w radiani
cout<<"Wywedete wisochina ha: ";cin>>ha;
P = ygyl (C, B, ha);
cout<<"Perimetyr na triygylnika: "<<P<<endl;
system("pause");
return 0;
}//kraj na programa sin i cos
височини в триъгълник - 2 ъгъла и радиус
Имаме триъгълник с въведени: R - радиус на описаната около него окръгност, както и два ъгъла - ъгъл ygA и ъгъл ygB. Търсим ha, hb и hc - всички височини в този триъгълник.
Ще използваме следните зависимости:
Сумата от вътрешните ъгли ygA+ygB+ygC = 180 градуса;
лице на триъгълник Sabc = 2 * R * R* sin (ygA) * sin (ygB) * sin (ygC)
височина към страна a ha = sqrt (2* Sabc * sin (ygB) * sin (ygC)/ sin (ygA));
височина към страна b hb = sqrt (2* Sabc * sin (ygA) * sin (ygC)/ sin (ygB));
височина към страна c hc = sqrt (2* Sabc * sin (ygA) * sin (ygB)/ sin (ygC));
Следващата примерна програма дава решена задача за височини в тръгълник:
#include<iostream>
#include <cmath>
using namespace std;
double const pi=3.1415925;
double radiani (double gradus )
{ double rad = pi * gradus /180;
return rad;
}// gradus w radian
int main()
{ double ygA,ygB,ygC,ha,hb,hc,ygyl, R, Sabc;
cout<<"Imame wpisan triygylnik w okryvnost s radius R. Wywedeni sa\n";
cout<<"sysho i dwa ot yglite w triygylnika. Tyrsim wisochinite.\n";
cout<<"Primer: ygA = 45, ygB=45 R=10 Izhod: ha=14.1421; hb=14.1421 hc=10\n";
cout<<"Wywedete ygyl A: ";cin>>ygyl;
ygA=radiani (ygyl);
cout<<"Wywedete ygyl B: ";cin>>ygyl;
ygB=radiani (ygyl);
ygC=pi-(ygA+ygB);// sumata na ygli w triygylnik e 180 gradusa
cout<<"Wywedete radius na opisanata okryvnost: ";cin>>R;
Sabc = 2*R*R*sin (ygA)* sin (ygB) * sin (ygC);
cout<<" lice na wpisan triygylnik: "<<Sabc<<endl;
ha = sqrt (2* Sabc * sin (ygB) * sin (ygC)/ sin (ygA));
cout<<" wisochina kym strana a: "<<ha<<endl;
hb = sqrt (2* Sabc * sin (ygA) * sin (ygC)/ sin (ygB));
cout<<" wisochina kym strana b: "<<hb<<endl;
hc = sqrt (2* Sabc * sin (ygA) * sin (ygB)/ sin (ygC));
cout<<" wisochina kym strana c: "<<hc<<endl;
system("pause");
return 0;
} //kraj na programa wisochina
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.