неділя, 28 вересня 2014 р.

Програми на Паскалі для геометричних задач

Завдання 1. Скласти програму на Паскалі для обчислення площі довільного трикутника за трьома відомими сторонами.  Протестувати програму для таких  випадків: 1) a = 3; b=4; c=5;  2) a = 13; b=14; c=15;  3) a = 1; b=5; c=5.
Розв'язання. Довідка. Довільний трикутник
G1
Мал. 1.
Трикутник – 1) багатокутник із трьома сторонами; 2) це фігура, що складається з трьох точок, які не лежать на одній прямій, та трьох відрізків, які сполучають попарно ці точки. Відрізки називають сторонами трикутника, а точки – вершинами трикутника.
Бісектриса трикутника – відрізок бісектриси кута, що з'єднує вершину трикутника з точкою протилежної сторони.
Медіана трикутника – відрізок, який з'єднує вершину трикутника з серединою протилежної сторони.
Висота трикутника – перпендикуляр, проведений із вершини трикутника до прямої, що містить протилежну сторону.
Якщо один з кутів прямий, то трикутник – прямокутний, якщо тупий – тупокутний, якщо всі кути гострі – гострокутний. Якщо в трикутнику дві сторони рівні, то трикутник – рівнобедрений, якщо три – рівносторонній.
Сума кутів трикутника дорівнює 180°. Проти більшої сторони трикутника лежить більший кут. Кожна сторона трикутника менша від суми двох інших сторін.
Площа трикутника дорівнює половині добутку сторони на висоту, проведену до цієї сторони:
G2
Площа трикутника дорівнює половині добутку сторін на синус кута між ними:
G3
Площа трикутника (формула Герона) дорівнює
G4 , деG5
Код Pascal
program  mrukymnuk;
var a, b, c:integer;
function geron(a,b,c:integer):double;
var p:double;
begin
  p:=(a+b+c)/2;
  geron:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
begin
  write('vvedite a-> '); 
readln(a);
  write('vvedite b-> '); 
readln(b);
  write('vvedite c-> '); 
readln(c);
  writeln(geron(a,b,c));
  readkey;
end.
Завдання 2. Самостійно скласти програму на Паскалі для обчислення радіусу описаного навколо довільного трикутника та радіусу вписаного кола за трьома відомими сторонами.  Протестувати програму для таких  випадків: 1) a = 3; b=4; c=5;  2) a = 13; b=14; c=15;  3) a = 1; b=5; c=5.
Розв'язання. Якщо довільний трикутник має три сторони, тоді радіус кола, вписаного в трикутник:
G6, де р - півпериметр, S - площа трикутника.
Радіус кола, описаного навколо трикутника:
G7, де a, b, c  - cторони, S - площа трикутника.


Завдання 3. Скласти програму на Паскалі для обчислення косинусів кутів довільного трикутника за трьома відомими сторонами.  Протестувати програму для таких  випадків: 1) a = 3; b=4; c=5;  2) a = 13; b=14; c=15;  3) a = 1; b=5; c=5.

Розв'язання. Дано сторони трикутника a,b,c. Обчислити косинуси кутів трикутника.
Теорема косинусів
Квадрат будь-якої сторони трикутника дорівнює сумі квадратів двох інших сторін без подвоєного добутку цих сторін на косинус кута між ними.
G8
Дано сторони трикутника a,b,c. Обчислити косинуси кутів трикутника
Код Pascal
program  kytu-mrukymnuka;
var a,b,c,cosa,cosb,cosc:real;
begin
clrscr; 
write('Введіть сторону a=');
readln(a);
write('Введіть сторону b=');
readln(b);
write('Введіть сторону c=');
readln(c);
cosc:=(sqr(c)-sqr(a)-sqr(b))/(-2*a*b);
cosa:=(sqr(a)-sqr(c)-sqr(b))/(-2*c*b);
cosb:=(sqr(b)-sqr(c)-sqr(a))/(-2*c*a);
writeln('cos_a=',cosa:5:4);
writeln('cos_b=',cosb:5:4);
write('cos_c=',cosc:5:4);
readln;
end.
Завдання 4. Самостійно скласти програму на Паскалі для обчислення синусів кутів довільного трикутника за трьома відомими сторонами.  Протестувати програму для таких  випадків: 1) a = 3; b=4; c=5;  2) a = 13; b=14; c=15;  3) a = 1; b=5; c=5.
Довідка. Теорема синусів: Сторони трикутника пропорційні синусам протилежних кутів.
G9  та   sin 2a + cos 2a = 1
або 
sina = (1- cos 2a)0,5 = sqrt(1- sqr(cosa)).
Завдання 5. а)Самостійно скласти програму на Паскалі для обчислення гіпотенузи прямокутного  трикутника за двома відомими катетами.  б)Самостійно скласти програму на Паскалі для обчислення катета прямокутного  трикутника за двома відомими  сторонами: гіпотенузою та катетом. Протестувати програму. 
Довідка.Теорема Піфагора: у прямокутному трикутнику квадрат гіпотенузи дорівнює сумі квадратів його катетів, тобто  c2=a2+ b2.  Отже,
а) знайти гіпотенузу: c = (a2+b2)0,5 = sqrt(sqr(a)+sqr(b))
б) знайти катет а: a = (c2-b2)0,5 = sqrt(sqr(c)-sqr(b))
знайти катет b: b = (c2-a2)0,5 = sqrt(sqr(c)-sqr(a)).

Завдання 6.  Скласти програму на Паскалі для обчислення площі паралелограма   за  відомими:   стороною та висотою. Протестувати програму.

Розв'язання.  Довідка. Чотирикутник – фігура, яка складається з чотирьох точок (жодні три з них не лежать на одній прямій) і чотирьох відрізків, які з'єднують послідовно ці точки і не перетинаються.
G10
Паралелограм
 G11
Паралелограм – чотирикутник, у якого протилежні сторони паралельні. У паралелограмі протилежні сторони рівні і сума кутів, прилеглих до однієї сторони, дорівнює 180°.
Діагоналі паралелограма перетинаються і точкою перетину діляться навпіл.
Площа паралелограма дорівнює:
1. Добутку основи на висоту:
G12
2. Добутку сторін на синус кута між ними:
 G13
Код Pascal
 program  ploszha_paralelograma1;
var x,y,z:real;
begin
 writeln('Введіть висоту паралелограму h=');
 readln(x);
 writeln('Введіть основу паралелограму a=');
 readln(y);
  z:=x*y;
   writeln('Площа паралелограма S=',z:5:2);
readkey;
end.
Завдання 7.  Скласти програму на Паскалі для обчислення площі прямокутника двома різними способами   за  відомими:   довжиною та шириною та знайти різницю між площами, що отримані різними способами. Протестувати програму.

Розв'язання.  Довідка. Прямокутник
 G14
Прямокутник – це паралелограм, у якого всі кути прямі. Діагоналі прямокутника рівні.
Площа прямокутника дорівнює добутку його вимірів.
G15
Код Pascal
program  ploszha_prjamokutnuk;
function Geron(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
Geron:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
var a,b,d, s:real;
begin
clrscr;
repeat
writeln('Введіть сторону прямокутника a =');
readln(a);
writeln('Введіть сторону прямокутника b =');
readln(b);
until abs(a*a+b*b-d*d)<0.001;
d:=sqrt((a)*(a)+(b)*(b));
write('Площадь за формулою Герона S1=',2*Geron(a,b,d):10:4);
readln;
write('Площадь за добутком сторін S2=',a*b:10:4);
readln;
write(' Різниця площ S2 -S1 =', abs(a*b - 2*Geron(a,b,d)):10:4);
readln;
end.
Завдання 8.  Скласти програму на Паскалі для обчислення площі паралелограма  за  відомими координатами трьох вершин паралелограма (x1, y1), (x2, y2), (x3, y3). Якщо це буде ромб, тоді обчислити площу і периметр ромбаПротестувати програму.

Розв'язання.  Довідка. Ромб
G16
Ромб – це паралелограм, усі сторони якого рівні. Ромб має всі властивості паралелограма. Діагоналі ромба взаємно перпендикулярні і ділять його кути навпіл.
G17
G18

G19

Дано координати трьох вершин паралелограма (x1, y1), (x2, y2), (x3, y3). Обчислити площу і периметр ромба
Код Pascal
program  ploszha_paralelograma2;
var a,b,c,P, p2, S, d1, d2, geron, x1,y1,x2,y2,x3,y3: real;
begin
 clrscr;
 writeln(' Введіть координату x1= ');
 readln(x1);
writeln(' Введіть координату  y1= ');
 readln(y1); 
writeln(' Введіть координату x2= ');
 readln(x2);
writeln(' Введіть координату  y2= ');
 readln(y2); 
writeln(' Введіть координату x3= ');
 readln(x3);
writeln(' Введіть координату  y3= ');
 readln(y3); 
  a:= sqrt(sqr(x1-x2)+sqr(y1-y2));
writeln(' Перша сторона паралелограма а = ', a:8:4);
 b:= sqrt(sqr(x1-x3)+sqr(y1-y3));
writeln(' Діагональ паралелограма в = ', b:8:4);
 c:= sqrt(sqr(x2-x3)+sqr(y2-y3));
writeln(' Друга сторона паралелограма с = ', с:8:4);
p2:=(a+b+c)/2;
  geron:=sqrt(p2*(p2-a)*(p2-b)*(p2-c));
writeln(' Площа паралелограма S = ', geron:8:4);

writeln(' Якщо цей паралелограм є  ромбом, тоді ';
  if (a=b)or(a=c) then P:= 4*a    else P:= 4*b; 
     if (a=b) then 
       begin 
          d1:=c; 
          d2:=2*sqrt(sqr(a)-sqr(d1/2));
          S:= (d1*d2)/2;
writeln(' Площа паралелограма(ромба) S2 = ', S:8:4);
  end 
else
 if (b=c) then
  begin
   d1:=a;
   d2:=2*sqrt(sqr(b)-sqr(d1/2));
   S:= (d1*d2)/2;
writeln(' Площа паралелограма(ромба) S3 = ', S:8:4);
  end 
else
 if (a=c) then
  begin
   d1:=b;
   d2:=2*sqrt(sqr(b)-sqr(d1/2));
   S:= (d1*d2)/2;
writeln(' Площа паралелограма(ромба) S4 = ', S:8:4);
  end;
 writeln;
 writeln(' P = 4 * a = ',P:3:3);
 writeln(' S5 = 0.5 * d1 * d2 = ',S:3:3);
 readkey;
END.
Завдання 9.  Скласти програму на Паскалі для обчислення площі квадрата за  відомою стороною. Якщо це буде не квадрат, тоді не обчислювати площу чи  периметр фігуриПротестувати програму.

Розв'язання.  Довідка.
Квадрат
G20
 Квадрат – прямокутник, усі сторони якого рівні. Усі кути квадрата прямі. Діагоналі квадрата рівні, взаємно перпендикулярні, точкою перетину діляться навпіл і ділять його кути навпіл.
G21               G22

Код Pascal

program  ploszha_Kvadrata;
procedure Kvadrat (a, S:real);
begin
 writeln('Сторона квадрата - ', a);
 readln(a);
 S:=sqr(a);
 writeln(S:0:2);
end;
begin
 writeln('Яка Ваша фігура ...', figura);
 readln(figura);
 if figura = Kvadrat then Kvadrat(a , S)  else 
writeln('Це не квадрат!  Ця програма працює тільки з фігурою Kvadrat');
end.

Трапеція
G23
Трапецією називається чотирикутник, дві протилежні сторони якого паралельні, а дві другі не паралельні.

Паралельні сторони трапеції називаються основами. Непаралельні сторони трапеції називаються бічними сторонами.
Висотою трапеції називається віддаль між основами. Відрізок, який сполучає середини бічних сторін, називається середньою лінією трапеції.

Середня лінія трапеції дорівнює півсумі основ і паралельна ним. Трапеція, у якої бічні сторони рівні між собою, називається рівнобічною. У рівнобічної трапеції кути при основі рівні між собою. Трапеція, у якої хоч би один кут прямий, називається прямокутною трапецією.
Площа трапеції дорівнює добутку півсуми основ на висоту:
G24

Або

G25.  де

G26

Код Pascal
uses crt;
var a,b,h,s:real
begin
 clrscr;
 write('A B H -> ');
 readln(a,b,h);
 s:=h*(a+b)/2;
 writeln('S=',s:0:4);
 readln;
end.

Коло, круг
G27
Колом називається фігура, яка складається з усіх точок площини, рівновіддалених від даної точки – центра кола.
Радіус кола – відстань від точок кола до його центра.
Хорда – відрізок, який з'єднує будь-які дві точки кола. Хорда, що проходить через центр кола, називається діаметром. Діаметр рівний подвоєному радіусу кола.
Дотична – пряма, яка проходить через точку кола перпендикулярно до радіуса, проведеного в цю точку. Через будь-яку точку, що лежить поза колом і належить площині кола, можна провести дві різні дотичні.
Пряма, що має з колом дві спільні точки, називається січною.
Довжиною кола називається границя послідовності периметрів правильних багатокутників, які вписані в дане коло, при необмеженому збільшенні кількості сторін. Довжина кола  обчислюється за формулою
 A28
Або
 G29

Довжина дуги кола обчислюється за формулою
G30
 G31
Кругом називається фігура, яка складається з усіх точок площини, відстань від яких до даної точки не перевищує заданої. Ця точка – центр круга. Радіус – задана відстань. Радіус, хорда і діаметр кола є радіусом, хордою та діаметром відповідного кругу.

Площею круга називається границя послідовності площ правильних багатокутників, вписаних в дане коло, при необмеженому збільшенні кількості сторін. Площа круга обчислюється за формулою:
G32

G33
Сектором називається частина круга, обмежена двома його радіусами.
 G34 - центральний кут.
G35 - дуги кола.
Площа сектора з кутовою величиною дуги  обчислюється за формулою
G36

G37
Частина круга, обмежена хордою і стягуваною нею дугою, називається сегментом.

Площа сегмента обчислюється як різниця площі сектора, обмеженого радіусами OA і OB, і площі трикутника OAB.

G38
Кут, вписаний в коло, дорівнює половині відповідного центрального кута

G39
Вписані кути, що спираються на одну і ту ж хорду, рівні.

Вписані кути, що спираються на діаметр, прямі.

Приклад. Дано радіус кола. Знайти довжину кола і площу круга

Код Pascal
uses crt;
  var R,S: real;
begin
  writeln('Введіть радіус: ');
  read(R);
  write ('Довжина кола: ');
  writeln(2*pi*R);
  write ('Площа круга: ');
  writeln(pi*R*R);
readkey
end.

Многогранники

Многогранник
Многогранник – це геометричне тіло, поверхня якого складається із скінченого числа плоских многокутників.
Гранями многогранника називаються частини площин (многокутники), які обмежують многогранник.
Ребрами многогранника називаються спільні сторони суміжних граней (многокутників).
Вершинами многогранника називаються вершини многогранних кутів, утворених його гранями, що сходяться в одній точці.
Діагоналлю многогранника називається відрізок прямої, яка сполучає дві вершини многогранника, що не лежать в одній грані.
Діагональною площиною многогранника називається площина, що проходить через три вершини многогранника, які не лежать в одній грані.
Перерізом многогранника площиною називається частина цієї площини, яка обмежена лінією перетину поверхні многогранника з цією площиною.
Многогранник називається опуклим, якщо він цілком лежить по одну сторону від площини будь-якої його грані. Гранями опуклого многогранника можуть бути тільки опуклі многокутники.

Призма
G40
Висота – відрізок, що міститься між її основами і перпендикулярний до них.
Пряма призма – бічні ребра перпендикулярні до основ.
Площа бічної поверхні довільної призми дорівнює добутку периметра перпендикулярного перерізу на бічне ребро:
G41
Площа бічної поверхні прямої призми дорівнює добутку периметра основи на висоту призми:
G42
Об'єм довільної призми дорівнює добутку площі її основи на висоту:
g43

Паралелепіпед
Паралелепіпед – призма, основи якої – паралелограми. У паралелепіпеді протилежні грані паралельні і рівні; всі чотири діагоналі перетинаються в одній точці і діляться нею навпіл.
У прямокутному паралелепіпеді квадрат діагоналі дорівнює сумі квадратів трьох його вимірів.
Площа бічної поверхні прямокутного паралелепіпеда дорівнює добутку периметра основи на висоту:
G44

Код Pascal
Var
h,l,w,s:real;
Begin
WriteLn('Обчислення площі поверхні паралелепіпеда.');
WriteLn('Введіть початкові дані:');
Write('Довжина(см)->');
ReadLn(l);
Write('Ширина(см)->');
ReadLn(w);
Write('Висота(см)->');
ReadLn(h);
s:=(l*w+l*h+w*h)*2;
Writeln('Площа поверхні: ',s:4:2,' кв.см');
ReadLn;
End.

Об'єм прямокутного паралелепіпеда дорівнює добутку трьох його вимірів:
G45

Куб
Куб – прямокутний паралелепіпед, усі ребра якого рівні.
Об'єм куба дорівнює:
G46

Код Pascal
Var
reb,ob:real;
Begin
WriteLn('Обчислення обєму куба');
Write('Введіть довжину ребра і натисніть ->');
ReadLn(reb);
ob:=reb*reb*reb;
WriteLn('Обєм куба',ob:4:3,'куб.см');
ReadLn;
End.

Діагональ куба можна знайти за формулою:
G47

Піраміда

G48
Якщо в основі піраміди лежить трикутник, вона називається тетраедром. Висота – перпендикуляр, проведений з вершини до площини основи.
Правильна піраміда – в основі лежить правильний многокутник і основа висоти збігається з його центром. Апофема – висота бічної грані правильної піраміди.
Площа бічної поверхні правильної піраміди дорівнює одній другій добутку периметра основи на апофему:
G49
Площа бічної поверхні правильної зрізаної піраміди дорівнює добутку півсуми периметрів обох основ на апофему:
G50
Об'єм піраміди дорівнює одній третій добутку площі її основи на висоту:
G51
Об'єм довільної зрізаної піраміди дорівнює:
G52.

Код Pascal
var   А,B,C,H,P,S,V:real;
begin
   writeln('A, B, C, H');
   readln(A,B,C,H);
   P:=(A+B+C)/2.0;
   S:=sqrt(P*(P-A)*(P-B)*(P-C));
   V:=S*H/3.0;  
   writeln(' V = ',V:10:3);
end.