Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 5.doc
Скачиваний:
8
Добавлен:
09.11.2018
Размер:
104.45 Кб
Скачать

Варианты заданий

1. Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий отрицательный искать от минимального элемента.

2. Подсчитать количество и сумму положительных элементов одномерного массива.

3. Вычислить среднее арифметическое положительных элементов одномерного массива. Переставить первую и вторую цифру у этого значения и элементы массива, равные нулю, заменить этим числом.

4. Вычислить среднее геометрическое положительных элементов одномерного массива. Три первых цифры десятичной части этого числа записать в виде целого числа и элементы массива равные нулю заменить этим числом.

5. Переписать положительные элементы одномерного массива A в массив B, а отрицательные – в массив C.

6. Переписать элементы одномерного массива A, попадающие в интервал [2, 6], в массив B.

7. Выбрать из одномерного массива A элементы, произведение которых на их номер превышает число 10.

8. Даны два массива. Найти наименьшее число из первого массива среди чисел, которые не входят в первый массив.

9. Дан массив. Удалите из массива наименьший и наибольший элементы, сдвинув все оставшиеся элементы к началу массива.

10. Даны три массива. Выдать элементы, которые встречаются в первом и во втором массивах, но не встречаются в третьем.

11. Переставить максимальный и минимальный элементы в массиве.

12. Даны три массива. Выдать элементы, которые встречаются только в одном из них.

13. Дан массив. Нулевое значение массива заменить элементом, значение которого ближе к индексу этого элемента.

14. В одномерном массиве найти максимальное произведение двух рядом стоящих чисел.

15. Найти разность максимального и минимального элементов одномерного массива A и заменить этим значением нули в массиве.

16. Заполнить массивы B и C, переписав в массив B все четные числа из заданного целочисленного одномерного массива A, а в массив C – все нечетные числа.

17. Поместить в массив B номера положительных элементов одномерного массива A.

18. Найти произведение элементов одномерного массива, попадающих в интервал [0, 10] .

19. Найти сумму элементов одномерного массива, попадающих в интервал [0, 10].

20. Подсчитать количество элементов целочисленного массива, кратных трем.

21. Для одномерного целочисленного массива определить, является ли его сумма четным числом.

22. В одномерном массиве найти минимальное произведение двух рядом стоящих чисел.

23. Для одномерного массива A вычислить наибольшее значение модуля разности между соседними элементами.

24. Дан массив целых чисел. Все числа этого массива, которые заканчиваются на 6, уменьшить в 2 раза.

25. Дан массив целых чисел. Элементы массива, сумма цифр которых равна 6, разделить на 3.

26. Дан массив из n действительных чисел. С клавиатуры вводится число k. Удалить из массива все элементы, целая часть которых больше k.

27. Дан массив из n элементов. Вывести на экран элементы, расположенные между максимальным и минимальным элементами массива.

28. Дан массив из n элементов. Отсортировать массив относительно квадратов его элементов.

29. Дан массив из n элементов. Вывести массив в порядке возрастания, причем сначала выводить нечетные его элемента, а затем – четные.

30. Массив из n элементов. Вывести массив в порядке убывания, причем сначала выводить элементы, стоящие на четных местах, а затем – на нечетных.

31. Массив из n элементов. Вывести таблицу встречаемости элементов в массиве. Например: 2 5 7 5 2 4 3 7 7 2

2 (3), 3 (1), 4 (1), 5 (2), 7 (3).

32. Дан массив из n элементов. Сформировать второй массив с элементами, которые расположены между максимальным и минимальным элементами массива.

33. Дан массив из n элементов. Сформировать второй массив с элементами, которые расположены между первым положительным и последним отрицательным.

Пример 2. Во всех последовательностях отрицательных чисел ограничить значения тех элементов, абсолютное значение которых превышает абсолютное среднее для этой последовательности

Алгоритм решения:

Схема алгоритма показана на рисунке ниже.

В первой фазе выполнения программы нам необходимо будет сформировать массив случайных чисел. Перед тем как мы будем обращаться к датчику случайных чисел, необходимо его проинициализировать (блок 2). Далее организуем цикл со счетчиком (блок 3), в каждой итерации которого генерируется следующее случайное число и записывается в следующий элемент массива (блок 4). После окончания цикла заполнения массива выводим массив на экран (блок 5).

Нам необходимо будет вычислять среднее значение последовательности, следовательно - подсчитывать количество элементов в ней. Для этого мы вводим переменную nn - счетчик элементов, нулевое значение этой переменной будет показывать, что у нас нет последовательности для обработки. В начале обработки мы устанавливаем nn=0 (блок 6).

Далее организуем цикл со счетчиком (блок 7), в котором перебираем элементы массива. Для каждого элемента в первую очередь проверяется его знак (блок 8). Если это отрицательный элемент, то это может быть первый или не первый элемент последовательности. Это можно определить, проверяя значение переменной nn: если она 0 - это первый элемент (блок 9). Для первого элемента мы запоминаем в переменной ib индекс начала последовательности, устанавливаем счетчик элементов nn в 1, а в переменную av записываем значение этого элемента (блок 10). Для не первого элемента мы увеличиваем счетчик на 1, а значение элемента суммируем со занчением переменной av (блок 11). Таким образом, переменная av у нас играет роль накопителя суммы элементов последовательности.

Если же очередной элемент последовательности положительный, то возникает вопрос - не является ли этот элемент первым положительным элементом после отрицательной последовательности? Это можно проверить по счетчику nn. Если элемент первый, то значение nn должно быть больше 0 (блок 12). Если нет, то нам необходимо обработать ту отрицательную последовательность, которая только что закончилась. Для обработки мы в первую очередь получаем среднее значение (блок 13). Потом организуем цикл (блок 14) со счетчиком j, который изменяется от ib (индекс начала отрицательной последовательности, который мы сохранили раньше) до i-1 (i - это индекс первого положительного элемента после отрицательной - это индекс первого положительного элемента после отрицательной последовательности, следовательно i-1 - индекс последнего элемента отрицательной последовательности). В каждой итерации этого цикла мы сравниваем j-й элемент массива со средним значением av (блок 15). Если значение элемента меньше среднего (т.е. больше по абсолютному значению), то среднее значение записывается в j-й элемент (блок 16), если же нет - ничего не происходит. По выходу из цикла мы устанавливаем счетчик nn в 0 (блок 17), как признак того, что у нас нет необработанной последовательности. Для не первого положительного элемента нет необходимости что-либо делать.

После выхода из того цикла, который начался в блоке 7, необходимо проверить, не осталась ли у нас необработанная последовательность и, если да, обработать ее. На схеме алгоритма мы показали это одним блоком 18, действия, которые выполняются в этом блоке тождественны действиям, которые детально показаны в блоках 12 - 17.

По окончанию обработки мы выводим массив-результат (блок 19) и заканчиваем программу.