Основы программирования на Python Каширский / методички / Лабораторная работа № 6 2025 (2)
.pdfУсловия:
•N - случайное целое число от 5 до 12 (использовать random)
•Для вычисления корня использовать функцию sqrt() из модуля math
•Для возведения в степень использовать функцию pow() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 18
Задание: Вычислить сумму углов в радианах, преобразованных в градусы.
Формула: S = degrees(1) + degrees(2) + degrees(3) + ... + degrees(N)
Условия:
•N - случайное целое число от 5 до 15 (использовать random)
•Для преобразования радианов в градусы использовать функцию degrees() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 19
Задание: Вычислить сумму гиперболических косинусов натуральных чисел.
Формула: S = cosh(1) + cosh(2) + cosh(3) + ... + cosh(N)
Условия:
•N - случайное целое число от 3 до 8 (использовать random)
•Для вычисления гиперболического косинуса использовать функцию cosh() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 20
Задание: Вычислить сумму арккосинусов от 1/i для i от 1 до N.
Формула: S = arccos(1/1) + arccos(1/2) + arccos(1/3) + ... + arccos(1/N)
Условия:
•N - случайное целое число от 5 до 10 (использовать random)
•Для вычисления арккосинуса использовать функцию acos() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 21
Задание: Вычислить сумму арксинусов от 1/i для i от 1 до N.
Формула: S = arcsin(1/1) + arcsin(1/2) + arcsin(1/3) + ... + arcsin(1/N)
Условия:
•N - случайное целое число от 5 до 10 (использовать random)
•Для вычисления арксинуса использовать функцию asin() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 22
Задание: Вычислить сумму гиперболических тангенсов натуральных чисел.
Формула: S = tanh(1) + tanh(2) + tanh(3) + ... + tanh(N)
Условия:
•N - случайное целое число от 5 до 12 (использовать random)
•Для вычисления гиперболического тангенса использовать функцию tanh() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 23
Задание: Вычислить сумму расстояний между точками (i, 0) и (0, i).
Формула: S = √(1²+1²) + √(2²+2²) + √(3²+3²) + ... + √(N²+N²)
Условия:
•N - случайное целое число от 5 до 15 (использовать random)
•Для вычисления корня использовать функцию sqrt() из модуля math
•Для возведения в степень использовать функцию pow() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 24
Задание: Вычислить сумму площадей прямоугольников со сторонами i и π×i.
Формула: S = 1×π×1 + 2×π×2 + 3×π×3 + ... + N×π×N
Условия:
•N - случайное целое число от 5 до 10 (использовать random)
•Для получения π использовать константу pi из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 25
Задание: Вычислить сумму периметров прямоугольников со сторонами i и e.
Формула: S = 2×(1+e) + 2×(2+e) + 2×(3+e) + ... + 2×(N+e)
Условия:
•N - случайное целое число от 5 до 15 (использовать random)
•Для получения e использовать константу e из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 26
Задание: Вычислить сумму выражений sin(i) + cos(i) для i от 1 до N.
Формула: S = (sin(1)+cos(1)) + (sin(2)+cos(2)) + ... + (sin(N)+cos(N))
Условия:
•N - случайное целое число от 5 до 12 (использовать random)
•Для вычисления синуса и косинуса использовать функции sin() и cos() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 27
Задание: Вычислить сумму выражений e^sin(i) для i от 1 до N.
Формула: S = e^sin(1) + e^sin(2) + e^sin(3) + ... + e^sin(N)
Условия:
•N - случайное целое число от 3 до 8 (использовать random)
•Для вычисления экспоненты использовать функцию exp() из модуля math
•Для вычисления синуса использовать функцию sin() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 28
Задание: Вычислить сумму выражений ln(1 + i²) для i от 1 до N.
Формула: S = ln(1+1²) + ln(1+2²) + ln(1+3²) + ... + ln(1+N²)
Условия:
•N - случайное целое число от 5 до 12 (использовать random)
•Для вычисления натурального логарифма использовать функцию log() из модуля math
•Для возведения в степень использовать функцию pow() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 29
Задание: Вычислить сумму выражений √(i³ + i) для i от 1 до N.
Формула: S = √(1³+1) + √(2³+2) + √(3³+3) + ... + √(N³+N)
Условия:
•N - случайное целое число от 5 до 10 (использовать random)
•Для вычисления корня использовать функцию sqrt() из модуля math
•Для возведения в степень использовать функцию pow() из модуля math
•Вычисление выполнить с помощью цикла for
Вариант 30
Задание: Вычислить сумму выражений atan(√i) для i от 1 до N.
Формула: S = atan(√1) + atan(√2) + atan(√3) + ... + atan(√N)
Условия:
•N - случайное целое число от 5 до 12 (использовать random)
•Для вычисления арктангенса использовать функцию atan() из модуля math
•Для вычисления корня использовать функцию sqrt() из модуля math
•Вычисление выполнить с помощью цикла for
Задание 2
Напишите скрипт, который будет делать то же самое, что и в задании 1, но используя функции numpy и векторные вычисления.
Задание 3
Напишите скрипт, который будет сравнивать время выполнения функций из заданий 1 и 2 для одного и того же значения N.
Задание 4
Напишите скрипт, который с помощью matplotlib будет строить график функции из задания 1 в зависимости от N.
Задание 5
Вариант 1
Задание: Создать программу для ведения списка дел. Программа должна:
•Читать существующий список дел из файла tasks.txt
•Добавлять новое дело в конец списка
•Выводить все дела на экран
•Сохранять обновленный список обратно в файл
Вариант 2
Задание: Написать программу для учета оценок студентов. Программа должна:
•Читать список студентов и их оценок из файла grades.txt
•Добавлять нового студента с оценкой
•Вычислять средний балл всех студентов
•Сохранять обновленные данные в файл
Вариант 3
Задание: Создать простой дневник. Программа должна:
•Читать предыдущие записи из файла diary.txt
•Добавлять новую запись с текущей датой
•Показывать последние 5 записей
•Сохранять все записи в файл
Вариант 4
Задание: Написать программу для подсчета слов в тексте. Программа должна:
•Читать текст из файла text.txt
•Подсчитывать количество слов
•Записывать результат в файл word_count.txt
•Выводить результат на экран
Вариант 5
Задание: Создать программу для ведения списка покупок. Программа должна:
•Читать список из файла shopping_list.txt
•Добавлять новые товары
•Отмечать купленные товары (удалять их из списка)
•Сохранять обновленный список
Вариант 6
Задание: Написать программу для учета книг в домашней библиотеке. Программа должна:
•Читать список книг из файла library.txt
•Добавлять новые книги (название, автор, год)
•Искать книги по автору
•Сохранять изменения в файл
Вариант 7
Задание: Создать программу для ведения списка контактов. Программа должна:
•Читать контакты из файла contacts.txt
•Добавлять новые контакты (имя, телефон)
•Искать контакт по имени
•Сохранять обновленный список
Вариант 8
Задание: Написать программу для записи идей. Программа должна:
•Читать идеи из файла ideas.txt
•Добавлять новые идеи
•Показывать случайную идею
•Сохранять все идеи в файл
Вариант 9
Задание: Создать программу для учета фильмов к просмотру. Программа должна:
•Читать список фильмов из файла movies.txt
•Добавлять новые фильмы
•Отмечать просмотренные фильмы
•Сохранять обновленный список
Вариант 10
Задание: Написать программу для ведения списка паролей. Программа должна:
•Читать данные из файла passwords.txt
•Добавлять новые записи (сайт, логин, пароль)
•Искать пароль по названию сайта
•Сохранять изменения в файл
Вариант 11
Задание: Создать программу для записи рецептов. Программа должна:
•Читать рецепты из файла recipes.txt
•Добавлять новые рецепты (название, ингредиенты)
•Искать рецепты по названию
•Сохранять рецепты в файл
Вариант 12
Задание: Написать программу для учета расходов. Программа должна:
•Читать записи о расходах из файла expenses.txt
•Добавлять новые расходы (дата, сумма, категория)
•Подсчитывать общую сумму расходов
•Сохранять данные в файл
Вариант 13
Задание: Создать программу для ведения списка дней рождений. Программа должна:
•Читать данные из файла birthdays.txt
•Добавлять новые записи (имя, дата рождения)
•Показывать ближайшие дни рождения
•Сохранять список в файл
Вариант 14
Задание: Написать программу для записи цитат. Программа должна:
•Читать цитаты из файла quotes.txt
•Добавлять новые цитаты (текст, автор)
•Показывать случайную цитату
•Сохранять цитаты в файл
Вариант 15
Задание: Создать программу для учета тренировок. Программа должна:
•Читать записи из файла workouts.txt
•Добавлять новые тренировки (дата, упражнения)
•Подсчитывать количество тренировок за месяц
•Сохранять данные в файл
Вариант 16
Задание: Написать программу для ведения списка целей. Программа должна:
•Читать цели из файла goals.txt
•Добавлять новые цели
•Отмечать выполненные цели
•Сохранять обновленный список
Вариант 17
Задание: Создать программу для записи снов. Программа должна:
•Читать записи снов из файла dreams.txt
•Добавлять новые записи с датой
•Искать записи по ключевым словам
•Сохранять все записи в файл
Вариант 18
Задание: Написать программу для учета времени за компьютером. Программа должна:
•Читать данные из файла computer_time.txt
•Добавлять новые записи (дата, время работы)
•Подсчитывать общее время за неделю
•Сохранять статистику в файл
Вариант 19
Задание: Создать программу для ведения списка подарков. Программа должна:
•Читать список из файла gifts.txt
•Добавлять новые идеи подарков
•Отмечать подаренные подарки
•Сохранять обновленный список
Вариант 20
Задание: Написать программу для записи аффирмаций. Программа должна:
•Читать аффирмации из файла affirmations.txt
•Добавлять новые аффирмации
•Показывать случайную аффирмацию
•Сохранять все в файл
Вариант 21
Задание: Создать программу для учета прочитанных книг. Программа должна:
•Читать список из файла read_books.txt
•Добавлять новые прочитанные книги
•Ставить оценку книге
•Сохранять данные в файл
Вариант 22
Задание: Написать программу для ведения списка привычек. Программа должна:
•Читать привычки из файла habits.txt
•Добавлять новые привычки
•Отмечать выполнение привычек за день
•Сохранять прогресс в файл
Вариант 23
Задание: Создать программу для записи мыслей. Программа должна:
•Читать мысли из файла thoughts.txt
•Добавлять новые мысли с временной меткой
•Искать мысли по ключевым словам
•Сохранять все записи в файл
Вариант 24
Задание: Написать программу для учета растений. Программа должна:
•Читать данные из файла plants.txt
•Добавлять новые растения (название, дата посадки)
•Отмечать поливы растений
•Сохранять информацию в файл
Вариант 25
Задание: Создать программу для ведения списка сериалов. Программа должна:
•Читать список из файла series.txt
•Добавлять новые сериалы
•Отмечать просмотренные серии
•Сохранять обновленный список
Вариант 26
Задание: Написать программу для записи инсайтов. Программа должна:
•Читать инсайты из файла insights.txt
•Добавлять новые инсайты
•Показывать случайный инсайт
•Сохранять все в файл
Вариант 27
Задание: Создать программу для учета путешествий. Программа должна:
•Читать записи из файла travels.txt
•Добавлять новые поездки (место, дата)
•Вести список достопримечательностей
•Сохранять данные в файл
Вариант 28
Задание: Написать программу для ведения списка навыков. Программа должна:
•Читать навыки из файла skills.txt
•Добавлять новые навыки для изучения
•Отмечать освоенные навыки
•Сохранять прогресс в файл
Вариант 29
Задание: Создать программу для записи благодарностей. Программа должна:
•Читать записи из файла gratitude.txt
•Добавлять новые благодарности за день
•Показывать записи за последнюю неделю
•Сохранять все благодарности в файл
Вариант 30
Задание: Написать программу для учета рабочих задач. Программа должна:
•Читать задачи из файла work_tasks.txt
•Добавлять новые задачи с приоритетом
•Отмечать выполненные задачи
•Сохранять обновленный список задач
Задание 6
Создайте программу, которая будет: открывать для чтения файл с данными в заданном формате (список, состоящий из словарей); создавать файл, если он отсутствует; сохранять в файл измененные данные; предлагать пользователю выполнить одно из указанных действий, пока он не выберет действие выхода из программы. Каждое действие, за исключением выхода из программы, должно быть реализовано в виде отдельной функции, а сами функции помещены в отдельный модуль. Функции, необходимые для работы с файлом, также должны быть помещены в этот модуль.
Вариант |
Тип файла |
Структура данных |
Действия |
|
||
1 |
csv |
База электронных компонентов |
• |
Добавить |
|
|
|
|
Описание: Хранит информацию о |
объект в конец. |
|
||
|
|
радиодеталях на складе. |
• |
Удалить |
|
|
|
|
Атрибуты объекта: |
объекты, у которых |
|||
|
|
• |
id (int): Уникальный |
указанный атрибут |
||
|
|
|
идентификатор компонента |
равен |
указанному |
|
|
|
• |
name (str): Человекочитаемое |
значению. |
|
|
|
|
|
название (например, "Резистор |
• |
Вывести |
на |
|
|
|
10кОм") |
экран |
объект |
с |
|
|
• type (str): Тип компонента |
указанным |
|
||
|
|
|
(резистор, конденсатор, |
номером. |
|
|
|
|
|
микросхема) |
• |
Выход |
из |
|
|
• |
characteristic_value (float): |
программы. |
|
|
|
|
|
Основная характеристика |
|
|
|
|
|
|
(сопротивление, ёмкость) |
|
|
|
|
|
• power_rating (float): Допустимая |
|
|
|
|
|
|
|
мощность (Вт) |
|
|
|
|
|
• package (str): Тип корпуса (TO-92, |
|
|
|
|
|
|
|
0805, DIP-8) |
|
|
|
|
|
• inventory (int): Количество на |
|
|
|
|
|
|
|
складе |
|
|
|
|
|
• tags (list): Список тегов для |
|
|
|
|
|
|
|
|
поиска (["smd", "pull-up", "filter"]) |
|
|
|
|
2 |
бинарный |
База датчиков и сенсоров |
• |
Добавить |
|
||
|
|
Описание: Содержит информацию о |
объект в начало. |
|
|||
|
|
подключенных датчиках и их текущем |
• |
Удалить |
|
||
|
|
состоянии. |
объект с указанным |
||||
|
|
Атрибуты объекта: |
номером. |
|
|
||
|
|
• |
sensor_id (str): Уникальный |
• |
Вывести |
на |
|
|
|
|
идентификатор датчика |
экран |
объекты, |
у |
|
|
|
• model (str): Модель датчика |
которых указанный |
||||
|
|
|
(DHT22, HC-SR501) |
атрибут |
равен |
||
|
|
• measurement_type (str): Тип |
указанному |
|
|
||
|
|
|
измерений (температура, |
значению. |
|
|
|
|
|
|
движение, освещенность) |
• |
Выход |
|
из |
|
|
• |
current_value (float): Текущее |
программы. |
|
|
|
|
|
|
показание датчика |
|
|
|
|
|
|
• is_active (bool): Активен ли |
|
|
|
|
|
|
|
|
датчик |
|
|
|
|
|
|
• gpio_pin (int): Номер |
|
|
|
|
|
|
|
|
подключенного GPIO пина |
|
|
|
|
|
|
• last_calibration (str): Дата |
|
|
|
|
|
|
|
|
последней калибровки |
|
|
|
|
|
|
• supported_units (list): Список |
|
|
|
|
|
|
|
|
поддерживаемых единиц |
|
|
|
|
|
|
|
измерения |
|
|
|
|
3 |
csv |
Каталог микроконтроллеров и плат |
• |
Добавить |
|
||
|
|
разработки |
объект |
после |
|||
|
|
Описание: Характеристики различных |
объекта |
|
с |
||
|
|
плат для разработки. |
указанным |
|
|
||
|
|
Атрибуты объекта: |
номером. |
|
|
||
|
|
• name (str): Название платы |
• |
Удалить |
|
||
|
|
|
(Arduino Uno, Raspberry Pi) |
последний объект. |
|||
|
|
• core (str): Процессор/ядро |
• |
Вывести |
на |
||
|
|
|
(ATmega328P, Cortex-A72) |
экран |
объекты |
с |
|
|
|
• |
clock_speed (int): Тактовая |
номерами |
|
из |
|
|
|
|
частота (МГц) |
указанного |
|
|
|
|
|
• |
flash_memory (int): Объем |
диапазона. |
|
|
|
|
|
|
памяти (КБ) |
• |
Выход |
|
из |
|
|
• |
operating_voltage (float): Рабочее |
программы. |
|
|
|
|
|
|
напряжение (В) |
|
|
|
|
|
|
• digital_io_pins (int): Количество |
|
|
|
|
|
|
|
|
цифровых пинов |
|
|
|
|
|
|
• communication_protocols (list): |
|
|
|
|
|
|
|
|
Список поддерживаемых |
|
|
|
|
|
|
|
протоколов (["I2C", "SPI", "UART"]) |
|
|
|
|
4 |
бинарный |
Измерения с осциллографа |
• |
Добавить |
|
||
|
|
Описание: Результаты измерений и |
объект в конец. |
|
|||
|
|
параметры сигналов. |
• |
Удалить |
|
||
|
|
Атрибуты объекта: |
первый объект. |
|
|||
|
|
• |
measurement_id (int): |
• |
Вывести |
на |
|
|
|
|
Уникальный идентификатор |
экран |
объекты |
с |
|
|
|
|
измерения |
номерами |
|
из |
|
|
|
• |
channel (str): Канал |
указанного |
|
|
|
|
|
|
осциллографа (CH1, CH2) |
диапазона. |
|
|
|
|
|
• |
voltage_pp (float): Размах |
• |
Выход |
из |
|
|
|
|
напряжения (В) |
программы. |
|
|
|
|
|
• |
frequency (float): Частота |
|
|
|
|
|
|
|
сигнала (Гц) |
|
|
|
|
|
|
• time_per_division (str): Время на |
|
|
|
|
|
|
|
|
деление |
|
|
|
|
|
|
• signal_shape (str): Форма |
|
|
|
|
|
|
|
|
сигнала (синус, меандр) |
|
|
|
|
|
|
• |
timestamp (str): Временная |
|
|
|
|
|
|
|
метка измерения |
|
|
|
|
|
|
• notes (list): Список заметок о |
|
|
|
|
|
|
|
|
сигнале |
|
|
|
|
5 |
csv |
Логические элементы и микросхемы |
• |
Добавить |
|
||
|
|
Описание: Параметры цифровых |
объект в начало. |
|
|||
|
|
микросхем. |
• |
Удалить |
|
||
|
|
Атрибуты объекта: |
объекты, у которых |
||||
|
|
• |
part_number (str): Номер |
указанный |
атрибут |
||
|
|
|
компонента (74HC00, CD4081) |
равен |
указанному |
||
|
|
• name (str): Описание (Четыре 2- |
значению. |
|
|
||
|
|
|
И элемента И-НЕ) |
• |
Вывести |
на |
|
|
|
• |
technology (str): Технология |
экран |
объект |
с |
|
|
|
|
(CMOS, TTL) |
указанным |
|
|
|
|
|
• |
supply_voltage_min (float): |
номером. |
|
|
|
|
|
|
Минимальное напряжение |
• |
Выход |
из |
|
|
|
|
питания |
программы. |
|
|
|
|
|
• supply_voltage_max (float): |
|
|
|
|
|
|
|
|
Максимальное напряжение |
|
|
|
|
|
|
|
питания |
|
|
|
|
|
|
• propagation_delay (int): |
|
|
|
|
|
|
|
|
Задержка распространения (нс) |
|
|
|
|
|
|
• truth_table (list): Таблица |
|
|
|
|
|
|
|
|
истинности в виде списка |
|
|
|
|
|
|
|
списков |
|
|
|
|
6 |
бинарный |
Студенческие проекты |
• |
Добавить |
|
||
|
|
Описание: Информация о учебных |
объект в начало и в |
||||
|
|
проектах и их прогрессе. |
конец. |
|
|
||
|
|
Атрибуты объекта: |
• |
Удалить |
|
||
|
|
• |
project_id (str): Уникальный |
объекты |
|
с |
|
|
|
|
идентификатор проекта |
номерами |
больше |
||
|
|
• title (str): Название проекта |
указанного. |
|
|
||
|
|
• |
student_name (str): ФИО |
• |
Вывести |
на |
|
|
|
|
студента |
экран |
объекты |
с |
|
|
|
• |
main_mcu (str): Основная |
номерами |
|
из |
|
|
|
|
используемая плата |
|
|
|
|
