Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи для самостоятельного решения при подгото...doc
Скачиваний:
1
Добавлен:
20.08.2019
Размер:
61.44 Кб
Скачать

Задачи для самостоятельного решения при подготовке к олимпиадам студентов рг крипт

При решении задач необходимо учитывать:

  • если в условии сказано «дан массив » или «дан файл», это означает, что этот файл или массив надо создать самому;

  • в задачах с массивами индексы элементов указаны как подстрочные индексы (А1, А2 и т.д. ). В задачах надо указывать индексы по правилам языка Паскаль: A[1], A[2], … ;

  • если указан размер массива N, то размер надо описать как константу; для матрицы запись «размера M  N» означает, что она имеет M строк и N столбцов; «матрица размера N» означает, что в матрице N строк и N столбцов.

Массивы

Array26. Ввести целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные (положительные и отрицательные) числа. Если чередуются, то вывести 0, если нет, то вывести индекс первого числа, нарушающего закономерность.

Array31. Ввести массив ненулевых чисел размера N. Найти индексы элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные индексы выводить в порядке их возрастания.

Array35. Ввести целочисленный массив размера N. Найти минимальный из его локальных максимумов (локальный максимум – это элемент, который больше любого из своих соседей).

Array38. Ввести целочисленный массив размера N. Найти количество участков, на которых его элементы монотонно убывают.

Array83. Ввести целочисленный массив размера N. Осуществить циклический сдвиг элементов массива вправо на одну позицию (при этом А1 перейдет в А2, А2 – в А3, …, АN – в А1).

Array98. Ввести целочисленный массив размера N. Удалить из массива все элементы, встречающиеся менее трех раз. Вывести размер полученного массива и его содержимое.

Матрицы

Matrix11. Ввести матрицу размера M  N. Вывести её элементы в следующем порядке: первая строка слева направо, вторая строка справа налево, третья строка слева направо, четвертая строка справа налево и т.д.

Matrix13. Ввести матрицу размера M ´ М. Начиная с элемента А1,1, вывести её элементы следующим образом («уголками»): все элементы первой строки; элементы последнего столбца, кроме первого (уже выведенного) элемента; элементы второй строки, кроме последнего (уже выведенного) элемента; оставшиеся элементы предпоследнего столбца и т.д.; последним выводится элемент АМ,1.

Matrix16. Ввести матрицу размера M ´ М (М – нечетное число). Начиная с элемента А1,1 и перемещаясь против часовой стрелки, вывести её элементы по спирали: первый столбец, последняя строка, последний столбец в обратном порядке, первая строка в обратном порядке, оставшиеся элементы второго столбца и т.д.; последним выводится центральный элемент матрицы.

Matrix25. Ввести матрицу размера M ´ N. Найти номер её строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.

Matrix28. Ввести матрицу размера M ´ N. Найти минимальный среди максимальных элементов её столбцов.

Matrix50. Ввести матрицу размера M ´ N. Преобразовать матрицу, поменяв местами минимальный и максимальный элементы в каждом столбце.

Matrix54. Ввести матрицу размера M ´ N. Поменять местами столбец с номером N и первый из столбцов, содержащий только отрицательные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений.

Matrix58. Ввести матрицу размера M ´ N (M, N – четные числа). Поменять местами левую нижнюю и правую верхнюю четверти матрицы.

Matrix63. Ввести матрицу размера M. Удалить строку, содержащую минимальный элемент матрицы.

Matrix83. Ввести квадратную матрицу размера M ´ М. Найти сумму элементов каждой её диагонали, параллельной побочной (начиная с одноэлементной диагонали А1,1).

Строки

String21. Ввести целое число. Вывести набор символов, содержащий цифры этого числа в обратном порядке.

String22. Ввести строку, изображающую целое число. Вывести сумму цифр этого числа.

String23. Ввести строку, изображающую арифметическое выражение вида «<цифра><цифра>…<цифра>», где на месте знака операции «» находится символ «+» или «–» (например, «4+7-2+8»). Вывести значение данного выражения (целое число).

String27. Ввести целые числа N1, N2 и строки S1, S2. Получить из этих строк новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2 (в указанном порядке).

String39. Ввести строку, содержащую, по крайней мере, один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелами исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

String46. Ввести строку, состоящую из слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.

String48. Ввести строку, состоящую из слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «МИНИ.У.». Количество пробелов между словами не изменять.

String62. Ввести строку-предложение. Зашифровать её, выполнив циклическую замену каждой буквы на следующую за ней в алфавите и сохранив при этом регистр букв («А» перейдет в «Б», «а» – в «б», «Б» – в «В», «я» – в «а» и т.д.). Букву «ё» в алфавите не учитывать («е» должна переходить в «ж»). Знаки препинания и пробелы не изменять.