Завдання першого рівня:
1. Використовуючи функцію, яка обчислює об’єм циліндру, знайти в програмі об’єми трьох циліндрів з вказаними параметрами та обрати серед них найбільше значення об’єму.
|
Радіус основи |
Висота циліндру |
Перший циліндр |
R1 |
h |
Другий циліндр |
a |
10 |
Третій циліндр |
8.34 |
7.3 |
Параметрами функції є радіус та висота циліндра.
// об’єм циліндру
float veil(float h, float r)
{
return(3.141593*r*r*h);
}
2. Використовуючи функцію, яка порівнює два цілих числа повертає результат порівняння у вигляді знаку: >, < чи =, обчислити кількість рівних серед введених трьох чисел x, y, t.
// Функція compare повертає результат порівняння двох чисел
// у вигляді символу відношення
char compare(int a, int b)
{
char res;
if (a > b) res = ‘>’;
else if (a < b) res =‘<’;
else res = ‘=’;
return(res);
}
3
.
Використовуючи функцію, яка
обчислює супротивлення електричного
ланцюга,
який складається з
двох резисторів, обчислити загальне
супротивлення чотирьох провідників з
електричними супротивленнями
,
з’єднаних між собою за схемою,
показаною на малюнку:
Параметрами функції є величини супротивлень та тип з’єднання (послідовне чи паралельне). Функція перевіряє коректність параметрів: якщо невірно вказано тип з’єднання, то функція повертає -1.
// обчислює супротивлення електричного ланцюга
float sopr( float rl, float r2, int t)
(
// rl,r2 – величини супротивлень, t – тип з’єднання:
// 1 - послідовне; 2 - паралельне.
float r;
if (t==l) r=rl+r2;
else if (t==2) r=r1*r2/(r1+r2);
else r=-1;
return (r);
}
4. Банк пропонує договір терміном на 12 місяців, відповідно з яким фізичним особам нараховується процентна ставка по закінченню терміну договору в залежності від початкової суми вкладу: від 200 до 300 грн. – 24%, від 300 до 3000 грн. – 25 %, понад 3000 грн. – 25,5%. Визначити суму вкладу після завершення договору, якщо відома первинна сума вкладу. При розв’язуванні задачі використовувати функцію Procent, яка знаходить вказане число відсотків від отриманого у якості аргументу числа
// Функція обчислює відсоток від числа х
double Procent (double x, double pr)
{
return x*pr/100;
}
5. Використати функцію обчислення факторіалу factor та скласти програму, яка звертається до цієї функції для виводу таблиці факторіалів для чисел з відрізку [m, n].
// обчислення факторіалу
unsigned int factor(int x)
{
unsigned int f = 1;
for (int i = 2; i <= x; i++)
f *= i;
return(f);}
6. Використовуючи функцію Dohod, яка обчислює дохід з внеску, обчислити прибуток для наступних початкових даних:
|
Сума внеску |
Відсоткова ставка |
Термін внеску |
Перший внесок |
1000.00 грн. |
3% |
365 днів |
Другий внесок |
300 у.о. |
5% |
2 роки |
Третій внесок |
5,5 тис. грн. |
4,5% |
100 днів |
Початковими даними для функції є величина внеску, відсоткова ставка (річних) та термін внеску (кількість днів).
// функція обчислює дохід з внеску
float dohod(float sum, // сума внеску
float stavka, // відсоткова ставка (річних)
int srok) // термін внеску (днів)
{
return(sum*(stavka/100/365)*srok); // 365 кількість днів в році
}
7.
Для трьох даних рівнянь
,
,
вивести
кількість дійсних коренів. Використовувати
функцію, яка за відомими коефіцієнтами
квадратного рівняння знаходить кількість
його дійсних коренів (2-два різних корені,
1 – однакові корені, 0 – рівняння не має
розв’язку). Якщо початкові дані невірні,
то функція повертає -1.
int kvadur(float a, float b, float c) // коефіцієнти рівняння
{
float d; // дискримінант
if (а == 0) return(-l);
d = b*b-4*a*c;
if (d < 0)return(0);
else if (d==0) return (1);
else return (2);
}
8.
Використовуючи функцію NOD
знаходження найбільшого загального
подільника двох натуральних чисел,
скоротити даний звичайний дріб
.
// повертає найбільший загальний подільник двох чисел
int NOD(int vl, int v2)
{
while (v2)
{
int temp=v2;
v2=vl%v2;
vl=temp;
}
return vl;
}
9. Використовуючи функцію year перевірки чи є рік високосним, обчислити, скільки членів вашої родини народилися у високосні роки. Параметром функції є номер року, результат логічного типу.
// функція визначає чи є рік високосним
bool year(unsigned int x)
{
if (x%4) return false;
else return true;
}
10. Використовуючи функцію, яка обчислює площу кільця по відомим зовнішньому та внутрішньому його радіусам, обчислити площі трьох фігур, які зображено на малюнках:
// обчислення площі кільця
float plosh(float rl, float r2) // радіус кільця та отвору
{
float s; // площа кільця
if (rl>r2)
s=3.14*(rl*r1-r2*r2);
else s=3.14*(r2*r2–r1*r1);
return s;
}
11. Скласти програму, яка визначає, чи можна побудувати трикутник з наступними сторонами а) 3, 7, 9; б) x, y, z; в) 2x, 3y, x+y. Для перевірки, чи існує трикутник з даними сторонами, використати функцію treugolnik. У якості аргументів функції виступають сторони, результат логічного типу.
// функція визначає чи може існувати трикутник з даними сторонами
bool treugolnik(float a, float b, float c)
{bool flag=false;
if (a<b+с && b<a+с && c<a+b) flag=true;
return flag;
}
12. Скласти програму обчислення кількості простих чисел, які належать відрізку [m,n]. Для перевірки, чи є число простим, використовувати функцію prostoe. Функція повертає 1, якщо число є простим, а 0 - в іншому випадку.
// функція перевіряє, чи є число простим
int prostoe(int n)
{ int d, r;
d=2;
do {
r=n%d;
if (r!= 0) d++;
}
while (r!=0); // поки n не поділиться на d
if (d==n) return 1;
else return 0;
}
13. Використовуючи функцію, яка обчислює площу поверхні циліндру, обчислити площі поверхонь трьох циліндрів з даними параметрами та знайти серед них найменшу площу. Параметрами функції є радіус та висота циліндру.
|
Радіус основи |
Висота циліндру |
Перший циліндр |
R |
H |
Другий циліндр |
3.56 |
7 |
Третій циліндр |
c |
v |
// обчислення площі поверхні циліндру
float cilindr(float r, float h)
{
float s; // площадь поверхности цилиндра
s = 2*3.14*r*r-2*3.14*r*h;
return s;
}
