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

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

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

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

В описание заданий постоянно вносятся изменения, поскольку курс сейчас находится в состоянии разработки.

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

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

 

Задача 0 (1 балл). Написать программу перевода введённого пользователем значения длины в метрах в длину в аршинах. 1 аршин равен 0.7112 метра.

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

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

Задача 3 (2 балла). Написать программу, которая знакомится с пользователем и просит его ввести о нём различные данные: фамилию, имя, пол, дату рождения (пусть посчитает возраст), хобби и т. п. Результаты опроса затем отображаются.

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

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

Задача 6 (4 балла). Написать программу экспресс-тестирования. Программа задаёт пользователю несколько вопросов (или задач), принимает ответы и анализирует количество верных ответов. Можно, например, вводить номер правильного ответа, если выводится набор возможных ответов на вопрос. Программа должна обрабатывать ситуации, связанные с некорректным ответом пользователя на поставленный вопрос (например, ввод номера ответа, которого нет в списке, либо нажатие <Enter> вместо ответа на вопрос).

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