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

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

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

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

1. Знакомство. Простые задачи.

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

 

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

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

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

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

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

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