2.1. [Pascal | C | Basic] Подсчитайте число и сумму положительных, число и произведение отрицательных элементов заданного массива A(N).
2.2. [Pascal | C | Basic] Заданные векторы X(N) и Y(N) преобразуйте по правилу: большее из xi и yi примите в качестве нового значения xi, а меньшее — в качестве нового значения yi.
2.3. [Pascal | C | Basic] Элементы заданного массива B(N) перепишите в новый массив A(N) в обратном порядке.
2.4. [Pascal | C | Basic] Из заданного вектора A(3N) получите вектор B(N), очередная компонента которого равна среднему арифметическому очередной тройки компонент вектора А.
2.5. [Pascal | C | Basic] В заданном массиве Х(N) замените нулями все отрицательные компоненты, непосредственно предшествующие его максимальной компоненте (первой по порядку, если их несколько).
2.6. [Pascal | C | Basic] Вычислите значения а) sin x + sin2x + ... + sinnx ; б) sin x + sin x2 + ... + sin xn; в) sin x + sin2x2 + ... + sinnxn; г) sin x + sin sin x + ... + sin sin...sin x (n раз).
2.7. [Pascal | C | Basic] Вычислите сумму квадратов всех элементов заданного массива X(N), за исключением элементов, кратных пяти.
2.8. [Pascal | C | Basic] Вычислите значения функции z = (a + b + ci ) / i, если a изменяется от 0 с шагом 1, b изменяется от 5 с шагом 1, ci является элементом массива C(N) . При этом a и b изменяются одновременно с i.
2.9. [Pascal | C | Basic] В заданном массиве A(N) поменяйте местами наибольший и наименьший элементы.
2.10. [Pascal | C | Basic] В заданном массиве A(N) определите количество элементов, которые меньше заданного значения.
2.11. [Pascal | C | Basic] Осуществите циклический сдвиг компонент заданного вектора A(N) влево на одну позицию, то есть получите вектор А = (a2 , a3 , ..., aN , a1 ).
2.12. [Pascal | C | Basic] Осуществите циклический сдвиг компонент заданного вектора A(N) вправо на две позиции, то есть получите вектор A = (aN-1 , aN , a1 , a2 , ... , aN-2 ).
2.13. [Pascal | C | Basic] Дан массив A(N). Получите массив B(N), i-й элемент которого равен среднему арифметическому первых i элементов массива А: bi = (a1 + a2 + ... + ai ) / i.
2.14. [Pascal | C | Basic] Вычислите значения многочленов: P = an xn + an-1 xn-1 + ... + a1 x + a0 ; Q = a0 xn + a1 xn-1 + ... + an-1 x + an, используя формулу Горнера. Коэффициенты многочленов заданы в виде вектора A = (a0 , a1 , ... , an ).
2.15. [Pascal | C | Basic] Запишите подряд в массив A(N) элементы заданного массива В(2N), стоящие на чётных местах, а элементы, стоящие на нечетных местах, запишите в массив С(N).
2.16. [Pascal | C | Basic] Выведите на печать номера элементов заданного массива Y(N), удовлетворяющих условию 0 < yi < 1.
2.17. [Pascal | C | Basic] Выведите на печать номера точек, лежащих в круге радиусом R с центром в начале координат. Координаты точек заданы массивами X(N) и Y(N).
2.18. [Pascal | C | Basic] В заданном массиве A(N) вместо a1 запишите наибольший элемент массива, а вместо aN — наименьший элемент массива.
2.19. [Pascal | C | Basic] В заданном массиве A(N), все элементы которого попарно различны, найдите: а) наибольший элемент из отрицательных; б) наименьший элемент из положительных; в) второй по величине элемент.
2.20. [Pascal | C | Basic] В заданном массиве A(N) определите число соседств: а) двух положительных чисел; б) двух чисел разного знака; в) двух чисел одного знака, причем абсолютная величина первого числа должна быть больше второго числа; г) чётного числа и нечётного c нечётным индексом.
2.21. [Pascal | C | Basic] В заданном массиве A(N) положительные элементы уменьшите вдвое, а отрицательные замените на значения их индексов.
2.22. [Pascal | C | Basic] В заданном массиве A(N) вычислите среднее геометрическое и среднее арифметическое значения для положительных элементов.
2.24. [Pascal | C | Basic] Образуйте массив B, состоящий из положительных элементов заданного массива A(N), больших пяти. Выведите на печать образованный массив и число его элементов.
2.25. [Pascal | C | Basic] Из заданных векторов X(N) и Y(N) получите вектор Z(2N ) c элементами (x1 , y1 , x2 , y2 , ..., xN , yN) .
2.26. [Pascal | C | Basic] Для заданного вектора X(2N ) вычислите Y = x1 - x2 + x3 - ... - x2N.
2.27. [Pascal | C | Basic] Дан вектор A(N). Найдите порядковый номер того из элементов, который наиболее близок к какому-нибудь целому числу (первому по порядку, если таких несколько).
2.28. [Pascal | C | Basic] Элементы заданного массива X = (x1 , x2, ...,xN ) переупорядочите следующим образом: X = (xN , xN-1 , ..., x1 ).
2.29. [Pascal | C | Basic] Для заданного набора коэффициентов a, b, c, d найдите наименьшее значение функции y = a x3 + b x2 + cx + d и значение аргумента, при котором оно получено. Значение х изменяется от 0 до 2 с шагом 0,2.
2.30. [Pascal | C | Basic] Дано натуральное N. Вычислите сумму тех элементов серии i 3-3 . i . N + N, i = 1, 2, ..., N, которые являются удвоенными нечётными числами.
2.32. [Pascal | C | Basic] Дан массив A(2N). Постройте массивы с элементами, соответственно равными: а) a1 , aN+1 , a2, aN+2 , ... , aN , a2N ; б) a2N, a1 , a2N-1 , a2 , ... , aN+1 , aN .
2.33. [Pascal | C | Basic] Дана матрица A(3, N), элементы которой положительны. Определите, какие из троек a1i , a2i , a3i (i = 1, ..., N) могут служить сторонами треугольника. Выведите массив b1 , ... , bN , состоящий из нулей и единиц. Если тройка a1i , a2i , a3i может служить сторонами треугольника, то bi = 1, если нет, то bi = 0.
2.34. [Pascal | C | Basic] У кассы аэрофлота выстроилась очередь из N человек. Время обслуживания кассиром i-го клиента равно Ti (i = 1, ..., N). а) Определите время пребывания в очереди каждого клиента; б) Укажите номер клиента, для обслуживания которого кассиру потребовалось больше всего время.
2.35. [Pascal | C | Basic] В соревнованиях по фигурному катанию N судей независимо выставляют оценки спортсмену. Затем из объявленных оценок удаляют самую высокую (одну, если самую высокую оценку выставили несколько судей). Аналогично поступают с самой низкой оценкой. Для оставшихся оценок вычисляется среднее арифметическое, которое и становится зачетной оценкой. По заданным оценкам судей определите зачетную оценку спортсмена.
2.36. [Pascal | C | Basic] Несколько однотипных спасательных катеров, находящихся в акватории в точках с координатами (xi , yi ), i = 1, 2, ..., N, получили сигнал SOS от судна, находящегося в той же акватории в точке с координатами (x0 , y0 ). Определите, какой из катеров быстрей других сможет оказать помощь?
2.37. [Pascal | C | Basic] По данным о расписании движения пригородных поездов определите значение наибольшего интервала времени между отправлениями поездов.
2.38. [Pascal | C | Basic] Учитель объявил результаты контрольной работы. Определите пpоцентное содеpжание выставленных им "пятерок", "четверок", "троек" и "двоек".
2.39. [Pascal | C | Basic] Фунт стерлингов, денежная единица Великобритании, до 1971 г. равнялся 20 шиллингам или 240 пенсам. С проходящего корабля в порту Ливерпуля сошли N путешественников, каждый из которых имел по одной десятифунтовой купюре. Они купили сувениры на сумму p1 , p2 , ..., pn, соответственно. Сколько фунтов, шиллингов и пенсов сдачи получил каждый из путешественников?
2.40. [Pascal | C | Basic] О каждом учащемся класса известны его пол, год рождения, рост и вес. Определите, сколько в классе мальчиков и сколько девочек. Найдите средний возраст мальчиков и средний возраст девочек. Определите, верно ли, что самый высокий мальчик весит больше всех в классе, а самая маленькая девочка является самой юной среди девочек.
Алгоритмы, реализуемые с помощью вложенных циклов типа ДЛЯ
Язык
Схемы вложенных циклов типадля
Школьный АЯ
нц для i от A1 до B1 тело внешнего цикла . . . . . . нц для j от A2 до B2 тело внутреннего цикла . . . . . . кц . . . . . . кц
Pascal
For i := A1 to B1 do begin . . . . . . For j := A2 to B2 do begin . . . . . . end; . . . . . . end;
Basic
FOR I = A1 TO B1 STEP H1 . . . . . . FOR J = A2 TO B2 STEP H2 . . . . . . NEXT J . . . . . . NEXT I
Вложенные циклы типа для особенно часто используются при обработке матриц (двумерных массивов, прямоугольных таблиц) и векторов (одномерных массивов, линейных таблиц):
Пример 3.1. Вычислить суммы элементов столбцов заданной матрицы A(N, M).