Учебный ресурс кафедры физики твёрдого тела ФТИ ПетрГУ

Программирование на Python. Лабораторные занятия.

Задания выполняются в течение семестра под руководством преподавателя. Для оценки успеваемости используется балльно-рейтинговая система: суммируется общий балл всех выполненных заданий. По каждому из нижеприведённых разделов нужно набрать не менее 10 баллов. Для зачёта по курсу нужно набрать не менее 60 баллов. Можно выбрать из каждого раздела только те задачи, которые интересны для вас и которые дадут необходимое количество баллов. Можно решить все задачи, если хочется.

На занятиях можно пользоваться любыми доступными Интернет-ресурсами. Для новичков в Python имеет смысл до решения задач познакомиться с основами языка, например, на ресурсе https://pythontutor.ru/. При выполнении заданий следует вводить в программы элементы защиты от некорректно введённых исходных данных и снабжать программу комментариями. Неправильно написанная программа не приносит баллов. Программа, являющаяся точной копией уже принятой преподавателем у другого студента, также никак не оценивается. Преподаватель может попросить вас изменить или дополнить алгоритм: это приносит дополнительные баллы за решение задачи.

1. Знакомство. Простые задачи. (10 баллов)

Основы программирования на Python. Основные синтаксические конструкции языка. Терминальный ввод-вывод.

 

Задача 1 (2 балла). Вводится год (целое положительное число). Программа должна определить, является ли введённый год високосным. В соответствии с григорианским календарем, год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.

Задача 2 (2 балла). Даны декартовы координаты двух точек на плоскости: (x1, y1) и (x2, y2). Написать программу, которая найдёт коэффициенты в уравнении прямой y=ax+b, проходящей через эти точки.

Задача 3 (2 балла). Улитка ползет по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползет до вершины шеста? Программа получает на вход натуральные числа h, a, b. Программа в качестве ответа должна вывести одно натуральное число. Следует убедиться, что a > b.

Задача 4 (3 балла). Программа должна найти и показать 1000-й член ряда Фибоначчи. Ряд Фибоначчи - числовая последовательность, в которой первые два числа равны 0 и 1, а каждое последующее число равно сумме двух предыдущих чисел (0, 1, 1, 2, 3, 5, 8, 13, 21, 34 и т. д.).

Задача 5 (3 балла). Дана функция y= 2*x**2 + 3*x + 1. Нужно найти минимум функции на отрезке [-4, 2] с точностью 0.01 любым способом, однако при этом нельзя пользоваться никакими библиотеками.

Задача 6 (5 баллов). Вводится целое число. Программа отображает это число в увеличенном виде в окне терминала - например, составляет каждую цифру введённого числа из символов "*" (как на рисунке) или же из случайных символов. Пользоваться дополнительными модулями (типа art) в данном случае не разрешается.