You are on page 1of 8

Лабораторна робота №4

з навчальної дисципліни
Технології програмування захищених систем

Тема: Дослідження процесу створення функції користувача.

Мета роботи: дослідити процес розробки і програмування обчислюваного процесу роботи


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

Час проведення: 2 год (в тому числі 4 години самостійної роботи).

МІСЦЕ ПРОВЕДЕННЯ: клас за розкладом (в разі дистанційного навчання – online).


ЛІТЕРАТУРА:
1. Лекція 1, 2, 3, 4 з дисципліни та посилання на матеріали, які в ній визначені.
2. Інша література за тематикою, яку використають самостійно студенти.

Порядок нараховування балів (табл.1)


Таблиця 1
Вид заняття Оцінка за національною шкалою
«2» «3» «4» «5»
Лабораторне <1,2 1,2-1,4 1,5-1,8 1,9-2
заняття

Виконання завдання №1 – оцінка «ЗАДОВІЛЬНО»;


виконання завдання №1, 2 – оцінка «ДОБРЕ»;
виконання завдання №1, завдання №2, завдання №3 – оцінка
«ВІДМІННО».

ПРОХАННЯ УВАЖНО ЧИТАТИ ЗАВДАННЯ!!!

Завдання №1
Написати та відлагодити програму розрахунку математичного виразу з застосуванням
функції користувача (табл.1). Початкові дані вводити з клавіатури (при необхідності).
Результати розрахунку вивести на екран (варіант обирається за списком в журналі).

Звіт має включати:


- завдання;
- лістинг програми (текст, скопійований з файлу .cpp та скріншот, де представлена назва
файлу – Ваше прізвище). Результати виконання програм. Основні блоки програми
мають містити Ваші коментарі;
- висновки.

1
Завдання №2
1. Написати та відлагодити програму розрахунку математичного виразу з
застосуванням функції користувача (табл.2). Початкові дані вводити з клавіатури (при
необхідності). Результати розрахунку вивести на екран (варіант обирається за списком в
журналі).
2. Всі елементи масивів генеруємо за допомогою генераторів псевдовипадкових
чисел (реалізувати окремою функцією).
3. В режимі дізасемблера відслідкувати основні етапи послідовності дій у
найпоширенішій реалізації викликів функцій cdecl (див. слайд 4-5 лекції 3). Досліджуємо на
основі створеної функції генератора псевдовипадкових чисел або власно створеної функції.
Підійти творчо до виконання завдання.

Звіт має включати:


- завдання;
- лістинг програми (текст, скопійований з файлу .cpp та скріншот, де представлена назва
файлу – Ваше прізвище). Результати виконання програм. Основні блоки програми
мають містити Ваші коментарі;
- висновки.

Завдання №3
Реалізувати завдання 2,3 лабораторної роботи №1 шляхом створення функцій в
окремих файлах з використанням механізму підключення інших проектів та створення
файлу заголовку.
Для цього окремо в файлі .cpp описати функції алгоритмів A1, A2, A3, оголосити їх в
окремому .h файлі та викликати в основній програмі.
Здійснити тестування програми, показати отримані результати по кожній функції.
Заповнювати таблицю та будувати гістограми НЕПОТРІБНО за вимогами, які були в лр1.

Звіт має включати:


- завдання;
- лістинг програми (текст, скопійований з файлу .cpp та скріншот, де представлена назва
файлу – Ваше прізвище). Результати виконання програм. Основні блоки програми
мають містити Ваші коментарі;
- висновки.

Завдання №4.
Оформити звіт з лабораторної роботи
Звіт має включати:
- титульний лист (з обов’язковим визначенням номеру варіанту);
- тема та мета роботи;
- завдання 1;
- завдання 2;
- завдання 3;
- узагальнений висновок.

2
Таблиця 1
Індивідуальні завдання до завдання №1
Варіант Завдання Примітка
W = 2 Z + 0.75Z − 0.25, де x ∈ [ −1;5] ,
e y + e − y , якщо y < 0, ∆x =0,5

Z = y2 + y, якщо 0 ≤ y < 2,
1,16,31
 y + Lny, якщо y ≥ 2,

x
y = 2 sin(π ⋅ ) + cos x.
2
 1 x ∈ [0;4],
 , якщо x ≥ 2,
2,17,32 y = 12,3x − 9 x + 1,5
2
∆x = 0,5
 якщо x < 2,
 4 − x2 ,
 x 2 + lg x, якщо x > 0, x ∈ [− 1;3],
3,18 y = 5
 5 + sin x , якщо x ≤ 0, ∆x = 0,1
5 sin 2 x + 5 x + 5 , якщо x > 0, x ∈ [0;5],

4,19 y= 1 ∆x = 0,2
 lg( x − 0,5) , яякщо x ≤ 0,

9 x 2 − 7 x + 3,5, якщо x < 3, x ∈ [1;5],
5,20 y= 4 2
 x − 8, якщо x ≥ 3, ∆x = 0,5
 ln 3 x + x 2 t = 2,2,
якщо x < 0,5,
 x ∈ [0,2;2],
,
 x + t
 1 ∆x = 0,5
6,21 z =  x+t + , якщо x = 0,5,
 x
cos x + t ⋅ sin x, якщо x > 0,5


 a+b a = 2,6,
 e x + cos x , якщо x < 2,8,
b = −0,39,
 a+b
7,22 s= , якщо 2,8 ≤ x < 6, x ∈ [0,2;2],
 x +1
∆x = 0,5
cos x + t ⋅ sin x, якщо x≥6

 x ⋅ 3 x − a , якщо x > a, a = 1,5,
8,23

w =  x ⋅ sin ax, якщо x = a, x ∈ [− 1;5],
e − ax ⋅ cos ax, якщо x < a ∆x = 0,5

 7 a = 1,5,
 π ⋅ x − x 2 , якщо x < 1,3,
3
x ∈ [− 1;5],

9,24 y =  ax 3 + 7 x , якщо x = 1,3, ∆x = 0,5
lg( x + 7 x ), якщо x > 1,3

3
Варіант Завдання Примітка
 a = 2,8,
ax 2 + bx + c, якщо x < 1,2, b = −0,3,

a c = 4,
10,25 y =  + x 2 + 1, якщо x = 1,2,
x x ∈ [1;2],
 a + bx , якщо x > 1,2
 ∆x = 0,1
x2 +1
 7 a = 1,65,
 π ⋅ x − x2 , якщо x < 1,4,
2
x ∈ [0,7;2],

11,26 y =  ax 3 + 7 x , якщо x = 1,4, ∆x = 0,1
ln( x + 7 x + 2 якщо x > 1,4


 1,5 ⋅ cos 2 x, якщо x < 1, a = 2,3,

 1,8 ⋅ ax, якщо x = 1, x ∈ [0,2;2,8],
12,27 q=
( x − 2 ) + 6, якщо 1 < x ≤ 2,
2 ∆x = 0,2
 3 ⋅ tgx, якщо x>2
 at 2 + b sin t + 1, якщо t < 0,1, a = 2,5,

 b = 0,4,
13,28 w= at + b, якщо t = 0,1,
 at 2 + b cos t + 1, якщо t > 0,1 t ∈ [− 1;1],

 ∆t = 0,2
  i +1
2
 i +1
2 a = 0,3,
a ⋅ sin  , якщо sin 
  > 0,
n = 10,
  n   n 
Z =
14,29
 +  i ∈ [1;10],
 cos i + ,
2
1 i 1
якщо sin   ≤ 0
  n  n  ∆i = 1
sin x ⋅ lg x, якщо x > 3,5, x ∈ [2;5],
15,30 y=
 cos x ,
2
якщо x ≤ 3,5, ∆x = 0,2

Таблиця 2
Індивідуальні завдання до завдання №2
Варіант Завдання Примітка
, тобто число сполучень а) n = 5; m = 2
n!
Обчислити С mn =
m!(n − m)! б) n = 5; m = 3
1,16,31
із n елементів по m. Факторіали обчислити за в) n = 10; m = 2
допомогою підпрограми. г) n = 10; m = 5
Обчислити функцію f (x ) = a + bch(x ) , де x ∈ [0;1] ;
e +e
x −x
∆x = 0.1;
ch (x ) = , обчислити за допомогою
2,17,32 2 a = 5.2 ;
підпрограми. Значення х и f (x) вивести у вигляді b = 1.5 .
таблиці.

4
Варіант Завдання Примітка
Обчислити корені квадратних рівнянь Всі корені дійсні
3,18 x − ax + b = 0 ;
2
cy − dy − f = 0
2
коофіціенти
a, b, c, d, f задати самостійно
Впорядкувати всі елементи таблиці N = 10
А(N) за зростанням, використовуючи як
4,19
допоміжний алгоритм пошуку мінімального
елемента.
Впорядкувати всі елементи таблиці N = 12
B(N) за спаданням, використовуючи як
5,20
допоміжний алгоритм пошуку максимального
елемента.
Обчислити суму позитивних елементів N = 8;
6,21 масивів Х(N), Y(N), Z(K). Для обчислення суми М = 10;
використовувати допоміжний алгоритм. К = 12.
Обчислити середнє арифметичне позитивних N1 = 10;
елементів масивів А(N1), В(N2), С(N3). Для N2 = 12;
7,22
обчислення суми використовувати допоміжний N3 = 8.
алгоритм.
Обчислити суму елементів головних діагоналей N ≤ 8;
8,23 матриць А(N, N), В (М, М) із використанням М ≤ 6.
допоміжного алгоритму.
Обчислити Ζ =
S1 + S 2
, де S1 і K1 – сума і кількість N ≤ 12;
K1 K 2 М ≤ 12.
9,24
позитивних елементів масиву X(N); S2 і K2 - сума
і кількість позитивних елементів масивуY(M).
X 1 + Y1 N = 8;
Обчислити Ζ = , де X1 і Y1 – найменші
2 М = 12.
10,25 елементи масивів X(N) і Y(M). Використовувати
як допоміжний алгоритм пошуку мінімального
елемента.
Підрахувати число нульових елементів для N ≤ 5;
11,26 матриць A(N,M) і B(M,N). Підрахунок виконати за М ≤ 5.
допомогою допоміжного алгоритму.
 lg( x + 1), якщо x > 1, x ∈ [0.5;3] ;
y= 2
sin ⋅ ax , якщо x ≤ 1 ∆x = 0.2;
12,27 a = 25.8.
Обчислити значення x і y та вивести у вигляді
таблиці
Визначити параметри трикутників, що задані XA=5; YA=5;
13,28 координатами їх вершин: XB=25; YB=20;
XA(5), XB(25), XC(45),YA(5),YB(80),YC(5). XC=45; YC=5.
sin x lg x, якщо x > 3.5 x ∈ [2 ; 5] ;
14,29 y=
 cos x , якщо x ≤ 3.5
2 3
∆x = 0.2.

5
Варіант Завдання Примітка
Обчислити значення х і у та вивести у вигляді
таблиці.
Обчислити суму елементів, які лежать нижче N ≤ 6;
15,30 головної діагоналі матриць М ≤ 8.
А(N, N), B(M, M).

Звіт висилається на електрону пошту викладача.


buchyk_ists@ukr.net (для груп, в яких веде
лабораторні заняття д.т.н., професор Бучик С.С.)

yurii.babenko@knu.ua (для груп, в яких веде


лабораторні заняття доктор філософії Бабенко Ю.М.)
Студент обов’язково також відправляє копію на
buserwhite@gmail.com д.т.н., професору Бучику С.С.

ПОТОЧНИЙ КОНТРОЛЬ:
Від дати проведення заняття – два тижня.

Загальні вимоги до звіту: по кожному завданню студент демонструє


порядок виконання завдань шляхом створення скріншотів власного екрану
монітора з обов’язковим поясненням того, що він робить.
Після кожного завдання студент вставляє оригінал власного програмного
коду, наприклад:
Завдання 1. Написати програму за завданням, яке приведене у табл1.1 (
Лаб1, 9 варіант).

#include <iostream>
#include <math.h>
#include <string>
using namespace std;
int main()
{

6
//1.
const int m = 2, c = -1;
const double t = 1.2, b = 0.7;
float y, z;
y = pow(m * t * b * t + abs(c * sin(t)), 1 / 3);
z = m * cos(b * t * sin(t)) + c;
cout << "y = " << y << " z = " << z;
}

Звертаю увагу, що при присвоєнні імені файлу, здійснювати це у форматі:


прізвище, номер лр, дисципліна (все англійською мовою, наприклад:
Buchyk_Lr4_TxPrZS_Gr21). При цьому наводиться скріншот створення нового
проекту (рис.1).

Рис.1

При закінченні проекту, обов’язково також вказується скріншот вкладення


з назвою файлів (рис.2) з залишенням коментаря (наприклад: //
Buchyk_Lr4_TxPrZS_Gr21.cpp : Завдання №1). Якщо файлів декілька і вони
відносяться до одного завдання, то в назву файлу додаємо номер завдання після
номера лр (наприклад: Buchyk_Lr4_TxPrZS_Gr21)

Рис.2.
Також, разом зі звітом (звіт надсилається окремим файлом) надсилається
архів проекту (zip, rar) в зашифрованому вигляді (пароль – пошта, яку ви вказали
мені для комунікації (надана старостою групи)). Якщо проект невеликій і немає
взаємопов’язаних файлів – достатньо відправити файл з розширенням .cpp.
В тематиці листа вказати номер лабораторної роботи, групу (підгрупу),
прізвище, назву дисципліни
Приклад:

7
В разі виявлення викладачем однакових звітів (безумовного копіювання
матеріалів одного студента у іншого, звіт зараховується тільки тому студенту, якій
його перший здав). Іншому студенту (студентам) звіт не зараховується.

9.8.2. Порушенням академічної доброчесності здобувачів освіти є:


- академічний плагіат;
- фальсифікація;
- списування;
- обман;
- хабарництво.
9.8.3. За порушення академічної доброчесності здобувачі освіти можуть
бути притягнені до такої академічної відповідальності:
- повторне проходження оцінювання (контрольна робота, іспит, залік тощо);
- повторне проходження відповідного освітнього компонента Освітньої
програми;
- відрахування з Університету (крім осіб, які здобувають загальну середню
освіту в ліцеї і коледжах);
- позбавлення академічної стипендії;
- позбавлення наданих Університетом пільг з оплати навчання;
- інші додаткові та/або деталізовані види академічної відповідальності
здобувачів освіти за конкретні порушення академічної доброчесності
визначають спеціальні закони та окремі Положення Університету, яке
затверджує Вчена Рада Університету та погоджують органи
самоврядування здобувачів освіти.

You might also like