Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ПЗ C++3.doc
Скачиваний:
2
Добавлен:
12.09.2019
Размер:
347.65 Кб
Скачать

Завдання першого рівня:

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;

}