You are on page 1of 8

1

Алгоритмізація та програмування
Практичне заняття №1
Тема: Архітектура програм, написанох мовою С++. Програмування лінійних
алгоритмів.
Форма заняття: Практичне заняття
Мета заняття: Засвоєння матеріалу, пов’язаного зі створенням зовнішніх по
відношенню до функції main(), функцій.
Методи навчання: Вивчення матеріалу під керівництвом викладача

Хід заняття:
Теоретичні відомості
Написання ппрограм мовою С++ може відбуватись у різних програмних
середовищах. Якщо передбачається написання програмного проекту консольного
типу, краще користуватись простими середовищами, такими як CodeBlock64, DEV C+
+ або хмарне середовище RepLit.com.
Програма мовою Сі умовно може бути розподілена на три частини:
– блок препроцесингу;
– оголошення змінних на зовнішньому рівні та опис функцій;
– головна функція.
Кожна з цих частин може бути відсутня. Але, якщо є блок препроцесингу, то він
розташовується на початку програми. Після блоку препроцесингу послідовність і
наявність розділів програми може бути змінена.
Блок препроцесингу обробляється і виконується до початку компіляції основної
програми і складається з директив. Директиви починаються зі знака #. Виконання
директив препроцесингу у більшості випадків призводить до модифікації тексту
програми. Наприклад, директива підключення бібліотек:
#include <назва файлу>
. . . . . . . . . .
#include “назва файлу”
означає, що до програми необхідно приєднати текст програми із зазначеного
після неї файлу. Файли, які приєднуються директивою include мають розширення .h і
називаються файлами-заголовками (header-файлами). У них описуються константи,
змінні або функції стандартної бібліотеки мови С++ або створені програмістом. Усі
стандартні бібліотеки мови С++ розташовуються в службовому директорії INCLUDE.
Будь-яка програма призначена для оброблення даних, які подаються в програмі
як змінні або константи. Опис змінних може здійснюватися:
– на внутрішньому рівні – в тілі будь-якої функції програми;
– на зовнішньому – поза будь-якими функціями.
У термінах мови Сі головна програма називається головною функцією, яка може
мати:
2

– тип результату int (повертає цілочислене значення) або void (не повертає жодного
значення);
– зарезервоване ім’я main;
– список параметрів int argc, char* argv[], які використовуються для доступу до
елементів командного рядка, що задаються під час запуску програми на
виконання (argc – кількість аргументів, argv – посилання на список аргументів).
Список параметрів може бути порожнім, тоді він позначається як void.
У функціях рядок return призначений для повернення визначеногорезультату в
зовнішню функцію, яка викликала дану. У випадку головної функції результат
повертається операційній системі, під управлінням якої ця програма була запущена на
виконання. Повернення з функції main нуля (return 0;) означає завершення програми
без помилок.
Приклад. Обчислити роботу електричного струму на ділянці кола за формулою,

де опір R = 12 Ом, час t = 7 с, а значення напруги U ввести з клавіатури.


Текст програмного коду та блок-схема:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float R = 12, A, t = 7, U;
cout << "Input U = ";
cin >> U;
A = pow(U,2) / R * t;
cout << "A = "<<A;
return 0;
}
Результати роботи консольної програми:
Input U = 12
A = 84
Наведений алгоритм є лінійним. Під алгоритмом розуміється система
формальних правил, які однозначно визначають послідовність дій обчислювального
процесу від початкових даних до шуканого результату.
Лінійним називається алгоритм, в якому всі дії, від першої до останньої,
виконуються послідовно у порядку їхнього запису. Іноді таку структуру називають
просто послідовністю. Типовим прикладом такого алгоритму є стандартна
обчислювальна схема, яка складається з трьох етапів:
– введення початкових даних;
– обчислення за формулами;
– виведення результату.
3

У мові С стандартні типи даних розділяються на прості та складні. Для описання


ста ндартних типів використовують наступні ключові слова:
int – ціле число (займає у пам’яті 2 байти для 16-розрядних систем; 4 байти для 16-
розрядних систем);
char – символ (1 байт);
bool – логічне значення (true або false, 1 байт);
float – дійсне число (4 байти);
double – дійсне число подвійної точності (8 байт).
До них можна добавляти наступні модифікатори:
short – короткий;
long – длинный;
signed – со знаком;
unsigned – беззнаковый.
В таблиці наведені дані про основні типи мови C.

Приклади програм з лінійною структурою в С++


Приклад 1. Розробити схему алгоритму і створити програму для складання двох
чисел: c = x + y.
#include <iostream>
#include <math.h>
4

using namespace std;

int main()
{
double x, y, c; // Оголошення змінних

cout << "\n Input х = ";


cin >> x;

cout << "\n Input y = ";


cin >> y;

c = x + y;
cout << "\n c = " << y << endl;

return 0;
}
Результати роботи:
Input х = 84
Input y = 16
c = 100
Приклад 2. Розробити схему алгоритму і створити програму для обчислення

y, де х − довільна змінна, яку слід ввести.


Текст програмного коду та схема алгоритму:
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
double y, x; // Оголошення змінних

cout << "\n Input х = ";


cin >> x;

y = (0.2*x*x-x) / ((sqrt(3.)+x)*(1 + 2 * x)) +


2 * pow(x - 1,3) / (pow(sin(x),2) + 1);
cout << "\n Output y = " << y << endl;

return 0;
}
Результати роботи:
Input х = 2.15
Output y = 1.7292
5

Виконання обох, наведених у середовищі RepLit.com прикладів, виглядає так:

https://replit.com/@hodasevich/2023AandPPZ01#main.cpp
Приклад виконання практичної роботи
1. Повторити матеріал з теми “Алгоритмічна мова С++, її визначення та складові” та
терміни і методи, які використовуються при створенні додаткових функцій.
2. Опанувати теоретичний матеріал.
3. Створити програму, яка реалізує лінійний алгоритм обчислення математичного
виразу.
Приклад виконання завдання. Написати в код виконання обчислення виразу

в середовищі RepLit.
#include <iostream> // A&P_PZ_007_01_02
#include <cmath> // https://replit.com/@hodasevich/2023AandPPZ0102
using namespace std;
int main()
{
double a, b, x, rez;

cout << "\n A = ";


cin >> a;
cout << "\n B = ";
cin >> b;
6

cout << "\n X = ";


cin >> x;
rez = ((a * x* pow((b * x), 0.5) + a * pow(x, 2)) / pow((b - x), 2));
cout << "\n Rez = " << rez << endl;
cout << "\n OK!\n\n";
return 0;
}

https://replit.com/@hodasevich/2023AandPPZ0102

Варіанти завдань до практичної роботи № 1


7

Контрольні питання
– Що таке алгоритм і які задачі він вирішує?
– Які типи даних називають простими?
– Учому різниця між простими і складними типами даних?
– Які команди використовують для введення і виведення даних?
– Для чого виконується підключення бібліотек до програмного проекту?
– Що таке програмний фрагмент?
Література та посібники:
1. Lafore Robert. Object-Oriented Programming in C++ Fourth Edition URL :
https://fac.ksu.edu.sa/sites/default/files/ObjectOrientedProgramminginC4thEdition.pdf
2. Азарян А.А., Карабут Н.О., Козикова Т.П., Рибальченко О.Г., Трачук А.А.,
Шаповалова Н.Н. Основи алгоритмізації та програмування: Навчальний посібник.
– Кривий Ріг: Вид-во ОктанПринт, 2014. – 308 с.
3. Булгакова О. С. Алгоритмізація і програмування: теорія та практика : навчальний
посібник для дистанційного навчання / О. С. Булгакова, В. В. Зосімов, Г. В.
Ходякова. – Миколаїв: СПД Румянцева, 2021. – 138 с.
4. Мельник А. Архітектура комп’ютерів : підручник / А. Мельник. – Луцьк :
Волинська обласна друкарня, 2008. – 470 с.
5. Кравець П.О. Об'єктно-орієнтоване програмування / Навчальний посібник. –
Львів: Видавництво Львівської політехніки, 2012. – 624 с.
Довідки
Математичні функції
Запис
Функція
Математика Мова С++
натуральний логарифм ln x log(x)
ступень xy pow(x, y)
квадратний корінь √x sqrt(x)
y
корінь √x pow(x, 1/y)
абсолютне значення (int) |x| abs(x)
абсолютне значення (double) |x| fabs(x)
синус sin x sin(x)
косинус cos x cos(x)
тангенс tg x tan(x)
арксинус arcsin x asin(x)
арккосинус arccos x acos(x)
арктангенс arctg x atan(x)
гіперболічний синус sh x sinh(x)
гіперболічний косинус ch x cosh(x)
гіперболічний тангенс th x tanh(x)
гіперболічний арксинус arcsh x asinh(x)
гіперболічний арккосинус arcch x acosh(x)
гіперболічний арктангенс arcth x atanh(x)
експонента ex exp(x)
8

Типи даних
Тип Розмір Min Max
float 6-7 1.175494351 E – 38 3.402823466 E + 38
double 15-16 2.2250738585072014 e – 308 1.7976931348623158 e + 308
unsigned char 1 0 255
signed char (char) 1 -128 127
unsigned short 2 0 65535
signed short (short) 2 -32768 32767
unsigned int 4 0 4294967296
signed int (int) 4 -2147483648 2147483647
unsigned long 4 0 4294967296
signed long (long) 4 -2147483648 2147483647
unsigned long long 8 0 18446744073709551615
signed long long (long long) 8 -9223372036854775808 9223372036854775807

You might also like