- •Ссылки на лекции
- •Лабораторная работа № 2. Приложение линейной структуры
- •Лабораторная работа № 3. Техника проведения процесса отладки
- •Лабораторная работа № 4. Работа с массивами.
- •Лабораторная работа № 5. Исследование основных операций python
- •Лабораторная работа № 6. Изучение программ с ветвлением и циклами
- •Лабораторная работа № 7. Изучение программ с ветвлением.
- •Лабораторная работа № 8. Изучение проверки типов данных.
- •Лабораторная работа № 9. Алгоритмы с массивами и функциями.
- •Лабораторная работа № 10. Классы
- •Лабораторная работа № 11. Классы. Свойства и наследие.
- •Лабораторная работа № 12. Основные принципы Numpy
- •Лабораторная работа № 13. Решение задач с numpy
- •Лабораторная работа № 14. Линейные уравнения
- •Лабораторная работа № 15. Загрузка и подготовка данных
- •Лабораторная работа № 16. Линейная регрессия
- •Лабораторная работа № 17. Линейная регрессия нескольких параметров
- •Лабораторная работа № 18. Оптимизация минимизации
- •Лабораторная работа № 19. Полиномиальная регрессия
- •Лабораторная работа № 20. Логистическая регрессия
Лабораторная работа № 7. Изучение программ с ветвлением.
Цель работы: Научиться писать алгоритмы с ветвлением.
Дано. Есть 20 массивов с элементами. Количество элементов от 1 до 100. s взять из работы № 6:
import random
random.seed(s)
seqs = [[random.random() for _ in range(random.randint(1,100))] for _ in range(20)]
for seq in seqs:
# Ваш код
Найти. Количество N элементов в каждом массиве. Вывести их в формате: "В массиве N элементов". Вывод должен быть правильный с точки зрения русского языка в зависимости от количества элементов.
Лабораторная работа № 8. Изучение проверки типов данных.
Цель работы. Научиться проверять типы данных.
Дано. Длины сторон треугольника ненулевой площади (наборы из трёх значений произвольных типов).
Создать.
1. Набор функций, проверяющих правильность заданных наборов (являются ли положительными числами, может ли быть такой треугольник, т.д.)
2. Функции, определяющие, является ли треугольник равнобедренным и равносторонним.
3. Создать программу, проверяющую треугольник, находящую его равнобедренность и разносторонность в случае успешной проверке, и выводящую результат.
Лабораторная работа № 9. Алгоритмы с массивами и функциями.
Цель работы: изучить алгоритмы и методы их анализа
Дано: Массив из 10, 100 и 1000 элементов (s взять из работы № 6)
import random
random.seed(s)
seq10 = [random.random() for _ in range(10)]
seq100 = [random.random() for _ in range(100)]
seq1000 = [random.random() for _ in range(1000)]
Функция сравнения (возвращает True, если x должен быть левее y):
def comp(x,y): # x, y -- float
return x < y
Создать функцию, сортирующую список seq по заданной функции сравнения comparator():
def my_sort(seq, comparator):
# Ваш код
Оценить зависимость времени работы от количества элементов массива, например с помощью модуля time. Для более точной оценки времени, сортировку следует проводить несколько раз (n) и определить среднее время:
import time
start_time = time.time()
n = 10
for i in range(n):
my_sort(seq10, comp)
print((time.time() - start_time) / n)
Сделать выводы.
Пример работы алгоритма:
seq = [1, 3, 2]
def comp(x,y):
return x < y
my_sort(seq, comp)
print(seq) # 1, 2, 3
Лабораторная работа № 10. Классы
Цель работы: научиться создавать и использовать классы.
Задача. Создать класс Треугольник. Треугольник должен задаваться своими вершинами (3 пары дробных значений). Должны быть проверки, что значения правильные.
В классе должны быть реализованы методы нахождения медиан, высот, равнобедренности, равносторонности, площади, периметра. Кроме того, в классе надо реализовать метод вывода треугольника в текстовом виде (например print(treyg)).
И должна быть функция, определяющая равенство треугольников treyg1 == treyg2 (треугольники равны, если равны длины их сторон). object.__eq__(self, other)
Проверить работу класса на примере треугольника из лабораторной работы № 2 : Вывести треугольник, медианы, высоты.
Пример кода, использующего класс Треугольник (значения могут быть не округленные, названия функций и класса могут быть свои):
t = Triangle((1., 0.), (0., 0.), (0., 1.))
# t = Triangle([], 'ab', (0.,0.)) # Эта строка выводит TypeError
print(t.medians()) # (1.118, 1.118, 0.707)
print(t.heights()) # (1.0, 1.0, 0.707)
print(t.equilateral()) # False
print(t.isosceles()) # True
print(t.perimetr()) # 3.414
print(t.area()) # 0.5
t2 = Triangle((1., 0.), (1., 1.), (0., 1.))
if t == t2:
print('Треугольники равны') #Выполняется это условие
else:
print('Треугольники не равны')
print(t) # Треугольник (1.0, 0.0), (0.0, 0.0), (0.0, 1.0)
