- ъглополовяща-бисектриса
- Криви
- Разстояние между две точки
- ъгъл градуси радиан
- две окръжности
- диаметър на окръжност
- периметър
- височина, перпендикуляр
- триъгълник - Талес
- триъгълник - Херон
- триъгълник - Питагор
- правоъгълен триъгълник
- успоредник
- правоъгълник
- ромб
- трапец
- правоъгълен трапец
- многоъгълник
- дъга - хорда, ъгъл и радиус
- окръжност
- цилиндър
- конус
- призма
- пирамида
Успоредник - страни, периметър, лице, диагонали
лице на успоредник по две страни и ъгъл
лице на успоредник по диагонали и ъгъл
ориентирано лице на успоредник
лице на успоредник - остър ъгъл
ромб с остър ъгъл 60 градуса - лице и периметър
периметър на успоредник по две височини
Четириъгълник, на който срещулежащите страни са две по две успоредни и равни ще наричаме успоредник. Друго название за успоредник е ромбоид. Срещулежащите му страни са успоредни и равни. Друг вид успоредник е ромб - срещулежащите страни са успоредни и всички страни са равни. Свойства на успоредник: срещулежащите ъгли са равни. Сборът от прилежащите ъгли към всяка страна е равен на 180 градуса; двойките срещуположни страни са успоредни и равни; диагоналите в успоредник взаимно се разполовяват.
Разглеждаме успоредник ABCD със страни a,b, височина ha и ъгъл A срещу височината ha.
Лице на успоредник: S = a * ha = b*hb = a*b*cos(A).
Периметър на успоредник: P=2*(a+b).
Отношение между диагонали AC, BD и страни AB, BC в успоредник: AC*AC + BD*BD = 2*(AB*AB +BC*BC)
лице на успоредник по две страни и ъгъл
Даден е успоредник ABCD с въведени дължини на страните AB, BC, както и ъгъла между тях. Търсим лице и периметър на същия успоредник.
Алгоритъм:P=2*(AB+BC) - периметър на успоредника
Sabcd=AB*BC*sin(YGbac) - лице на успоредника
Дължини на диагонали по въведени две прилежащи страни ъгъл между тях можем да изчислим чрез косинусовата теорема:
d1=sqrt(a*a + b*b - 2*a*b*cos(A) ) - по-късия диагонал
d2=sqrt(a*a + b*b + 2*a*b*cos(A) )
Следващата примерна програма дава решена задача за лице и периметър на успоредник по въведени прилежащи страни ъгъл между тях
#include <iostream>
#include <cmath>
using namespace std;
double const pi=3.141592;
void parallelogram (double AB, double BC, double yg)
{ double YGbac, ha, hb, Sabcd, P;
YGbac =yg*pi/180;//ygyl w radiani
ha=BC*sin(YGbac);//wisochinata kym stranata AB
cout<<"Wisochina kym stranata AB: "<<ha<<endl;
hb=AB*sin(pi-YGbac);//wisochinata kym stranata AB
cout<<"Wisochina kym stranata BC: "<<hb<<endl;
P=2*(AB+BC);
cout<<"Perimetyr na usporednika: "<<P<<endl;
Sabcd=AB*ha;
cout<<"Lice na usporednika: "<<Sabcd<<endl;
}//void parallelogram
int main ()
{ double AB,BC, yg;
cout<<"Imate usporednik ABCD, za kojto sa wywedeni dylvini na dwe\n";
cout<<"sysedni strani AB, BC, kakto i ygyla mevdu tqh. Tyrsim lice S,\n";
cout<<"perimetyr P i dwete wisochinai na usporednika ABCD.\n";
cout<<"Primer: AB=10; BC=20; yg=30 Izhod: S=100; P=60; \n";
cout<<"Wywedete strana AB: ";cin>>AB;
cout<<"Wywedete diagonal BC: ";cin>>BC;
cout<<"Wywedete ygyl mevdu stranite BAC: ";cin>>yg;
parallelogram (AB, BC, yg);
system("pause");
return 0;
}//kraj na programata usporednik
лице на успоредник по диагонали и ъгъл
Имаме успоредник ABCD и точка M в него - пресечна точка на диагоналите. Въведени са: дължина на диагонали AC, BD и ъгъл AMB между тях. Търсим стойности за: лице S и периметър P на този успоредник.
Алгоритъм
Транслираме диагонала BD в посока DC. Ще отбележим тази отсечка с CF.
За триъгълника ACF знаем дължини на страните Dac, Dcf - двата диагонала, както и ъгъла ACF = AMB.
По косинусовата теорема: c=sqrt(a*a+b*b - 2*a*b*cos(C))
изчисляваме страната AF
AF = sqrt(Dac*Dac+Dcf*Dcf - 2*Dac*Dcf*cos(acf))
Основа на успоредник AB = AF/2
Изчисляваме лицето на триъгълника AFC по формулата на Херон - Safc
p = (AF+Dac+Dcf)/2 - полупериметър;
Safc=sqrt(p*(p-AF)*(p-Dac)*(p-Dcf))
Спускаме от връх C на успоредника височина CH към страната AF.
Hch =(2*Safc) / AF
За триъгълника AFC отсечката BC е медиана към страната AF, но също е и страна на успоредника.
BC =sqrt(2*Dac*Dac + 2*Dcf*Dcf - AF*AF)/2
Pabcd = 2*(AB+BC) - периметър на успоредник;
Sabcd = Hch*AB - лице на успоредник.
#include <iostream>
#include <cmath>
using namespace std;
double const pi=3.141592;
int main ()
{ double a,b, Dac, Dcf, Sacf, Sabcd, Pabcd, AF, YGacf ,h ,p,yg;
cout<<"Imate usporednik ABCD, za kojto sa wywedeni dylvini na\n";
cout<<"diagonalite, kakto i ygyla mevdu tqh - sreshulevash na AB.\n";
cout<<"Tyrsim lice S, perimetyr P na usporednika ABCD.\n";
cout<<"Primer: Dac=30; Dcf=40; ACF=90 Izhod: S=600; P=100; \n";
cout<<"Wywedete diagonal AC: ";cin>>Dac;
cout<<"Wywedete diagonal BD: ";cin>>Dcf;
cout<<"Wywedete ygyl mevdu diagonalite: ";cin>>yg;
YGacf=yg*pi/180;//ygyl w radiani
AF= sqrt(Dac*Dac +Dcf*Dcf - 2*Dac*Dcf*cos(YGacf));
a=AF/2;//strana AB na usporednika
cout<<"Strana AB: "<<a<<endl;
p=(Dac+Dcf+AF)/2;//poluperimetyr
Sacf=sqrt(p*(p-Dac)*(p-Dcf)*(p-AF));//formula na Heron
h=2*Sacf/AF; // liceto na triygylnika Sacf=2*a*h/2
cout<<"Wisochina kym stranata AB: "<<h<<endl;
b =sqrt(2*Dac*Dac + 2*Dcf*Dcf - AF*AF)/2; //mediana CB w triygylnika ACF
cout<<"Strana BC: "<<b<<endl;
Pabcd = 2*(a+b); //perimetyr na usporednika
cout<<"Peimetyr na usporednika: "<<Pabcd<<endl;
Sabcd = h*a;// lice na usporednik
cout<<"Lice na usporednika: "<<Sabcd<<endl;
system("pause");
return 0;
}//kraj na programa lice na usporednik
ориентирано лице на успоредник
Въведени са координати на 3 последователни върха ABC на успоредник. Търсим лицето на същия успоредник.
АлгоритъмВъвеждаме данните за върхове на успоредника в двумерен масив: 3 реда за върхове и 2 колони за абсциса, ордината.
Съставяме и изчисляваме матрицата за формиране векторно произведение:
x1, y1, 1
x2, y2, 1
x3, y3, 1
където с индексите 1,2,3 са означени поредните номера на връх от успоредника.
S = abs(x1*y2 + x3*y1 + x2*y3 - x3*y2 - x1*y3 - x2*y1)
Знакът на резултата зависи и от посоката на обхождане на върховете - взема се абсолютната стойност на изчисленото лице на успоредник.
Следващата примерна програма дава решена задача за ориентирано лице на успоредник:
#include <iostream>
#include <cmath>
using namespace std;
int const N=3;//broj wywedeni wyrhowe ot usporednik
float orientirano_lice(int mas[][2])
{float S;
S = mas[0][0]*mas[1][1];
S+= mas[2][0]*mas[0][1];
S+= mas[1][0]*mas[2][1];
S-= mas[2][0]*mas[1][1];
S-= mas[0][0]*mas[2][1];
S-= mas[1][0]*mas[0][1];
return fabs(S);
}//orientirano lice na usporednik
void vhod( int mas[][2], int i)
{ cout<<"Wywedete koordinati po abscisa za wryh "<<char(65+i)<<": ";
cin>>mas[i][0];
cout<<"Wywedete koordinati po ordinata za wryh "<<char(65+i)<<": ";
cin>>mas[i][1];
}//vhod
int main()
{int i, mas[N][2]={ {1,3}, {4,3}, {1,10}};//koordinati na wyrhowe w usporednik
char ose;
float S;
cout<<"Imame danni za koordinati na 3 posledowatelni wyrha ot usporednik.\n";
cout<<"Koordinaite sa estestweni chisla ot interwala [1..101].\n";
cout<<"Tyrsim orientiranoto lice na tozi usporednik.\n";
cout<<"Primer: 1,3; 4,3; 4,10 Izhod 21\n";
do {
for (i=0;i<N;i++) vhod(mas,i);//wywevda danni za koordinati na wyrhowe
S=orientirano_lice(mas);// absoliutnata stojnost na weche izchislenoto lice
cout<<" lice na usporednik "<<S<<endl;
cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
} while (ose=='y');
system("pause");
return 0;
}//kraj na programa lice na usporednik
лице на успоредник - остър ъгъл
Даден е успоредник и два диагонала в него. Въведени данни: P - периметър на успоредник, Q - разлика в периметрите на двойката прилежащи триъгълници, както S - лице на успоредник. Търсим острия ъгъл yg на този успоредник.
Алгоритъм
От пресечната точка на двата диагонала в успоредника са образувани 4 триъгълника.
Разглеждаме едната двойка прилежащи триъгълника, чиято сума от лица е половината от лицето на целия успоредник.
Ще означим страните на успоредника с a,b, периметър P, разлика в периметрите на триъгълниците Q, диагонали в успоредника d1, d2.
Двата диагонала в този успоредник взаимно се разполовяват. Така d1 = 2 * m, d2 = 2 * n
Ще означим с P1, P2 периметрите на двата триъгълника
P1 = a + m + n
P2 = b + m + n
Q = P1 - P2 = a - b
P = 2 * (a + b)
От горната система извеждаме поотделно всяка от страните в този успоредник
страна a = (0.5 * P + Q)/2
страна b = (0.5 * P - Q)/2
лице на успоредник S = a * b * sin(yg)
Следващата примерна програма съдържа решена задача за лице на успоредник - остър ъгъл:
#include <iostream>
#include <cmath>
using namespace std;
double pi=3.141592;
double parallelogram(double P, double Q, double S)
{double a,b,yg;
/*
P1 = a + m + n
P2 = b + m + n
Q = P1 - P2 = a - b
P = 2 * (a + b)
*/
a = (0.5 * P + Q)/2;
b = (0.5 * P - Q)/2;
yg=asin(S/( a * b)); //funkciq arcus sinus
return yg;
} // parallelogram
int main()
{double P,Q,S,yg;
char ose;
cout<<"Imate usporednik s wywedeni danni za: perimetyr P i lice S.\n";
cout<<"Razlikata mevdu perimetrite na dwa sysedni triygylnika e Q\n";
cout<<"Da se izchisli ostriq ygyl na tozi usporednik.\n";
cout<<"Primer: P=70, Q=5; S=150 Izhod: yg=30\n";
do {
cout<<"Wywedete perimetyr na usporednik ";cin>>P;
cout<<"Wywedete razlika w perimetrite na triygylnicite: ";cin>>Q;
cout<<"Wywedete lice na usporednik ";cin>>S;
yg = parallelogram( P, Q, S);
cout<<"Ygyl w desetichni gradusi: "<<yg*180/pi<<endl;
cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
} while (ose=='y');
system("pause");
return 0;
} //kraj na programa ygyl na usporednik
ромб с остър ъгъл 60 градуса - лице и периметър
Особен случай на успоредник е ромб. За него са валидни следните твърдения: Четирите страни на ромба са равни, като две по две са успоредни, а срещуположните ъгли на ромба са равни. Особености на диагонали в ромб - те са взаимно перпендикулярни, явяват се ъглополовящи и се разполовяват от пресечната си точка. Да разгледаме следната примерна задача за ромб: Имаме успоредник с остър ъгъл 60 градуса и въведена дължина на по-късия диагонал. Търсим периметър и лице на този ромб.
Алгоритъм:
От условието по-късият диагонал разделя на два равностранни триъгълника този ромб. Така:
страна на ромб a = d
височина на ромб = a*sqrt(3)/2
Периметър на ромб p = 4*d
Лице на ромб S = 2 * (a*a*sqrt(3)) / 4 = a*a*sqrt(3) / 2
Следващата примерна програма дава решена задача за лице и периметър на ромб:
#include <iostream>
#include <cmath>
using namespace std;
double a;
#define romb a*a*sqrt(3)/2
#define perimetyr 4*a
int main ()
{ double d,P,S;
cout<<"Imame usporednik s ostyr ygyl 60 gradusa, za kojto e wyweden \n";
cout<<"d - po-kysiq diganol w romba. \n";
cout<<"Tyrsim S - lice i P - perimetyr w tozi romb.\n";
cout<<"Pirmer: d=10 Izhod S= 86.6025; P=40 \n";
cout<<sqrt(3)<<endl;
cout<<"Wywewedete po-kysiq diagonal w romb: ";cin>>d;
a=d;//stranata na tozi romb e rawna na po-kysiq diagonal
S = romb ;
P = perimetyr ;
cout<<"lice na romb : "<<S<<endl;
cout<<"perimetyr na romb : "<<P<<endl;
system("pause");
return 0;
}//kraj na programa usporednik - romb
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.