8«В» — Самостоятельная работа №2. Вариант A.
Задача 1.
Вводится строка, в которой сначала записана фамилия человека, а затем через 1 пробел – его имя, например “Агафонов Федор”.
А) найти позицию пробела, разделяющего фамилию и имя
Б) выделить из строки фамилию и записать её в переменную surname
В) выделить из строки имя и записать его в переменную name
Г) приписать перед фамилией первую букву имени, точку и пробел
Пример: “Агафонов Федор” -> ”Ф. Агафонов”
(Чуть более сложный вариант: пробелов может быть несколько, и пробелы могут быть в начале и в конце вводимой строки.)
Задача 2. «Значение выражения»
Напишите программу, которая вычисляет значение арифметического выражения,
содержащего только целые числа и знаки сложения и вычитания.
Выражение записано в символьной строке.
Не забудьте о существовании унарных + и -.
Задача 3. «Победители олимпиады»
Даны два списка: список участников олимпиады и список набранных ими баллов.
Победителем олимпиады считается школьник (или несколько школьников), набравший наибольший балл
среди участников.
Напишите программу, которая выведет фамилию победителя (или победителей, если их несколько).
В первой строке через пробел вводятся фамилии участников. Во второй строке через
пробел вводятся набранные ими баллы (целые неотрицательные числа).
Гарантируется, что количества элементов в первом и втором списках одинаковы.
Выведите фамилию победителя. Если победителей несколько, выведите их фамилии через пробел.
При этом фамилии должны быть выведены в том же порядке, в каком они идут в первой строке входных данных.
Примеры
Ввод |
Вывод |
Petrov Ivanov Sidorov
10 5 10 |
Petrov Sidorov |
Cheburashka Gena Shapoklyak Galya
20 2 3 7 |
Cheburashka |
Задача 4. «Заполнение по спирали»
Дано целое N > 0. Заполните двумерный массив размером N×N
числами от 1 до N×N по спирали, как показано в примерах.
Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.
Примеры
Ввод |
Вывод |
3 |
1 2 3 8 9 4 7 6 5 |
4 |
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 |
Задача 5. «Сжатие списка»
Дан список целых чисел. Требуется “сжать” его, переместив
все ненулевые элементы в левую часть списка, не меняя их порядок, а все нули — в правую
часть. Порядок ненулевых элементов изменять нельзя, дополнительный список использовать нельзя,
задачу нужно выполнить за один-два прохода по списку. Распечатайте полученный список.
Имейте ввиду, что метод pop(), выполненный для элемента из середины списка,
означает примерно полпрохода по списку!
Пример
Ввод |
Вывод |
4 0 5 0 3 0 0 5 |
4 5 3 5 0 0 0 0 |
Задача 6. «Кинотеатр»
В кинотеатре n рядов по m мест в каждом.
В двумерном массиве хранится информация о проданных билетах:
число 1 означает, что билет на данное место уже продан,
число 0 означает, что место свободно.
Поступил запрос на продажу k билетов на соседние места в одном ряду.
Определите, можно ли выполнить такой запрос.
Программа получает на вход числа n и m.
Далее идут n строк, содержащих по m чисел (0 или 1),
разделённых пробелами. Затем дано число k.
Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест.
Если таких рядов несколько, то выведите номер наименьшего подходящего ряда.
Если подходящего ряда нет, выведите число 0.
Пример
Ввод |
Вывод |
3 4 0 1 0 1 1 0 0 1 0 0 0 0 2 |
2 |