Нерекурсивные подпрограммы
Массивы
Одномерные массивы
А
1. Дан массив натуральных чисел. Найти сумму элементов, кратных данному K.
2. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.
3. Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше – положительное или отрицательное.
4. Дана последовательность действительных чисел a1, a2, ..., an. Выяснить, будет ли она возрастающей.
5. Дана последовательность натуральных чисел a1, a2, ..., an. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.
6. Дана последовательность чисел a1, a2, ..., an. Указать наименьшую длину числовой оси, содержащую все эти числа.
7. Дана последовательность действительных чисел a1, a2, ..., an. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен.
8. Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.
9. Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
10. Даны действительные числа a1, a2, …, an. Поменять местами наибольший и наименьший элементы.
11. Даны целые числа a1 a2, .... аn. Вывести на печать только те числа, для которых выполняется условие аi ≤ i.
12. Даны натуральные числа a1, a2, ..., an. Указать те, у которых остаток от деления на Мравен L (0 ≤ L ≤ М – 1).
13. В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных.
14. При поступлении в вуз абитуриенты, получившие "двойку" на первом экзамене, ко второму не допускаются. В массиве A[n] записаны оценки экзаменующихся, полученные на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.
15. Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все числа, включительно до нуля.
16. В одномерном массиве размещены: в первых элементах значения аргумента, в следующих – соответствующие им значения функции. Напечатать элементы этого массива в nпараллельных столбцов (аргумент и значения функции).
17. Пригодность детали оценивается по размеру B, который должен соответствовать интервалу (A – δ, A + δ). Определить, имеются ли в партии из N деталей бракованные. Если да, то подсчитать их количество, иначе выдать отрицательный ответ.
18. У вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли-продажи в банках города. В городе Nбанков. Составьте программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли.
19. Дан целочисленный массив с количеством элементов n. Напечатать те его элементы, индексы которых являются степенями двойки (1, 2, 4, 8, 16, ...).
Б
20. Дан одномерный массив A[N]. Найти: mаx(а2, а4, ..., a2k) + min(а1, а3, …, a2k-1).
21. Дана последовательность действительных чисел a1, a2, ..., аn. Указать те ее элементы, которые принадлежат отрезку [с, d].
22. Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. Если таких нет, то выдать сообщение об этом.
23. Последовательность a1, a2, ..., аn состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.
24. Даны действительные числа a1, a2, ..., аn. Среди них есть положительные и отрицательные. Заменить нулями те числа, величина которых по модулю больше максимального числа (|ai| > max{a1, a2, ..., аn}).
25. Даны действительные числа а1, а2, ..., аn. Найти max(a1 + a2n, a2 + a2n-1, ..., аn + an+1).
26. В последовательности действительных чисел а1, а2, ..., аn есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1и произведение положительных элементов Р2. Сравнить модуль Р2 с модулем Р1 и указать, какое из произведений по модулю больше.
27. Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем.
28. Дана последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn. Вставить действительное число bв нее так, чтобы последовательность осталась неубывающей.
29. Даны целые положительные числа а1, а2, ..., an. Найти среди них те, которые являются квадратами некоторого числа m.
30. Дана последовательность целых чисел a1, a2, ..., аn. Образовать новую последовательность, выбросив из исходной те члены, которые равны min(a1, a2, ..., аn).
31. У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя равно tj (i = 1, …, n). Определить время Ci пребывания i-гo покупателя в очереди.
32. Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
33. В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
34. Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день опускается вниз на 1 см, В начале наблюдения улитка находится в A см от земли на B-метровом дереве. Имеется 30-элементный массив, содержащий сведения о том, был ли соответствующий день наблюдения пасмурным или солнечным. Написать программу, определяющую местоположение улитки к концу 30-го дня наблюдения.
35. Дан целочисленный массив с количеством элементов n. "Сожмите" массив, выбросив из него каждый второй элемент (дополнительный массив при этом не использовать).
36. Задан массив, содержащий несколько нулевых элементов. Сжать его, выбросив эти элементы.
37. Задан массив с количеством элементов N. Сформируйте два массива: в первый включите элементы исходного массива с четными номерами, а во второй – с нечетными.
38. Дана последовательность целых чисел a1, a2, ..., аn. Указать пары чисел аi, аj, таких, что аi + аj = m.
39. Даны целые числа a1, a2, ..., аn. Наименьший член этой последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения. Если в последовательности несколько наименьших членов, то заменить последний по порядку.
40. Даны целые числа а1, а2, ..., аn и b1, b2, ..., bn. Преобразовать последовательность bl, b2, ..., bn по правилу: если аi ≤ 0, то bi увеличить в 10 раз, иначе bi заменить нулем (i = 1, 2, ..., n).
41. Даны действительные числа а1, а2, ..., an. Требуется умножить все члены последовательности а1, а2, ..., an на квадрат ее наименьшего члена, если ak ≥ 0, и на квадрат ее наибольшего члена, если ak ≤ 0 (1 ≤ k ≤ n).
42. Даны координаты n точек на плоскости: (Х1, Y2), ..., (Хn, Yn) (n ≤ 30). Найти номера пары точек, расстояние между которыми наибольшее (считать, что такая дара единственная).
43. Дан массив чисел. Найти сумму элементов массива, расположенных между минимальным и максимальным элементами включительно.
44. Японская радиокомпания провела опрос N радиослушателей по вопросу: "Какое животное Вы связываете с Японией и японцами?" Составить программу получения k наиболее часто встречающихся ответов и их долей (в процентах).
45. Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся па цифру k.
46. Дан массив целых чисел. Найти в этом массиве минимальный элемент N и максимальный элемент M. Получить в порядке возрастания все целые числа из интервала (N; М), которые не входят в данный массив.
47. Дано действительное число x и массив A[n]. В массиве найти два члена, среднее арифметическое которых ближе всего к x.
48. Даны две последовательности а1, а2, ..., аn и b1, b2, ..., bm (m < n). В каждой из них члены различны. Верно, ли что все члены второй последовательности входят в первую последовательность?
49. Напишите программу, входными данными которой является возраст n человек. Программа подсчитывает количество людей, возраст которых находится в интервале 10 лет, а именно:
<..> человек имеет возраст в диапазоне 0 – 10 лет;
<..> человек имеет возраст в диапазоне 10 – 20 лет и т.д.
В
50. В одномерном массиве переставить элементы так, чтобы сначала располагались отрицательные элементы, потом нулевые, а затем положительные. Относительное расположение элементов не изменять.
51. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить минимальный радиус круга с центром в начале координат, который содержит все точки.
52. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить кольцо с центром в начале координат, которое содержит все точки.
53. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. (xi, yi – целые). Определить номера точек, которые могут являться вершинами квадрата.
54. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить номера точек, которые могут являться вершинами равнобедренного треугольника.
55. Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.
56. Дан одномерный массив чисел. Найти количество различных чисел этого массива.
57. Дан одномерный массив чисел, среди элементов которого есть одинаковые. Создать новый массив из различных элементов исходного массива.
58. Дан массив из n четырехзначных натуральных чисел. Вывести на экран только те, у которых сумма первых двух цифр равна сумме двух последних.
59. Даны две последовательности целых чисел а1, а2, ..., аn и b1, b2, ..., bm. Все члены последовательностей – различные числа. Найти, сколько членов первой последовательности совпадают с членами второй последовательности.
60. Даны два упорядоченные массива А и В. Образовать из элементов этих массивов упорядоченный массив С.
61. В массиве А каждый элемент равен 0, 1, 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы, и, наконец все двойки.
62. Дан массив А. Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю.
63. Дан целочисленный массив А и число М. Найти такое подмножество подряд идущих элементов массива, сумма значений элементов, которых равна М.
64. Даны два целочисленные массива. Определить, можно ли в первом из них выбрать такие k идущих подряд элементов Xj, Xj+1, ..., Xk-1, чтобы Xj = Y1, Xj+1 = Y2, ..., Xk-1 = Yk.
65. Найти длину самой длинной "пилообразной" (зубьями вверх) последовательности подряд идущих чисел Xk < Xk+1 > Xk+2 > ... > Xk+m < Xk+m+1 <...< Xn.
66. Дан массив А. Найти отрезок массива максимальной длины, в котором первое число равно последнему, второе – предпоследнему и т.д. Вывести этот отрезок и его длину.
67. Дан массив А. Циклически сдвинуть элементы массива на K элементов вправо (влево).
68. На плоскости n точек заданы своими координатами и также дана окружность радиуса R с центром в начале координат. Указать множество всех треугольников с вершинами в заданных точках, пересекающихся с окружностью; множество всех треугольников, содержащихся внутри окружности.
69. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Найти номера самых удаленных друг от друга точек и наименее удаленных друг от друга точек.
70. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить три точки, которые являются вершинами треугольника, для которого разность числа точек вне его и внутри является минимальной.
Сортировка массивов
71. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элементами первого, не используя дополнительный массив.
72. Даны две последовательности a1 ≤ a2 ≤ ... ≤ аn и b1 ≤ b2 ≤ ... ≤ bn. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей (дополнительный массив не использовать).
73. Сортировка выбором. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый – на место наибольшего. Затем, начиная со второго, эта процедура повторяется. Написать алгоритм сортировки выбором.
74. Сортировка обменами. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа аi и ai+1. Если аi > аi+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не станут расположены в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количество перестановок.
75. Сортировка вставками. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть а1, а2, ..., аi – упорядоченная последовательность, т.е. a1 ≤ a2 ≤ ... ≤ аi. Берется следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была также возрастающей. Процесс производится до тех пор, пока все элементы от i+1 до n не будут перебраны.
76. Сортировка Шелла. Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим образом: сравниваются два соседних элемента ai и аi+1. Если ai ≤ ai+1, то продвигаются на один элемент вперед. Если ai > ai+1, то производится перестановка и сдвигаются на один элемент назад. Составить алгоритм этой сортировки.
77. Пусть даны неубывающая последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn и действительные числа b1 ≤ b2 ≤ ... ≤ bm. Требуется указать те места, на которые нужно вставлять элементы последовательности b1, b2, ..., bm в первую последовательность так, чтобы новая последовательность оставалась возрастающей.
78. Даны дроби p1/q1, p2/q2, ..., pn/qn (pi, qi – натуральные). Составить программу, которая приводит эти дроби к общему знаменателю и упорядочивает их в порядке возрастания.
79. Алгоритм фон Неймана. Упорядочить массив а1, а2, ..., аn по неубыванию с помощью алгоритма сортировки слияниями: каждая пара соседних элементов сливается в одну группу из двух элементов (последняя группа может состоять из одного элемента), затем каждая пара соседних двухэлементных групп сливается в одну четырехэлементную группу и т.д. При каждом слиянии новая укрупненная группа упорядочивается.
Двумерные массивы
Сформировать квадратную матрицу порядка n по заданному образцу:
80. 81.
… | n | … | ||||||||||||
n | n-1 | n-2 | … | … | ||||||||||
… | n | … | ||||||||||||
n | n-1 | n-2 | … | … | … | … | … | … | … | … | ||||
… | … | … | … | … | n-1 | … | ||||||||
n | n-1 | n-2 | … | n | … |
(n – четное).
82. 83.
n | … | 1×2 | … | |||||||||||
n-1 | … | 2×3 | … | |||||||||||
n-2 | … | 3×4 | … | |||||||||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
… | … | (n-1)×n | ||||||||||||
… | … | n×(n+1) |
84. 85.
… | … | |||||||||||||
… | … | |||||||||||||
… | … | |||||||||||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
… | n-1 | n-1 | … | |||||||||||
… | n | … |
86. 87.
… | … | |||||||||||||
… | … | |||||||||||||
… | … | |||||||||||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
… | n-1 | n | n-1 | n | … | |||||||||
… | n-2 | n-1 | n | n | … |
88. 89.
n | … | … | n-2 | n-1 | n | |||||||||
n-1 | n | … | … | n-1 | n | |||||||||
n-2 | n-1 | n | … | … | n | |||||||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
… | n-1 | n | n-1 | n | … | |||||||||
… | n-2 | n-1 | n | n | … |
90. 91.
… | n | … | n-2 | n-1 | n | |||||||||
… | n-1 | … | n-3 | n-2 | n-1 | |||||||||
… | n-2 | … | n-4 | n-3 | n-2 | |||||||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
… | n-1 | n-1 | n-2 | n-3 | … | |||||||||
… | n | n | n-1 | n-2 | … |
92. Построить квадратную матрицу порядка 2n :
n | n | ||||||||
… | … | n | |||||||
… | … | ||||||||
… | … | … | … | … | … | … | … | ||
… | … | ||||||||
… | … | n | |||||||
… | … | ||||||||
… | … | … | … | … | … | … | … | ||
… | … |
93. Дано действительное число х. 94. Даны действительные числа а1, а2, ..., аn.
Получить квадратную матрицу порядка n + l : Получить квадратную матрицу порядка n :
x | x2 | … | xn-2 | xn-1 | xn | a1 | a2 | a3 | … | an-2 | an-1 | an | ||
x | … | xn-1 | a2 | a3 | a4 | … | an-1 | an | a1 | |||||
x2 | … | xn-2 | a3 | a4 | a5 | … | an | a1 | a2 | |||||
… | … | … | … | … | … | … | … | … | … | … | … | … | … | |
xn-1 | … | x | an-1 | an | a1 | … | an-4 | an-3 | an-2 | |||||
xn | xn-1 | xn-2 | … | x2 | x | an | a1 | a2 | … | an-3 | an-2 | an-1 |
95. Получить матрицу: 96. Получить матрицу:
… | … | ||||||||||
… | … | ||||||||||
… | … | … | … | … | … | ||||||
… | … | … | … | … | … | … | |||||
… | … |
97. Составить программу, которая заполняет квадратную матрицу порядка n натуральными числами 1, 2, 3, ..., n2, записывая их в нее "по спирали". Например, для n = 5 получаем следующую матрицу:
98. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n × n по часовой стрелке, начиная с блока в левом верхнем углу.
99. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n × n крест-накрест.
100. 101.
Дан линейный массив x1, х2, ..., хn-1, хn. Получить действительную квадратную матрицу порядка n:
x1 | x2 | … | xn-1 | xn | … | |||||
x12 | x22 | … | xn-12 | xn2 | x1 | x2 | … | xn-1 | xn | |
x13 | x23 | … | xn-13 | xn3 | x12 | x22 | … | xn-12 | xn2 | |
… | … | … | … | … | … | … | … | … | … | |
x1n | x2n | … | xn-1n | xnn | x1n-1 | x2n-1 | … | xn-1n-1 | xnn-1 |
102. 103.
Получить квадратную матрицу порядка n:
… | n-1 | n | … | ||||||||
n+1 | n+2 | … | 2n-1 | 2n | … | ||||||
2n+1 | 2n+2 | … | 3n-1 | 3n | … | ||||||
… | … | … | … | … | … | … | … | … | … | … | |
(n-1)n+1 | (n-1)n+2 | … | nn-1 | nn | … | n-1 |
104. Магическим квадратом порядка n называется квадратная матрица размера n × n, составленная из чисел 1, 2, ..., n2 так, что суммы по каждому столбцу, каждой строке и каждой из двух больших диагоналей равны между собой. Построить такой квадрат. Пример магического квадрата порядка 3:
105. Вычислить сумму и число положительных элементов матрицы A[N, N], находящихся над главной диагональю.
106. Дана вещественная матрица A размера n × m. Определить k – количество "особых" элементов массива A, считая его элемент особым, если он больше суммы остальных элементов его столбца.
107. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.
108. Дана матрица B[N, M]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно.
109. Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.
110. Элемент матрицы назовем "седловой" точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером n × m напечатать индексы (координаты) всех ее "седловых" точек.
111. Дана вещественная матрица размером n × m. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в верхнем левом углу.
112. Определить, является ли заданная целая квадратная матрица n-го порядка симметричной (относительно главной диагонали).
113. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
114. Упорядочить по возрастанию элементы каждой строки матрицы размером n × m.
115. Задана матрица размером n × m. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-гo столбца.
116. Дана квадратная матрица A[N, N]. Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. Вывести па печать нижнюю треугольную матрицу в общепринятом виде.
117. Дана действительная матрица размером n × m, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.
118. Дана действительная квадратная матрица порядка N (N – нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.
119. Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исходную матрицу по правилу: четные строки разделить на полученное значение, нечетные оставить без изменения.
120. Задана квадратная матрица. Получить транспонированную матрицу, т.е. матрицу, где столбцы и строки меняются местами.
121. Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить исходную матрицу и напечатать по строкам.
122. Задана матрица порядка n и число k. Разделить элементы k-й строки на диагональный элемент, расположенный в этой строке.
123. Для целочисленной квадратной матрицы найти число элементов, кратных k, и наибольший из полученных результатов.
124. Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами.
125. Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов.
126. В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
127. В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n – 1 путем отбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найденным значением.
128. Дана действительная квадратная матрица порядка n. Преобразовать матрицу по правилу: строку с номером n сделать столбцом с номером n, а столбец с номером n – строкой с номером n.
129. Пусть дана действительная матрица размером n × m. Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.
130. Определить номера тех строк целочисленной матрицы A[N, K], которые совпадают с массивом D[K]. Если таких строк нет, выдать соответствующее сообщение.
131. Определить наименьший элемент каждой четной строки матрицы A[М, N].
132. Расположить столбцы матрицы D[M, N] в порядке возрастания элементов k-ой строки (1 ≤ k ≤ М).
133. Определить номера строк матрицы R[M, N], хотя бы один элемент которых равен C, и элементы этих строк умножить на D.
134. Матрица A[N, М] (М кратно 4) разделена по вертикали на две половины. Определить сумму элементов каждого столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы A.
135. Дана квадратная целочисленная матрица порядка n. Сформировать результирующий одномерный массив, элементами которого являются строчные суммы тех строк, которые начинаются с k идущих подряд положительных чисел.
136. Дана матрица А. В каждой строке матрицы найти элемент с минимальным значением, затем среди этих значений найти максимальное значение. Напечатать элементы строки, в которой расположено найденное значение, и ее номер.
137. Дан двумерный массив А, каждый элемент которого равен 0, 1, 5 или 11. Подсчитать в нем количество четверок (Аj,k, Аj,k+1, Аj+1,k, Аj+1,k+1) в каждой из которых все элементы различные.
138. Дан двумерный массив А. Каждая строка массива упорядочена по не возрастанию. Найти числа, одновременно присутствующие во всех строках массива.
139. Дан двумерный массив А. Заменить нулями элементы массива, стоящие в строках или столбцах, где имеются нули.
140. "Тестирование коллектива". Пусть целочисленная матрица размером n × m содержит информацию об учениках некоторого класса из n человек. В первом столбце проставлена масса (кг), во втором – рост (см), в третьем – успеваемость (средний балл) и т.д. (используйте свои дополнительные показатели). Ученик называется среднестатистическим по k-му параметру (уникальным по k-му параметру), если на нем достигается минимум (максимум) модуля разности среднего арифметического чисел из k-го столбца и значения k-го параметра этого ученика. Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим) по самому большому количеству параметров. По данной матрице определить самых уникальных учеников и самых средних.
141. Лабиринт задан квадратной матрицей А. Аk = 0, если клетка "проходима"; Аk = 1, если клетка "непроходима". Начальное положение путника задается в проходимой клетке А = 0. Путник может перемещаться из одной проходимой клетки в другую, если они имеют общую сторону. Путник выходит из лабиринта, когда попадает в граничную клетку. Может ли путник выйти из лабиринта? Если может, то напечатать путь от выхода (в виде координат точек на маршруте) до начального положения путника. Путь должен иметь минимальную длину.
Подпрограммы
Во всех задачах этого раздела необходимо использовать подпрограммы.
Нерекурсивные подпрограммы
А
142. Треугольник задан координатами своих вершин. Составить программу вычисления его площади.
143. Составить программу нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел ( ) .
144. Составить программу нахождения наибольшего общего делителя четырех натуральных чисел.
145. Составить программу нахождения наименьшего общего кратного трех натуральных чисел.
146. Написать программу нахождения суммы большего и меньшего из 3-х чисел.
147. Вычислить площадь правильного шестиугольника со стороной a, используя подпрограмму вычисления площади треугольника.
148. На плоскости заданы своими координатами n точек. Составить программу, определяющую между какими из пар точек самое большое расстояние (координаты точек занести в массив).
149. Проверить, являются ли данные три числа взаимно простыми.
150. Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
151. Даны две дроби A/B и C/D (А, В, С, D – натуральные числа). Составить программу:
– деления дроби на дробь;
– умножения дроби на дробь;
– сложения этих дробей.
Ответ должен быть несократимой дробью.
152. На плоскости заданы своими координатами n точек. Создать матрицу, элементами которой являются расстояние между каждой парой точек.
153. Даны числа X, Y, Z, T – длины сторон четырехугольника. Вычислить его площадь, если угол между сторонами длиной X и Y – прямой.
154. Сформировать массив X(n), n-й член которого определяется формулой X(n) = 1 / n! .
155. Составить программу вычисления суммы факториалов всех четных чисел от m до n.
156. Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать количество произведенных замен.
157. Дан массив A(n). Сформировать массив B(m), элементами которого являются большие из рядом стоящих в массиве A чисел. Например, массив A состоит из элементов 1, 3, 5, -2, 0, 4, 0. Элементами массива B будут 3, 5, 4.
158. Дан массив A(n) (n – четное). Сформировать массив B(m), элементами которого являются средние арифметические соседних пар рядом стоящих в массиве A чисел. Например, массив A состоит из элементов 1, 3, 5, -2, 0, 4, 0, 3. Элементами массива B будут 2; 1,5; 2; 1,5 .
159. Дано простое число. Составить функцию, которая будет выводить следующее за ним простое число.
160. Составить функцию для нахождения наименьшего натурального делителя k (k ≠ 1) любого заданного натурального числа n.
Б
161. Дано натуральное число N. Составить программу формирования массива, элементами которого являются цифры числа N.
162. Составить программу, определяющую в каком из данных двух чисел больше цифр.
163. Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получить 651.
164. Даны натуральные числа К и N. Составить программу формирования массива A, элементами которого являются числа, сумма цифр которых равна K и которые не больше N.
165. Даны три квадратных матрицы A, B, C n-го порядка. Вывести на печать ту из них, норма которой наименьшая. Нормой матрицы считать максимум из абсолютных величин ее элементов.
166. Два натуральных числа называются "дружественными", если каждое из них равно сумме всех делителей (кроме его самого) другого (например, числа 220 и 284). Найти все пары "дружественных" чисел, которые не больше данного числа N.
167. Два простых числа называются "близнецами", если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары "близнецов" из отрезка [n, 2n], где n – заданное натуральное число большее 2.
168. Написать программу вычисления суммы для заданного числа n. Дробь p/q должно быть несократимой (p, q – натуральные).
169. Написать программу вычисления суммы 1 + 1/2 + 1/3 + … + 1/n для заданного числа n. Результат представить в виде несократимой дроби – p/q (p, q – натуральные).
170. Натуральное число, в записи которого n цифр, называется числом Амстронга, если сумма его цифр, возведенная в степень n, равна самому числу. Найти все эти числа от 1 до k.
171. Написать программу, которая находит и выводит на печать все четырехзначные числа вида , для которых выполняется: a, b, c, d – разные цифры; .
172. Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево.
173. Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
174. Найти, все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
175. Составить программу для нахождения чисел из интервала [M; N], имеющих наибольшее количество делителей.
176. Для последовательности составить программу печати k-го члена в виде обыкновенной несократимой дроби. Например, a2 = 3/2 , a3 = 19/10 .
177. Дано натуральное число n. Выяснить, можно ли представить n в виде произведения трех последовательных натуральных чисел.
178. На части катушки с автобусными билетами номера шестизначные. Составить программу, определяющую количество счастливых билетов на катушке, если меньший номер билета – N, больший – M (билет является счастливым, если сумма первых трех его цифр равна сумме последних трех).
179. Написать программу, определяющую сумму n-значных чисел, содержащих только нечетные цифры. Определить также, сколько четных цифр в найденной сумме.
180. Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т.д. Через сколько таких действий получится нуль?
181. Составить программу разложения данного натурального числа на простые множители. Например, 200 = 23 × 52 .
182. Дано натуральное число n. Найти все меньшие n числа Мерсена. Простое число называется числом Мерсена, если оно может быть представлено в виде 2P – 1 , где p – тоже простое число. Например, 31 = 25 – 1 – число Мерсена.
183. Дано четное число n > 2. Проверить для него гипотезу Гольдбаха: каждое четное n представляется в виде суммы двух простых чисел.
В
184. Реализовать набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида p/q (p – целое, q – натуральное): а) сложение; б) вычитание; в) умножение; г) деление; д) сокращение дроби; е) возведение дроби в степень n (n – натуральное); ж) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
1) Дан, массив A – массив обыкновенных дробей. Найти сумму всех дробей и вычислить их среднее арифметическое, результаты представить в виде несократимых дробей.
2) Дан массив A – массив обыкновенных дробей. Отсортировать его в порядке возрастания.
185. Реализовать набор подпрограмм для выполнения следующих операций над векторами: а) сложение; б) вычитание; в) скалярное умножение векторов; г) умножение вектора на число; д) нахождение длины вектора.
1) Дан массив A – массив векторов. Отсортировать его в порядке убывания длин векторов.
2) С помощью датчика случайных чисел сгенерировать 2N целых чисел. N пар этих чисел задают N точек координатной плоскости. Вывести номера тройки точек, которые являются координатами вершин треугольника с наибольшим углом.
186. Реализовать набор подпрограмм для выполнения следующих операций над натуральными числами в P-ичной системе счисления (2 ≤ Р ≤ 9) : а) сложение, вычитании, умножение, деление; б) перевод из десятичной системы счисления в P-ичную; в) перевод из P-ичной системы счисления в десятичную; г) функция проверки правильности записи числа в P-ичной системе счисления; д) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
1) Возвести число в степень (основание и показатель степени записаны в P-ичной системе счисления). Ответ выдать в P-ичной и десятичной системах счисления.
2) Дан массив A – массив чисел, записанных в P-ичной системе счисления. Отсортировать его в порядке убывания. Ответ выдать в P-ичной и десятичной системах счисления.
187. Реализовать набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления: а) сложение; б) вычитание; в) умножение; г) деление; д) перевод из двоичной системы счисления в шестнадцатеричную; е) перевод из шестнадцатеричной системы счисления в десятичную; ж) функция проверки правильности записи числа в шестнадцатеричной системе счисления; з) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
1) Возвести число в степень (основание и показатель степени записаны в шестнадцатеричной системе счисления). Ответ выдать в шестнадцатеричной и десятичной системах счисления.
2) Дан массив A – массив чисел, записанных в шестнадцатеричной системе счисления. Отсортировать его в порядке убывания. Ответ выдать в шестнадцатеричной и десятичной системах счисления.
Рекурсивные подпрограммы
188. Найдите сумму цифр заданного натурального числа.
189. Подсчитать количество цифр в заданном натуральном числе.
190. Описать функцию C(m, n), где 0 ≤ m ≤ n , для вычисления биномиального коэффициента по следующей формуле: при 0 < m < n .
191. Описать рекурсивную логическую функцию Simm(S, i, j), проверяющую, является ли симметричной часть строки S, начинающаяся i-м и заканчивающаяся j-м ее элементами.
192. Составить программу вычисления НОД двух натуральных чисел.
193. Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. Например, для числа 1234 получаем ответ 4321.
194. Составить программу перевода данного натурального числа в P-ичную систему счисления (2 ≤ P ≤ 9).
195. Дана символьная строка, представляющая собой запись натурального числа в P-ичной системе счисления (2 ≤ P ≤ 9). Составить программу перевода этого числа в десятичную систему счисления.
196. Составить программу вычисления суммы: 1! + 2! + 3! + ... + n! (n ≤ 15). Тип результата значения функции – LongInt .
197. Составить программу вычисления суммы: 2! + 4! + 6! + ... + n! (n ≤ 16, n – четное). Тип результата значения функции – LongInt .
Обработка строк
A
198. Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.
199. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b.
200. Дана строка. Подсчитать в ней количество вхождений букв r, k, t.
201. Дана строка. Определить, сколько в ней символов * , ; , : .
202. Дана строка, содержащая текст. Найти длины самого короткого и самого длинного слов.
203. Дана строка символов, среди которых есть двоеточие (:). Определить, сколько символов ему предшествует.
204. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.
205. Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *.
206. Дана строка. Определить, сколько раз входит в нее группа букв abc .
207. Дана строка. Подсчитать количество букв k в последнем ее слове.
208. Дана строка. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран.
209. Дана строка. Подсчитать самую длинную последовательность подряд идущих букв a.
210. Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.
211. Имеется строка, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд.
212. Дан набор слов, разделенных точкой с запятой (;). Набор заканчивается двоеточием (:). Определить, сколько в нем слов, заканчивающихся буквой а.
213. Дана строка. Указать те слова, которые содержат хотя бы одну букву k.
214. Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой.
215. В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество таких замен.
216. В строке удалить символ двоеточие (:) и подсчитать количество удаленных символов.
217. В строке между словами вставить вместо пробела запятую и пробел.
218. Удалить часть символьной строки, заключенной в скобки (вместе со скобками).
219. Определить, сколько раз в строке встречается заданное слово.
220. В строке имеется одна точка с запятой. Подсчитать количество символов до и после точки с запятой.
221. Дана строка из n символов. Преобразовать ее, заменив точками все двоеточия (:), встречающиеся среди первых n/2 символов, и все восклицательные знаки, встречающиеся среди символов, стоящих после n/2 символов.
222. Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).
223. В записке слова зашифрованы – каждое из них записано наоборот. Расшифровать сообщение.
224. Символьная строка представляет собой арифметическое выражение. Проверить правильность расстановки скобок в этом выражении (скобки могут быть вложенные).
225. Строка символов представляет собой предложение, написанное на русском языке. Предложение заканчивается точкой. Подсчитать и вывести количество различных букв, которые входят в это предложение. Ответ должен приводиться в грамматически правильной форме, например: а – 25 раз, к – 3 раза и т.д.
226. Упорядочить данный массив английских слов по алфавиту.
227. Даны две строки A и B. Составьте программу, проверяющую, можно ли из букв, входящих в A, составить B (буквы можно использовать не более одного раза и можно переставлять). Например, A: ИНТЕГРАЛ; B: АГЕНТ – составить можно; В: ГРАФ – нельзя.
228. Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.
229. Двумерный массив n × m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.
230. Результаты вступительных экзаменов представлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и отметки по каждому из M экзаменов.Определить количество абитуриентов, сдавших вступительные экзамены: а) только на "отлично"; б) на "хорошо" и "отлично".
231. Составить программу преобразования натуральных чисел, записанных в римской нумерации, в десятичную систему счисления.
232. Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте.
233. В строковом массиве хранятся фамилии и инициалы учеников класса. Требуется напечатать список класса с указанием для каждого ученика количества его однофамильцев.
234. Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи должны быть только символы 0 и 1). Если число введено неверно, повторить ввод. При правильном вводе перевести число в десятичную систему счисления.
235. Дана строка символов. В каждой подстроке, заключенной в квадратные скобки поменять местами только цифры так, чтобы они стали упорядоченными по возрастанию. Остальные символы оставить н