СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 08.06.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Практическое занятие №42

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Практическое занятие №42»

Практическое занятие №42 (1И)

Тема: Интерактивная среда программирование на Python. Ввод и вывод данных.

Цель работы: формирование теоретических и практических навыков работы на языке программирования Python

Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет

Время работы 2 часа

Теоретические сведения

Операции над числами с плавающей точкой могут вызывать ошибки и давать неожиданные результаты. Работа с типом float требует повышенного внимания.

Также отображение таких чисел конечно, несмотря на то что в математике имеются иррациональные числа (например, Пи, корень квадратный из двух).
При изучении темы следует обратить внимание на:


  1. Структуру числа с плавающей точкой (какие его части сохраняются в памяти и сколько бит занимает каждая);

  2. Конструктор типа float;

  3. Способы преобразования в целые числа (truncfloorceilinground);

  4. Правила округления.


Если вы можете избежать применения чисел с плавающей точкой, этим стоит воспользоваться, так как они могут давать при вычислениях ложные результаты с точки зрения математики. При необходимости точного итога на практике используют встроенный модуль decimal (десятичные числа) или fractions (дроби).

Ход работы

Задача 1

Напишите функцию to_float(num), которая преобразует любое число в число с плавающей точкой. Если в качестве аргумента передан другой тип данных, она возвращает «Невозможно преобразовать».


def to_float(num):

if isinstance(num, (int, float)):

return float(num)

return "Невозможно преобразовать"


# Тесты

print(to_float(12))

print(to_float(-1.762))

print(to_float(True))

print(to_float('Не число'))

print(to_float('2.2'))

Задача 2

Дано 4 числа. Нужно написать функцию avg_5(a, b, c, d), которая возвращает среднее арифметическое аргументов и округляет его до 5 знаков после запятой.


def avg_5(a, b, c, d):

return round((a + b + c + d) / 4, 5)


# Тесты

print(avg_5(1, 6, 7, 4))

print(avg_5(1.7, 6.2, 2, 6))

print(avg_5(3, -3.143223442, -4.76, 1.3902))

Задача 3

Функция mul_to_int(a, b) может принимать целые или вещественные числа. Если результат умножения аргументов не имеет значимых чисел после запятой, то она возвращает его в виде целого числа. В противном случае – в виде float.


def mul_to_int(a, b):

res = a * b

if float(res).is_integer():

return int(res)

return res


# Тесты

print(mul_to_int(2, 4))

print(mul_to_int(2.5, 4))

print(mul_to_int(2.2, 2))

Задача 4

Дан объем шара X куб. ед. Найдите радиус фигуры.


from math import pi

(3 * 36 / (4 * pi)) ** (1/3)

2.048352189765887

(3 * 1 / (4 * pi)) ** (1/3)

0.6203504908994001

(3 * 19.32 / (4 * pi)) ** (1/3)

1.6645857441456702

Задача 5

Напишите функцию округления round_standard(num), принимающую число с плавающей точкой и округляющую его до целого числа в соответствии с правилами школьной математики.


def round_standard(num):

if num = 0:

sign = 1

else:

sign = -1

return sign * int((abs(num) + 0.5))


# Тесты

print(round_standard(1.5))

print(round_standard(-2.5))

print(round_standard(1.6))

print(round_standard(5.11))

Задача 6

Так как в Python операции с вещественными числами могут давать неожиданные результаты (в частности, 0.1 + 0.2 не будет в точности равняться 0.3), стоит задача с этим как-то справляться. Требуется написать функцию eqv(a, b, c), которая принимает 3 числа. Числа a и b складываются. Затем эта сумма сравнивается с числом "с" с определенной степенью точности. Точность равняется 0.01 % от большего из чисел a и b. Функция вернет True, если выполняется равенство, иначе False.


def eqv(a, b, c):

res = a + b

e = 0.01 / 100 # Перевод процентов в долю

tolerance = e * max(abs(a), abs(b)) # Находим значение отклонения

return abs(res - c) # Определяем, меньше ли разница, чем отклонение


# Тесты

print(eqv(0.12, 0.31, 0.43))

print(eqv(0.1, 0.2, 0.3))

print(eqv(0.1, 0.2, 0.4))

print(eqv(-0.1, -0.2, -0.3))

Контрольные вопросы:

  1. Из каких трех элементов состоит тип данных float?

  2. Какие типы данных можно преобразовать в числа с плавающей точкой?


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!