Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 33

Міністерство освіти та науки України

Національний університет «Львівська політехніка»,


Інститут комп’ютерних наук та інформаційних технологій,
Кафедра «Системи автоматизованого проектування»

Звіт
до лабораторного практикума
з курсу «Основи програмування. Частина 1»

Виконано: ст. гр. ФЛ-13


Митрошина С. О.
Перевірено:
викл. каф. САП,
Оксентюк В. М.

Львів- 2022
САМОАНАЛІЗ УСПІШНОСТІ У НАВЧАННІ
1. Заняття відбуваються за розкладом в режимі онлайн за допомогою засобів
відеоконференційного зв'язку
Лекції відбуваються раз в два тижні, а практичні кожен тиждень відбуваються за розкладом.

2. Онлайн заняття відбуваються у доступній формі із належним відображенням на


екрані матеріялу
Усі лекції та теорія містять легкий для розуміння матеріял та різні варіяції інформації
допомагають краще сприймати матеріял, але варто би було замінити варіянт перегляду відео
на більш комфортний.

3. Викладач уміє інтерактивно працювати, підтримувати зацікавленість, спонукати до


дискусії
Викладач з захопленням розказує матеріял, тому його доволі цікаво слухати, також показує
всі можливі варіянти написання програм і демонструє тему на різних мовах програмування.
На практичних заняттях ми з викладачем вирішуємо проблеми які виникли під час
виконання лабораторних робіт.

4. Методи проведення лабораторних занять дозволяють засвоїти матеріал й виконати


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

5. Навчальні матеріяли у ВНС дозволяють підготуватися до занять, опрацювати


теоретичний матеріял й виконати індивідуальні роботи
У ВНС вся інформація у вільному доступі та легка для розуміння.

6. Скільки занять із скількох Ви були, й скільки занять був викладач на відеозаняттях


Лекції проводилися за розкладом і до цього дня(09.06.2022) у нас було 9 лекцій. Практичних
у нас до 09.06.2022 було 18, але мені вдалося побувати на 4 з них через погане інтернет-
з’єднання.

7. Яка якість роботи ВНС як системи (доступ, швидкість, опрацювання запитів)


У ВНС все чітко розташоване по категорія, тому все дуже легко знаходиться. Єдина
проблема полягає в тому, що саме відео не розкривається на повне вікно, тому приклади, які
показує лектор погано видно, а ще після того як ставиш відео на паузу, для того щоб зробити
конспект, відео не хоче далі завантажуватись. Прошу звернути увагу на цю проблему.
8. Охарактеризуйте СЕБЕ до й після дисципліни.
Поступово вивчила мову програмування PYTHON. Так, як дисципліна була добре
організована, то з цим не виникло серйозних проблем.

9. Як Ви й що саме засвоїли у навчальних лекціях


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

10. Як Ви й що засвоїли й охарактеризуйте навчальні лаб. роботи саме для Вашого


досвіду. Що Ви набули?
На мою думку, я добре засвоїла мову PYTHON, так як це не дуже складна мова порівнюючи
з JAVASCRIPT та C++, то для новачків саме PYTHON добре підійде, задля розуміння самого
програмування.

11. Розширено охарактеризуйте для себе онлайн процеси навчання (комунікація,


планування, оцінювання, мотивування)
Через відсутність на парах нічого за проведення пар сказати не можу, але можу сказати за
інформацію що у ВНС. Як на мене, замало прикладів схожих до лабораторних, але матеріал
легкий для засвоєння. Система оцінювання мені подобається.

12. Який досвід Ви готові занотувати у своє резюме.


Я добре опанувала мову програмування PYTHON та навчилась компілювати в різних IDE. Я
навчилась писати програми з лінійними алгоритмами та із розгалуженнями, засвоїла
циклічні процеси, та різні типи масивів та файлові типи.

13. Загальна Ваша самооцінка 0...100 як Ви себе самооцінюєте?


76 зі 100. Я задоволена результатами, але не виконувала самоперевірку теорії.

Список індивідуальних завдань

Розрахункова робота
Тема: Системи числення й переведення різних систем числення.
Мета роботи: навчитись переводити числа з однієї системи чисел в іншу.
Загальне завдання
Здійснити 15-ть переведень систем числення у всіх напрямків для початкового числа на
основі Вашої дати народження по формату DDMM.YYYY ( тут DDMM буде цілою
частиною числа, а YYYY буде дробовою частиною числа)
Індивідуальне завдання: дата народження 18.01.2004
Висновки: ми навчились переводити числа з однієї системи чисел в іншу.

Лабораторна робота 1
Тема: інтегровані середовища програмування й компіляції (IDE)
Мета: ознайомитись з оболонками інтегрованого середовища програмування й компіляції
програм, командами меню, “гарячими” клавішами, текстовими редактором, основними
прийомами роботи з інтегрованим середовищем, та планом роботи при створенні та
відлагодженні програм, розглянути й спробувати редактори під різні операційні платформи
(Win, Mac, Android, iPhone, iPad, OnlineIDE).
Короткі теоретичні відповіді на контрольні запитання:
1. Інтегроване середовище редагування програмування й компіляції створене для того, щоб
максимізувати продуктивність програміста, надавши йому пов'язані інструменти розробки зі
схожими інтерфейсами як одну програму, в якій відбуватиметься весь процес розробки й яка
надає необхідні функції для модифікації, компілювання, розгортання та налагодження
програмного забезпечення.
2. Головне меню оболонки програмування знаходиться у верхньому рядку екрану і
викликаються за допомогою клавіша F10. У головному меню є підменю Edit – режим
редагування або створення програми.
3. Головне меню викликається за допомогою клавіші F10.
4. За команди «Вигляд» команду підменю виключення
5. Виділити відредагований текст, натиснути комбінацію клавіш Ctrl+X, текст буде вирізано.
Далі вставити його на те місце, де треба за допомогою клавіш Ctrl+V.
6. Клацніть на початку фрагмента, який потрібно виділити, прокрутіть до кінця фрагмента та,
утримуючи натиснутою клавішу Shift, клацніть у місці, де потрібно завершити виділення.
7. Команда меню Run, команда підменю Step over F8.
8. Розмістити на екрані всі відкриті вікна для редагування, виділивши їм однакові частини
екрана, розмістити на екрані усі відкриті вікна редагування у каскадному вигляді, закрити усі
відкриті вікна, відновити на екрані зображення інтегрованого середовища програмування у
разі непередбачених збоїв виведення інформації на екран, змінити розмір активного вікна
та/або його позиції на екрані, розкрити активне вікно до повноекранного розміру та
відновити його вихідний стан, якщо вікно вже має повноекранний розмір, закрити активне
вікно редагування, відкрити діалогове вікно Window List, у якому перераховані всі відкриті з
моменту запуску інтегрованого середовища вікна.
9. Гарячі клавіші — поєднання клавіш, яким задані визначені команди. Їх використовують
для швидкого виконання певних операцій.
10. Команда основного меню Debug.

Загальне завдання
1. Ознайомитись з командами керування редактором інтегрованого середовища
програмування (IDE)
2. Відкрити вікно для введення нової програми.
3. Набрати у текстовому редакторі інтегрованого середовища просту програму на мові
програмування (див. приклади нижче).
4. Перекласти із одної мови програмування ще іншими мовами програмування.
5. Записати створену програму на диск свого гаджета чи онлайн.
6. Запустити програму на виконання.
7. Відслідкувати покрокове виконання програми, зробити проміжне виведення значень
змінних S та I у процесі виконання циклу у вікні Watch.
8. Промоделювати ситуацію з помилками (навмисно ввести вручну опечатки, помилки в
командах) на етапі компіляції та на етапі виконання програми (введення неправильних
вхідних даних та інше).
9. Спробувати також в різних редакторах й під Windows, й під Macbook, й Android, й
онлайн-редактори.
10. Набути навичок із швидкого керування за допомогою комбінацій клавіш в редакторі IDE
Програма
#This is my first PYTHON program
n=int();
s=int();
i=int();
print('Please enter value for N\n');
n= int(input());
s=0;
for i in range (3,n,1):
if i % 2 == 0 :
s=s+i;
print("\nCurrent value i=",i,"S=",s);
print("Final result suma is S=",s);
Скріни результатів

Висновки: ознайомилась з оболонками інтегрованого середовища програмування й


компіляції програм, командами меню, “гарячими” клавішами, текстовими редактором,
основними прийомами роботи з інтегрованим середовищем, та планом роботи при створенні
та відлагодженні програм, розглянути й спробувати редактори під різні операційні
платформи (Win, Mac, Android, iPhone, iPad, OnlineIDE).

Лабораторна робота 2
Тема: найпростіші конструкції алгоритмів та програмування математики
Мета: вивчити основні елементи алгоритмічної мови програмування, правила запису виразів
і оператора присвоєння.
Короткі теоретичні відповіді на контрольні запитання:
1. Всі ідентифікатори складаються з літер латинського алфавіту, цифр, починаються з літери
або знака, «_»; · Великі і малі літери не розрізняються. Константа - комірка пам'яті, значення
якої протягом виконання програми залишається постійним.
2. Синтаксична діаграма — це орієнтований граф з одним вхідним ребром і одним вихідним
ребром і позначеними вершинами. Синтаксична діаграма задає мову. Ланцюжок позначок
при вершинах на будь-якому шляху від вхідного ребра до вихідного — це ланцюжок мови,
що задається синтаксичною діаграмою.
3. Константами називаються елементи даних, яким присвоюються значення в описовій
частині програми й у процесі виконання програми їх змінювати заборонено. Для визначення
констант служить зарезервоване слово const.
4. Змінна – це посилання на комірку пам‘яті. І змінна і константа – це певні області в
оперативній пам'яті, які мають імена (ім'я задає програміст). Тільки змінна може змінювати
своє значення в ході виконання програми, константа ж визначається один раз і змінюватися
вже не може.
5. Будь-яку програму можна умовно розділити на дві основні частини: розділ опису (розділ
оголошень та угод; розділ текстів процедур та функцій) та розділ виконання (розділ
основного блоку).
6. Для визначення констант служить зарезервоване слово const. Змінні, на відміну від
констант, можуть змінювати свої значення в процесі виконання програми. Кожна змінна і
константа належать до визначеного типу даних. Тип констант визначається компілятором
автоматично.
7. Integer, real, character, boolean, enumerated, subrange, array, record, file, set.
8. Перелік усіх даних із зазначенням їх типів на початку програми не тільки полегшує
контроль за їх використанням, але й дозволяє транслятору знаходити та повідомляти вам про
помилки, наявні в тілі програми та пов'язані з невірною обробкою даних.
9. Форма представлення значень у полі виведення відповідає типу змінних і виразів:
величини цілого типу виводяться як цілі десяткові числа, дійсного типу – як дійсні десяткові
числа з десятковим порядком, символьного типу і рядка – у виді символів, логічного типу – у
виді логічних констант TRUE і FALSE.
10. Операція присвоєння має строго фіксований вигляд: зліва від оператора = має стояти ім'я
змінної, якій присвоюється значення, яке стоїть справа від =. цілий - integer, дійсний - float,
літерний (текстовий) - string.
11. У мовах програмування використовуються спеціальні знаки, подібні тим, які
використовуються в математичних виразах: > (більше), < (менше), >= (більше або дорівнює),
<= (менше або дорівнює). Новими для вас можуть виявитися позначення рівності: == (два
знаки “дорівнює”); а також нерівності !=.
12. Піднесення до степеня (**), множення (*) і ділення (/), цілочисельне ділення (//),
одержання остачі від цілочисельного ділення (%), додавання (+) і віднімання (–).
13. Порядок виконання (пріоритет) операцій: 1) піднесення до степеня (**); 2) множення (*) і
ділення (/), цілочисельне ділення (//), одержання остачі від цілочисельного ділення (%); 3)
додавання (+) і віднімання (–).
Загальне завдання
1. Вивчити основні елементи алгоритмічної мови програмування, правила запису виразів і
оператора присвоєння.
2. Одержати індивідуальне завдання (додаток).
3. Скласти програму на алгоритмічній мові програмування відповідно до завдання.
4. Виконати обчислення за програмою.
Індивідуальне завдання 26 в.

Програма:
#This is my second lab
import math
u=125.331
v=33.075
b=float()
print('Please enter value for [X\n');
b=float(input())
b=math.log10((u**(1./3.))+ (v**(1./4.))+ 2);
print('Result is b=', b)

Скрін програми й результатів запуску програми:


Висновки: ми вивчили основні поняття алгоритмічної мови програмування, структури
програми, поняття введення-виведення і оператора присвоєння, правила запису
математичних виразів.
Лабораторна робота 3
Тема: лінійні алгоритми та із розгалуженням (умовні оператори, оператови вибору).
Мета: ознайомитись з лінійними і розгалуженими алгоритмами, методами їх подання і
програмування; ознайомлення із мовою геометричних блоків для алгоритмів, операторами
умов IF, операторами вибору CASE/SWITCH, безумовного переходу GOTO.
Короткі теоретичні відповіді на контрольні запитання:
1. Блок-схема алгоритму – це графічне представлення логічної структури алгоритму, де
кожний етап обробки інформації зображається у вигляді геометричних символів (блоків).
Існують правила зображення блок-схем алгоритмів. Кожен алгоритм має початок та кінець.
2. Вся сукупність процесу ділиться на три процеси: лінійний обчислювальний процес (ЛОП);
розгалужений обчислювальний процес (РОП); циклічний обчислювальний процес (ЦОП).
3. Лінійним називають такий обчислювальний процес, в алгоритмі якого використовується
лише базова конструкція типу слідування.
4. Розгалуженим називають такий обчислювальний процес, в алгоритмі якогопередбачене
розгалуження деякої послідовності дій на два (іноді три) напрямки залежно відрезультату
перевірки заданої умови.
5. В алгоритмах з розгалуженням використовується оператор if.
6. Конструкція If дозволяє контролювати чи слід програмі виконувати певну частину коду чи
ні в залежності від того якою є дана умова — істинною або хибною. Однією з важливих
властивостей конструкції If є те, що вона дозволяє програмі вибрати певну дію, ґрунтуючись
на введені користувачем дані
7. Оператор CASE складається з <виразу>(селектора) і списку операторів, кожному з яких
відповідає конкретне значення селектора. Тип селектора і тип константи вибору мають
збігатися. Селектором може бути вираз або змінна будь-якого простого дискретного типу,
тобто INTEGER, CHAR, BOOLEAN. Селектор і константи не можуть бути типу REAL,
оскільки дійсне число не представлене в пам’яті машини дискретно. Порядок виконання
оператора CASE такий: • обчислюється <вираз>(селектор); • значення селектора
порівнюється з <константами вибору>. Якщо селектор збігається з певною константою
вибору, виконується оператор, що стоїть за нею; • якщо селектор не збігається з жодною
константою вибору, виконується оператор, що стоїть після слова ELSE; • після виконання
вибраного варіанта управління передається на службове слово END, тобто кінець оператора
CASE.
8. Оператор безумовного переходу goto передає управління безпосередньо на <оператор>,
перед яким розташована <мітка>. Область дії мітки обмежена функцією, в якій вона
визначена. Тому, кожна мітка повинна бути відмінною від інших в одній і тій самій функції.
Також, неможливо передати управління оператором goto в іншу функцію. Оператор, перед
яким розташована <мітка> виконується зразу після виконання оператора goto. Якщо
оператор з міткою відсутній, то компілятор видасть повідомлення про помилку.
9 Оператори python: арифметичні, оператори порівняння, логічні, побітові, оператори,
присвоєння, посвідчення особи, членства.
10. Дія складеного оператора полягає в обов'язковому послідовному виконанні операторів,
які містяться між фігурними дужками {}, за виключенням тих випадків, коли який-
небудь оператор явно не передасть управління в інше місце програми.
11. При форматованому виведенні можна вказувати на кількість позицій, що відводяться під
значення змінної. При форматованому виведенні цілих значень задається ширина загального
поля m. Якщо формат задано некоректно, він ігнорується і виводиться стільки позицій цілої
частини, скільки потрібно, а дробова частина заокруглюється до заданої кількості розрядів.
Загальне завдання
1. Вивчити основні елементи алгоритмічної мови програмування, правила запису виразів і
оператора присвоєння.
2. Одержати індивідуальне завдання (додаток).
3. Скласти програму на алгоритмічній мові програмування відповідно до завдання.
4. Виконати обчислення за програмою.
Індивідуальне завдання 13 в.

Програма:
#This is my third PYTHON program
import math
x = print(input('Please enter value for х(1,2,3): '))
k = 3.005
l=3
e = 2.718

if x == 1:
x = 0.1
elif x == 2:
x=2
else:
x = 0.348

a = pow((7.002*pow(k,1/2)-1+1/10*(pow(e,x)+pow(e,-x))),1/5)
b = math.log10(l)*(math.cos(math.pi/5)+math.cos(3*math.pi/5))

if pow(a,2) + pow(b,2) > 0.1:


y = math.pi/2 - math.atan(pow(5*a,2) + pow(7*b,2))
else:
y = math.asin(pow(5*a,2) + pow(7*b,2))
print(y)
Скрін програми й результатів запуску програми:

Висновки: ми ознайомились з лінійними і розгалуженими алгоритмами, методами їх подання


і програмування, а також із мовою геометричних блоків для алгоритмів, операторами умов
IF, операторами вибору CASE/SWITCH, безумовного переходу GOTO.

Лабораторна робота 4
Тема: програмування циклічних процесів.
Мета: навчитися організовувати програми циклічної структури, які дозволяють
повторювати певну групу операторів задану кількість разів. Цикли із передумовою while,
постумовою (repeat/while), із параметром for, ітераціний цикл, вкладені цикли.
Короткі теоретичні відповіді на контрольні запитання:
1. Цикли з відомою кількістю повторень називаються арифметичними.Цикли з невідомою
кількістю повторень називають ітераційними.
2. Оператор циклу з передумовою, оператор циклу з постумовою, оператор циклу з
параметром, або з відомою кількістю повторень.
3. Параметр зовнішнього циклу діє як у зовнішньому, так і у внутрішньомуциклах. Тому
треба пам’ятати, що параметри зовнішнього і внутрішнього циклуповинні бути різними, щоб
при фіксованому значенні параметра зовнішньогоциклу параметр внутрішнього циклу міг
набувати за чергою всіх своїх значень.
4. Із внутрішнього циклу можна передавати управління у зовнішній цикл. Але із зовнішнього
циклу у внутрішній можна повернутися тільки через його початок.Не допускається
перехрещування циклів.
5. Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори
повторення (цикли): оператор циклу з параметром (For); оператор циклу з передумовою
(While); оператор циклу з післяумовою (Repeat).
6. Якщо кількість повторів відома заздалегідь, використовується оператор for, якщо кількість
повторів невідома, застосовуються оператори repeat або while. Оператор повтору for. Цей
оператор повторення інакше називається циклом з параметром (або лічильником).
7. Цей оператор відрізняється від циклу з передумовою тим, що перевірка умови
проводиться після чергового виконання тіла циклу. Це забезпечує виконання тіла циклу хоча
б один раз.
8. Тому що має набуватися лише одне логічне значення. І ще, зазвичай, за хибне приймають
нульове значення, за істину — одиницю чи будь-яке інше відмінне від нуля число. В інших
операторах для цього підходять всі числа.
9. Особливість цих циклів полягає в тому, що тіло циклу з післяумовою завжди виконується
хоча б один раз, а тіло циклу з передумовою може не виконатися жодного разу. В залежності
від умови задачі необхідно використовувати той чи інший вид ітераційних циклів.
Загальне завдання
1. Ознайомитись із особливостями реалізації циклів на мові програмування.
2. Скласти блок-схеми алгоритмів програм на мові програмування (із використанням різних
операторів циклу) для табулювання функції f(x) на проміжну від початкового числа А до
кінцевого числа В з кроком зміни приросту числом dx .
3. Виконати обчислення за програмою.
4. Побудувати графік одержаної функції та у вигляді таблиці X та Y.
5. Зробити порівняльний аналіз ефективності і доцільності застосування кожного із трьох
операторів циклу для розв’язання поставленої задачі.
6. Скласти блок-схему алгоритму та програму для обчислення суми елементів ряду Тейлора
Індивідуальне завдання «А» в. 10

Програма:
#This is my fourth "A" PYTHON program
import math

n = int(input("введіть n: "))
x=0
i=n

print("y | x")
while i >= 0 :
x +=1
i -=1
print(f"{math.log(x,2)} | {x}")
Скрін програми й результатів запуску програми:
Індивідуальне завдання «Б» 2 в.

Програма:
#This is my fourth "Б" PYTHON program
import math

n = int(input("введіть n: "))
x=0
i=n

x=0
sum = 1

x = int(input("введіть x: "))

f = n*2
factorial = 1
while f > 1:
factorial *= f
f -= 1

while n > 0 :
sum += pow(-1,n)*(pow(x,2*n))/factorial

n -= 1
print(f"cos(x) = {sum}")
Скрін програми й результатів запуску програми:
Висновки: навчилась організовувати програми циклічної структури, які дозволяють
повторювати певну групу операторів задану кількість разів. Цикли із передумовою while,
постумовою (repeat/while), із параметром for, ітераціний цикл, вкладені цикли.

Лабораторна робота 5
Тема: типи даних та робота з масивами
Мета: ознайомитись з типами даних у мові програмування, методами їхнього опису і
застосування, набути навичок роботи з масивами (одновимірними, двовимірними), індексами
й вмістом значень по рядках й стовпцях, методи сортування елементів масиву.
Короткі теоретичні відповіді на контрольні запитання:
1. У Python типи даних можна розділити на вбудовані в інтерпретатор (built-in) і невбудовані,
які можна використовувати при імпортуванні відповідних модулів.
2. REAL, INTEGER, BOOLEAN, CHAR;
3. Для кожного типу даних можна визначити його синонім - іншу назву. Для цього треба
проголосити новий тип в розділі type.
4. Скалярні типи – це прості типи, значеннями кожного із яких є окремі елементи даних.
Скалярними є стандартні типи даних, вбудовані у мови програмування, а також прості типи,
визначені користувачем.
5. Інтервальний тип задає підмножину значень деякого базового типу. Як базовий можна
використати довільний стандартний тип, крім REAL або описаний раніше перелічуваний
тип. Підмножина значень обмеженого типу задається мінімальним і максимальним
значенням елементів, розділених символом ’..’ (дві крапки підряд).
6. Регулярний тип (масив) належить до складних або структурованих типів даних. Кожне
значення регулярного типу складається з фіксованої кількості елементів одного і того самого
базового типу. Кожен компонент масиву має ім’я та індекс, записаний у квадратних дужках.
Для опису регулярного типу необхідні дві характеристики: 1) тип елементів масиву (тобто
базовий тип); 2) спосіб нумерації елементів, або тип індексу.
7. Масив складається з елементів. Кожен елемент має індекси, за якими його можна знайти у
масиві. Кількість індексів визначає розмірність масиву.
Наприклад, команда int stud[5] оголошує масив з іменем stud, який складається із п'яти цілих
чисел; команда float rist[10] оголошує масив rist, який містить десять чисел дійсного типу;
charalphavit[6] - оголошення масиву із 6 символів.
8. Як задається тип елементів масиву?
Для опису масиву можна використовувати попередньо визначену константу:
Const К=40;
Var
Mas:array[1..К] of real;
9. Як вводяться і виводяться двовимірні масиви?
Введення і виведення рядка здійснюється поелементно в циклі за допомогою процедур
READ та WRITE.
Доступ до окремого елемента рядка здійснюється з використанням індекса, тобто ST[1],
ST[I].
Загальне завдання
1. Ознайомитись із типами даних, які використовуються у мові програмування і
особливостями застосування масивів.
2. Одержати індивідуальне завдання.
3. Скласти блок-схему алгоритму і програму на мові програмування.
4. Виконати обчислення за програмою.
Індивідуальне завдання 25 в.

Програма:
#This is my fifth PYTHON program
import random

num = 1
sum = 0
flag = 0
fl = 0

A=[[random.randrange(10)-10 for i in range(4)] for j in range(5)]


for i in range(5):
for j in range(4):
print(A[i][j], end=" ")
print("\n")

for i in range(4):
for j in range(5):
if A[j][i] > 0:
flag = 1
num +=1
sum += A[j][i]
if flag == 0:
print(f"знайдено стовпець у якому лише від'ємні елементи {j}")
fl = 1
break

if fl == 0:
print(f"сер. арифметичне: {sum/num}")
Скрін програми й результатів запуску програми:
Висновки: ми ознайомились із типами даних, які використовуються у мові програмування і
особливостями застосування масивів.
Лабораторна робота 6
Тема: Символьний тип, символьні масиви, string.
Мета: Ознайомитись із типами даних, які вживаються у мові програмування і
особливостями застосування змінних рядкового типу.
Короткі теоретичні відповіді на контрольні запитання:
1. Для позначення у програмі наперед визначеної послідовності символів слугує рядок-
константа. Рядок-константа – це послідовність символів між двома одинарними
апострофами. Якщо в середині рядка-константи є апостроф, то він подвоюється. Символ
’(апостроф) у мові Паскаль використовується як обмежувач рядків-констант.
VAR ST:ARRAY [1..50] OF CHAR;
2. Упакований символьний масив – це масив, який утворює символьний рядок. Він
використовується у програмі так само, як і не упакований, але програми з такими масивами
виконуються дещо повільніше, оскільки необхідний додатковий час на вибір компонентів з
масиву.
3. Рядковий тип випливає з поняття символьних масивів, але в рядковому типі може
змінюватись довжина рядка. Рядковий тип визначає множину символьних ланцюжків
довільної довжини (від нуля до заданого числа). Для опису рядкового типу використовується
службове слово STRING, слідом за яким вказується максимальна довжина рядка.
4. Введення і виведення рядка здійснюється поелементно в циклі за допомогою процедур
READ та WRITE.
5. Над змінними рядкового типу можуть виконуватися операції.
1) конкатенації ( + ).
2) порівняння: >, > =, <, < =, =, < >.
6. До рядків символів може застосуватись стандартна функція EOLN, яка дає значення
TRUE, якщо зчитано останній символ вхідного рядка і значення FALSE, якщо кінця рядка не
досягнуто.
7. Максимальна довжина рядка може бути задана цілим числом або іменованою константою
цілого типу, а може і не вказуватись. Якщо довжина не вказана, то максимальною довжиною
є число 255.
8. Значення рядкової змінної може бути присвоєно оператором присвоєння або прочитано з
файла чи з клавіатури. При цьому слід пам’ятати, що якщо рядковій змінній присвоюється
значення довше ніж максимальна довжина, рядок обрубується до максимальної довжини.
9. Хоч на перший погляд пам’ять під змінну рядкового типу виділяється динамічно, проте це
не так. Точніше, пам’ять виділяється так, як і для масивів на етапі трансляції програми за
максимальною довжиною. Якщо максимальна довжина рядка 80 символів, то виділяється 81
байт. При цьому в 80-ти байтах записується рядок символів, а в нульовому байті довжина
цього рядка.
Індивідуальне завдання 28 в.

Програма:
#This is my sixth Python program
import random

max = 0

A=[[random.randrange(10) for i in range(10)] for j in range(10)]


for i in range(10):
if A[i][i] >= max:
max = A[i][i]
index = i

for i in range(10):
for j in range(10):
print(A[i][j], end=" ")
print("\n")

print(max)
for j in range(10):
print(A[index][j], end=" ")
Скрін програми й результатів запуску програми:
Висновки: Ми ознайомились із типами даних, які вживаються у мові програмування і
особливостями застосування змінних рядкового типу.

Лабораторна робота 7
Тема: файлові типи, процедури введення-виведення файлів. Текстові файли.
Мета: ознайомлення із способами під'єднання файлових типів даних, організація процесів
зчитування та запису даних у файли числові та файли текстові.
Короткі теоретичні відповіді на контрольні запитання:
1. Спеціальний типу даних, які є послідовністю елементів одного і того ж типу, довжина,
якої наперед не визначається. Під файлом у мові Паскаль розуміють область пам’яті на
зовнішньому запам’ятовуючому пристрої, яка може зберігати деяку інформацію. У цій
області можна як розмістити конкретні дані, так і отримати їх з неї. Ці дії називаються
введенням/виведенням інформації.
2. Опис змінної файлового типу може мати кілька варіантів. Змінні файлового типу можна
описувати або у розділі опису типу, або у розділі опису змінних.
Конструктор файлового типу:
TYPE<ім’я типу> = FILE OF <базовий тип>;
Тип елементів файла (базовий тип) може бути довільним, але не може бути файловим.
TYPE
F = FILE OF INTEGER;
VAR F1, F2 : F;
Або можна описати змінні одразу в розділі опису змінних:
VAR
F1, F2 : FILE OF INTEGER;
3. REWRITE (F2) – підготовка файлу F2 до запису. Встановлює файл з іменем F2 у початкове
положення, маркер файлу встановлюється на першу позицію файлу. Якщо у файлі були
записані якісь елементи, то вони стають недоступними, іншими словами, знищуються. Файл
стає пустим.
WRITE (F2, X); – записує у файл (в ту позицію, на яку вказує маркер файлу) чергову
компоненту, що дорівнює значенню Х, при цьому маркер файлу переміщується на наступну
позицію.
Доступ до будь-якої компоненти файлу здійснюється через його початок послідовним
перебором всіх компонент, які передують потрібній. Для того, щоб знати, чи не вийшли ми
за межі файлу, існує стандартна функція EOF (F1) “End Of File”. Аргументом функції EOF є
ім’я файлу. Значення цієї функції - TRUE, якщо ми вийшли на кінець файлу, і FALSE - якщо
кінця файлу ще не досягнуто.
4. RESET (F1) – підготовка файла до читання. Маркер (вказівник на елемент файла)
ставиться на
початок файла F1.
READ (F1, V); – оператор процедури введення. Присвоює змінній V значення поточної
компоненти файла F1 та пересуває маркер файла на наступну позицію.
5. Буферною змінною називають конструкцію F1↑ (до імені файлової змінної додається
стрілка “↑”). Буферну змінну F1↑ не потрібно описувати у розділі опису змінних, вона
визначається
автоматично з введенням файлової змінної. Тип буферної змінної збігається з типом
компоненти
файла.
Для пересування маркера на наступну позицію файла використовується стандартна
процедура
GET (<ім’я файла>); Параметром її є ім’я файлової змінної.
Отже, процедуру READ(F1, Х); можна замінити складеним оператором:
BEGIN
X := F1↑;
GET(F1)
END;
У режимі запису значень змінної Y у файл F2 буферна змінна запам’ятовує значення Y, а
стандартна процедура PUT(F2) записує значення буферної змінної F2↑ у файл і зсуває
маркер файла на наступну позицію.
Процедура WRITE (F2, Y); через буферну змінну представляється:
BEGIN
F2↑ := Y;
PUT(F2)
END;
6. Текстовим називається файл, що складається з послідовності символів, розбитої на рядки
довільної довжини. Для опису таких файлів прийнято стандартний тип TEXT.
Текстовий файл є набором символів, тобто:
TYPE
T = FILE OF CHAR;
7. Файл INPUT призначений для введення із стандартного пристрою, а файл OUTPUT – для
виведення інформації на стандартний пристрій, тобто це текстові файли.
8. 1) файли INPUT та OUTPUT описувати у програмі не потрібно;
Заборонено використовувати процедури RESET та REWRITE до файлів INPUT та OUTPUT –
ці
файли відкриваються автоматично;
2) при зчитуванні із стандартного файла INPUT ім’я його в операторі можна не вказувати:
запис
Загальне завдання
1. Ознайомитися із файловим типом даних у мові програмування та процедурами введення
виведення.
2. Одержати індивідуальне завдання.
3. Скласти блок-схему алгоритму та програму на мові програмування, яка дозволяє
зчитувати дані із зовнішнього файла і виводити результати у стандартний файл OUTPUT та
зовнішній файл.
4. Для формування зовнішнього файла написати програму, яка буде читати інформацію з
клавіатури та записувати у зовнішній файл.
5. Виконати обчислення за програмою.
Індивідуальне завдання 16 в.

Програма:
#This is my seventh PYTHON program
file = open('F1.txt', 'r', encoding='utf-8')
sp = ''
for line in file:
for ch in line:
sp += ch

split1 = sp.split("\n")

list = []
for i in range(4):
for j in range(len(split1[i])):
if split1[i][j] == "N" and split1[i][j-1] == "I" or split1[i][j-1] == "O" and split1[i][j-2] == " ":
list.append(i)
print(f"Список індексів потрібних нам рядків: {list}")
Скрін програми й результатів запуску програми:

Висновки: ознайомилась із способами під'єднання файлових типів даних, організацією


процесів зчитування та запису даних у файли числові та файли текстові.

You might also like