Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Попович В.І..docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.2 Практичні завдання

1. Скласти і виконати програму, задавши вхідні дані самостійно:

1.Обчислити периметр і площю прямокутного трикутниказа заданим катетом і гострим кутом.

2.Внести врожайність трьох сортів пшениці і пльощі трьох відповідних полів(Га) скількі зібрали пшениці з кожного поля і трьох полів разом.

Графічне зображення алгоритму рішення задачі представлено на рис. 2.1.

Початок

l,a,b,c,p,s

b=a/sin(l)/cos(l) c=sqrt(pow(a,2)+pow(b,2))

p=(a+b+c) / ;

s=sqrt(p*(p - a)*(p - b)*(p - c))

p, s

Кінець

Початок

b,b1,b2,s,s1,s2,c a,a1,a2

b=a*s b1=a1*s1 b1=a1*s1 b1=a1*s1

b,b1,b2,,c

Кінець

Рисунок 2.1 – Блок-схема до завдання №1

Призначення програми:

Програма призначена для розрахування довжини кола і площі круга з врахуванням діаметру круга.

Рисунок 2.2 – Форма головна підпрограми

Інструкція:

1.В поле «Діаметр круга: введіть необхідне значення;

2.Для розрахування натисніть кнопку «Порахувати»;

3. Щоб вийти з програми натисніть на верхній правий кут;

Рисунок 2.3 – результат виконання підрограми №1

Блок коду:

b=a/sin(l)/cos(l);

c=sqrt(pow(a,2)+pow(b,2));

p=(a+b+c) / 2;

s=sqrt(p*(p - a)*(p - b)*(p - c));

Призначення програми:

Програма призначена для для знаходження врожайності трьох різних полів пщениці

Інструкція:

1.В поля «Врожайність першого сорту пшениці» і «Врожайність другого сорту пшениці» та «Врожайність третього сорту пшениці» введіть відповідні значення;

2.Для розрахування натисніть кнопку «Розрахувати»;

3.Щоб вийти з програми натисніть на верхній правий кут;

Рисунок 2.4– результат виконання підпрограм №2

Блок коду:

b=a*s;

b1=a1*s1;

b2=a2*s2;

c=b+b1+b2;

2. Трикутник задано координатами вершин А(0;0), В(і; і-1) та С(-і; і+1), де і – номер варіанту.

Обчислити бісектрису Wc та медіану M.

Графічне зображення алгоритму рішення задачі представлено на рис. 2.6.

Початок

i,A(0;0), B(i;i-1), C(-i;i+1)

мmьььasmmmmMmmM

Кінець

Рисунок 2.6 –Блок-схема до завдання №2

Призначення програми:

Програма призначена для розрахування бісектриси кута та знаходження медіани.

Рисунок 2.7 – Головна форма «Завдання №2»

Інструкція:

1.В поле «Номер вашого варіанту» введіть ваш варіант;

2.Для розрахування натисніть кнопку «Розрахувати»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.8 – результат виконан\ня програми

Блок коду:

Bx = i; By = i - 1;

Cx = -i; Cy = i + 1;

angle = cos((ax * bx + ay * by)/(sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by)));

p = (AB + AC + Bx) / 2;

r = sqrt(abs(((p-AB)*(p-AC)*(p-BC))/p));

3. Ввести довільне значення х та обчислити значення функції

де φ=tg(x+a)-logi|b+7|, ω= , і – номер варіанту. Вхідні дані (x, a, b, c, d) ввести з клавіатури довільні. Результати вивести на екран.

Графічне зображення алгоритму рішення задачі представлено на рис. 2.9.

Початок

a, b, c, d, x

tg(x+a)-logi|b+7|

f

Кінець

Рисунок 2.9 – Блок-схема до завдання №3

Призначення програми:

Дана програма призначена для знаходження значення функції відносно введених параметрів, а сама – х.

Рисунок 2.10 – Головна форма «Функція»

Інструкція:

1.В поля a, b, c, d, x введіть відповідні значення;

2.Для розрахування натисніть кнопку «Розрахувати»;

3.Щоб вийти з програми натисніть хрестик в правому верхньому кутку.

Рисунок 2.11 – Результат виконання програми

Блок коду:

if (abs(x)> 10){

f = (abs(sin(x) / 3.12 + cos(pow(x,2))) - 8.3 * cos(1.2 * x)) * tan(x+a) - log(abs(b+7))/log(3.0);

} else {

f = (abs(sin(x) / 3.12 + cos(pow(x,2))) - 8.3 * cos(1.2 * x)) * pow((pow(x,2)+d*exp(1.3)),1./5);

4. Оплата робіт залежить від типу виконаної роботи чи виду підприємницької діяльності (А, Б, В) і нараховується за формулою:

де і – номер варіанту. Для робіт типу А податок становить 10%, для Б –15%, для И – 20%. Ввести тип роботи. Ввести нараховану суму, суму податку і суму до видачі.

Графічне зображення алгоритму рішення задачі представлено на рис. 2.12.

Початок

type

type = A

percent = y * 0,1

salary = y - percent

Y=

type = Б

Y=

Y=

percent = y * 0,2

salary = y - percent

percent = y * 0,15

salary = y - percent

Y, percent, salary

Кінець

Рисунок 2.12 – Блок-схема до завдання №4

Призначення програми:

Дана програма призначена для вирахування нарахованої суми, суми податку і суми до сплати.

Рисунок 2.13 – Головна форма «Заробітня плата»

Інструкція:

1.Виберіть тип за допомогою радіо-кнопок та введіть х;

2.Для розрахування натисніть кнопку «Вирахувати»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.14 – Результат виконання програми

Блок коду:

switch(type){

case 0:

salary = 100 * (abs(sin(x) / 3.12 + cos(pow(x,2))) - 8.3 * cos(1.2 * x)) * pow(2.0, 3 + 50);

percent = salary * 0.1;

salary_to_pay = salary - percent;

break;

case 1:

salary = 150 * (abs(cos(abs(2*x))/1.2 - cos(3*x-2) + 6.15) * pow(3.0, 3 + 100));

percent = salary * 0.15;

salary_to_pay = salary - percent;

break;

case 2:

salary = 200 * ((sin(x) * pow(cos(x), 2) * sin(x + 1.4)) / 0.85 + 7.14) * pow(4.0, 3 + 135);

percent = salary * 0.2;

salary_to_pay = salary - percent;

break;

6.Побудувати таблицю відповідностей між мірами. Початкове значення міри, крок зміни цього значення та кількість рядків у таблиці (10-15) задати самостійно у режимі діалогу. Оформити та таблицю якнайкраще, використовуючи формати виведення.

1.1 карат = 0,2г = 2,9412 гран.

2.1 гран = 0,068г = 0,038378 драхм.

Призначення програми:

Дана програма призначена для переведення одних одиниць вимірювання в інші з урахуванням кроку.

Рисунок 2.19 – Форма «Завдання №6»

Інструкція:

1.Виберіть тип: вхідну одинцю вимірювання і одиниці вимірювання результату;

2.Введіть необхідну інформацію в поля: «Кількість елементів», «Початкове значення», «Крок»;

3.Для розрахунку натисніть кнопку «Перевести»;

4.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.20 – Результат виконання програми «Завдання №6»

Блок коду:

switch (type) {

case 0:

for (int i = 0; i < rows; i++) {

StringGrid1->Cells[0][i] = karat;

StringGrid1->Cells[1][i] = g = karat * 0.2;

StringGrid1->Cells[2][i] = gran = karat * 2.9412;

karat += step;

}

break;

case 1:

for (int i = 0; i < rows; i++) {

StringGrid1->Cells[0][i] = gran;

StringGrid1->Cells[1][i] = gran = gran * 0.068;

StringGrid1->Cells[2][i] = drahm = gran * 0.038378;

gran += step;

}

break;

}

7. Обчислити значення змінної z = ab - π, де

і – номер варіанту, k –цілі числа. Функції f вибрати з таблиці. Ввести значення i, a, b, z.

Призначення програми:

Дана програма призначена для знаходження добутку двох виразів – суми і добутку.

Рисунок 2.21 – Форма «Завдання №7»

Інструкція:

1.Введіть ваш варіант та х в поля «Ваш варіант» та «Значення х»

2.Натисніть кнопку «Розрахувати», щоб отримати результат;

4.Якщо бажаєте вийти – натисніть хрестик в правому верхньому кутку;

Рисунок 2.22 – Результат виконання програми

Блок коду:

f = a = b = 12.4 * sin(abs(x/2.1)) - 8.3 * cos(1.2 * x);

for (int k = i; k <= i+8; k++) {

b += f + pow(5.0,k);

if (k <= 5) a += f + pow(6.0,k);

}

8. Обчислити суму ряду , де , і – номер варіанту, х – довільне дане з проміжку (0;1) з точністю е=0,001. Скільки потрібно доданків для досягнення заданої точності.

Призначення програми:

За допомогою цієї програми можна протабулювати функцію з врахування варіанту користувача та вивести попарно значення у та х.

Рисунок 2.23 – Форма «Завдання №8»

Інструкція:

1.Введіть дані в поле «Введіть х:»;

2.Для того, щоб вивести значення кожного добутку суми натисніть кнопку «Обчислити»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.24 – Результат виконання програми «Завдання №9»

Блок коду:

while(a < e){

a += pow(-1.0,k)*((12.4 * sin(abs(x/2.1)) - 8.3 * cos(1.2 * x)) + pow(7,k*pow(x,k)))/fac(k);

Memo1->Lines->Add("a[" + IntToStr(k) + "] = " + FloatToStrF(a,ffGeneral,3,3));

k++;

9. Протабулювати функцію у=fi+8(x) на проміжку [0;і] з кроком h=0,1і, де і – номер варіанту. Результати обчислень вивести у вигляді таблиці пар чисел х, у. Виконати додаткове завдання, якщо шуканих даних немає, вивести про це повідомлення.

– обчислити добуток та кількість усіх значень функції у, для яких виконується нерівності y<-3 або у>0.4

Призначення програми:

За допомогою цієї програми можна протабулювати функцію з врахування варіанту користувача та вивести попарно значення у та х.

Рисунок 2.25 – Форма «Завдання №9»

Інструкція:

1.Введіть дані в поле «Ваш варіант:»;

2.Для того, щоб протабулювати функцію натисніть «Протабулювати»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.26 – Результат виконання програми «Завдання №9»

Блок коду:

for (x = 0; x <= i; x += 0.1 * i) {

y = (sin(x) - cos(pow(x, 3)) * sin(pow(x, 2) - 4.2) + 4,27) * x;

if (y < -3.2 || y > 0){

dob *= y;

sum += y;

count++;

}

Memo1->Lines->Add("x = " + FloatToStr(x) + "\ty = " + FloatToStr(y));

}

10. Утворити і вивести масив у з елементами , де і – номер варіанту, k=1,2,...,7. Виконати додаткове завдання. У разі відсутності шуканих даних вивести про це повідомлення:

– усі додатні елементи крім максимального занести в інший масив.

Призначення програми:

За допомогою цієї програми можна заповнити масив значеннями відповідно до введеного х та перезаписати його додатні значення в інший масив.

Рисунок 2.27 – Форма «Завдання №10»

Інструкція:

1.Введіть значення х в поле «Введіть х:»;

2.Щоб заповний перший масив F_arr і записати додатні елементи в другий масив S_arr натисніть кнопку «Вивести»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.28 – Результат виконання програми «Завдання №10»

Блок коду:

for (int i = 0; i < 7; i++) {

arr[i] = cos(pow(x, 3)) / 2.1 + cos(pow(x, 2)) / 1.1 - 8.3 * sin(3 * x + 1) * i ;

Memo1->Lines->Add("[" + IntToStr(i) + "] - " + FloatToStrF(arr[i],ffGeneral, 3, 3));

}

for (int i = 0; i < 7; i++) {

if (arr[i] > 0) {

flag = true;

count++;

if (count == 3 || count == 6) {

sum += arr[i];

}

}

11. Утворити масив з елементами , де і – номер

варіанту, k, n = 1,2,3,4. Вивести його на екран у вигляді таблиці (матриці). Виконати додатково завдання. Для введення, виведення масиву та додаткового завдання написати функції:

обчислити добуток тих значень елементів , для яких справджується нерівності аkn<-1 або аkn>6.

Призначення програми:

За допомогою цієї програми можна заповнити матрицю значенням та вивести добутку елементів < -1 та >1.

Рисунок 2.30– Форма «Завдання №11»

Інструкція:

1.Запустіть програму, натиснувши на ярлик «Project2.exe»;

2.Щоб запустити програму на виконання натисність кнопку «Заповнити»;

3.Щоб вийти з програми натисніть кнопку «Вихід».

Рисунок 2.31 – Результат виконання програми «Завдання №11»

Блок коду:

void Enter(double arr[4][4]){

double x;

for (int k = 0; k < 4; k++) {

float i = 1;

for (int n = 0; n < 4; n++) {

x = k;

arr[k][n] = n * (sin(pow(x, 2)) * cos(pow(x,3)) - sin(x) + 5.2) * k + sin(i) * (2 * sin(x) * sin(2 * x - 1.5) * cos(2 * x + 1.5) - 6) * n;

Form3->Memo1->Lines->Strings[k] = Form3->Memo1->Lines->Strings[k] + FloatToStrF(arr[k][n],ffGeneral, 3, 3) + "\t";

i++;

}

Form3->Memo1->Lines->Add("\n");

}

}

void Search(double arr[4][4]){

int count = 1;

for (int k = 0; k < 4; k++) {

for(int n = 0; n < 4; n++){

if (arr[k][n] > 1 && arr[k][n] < 6) count++;;

}

}

12. Ввести значення цілочислових матриць А розміром nxn, В розміром nxn, n=4. Обчислити матрицю С згідно з заданим завданням, використавши функції користувача: С= ;

Призначення програми:

Дана програма використовується для знаходження матриці С, яка є результатом певних дій(згідно варіанту) над матрицями А та В.

Рисунок 2.33 – Результат виконання програми «Завдання №12»

Блок коду:

void SearchC(double a[4][4], double b[4][4]){ //функція для виконання дій на матрицями

Form3->Memo3->Lines->Clear();

double buffer[4][4], C[4][4];

int count = 0;

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 4; j++) {

buffer[i][j] = a[j][i]; //в буферний масив записуєм транспоновану матрицю А

}

}

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 4; j++) {

C[i][j] = pow(a[i][j]*buffer[i][j],2); //присвоюєм С результат множення

//А на транспоновану А

C[i][j] -= 2*b[i][j]; //віднімаємо від С матрицю Б помножену на 2

Form3->Memo3->Lines->Strings[count] = Form3->Memo3->Lines->Strings[count] + "[" + i + "][" + j + "] - " + C[i][j] + " "; //виводимо матрицю С в таблицю

}

Form3->Memo3->Lines->Add("");

count++;

}