8«В» — Переписывание самостоятельной работы №2.
Задача 1. «Шифруем массив»
Дан список целых чисел. Постройте по нему новый список такой же длины,
в котором i-ый элемент равен сумме i-го и
всех предыдущих элементов исходного списка.
Выведите построенный список.
Задача 2. «Имя директории»
Напишите функцию, которая извлекает из полного адреса файла название каталога.
Например, из адреса /programs/commonfiles/home/Kirill/file1.doc
нужно извлечь название каталога /programs/commonfiles/home/Kirill/
(И конечно же, напишите программу для проверки этой функции!)
Задача 3. «Большой сдвиг»
Дан список из N (1 ≤ N ≤ 100000) целых чисел и число K
(|K| < 100000).
Циклически сдвиньте список на |K| элементов вправо,
если K — положительное, и влево, если отрицательное число.
Программа получает на вход список целых чисел, затем число K.
Пример
Ввод |
Вывод |
15 3 72 44 6 3 |
72 44 6 15 3 |
15 3 72 44 6 -9 |
6 15 3 72 44 |
Задача 4. «Переставьте слова»
Дана строка со словами, разделёнными пробелами.
Создайте строку, в которой переставлены соседние слова:
1-е слово исходной строки переставлено со 2-м, 3-е с 4-м и т.д.
Если слов — нечётное число, то последнее остаётся на месте.
Выведите созданную строку.
Задача 5. «Числа в некотором порядке»
Дан список чисел и дан делитель D≥2. Выведите числа списка в следующем порядке:
сначала выводятся все числа кратные D в том же порядке, как в исходном списке,
затем — все числа с остатком 1 при делении на D (порядок —
как в исходном списке), затем — все с остатком 2 (в исходном порядке), и т.д.,
под конец — все числа с остатком D-1 при делении на D (тоже в исходном порядке).
Обязательно напишите и используйте хотя бы одну функцию.
Пример
Ввод |
Вывод |
-11 3 17 0 444 35 1 3 |
3 0 444 -11 1 17 35 |
Задача 6. «Принадлежит ли точка области»
Проверьте, принадлежит ли точка данной закрашенной области:
На рисунке сетка проведена с шагом 1.
Решение оформите в виде функции isPointInArea(x, y),
которая возвращает True, если точка принадлежит закрашенной области,
и False, если не принадлежит (для граничных точек функция может вернуть
любой результат).
Основная программа должна считать координаты точки, вызвать функцию isPointInArea
и, в зависимости от возвращённого значения, вывести на экран необходимое сообщение.
Задача 7. «Значение выражения»
Напишите программу, которая вычисляет значение арифметического выражения,
содержащего только целые числа и знаки сложения и вычитания.
Выражение записано в символьной строке.
Не забудьте о существовании унарных + и -.
Нельзя пользоваться стандартной функцией Python'а eval, вычисляющей выражение!
Пример
Ввод |
Вывод |
-25+3+7-100 |
-115 |