Типи даних у програмуванні. Числові типи
Нова українська школа
Урок 39
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Цілі та дійсні числа
Цілі числа належать до класу int, можуть бути як завгодно великими та обмежуються лише доступною пам’яттю.
Тип величини можна визначити за допомогою функції type()
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Цілі та дійсні числа
Дійсні числа, або числа з рухомою точкою, належать до типу float. Дробове число (величина типу float) може мати до 18 значущих цифр. Існують числа, що містять велику кількість розрядів.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Цілі та дійсні числа
Знайдемо частку від ділення числа 18 на 3.
Хоча 18 кратне 3, результат ділення належить до типу float.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Цілі та дійсні числа
Якщо числа цілого або дійсного типу досить великі або занадто малі, то результат виконання операції подається в експоненціальній формі: замість числа 10 вказується:
велика літера
Е
мала літера
е
або
а потім — степінь числа 10. Знак множення не вказують, а замість коми — крапка. Наприклад
1.496Е11
1.496е11
або
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Цілі та дійсні числа
Число після експоненти вказує степінь числа 10, на яке треба помножити основне число 3.9:
Під час розроблення програми може виникнути потреба в перетворенні значення одного типу даних на значення іншого типу.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Функція input() повертає значення рядкового типу (str), а для виконання над введеними даними математичних операцій вони повинні мати числовий тип. У цьому та інших подібних випадках виникає необхідність змінити тип даних.
Для подальшого опрацювання числа при введенні даних потрібно перетворити рядкове значення на числове, а при виведенні може знадобитися перетворення числа на рядок. Ці операції називаються перетворенням типів.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Для перетворення типів призначені такі функції:
створює рядок із числа
str()
створює дробове число з рядка або цілого числа
float()
створює ціле число з рядка або дробового числа
int()
Зверніть увагу: дробове число при цьому не округлюється, а лише відкидається дробова частина.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Проаналізуймо приклади застосування функцій перетворення типів для різних аргументів, наведені в таблиці:
Вираз | int('25') | int(4.9) | int('4abc56') | str(25) | float(25) |
Результат виконання | 25 | 4 | П о м и л к а | '25' | 25.0 |
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Складемо програму для розв’язування задачі.
Задача. Скільки контейнерів можна розмістити на вантажній платформі розмірами а × b м, якщо сторона квадратної основи контейнера х м?
Сторони контейнерів паралельні краям платформи.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Поміркуємо, скільки контейнерів можна по ставити вздовж сторін платформи:
Але число контейнерів має бути цілим, тобто
K1 = [a : х], K2 = [b : х]
(квадратні дужки позначають знаходження цілої частини числа).
Тоді загальну кількість знайдемо як добуток:
k1 і k2
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Математична модель
Програма
a = float(input('a = ?'))
b = float(input('b = ?'))
x = float(input('x = ?'))
k = int(a/x)*int(b/x)
print(k)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Якщо ми запустимо програму на виконання і введемо значення:
то буде виведено значення 15.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Розглянемо лінійні записи арифметичних виразів:
Арифметичний вираз
Лінійний запис виразу
(2*x-5)/(3+x)+7*x
abs((x-1)/(2*x))
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Згадаймо математичні оператори Python, розгляньмо таблицю:
Операція | Символ оператора | Приклад | Результат |
Додавання | + | a = 15+3 | a = 18 |
Віднімання | - | b = 15-3 | b = 12 |
Множення | * | c = 8*2 | c = 16 |
Ділення | / | d = 7/2 | d = 3.5 |
Обчислення неповної частки від ділення | // | e = 7//2 | e = 3 |
Обчислення остачі | % | f = 7%2 | f = 1 |
Піднесення до степеня | ** | j = 7**2 | j = 49 |
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Арифметичні вирази записують у вигляді лінійного ланцюжка, а порядок дій, зокрема для дробів, визначають дужками.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Перетворення типу даних
Присвоїмо
змінній а значення виразу:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Стандартні математичні функції
У мові Python для розв’язування різних задач існують вбудовані (стандартні) функції. Їх можна використовувати без підключення модулів. Деякі з них описано в таблиці:
Функція
Що повертає
Приклад
Результат
abs(x)
|x| — модуль x
у = abs(-2.5)
у = 2.5
divmod(a, b)
Неповну частку і остачу від ділення а на b
с, d = divmod(7, 3)
с = 2
d = 1
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Стандартні математичні функції
round(num[,n])
Число num, округлене до n знаків після коми; якщо аргументу n немає, повертає найближче ціле
х = 1.5278
у = round(x)
z = round(x, 2)
y = 2
z = 1.53
eval(s)
Значення арифметичного виразу, запис якого зберігається в рядку s
а = eval("(3+21)/3+4")
а = 12.0
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Випадкові числа
Ви вже застосовували випадкові числа для створення ігрових або тестових програм.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Випадкові числа
from random import*
Згадаймо: щоб використовувати функції для отримання випадкових чисел, слід завантажити модуль random:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Випадкові числа
Щоб отримати випадкове число, необхідно викликати одну з функцій:
number1 = 10+random()*50 # Значення від 10.0 до 60.0
print(number1)
# Може бути виведено 52.493371860628294
ціле з діапазону від х1 до х2 (х1х2)
randint(x1, х2)
дробове з проміжку від 0.0 до 1.0
random()
Дробові числа з інших діапазонів отримують за допомогою математичних операцій:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Питання для самоперевірки
Результат перевірте в консолі Python.
а) 123//100; б) 123%10; в) 123//10%10.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Розгадайте ребус
«Ребуси українською» © rebus1.com
Перетворення
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Домашнє завдання
Проаналізувати
с. 179-184
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Працюємо за комп’ютером
Сторінка
184
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 30
Дякую за увагу!
Нова українська школа
Урок 39
Інформатика 7
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.