You are on page 1of 23

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ


ІМЕНІ ІГОРЯ СІКОРСЬКОГО»
Факультет прикладної математики
Кафедра прикладної математики

Звіт
із лабораторної роботи №2
із дисципліни «Основи програмування»
на тему
Програмування циклічних алгоритмів

Виконав: Керівник:
студент групи КМ-13 асистент Громова В.
В.
Бобришев О. М.

Київ — 2021
1

ЗМІСТ:

Оглавление
МЕТА РОБОТИ.......................................................................................................................................2
1 ПОСТАНОВКА ЗАВДАННЯ..................................................................................................................3
1.1 Організація циклу за допомогою оператора for.......................................................................3
2.2 Організація циклу за допомогою оператора while...................................................................3
2 ОСНОВНА ЧАСТИНА...........................................................................................................................4
2.1 Опис першої програми...............................................................................................................4
2.2 Опис другої програми................................................................................................................7
ВИСНОВКИ...........................................................................................................................................10
Перша програма..............................................................................................................................10
Друга програма...............................................................................................................................10
СПИСОК ЛІТЕРАТУРИ..........................................................................................................................11
ДОДАТОК 1. Тексти програм..............................................................................................................12
1.1 Текст першої програми............................................................................................................12
1.2 Текст другої програми..............................................................................................................14
ДОДАТОК 2. Скріншоти тестування програм....................................................................................15
2.1 Скрішоти тестування першої програми..................................................................................15
2.2 Скріншоти тестування другої програми.................................................................................16
ДОДАТОК 3. Відповіді на питання для самоперевірки....................................................................17
ДОДАТОК 4..........................................................................................................................................18
4.1 Блок-схема 1.............................................................................................................................18
4.2 Блок-схема 2.............................................................................................................................20
2

МЕТА РОБОТИ

Вивчення засобів реалізації циклічних конструкцій мови Python і


отримання навичок складання програм з використанням операторів циклу.
3

1 ПОСТАНОВКА ЗАВДАННЯ

1.1 Організація циклу за допомогою оператора for

Програма має обчислювати за формулою значення суми, за


даними, що були введені користувачем. Формула:

∑ i2−x 2
i=1

2.2 Організація циклу за допомогою оператора while

Користувач має ввести з клавіатури натуральне число. Програма


має вивезти інформацію про те, скільки парних цифр міститься у
введеному числі
4

2 ОСНОВНА ЧАСТИНА

2.1 Опис першої програми


(Організація циклу за допомогою оператора for)

Першим кроком було створено цикл ‘while True’, в якому буде


записаний основний код програми, та порожній список, в який будуть
записуватись значення ітерацій суми (див. рисунок 2.1.1).

Рисунок 2.1.1 – створення порожнього списку ‘list’

Потім було створена змінна ‘limit’, що є верхньою границею суми.


За допомогою функції ‘input’ змінна приймає значення, введені
користувачем (див. рисунок 2.1.2).

Рисунок 2.1.2 – створення змінної limit()

Якщо було введено не ціле число, то виникне помилка, що буде


опрацьована за допомогою конструкції ‘try – except’. Для того, щоб
після опрацювання помилки програма ще раз запитувала значення даної
змінної, було створено функцю ‘lim()’, яка буде викликатись у разі
виконання блоку ‘except’. Для того, щоб ім’я змінної ‘limit’ стало
5

глобальним було використано заразервоване слово ‘global’ (див.


рисунок 2.1.3). Функція lim була поміщена у цикл ‘while True’.

Рисунок 2.1.3 – створення функції ‘lim()’ у циклі while

Так як значення функції n має бути більшим або дорівнювати 1, то


потрібно перевірити його. Це було зроблено за допомогою конструкції
‘if – else’. Якщо було введено значення менше за 1, то цикл ‘while True’
виповниться знов та користувач повинен буде знову ввести значення
змінної (див. рисунок 2.1.4).

Рисунок 2.1.4 – створення конструкції “if – else” у циклі while

Наступним кроком було створено функцію ‘veriable()’, в якій було


створено змінну ‘x’, значення якої належить множині дійсних чисел. Для
оброблення помилки при введені не дійсного числового значення, було
використано конструкцію ‘try – except’. Для того, щоб змінну було
«видно» за межами функції ‘veriable()’ було використано зарезервоване
слово ‘global’ (див. рисунок 2.1.5)
6

Рисунок 2.1.5 – створення функції ‘variable()’

Наступним кроком було створено змінну ‘var_sum’ (див. рисунок


2.1.6), в якій буде обчилено значення кожної ітераціїї суми. Їй було
передано значення None.

Рисунок 2.1.6 – створення змінної ‘var_sum’

Далі було створено цикл ‘for’ з функцією ‘range’ з початковим


значенням 1 та кінцевим ‘limit+1’. Змінній var_sum передавалються
значення кожної ітерації, потім вони додаються до списку ‘list’ (див.
рисунок 2.1.7).

Рисунок 2.1.7 – створення циклу for

Після завершення циклу ‘for’ елементи списку додаються. Для


цього було використано функцію sum(). Сумма виводиться на екран
користувача за допомогою функції print().
7

Рисунок 2.1.8 – додавання значень списку та виведення їх кількості на


екран

Наступним етапом створюється змінна ‘txt’, яка приймає значення


від користувача. Якщо значення числове, то програма
перезавантажується, якщо від’ємне, то завершується. Для того щоб
перевірити чи є значення числовим було використано конструкцію ‘if -
else’ та метод ‘.isdigit’ (див. рисунок 2.1.8).

Рисунок 2.1.9 – створення блоку програми, який перезапускає цикл

2.2 Опис другої програми


Організація циклу за допомогою оператора while

Спочатку було створено цикл ‘while True’ та список ‘double’ (див


рисунок 2.2.1).

Рисунок 2.2.1 – створення списку ‘double’


8

Наступним кроком було створено змінну ‘num’ (див. рисунок


2.2.2)

Рисунок 2.2.2 – створення змінної

Для оброблення помилки, яке може виникнути, якщо користувачем буде


введене неціле значення, було використано блок ‘try – except’, який
знаходиться у створеній функції ‘value()’ (див. рисунок 2.2.3)

Рисунок 2.2.3 - створення функції ‘value()’

Так як за умовою завдання значення змінної ‘num’ має бути


натуральним числом, то потрібно перевірити, чи більше введене за 1.
Для цього було використано конструкцію ‘if – else’ (див. рисунок 2.2.4).
Якщо значення змінної меншу за 1, то цикл повторюється. Якщо введене
значення натуральне, то цикл завершується.
9

Рисунок 2.2.4 – створення конструкції ‘if – else’

З введеного користувачем числа буде створено список, який


складається з окремих цифр числа (див. рисунок 2.2.5)

Рисунок 2.2.5 – створення списку ‘numbers’

Потім було створено цикл ‘while’, в якому за допомогою методу


.pop() видаляється кінцевий елемент списку ‘numbers’. Він присвоюється
змінній ‘i’. Якщо значення цього елементу націло ділиться на 2, то він
додаєтсья до списку ‘double’. Цикл виконується до тих пір, поки в списку
‘numbers’ є елементи. Далі виводиться кількість парних чисел (див.
Рисунок 2.2.6)

Рисунок 2.2.6 – створення циклу while

Далі програма запитує користувача, чи бажає він продовжити (див.


рисунок 2.1.9)
10

ВИСНОВКИ

Перша програма
(Організація циклу за допомогою оператора for)

Ця програм обчислює та вивиодить значення суми за заданою


формулою. Значення в цій формулі задає користувач.

Друга програма
(Організація циклу за допомогою оператора while)

Ця програма просить ввести користувача натуральне число з


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

СПИСОК ЛІТЕРАТУРИ

‘Програмування на мові Python’ – Громова В. В.


12

ДОДАТОК 1. Тексти програм

1.1 Текст першої програми

print('Варіант 3; використання математичних формул за виконанням певних умов (


розгалужений процес);')
print('Бобришев О. М., група КМ-13')

while True:

list = [] # Створення порожнього списку, в який будуть записуватись значен


ня ітерацій суми

while True:

def lim():
global limit
try:
limit = int(input('Введіть значення верхньої границі:')) # Вве
дення значення верхньої границі суми
except: # Оброблення помилки, якщо введене значення не є цілим
print('Помилка! Введіть ціле числове значення!')
lim()
lim()

if limit < 1: # Перевірка, чи є введена границя менша від 1


print('Помилка! Введіть число, яке більше або дорівнює 1')
continue
else:
break

def variable():
global x
13

try:
x = float(input('Введіть значення змінної: ')) # Введення значення
змінної
except: # Перевірка, чи є ця змінна числовим значенням
print('Введіть числове значення!')
variable()
variable()

var_sum = None

for i in range (1, limit+1): #Створення циклу


var_sum = i**2 - x**2
list.append(var_sum) # Додавання значення відповіді кожної ітерації ци
кла for

list = sum(list) # Сумування елементів списка

print(list)

txt = input('Якщо бажаєте продовжити, введіть числове значення: ')


if txt.isdigit(): # Якщо значення змінної "txt", введене користувачем, чис
лове, то програма перезавантажується
continue
else:
print('Програму завершено!')
break # Якщо введене значення змінної "txt" нечислове, то програма зав
ершується
14

1.2 Текст другої програми

while True:

double = [] # Створення списку, в який будуть додаватись парні елементи

while True:
def value():
global num
try:
num = int(input('Введіть натуральне значення числа: ')) # Введ
ення значення змінної
except:
print('Введіть натуральне число!') # Оброблення помилки, якщо
значення змінної не числове
value()
value()

if num < 1: # Перевірка, чи є присвоєне значення змінній натуральним ч


ислом
print('Ви маєте ввести натуральне значення: ')
continue
else:
break

numbers = list(str(num)) # Створення списку

while len(numbers)>0 :
i = int(numbers.pop()) # Видалення зі списку кінцевого елементу та при
своєння його змінній
if i%2 == 0:
double.append(i) #додавання до списку парних елементів
else:
pass
print('Кількість чисел, які діляться на 2: ' + str(len(double))) # Виведен
ня кількості парних чисел у списку "double"

txt = input('Якщо бажаєте продовжити, то введіть числове значення: ')


15

if txt.isdigit(): # Якщо значення змінної "txt", введене користувачем, чис


лове, то програма перезавантажується
continue
else:
print('Програму завершено')
break

ДОДАТОК 2. Скріншоти тестування програм

2.1 Скрішоти тестування першої програми


16

2.2 Скріншоти тестування другої програми


17

ДОДАТОК 3. Відповіді на питання для самоперевірки

1. Циклічним називається процес, який діє до тих пір, поки діє задана
умова
2. Арифметичний цикл – цикл типу арифметичної прогресії, який має
відоме кінцеве число повторень (for).
Ітераційний цикл – цикл, число повторень якого невідомо (while)
3. 2: for, while
4. Параметр має лише цикл for, який також називається циклом з
параметром. Параметр цикла – змінна у циклі for (ітератор)
5. Тіло циклу викноується до тих пір, поки умова циклу істинна
6. За допомогою оператора break
7. Після оператору цикла з умовою ставиться двокрапка. Блок
інструкцій циклу починається з нового рядка та повинен мати
відступ від початку рядка
18

ДОДАТОК 4

4.1 Блок-схема 1
19
20
21

4.2 Блок-схема 2
22

You might also like