Приклад завдання 8.1:
Дано дійсні числа a, b, c, d, f, що ви- b
значають сторони та g, h, що визначають діа- a g
гоналі п’ятикутника (рис. 8.1). Визначити
функцію обчислення площі трикутника за c
його трьома сторонами та за допомогою неї h
обчислити загальну площу заданого
п’ятикутника. Розміри сторін та діагоналей f d
п’ятикутника ввести двома окремими рядка-
ми чисел через пробіл. Рисунок 8.1 – До завдання 8.1
Розв’язок:
/* 8.1 */
#include <stdio.h>
#include <math.h>
float Triangle(float x,float y,float z); main()
{
float a,b,c,d,f,g,h; printf("Sides a,b,c,d,f: ");
scanf("%f%f%f%f%f",&a,&b,&c,&d,&f); printf("Diagonals g,h: ");
scanf("%f%f",&g,&h);
printf("Area of the poligon=%f",
Triangle(a,b,g)+Triangle(g,c,h)+Triangle(h,d,f)); return 0;
}
float Triangle(float x,float y,float z)
{
float p; p=0.5*(x+y+z);
return sqrt(p*(p-x)*(p-y)*(p-z));
}
Результати роботи:
Завдання:
Дано дійсні числа a, b і c. Визначити функцію
max( x, y)
знаходження бі-
льшого з двох чисел та обчислити
b
max
5
(a3
,b)
c2
c
max(a
c,b)
.
Дано натуральні числа a, b і c. Визначити функцію
НСД (x, y)
знахо-
дження найбільшого спільного дільника для двох довільних чисел та об-
числити
НСД 3 (a c,b2 ) НСД 2 (b,c) НСД (ab, ac) НСД (a b c,b2c) .
Рекомендовано застосування алгоритму Евкліда.
На площині задано n точок з дійсними координатами (x1,y1), (x2,y2), … (xn,yn). З’ясувати, яка з них ближча до початку координат, визначивши відповідну функцію. Кожну пару координат точок ввести через пробіл.
Дано дійсні числа a, b і c. Визначити функцію
min( x, y)
знаходження
меншого з двох чисел та знайти більше серед
min2 (ab, c3 ) .
min3 (a2 ,b c) та
Простим називається число, що має тільки два дільники – саме число й одиницю. Дано натуральне число n та послідовність натуральних чисел a1, a2, …, an. Визначити функцію ідентифікації простого числа та за до- помогою неї знайти середнє арифметичне простих чисел – членів зада- ної послідовності.
Дано три трикутника зі сторонами a1, b1, c1; a2, b2, c2 та a3, b3, c3. Визначи- ти функцію ідентифікації прямокутного трикутника та за допомогою неї обчислити загальну площу заданих прямокутних трикутників (якщо такі
є). Числа в кожному з наборів сторін трикутника ввести через пробіл.
Дано натуральне число n та послідовність натуральних чисел a1, a2, …, an. Визначити функцію ідентифікації парного/непарного числа та за до- помогою неї з’ясувати, чи є парним числом сума непарних чисел – чле- нів заданої послідовності.
Дано натуральні числа n і x та послідовність генерованих натуральних чисел a1, a2, …, an (ai=0…x). Визначити функцію обчислення суми цифр довільного натурального числа та за допомогою неї з’ясувати, який з членів генерованої послідовності має найбільшу таку суму.
На площині задано три точки з дійсними координатами (x1,y1), (x2,y2), та (x3,y3). Знайти площу заданого зазначеними координатами трикутника, визначивши функцію розрахунку довжини його сторін. Кожну пару ко- ординат точок ввести через пробіл.
На площині задано n точок з дійсними ненульовими координатами (x1,y1), (x2,y2), … (xn,yn). Знайти номери координатних чвертей розташу- вання зазначених точок, визначивши відповідну функцію. Кожну пару координат точок ввести через пробіл.
Дано натуральні числа n і x та послідовність генерованих натуральних чисел a1, a2, …, an (ai=0…x). Визначити функцію обчислення кількості цифр довільного натурального числа та за допомогою неї з’ясувати,
який з членів генерованої послідовності має найменшу таку кількість
.
Дано цілі числа a, b і c (a<b<c). Визначити функцію
Sum(x, y)
знахо-
дження суми всіх цілих чисел від x до y включно та обчислити
Sum3 (a,b) 3Sum2 (b,2c) ab5 Sum(ab,bc)
Sum(a b,b2 c) .
Дано дійсні числа a, b, c (a<b<c). Визначити функцію
Sum(x, y, h)
знахо-
дження суми всіх чисел від x до y включно з кроком h та обчислити
ab3Sum5
(a,b,
a
b)
2c2
Sum3
(b,3c,
a
4c) 3
Sum(ab,bc, a
(b c))
.
abc
Sum(2b a,b2 c, a 3)
Два натуральних числа називаються «дружніми», якщо кожне з них до- рівнює сумі дільників іншого за винятком самого числа. Дано натураль- ні числа a і b. Визначити функцію обчислення суми дільників довільного натурального числа та за допомогою неї з’ясувати, чи є задані числа дружніми. Приклади пар дружніх чисел: 220 і 284, 1184 і 1210, 2620 і
2924, 5020 і 5564, …
Дано ненульове дійсне число x та n кругів, радіус яких задано послідов- ністю генерованих дійсних чисел a1, a2, …, an (0<ai≤x). Визначити функ- цію обчислення площі круга за заданим радіусом та за допомогою неї з’ясувати, який з заданих кругів займає найбільшу поверхню.
Дано дійсні числа a і b. Знайти: a+b, a–b, a∙b та a/b, визначивши функцію
Calc(x, y,op)
для виконання відповідної операції op над двома довіль-
ними числами. Операції задати відповідними символьними константами.
Дано натуральні числа n, k, m та послідовність натуральних чисел a1, a2,
…, an. Визначити функцію з’ясування кратності/некратності натураль-
них чисел та за допомогою неї порахувати кількість членів заданої пос-
лідовності, кратних k і некратних m.
Дано генеровані ненульові натуральні числа a, b і c. Визначити функцію знаходження останньої цифри довільного натурального числа та за до- помогою неї обчислити добуток останніх цифр генерованих чисел.
Дано ненульові натуральні числа a, b і c. Визначити функцію знахо- дження першої цифри довільного натурального числа та за допомогою неї обчислити суму перших цифр заданих чисел.
Дано дійсне число a. Визначити функцію
MyExp(x, )
знаходження при-
близного значення
ex 1 x x2
2! x3
3! ...
з точністю та за допо-
могою неї обчислити значення ea
для
10k
(k=1, 2, …, 5). Порівняти
отримані значення з результатом застосування відповідної бібліотечної
функції.
Дано дійсне число a. Визначити функцію
MySin(x, )
знаходження
приблизного значення
sin(x) x x3
3! x5
5! ...
з точністю та за допо-
могою неї обчислити значення
sin(a)
для
10k
(k=1, 2, …, 5).
Порів няти отримані значення з результатом застосування відповідної бібліотечної функції.
Дано дійсне число a. Визначити функцію
MyCos(x, )
знаходження
приблизного значення
cos(x) 1 x2
2! x4
4! ...
з точністю та за допо-
могою неї обчислити значення
cos(a)
для
10k
(k=1, 2, …, 5).
Порівняти отримані значення з результатом застосування відповідної бібліотечної функції.
Дано дійсне число a. Визначити функцію
Arctg(x, k )
знаходження приб-
лизного значення
arctg(x) x x3
3 x5
5 ...
з урахуванням k перших
членів заданого ряду та за допомогою неї обчислити значення
arctg(a) .
Кількість значущих членів ряду ввести з клавіатури. Порівняти отримане значення з результатом застосування відповідної бібліотечної функції.
Дано дійсне число a. Визначити функцію
Ln(x, k )
знаходження прибли-
зного значення
ln(1 x) x x2
2 x3
3 ...
з урахуванням k перших
членів заданого ряду та за допомогою неї обчислити значення
ln(a) . Кі-
лькість значущих членів ряду ввести з клавіатури. Порівняти отримане значення з результатом застосування відповідної бібліотечної функції.
Дано ненульове дійсне число x, що задає радіус певного круга. Знайти площу даного круга, визначивши відповідну функцію, в якій число π об-
числюється за допомогою ряду Лейбніца:
π 4 1 1 3 1 5 ...
з зада-
ною точністю . Порівняти отримане значення з результатом застосу- вання відповідної бібліотечної символічної константи для π.
Два трикутники задані своїми сторонами a, b, c. Обчислити площі трикутників за формулою Герона і визначити, який з трикутників має більшу площу.
Два трикутники задані координатами своїх вершин a, b, c. Обчислити площі трикутників, не використовуючи формули Герона, і визначити, який з трикутників має більшу площу.
Футболіст ударом ноги посилає м’яч вертикально вверх з висоти 1м з початковою швидкістю 20 м/с. На якій висоті буде м’яч через 1; 3; 4 с?
Футболіст ударом ноги посилає м’яч вертикально вверх з висоти 1м з початковою швидкістю 20 м/с. Коли м’яч буде на висоті 5; 10 м?
. Футболіст ударом ноги посилає м’яч вертикально вверх з висоти 1м з пoчатковою швидкістю 20 м/с. Визначити з точністю до 0,25с, коли і на якій максимальній висоті опиниться м’яч за 4 с?
Дано дійсні числа S, T. Обчислити A = F(T,–2S,1,17)+F(2.2,T,S–T) де F(A,B,C) = (2A–B–sinC)/(5+C). Обчислення F оформити в виді функції.
Дано дійсні числа S,T. Обчислити B = G(1,2,S)+G(T,S)–G(2S–1,ST), де G(A,B) = (A+B)/(A+2AB+3B+4). Обчислення G оформити в виді функції.
Дано дійсні числа S, T. Обчислити F = H(1S,T)+MAX(H(S–T,ST)––H(1,1)), де H(A,B) = A/(1+B)+B/(1+A)–(A–B). Обчислення H оформити в виді функції.
Приклад 8.2. Обчислити за допомогою окремої функції значення виразів
,
значення х
та
b
ввести.
Розв’язок. Обчислити у функції три результуючі значення, одне з яких можна передати через оператор return, а решту – за посиланням. Крім того, слід зважити на порядок обчислення виразів: спочатку обчислити значення а, тоді z (яке залежіть від а) і лише згодом – значення y, яке залежіть від z.
Текст функції та основної програми:
#include <iostream>
#include <math.h>
using namespace std;
double f(double x, double b, double& a, double& z)
{
a=log10(fabs((x+b)/exp(b+0.1)));
z=sqrt(x*x+a);
return pow(atan(z),2);
}
int main()
{
setlocale(0,".1251");
double x, b, a, z;
cout <<" Введiть значення х= "; cin >> x ;
cout <<" Введiть значення b= "; cin >> b ;
cout<<" y= "<< f(x,b,a,z) <<endl;
cout<<" a= "<< a << endl <<" z= "<< z <<endl;
system ("pause>>void");
return 0;
}
При виконанні індивідуальних завдань використовувати для введення функцію scanf(), а для виведення printf()
