Селективная обработка массивов
Цель работы: выработать практические навыки в составлении алгоритмов, написании и отладке программ в задачах селекции в одномерном массиве.
Общие сведения
1 Селективная (выборочная) обработка информации
Селективная обработка заключается в обработке только той информации, которая удовлетворяет заданному условию.
Пример 7. Подсчитать количество положительных чисел в массиве x(10).
Порядок работы
Шаг 1. Вводим массив x(10).
Шаг 2. Задаем начальное значение количества k = 0.
Шаг 3. Организовываем цикл, перебирающий элементы массива (т.е. индекс i), начиная с 1-го и кончая 10-м.
Шаг 4. Если xi > 0, тогда присваиваем k = k + 1.
Шаг 5. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 3.
Шаг 6. Печатаем k.
Шаг 7. Останов.
2 Нахождение экстремального значения
Пример 8. Найти минимальное число из интервала [5,12] в массиве x(15).
Порядок работы
Шаг 1. Вводим массив x(15).
Шаг 2. Задаем начальное значение минимального элемента xmin=10 20.
Шаг 3. Организовываем цикл, перебирающий элементы массива (т.е. индекс i), начиная с 1-го и кончая 15-м.
Шаг 4. Если xi не принадлежит интервалу [5,12], тогда идем на шаг 6.
Шаг 5. Если xi < xmin, тогда присваиваем xmin = xi.
Шаг 6. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 3.
Шаг 7. Печатаем xmin.
Шаг 8. Останов.
Пример 4. Найти максимальное число и его номер в массиве x(30) .
Порядок работы
Шаг 1. Вводим массив x(30).
Шаг 2. Задаем начальные значения максимального элемента и его номера: xmax = x1, nmax = 1.
Шаг 3. Организовываем цикл, перебирающий элементы массива (т.е. индекс i), начиная со 2-го и кончая 30-м.
Шаг 4. Если xi>xmax, тогда присваиваем: xmax=xi, nmax=i.
Шаг 5. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 3.
Шаг 6. Печатаем xmax, nmax.
Шаг 7. Останов.
Блок-схема
3 Формирование одномерного рабочего массива
В рабочий массив из исходного выбираются только те элементы, которые удовлетворяют поставленному условию.
Пример 9. Сформировать новый массив из положительных чисел исходного массива x(15).
Порядок работы
Шаг 1. Вводим массив x(15).
Шаг 2. Устанавливаем начальный индекс рабочего массива j=0.
Шаг 3. Организовываем цикл, перебирающий элементы исходного массива (т.е. индекс i), начиная с 1-го и кончая 15-м.
Шаг 4. Если xi £ 0, то идем на шаг 7.
Шаг 5. Устанавливаем индекс следующего элемента рабочего массива j = j + 1.
Шаг 6. Присваиваем элементу рабочего массива значение элемента исходного массива yj = xi.
Шаг 7. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 3.
Шаг 8. Печатаем j элементов рабочего массива y.
Шаг 9. Останов.
3.7 Сортировка элементов массива
Сортировка - это упорядочение множества по убыванию или возрастанию признака, общего для всех элементов множества. Сортировку удобно производить методом выталкивания. Если надо отсортировать часть массива, удовлетворяющую заданным условиям, то вначале отбирают нужные элементы в рабочий массив, а затем его сортируют. Если рабочий массив не сформировался, то выводят об этом сообщение и останавливают программу.
Пример 10. Найти сумму двух наибольших отрицательных чисел массива x(15).
Порядок работы
Шаг 1. Вводим массив x(15).
Шаг 2. Устанавливаем начальный индекс рабочего массива j=0.
Шаг 3. Организовываем цикл, перебирающий элементы исходного массива (т.е. индекс i), начиная с 1-го и кончая 15-м.
Шаг 4. Если xi ³ 0, то идем на шаг 7.
Шаг 5. Устанавливаем индекс следующего элемента рабочего массива j = j + 1.
Шаг 6. Присваиваем элементу рабочего массива значение элемента исходного массива yj = xi.
Шаг 7. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 3.
Шаг 8. Если j < 2, то выдаем сообщение «Массив не сформирован» и идем на шаг 17.
Шаг 9. Организовываем цикл, определяющий количество просмотров рабочего массива (т.е. индекс k), начиная с 1-го и кончая j-м.
Шаг 10. Организовываем цикл, определяющий просматриваемую пару чисел рабочего массива (т.е. индекс i), начиная с 1-го и кончая (j-1)-м.
Шаг 11. Если первое число не больше второго, то идем на шаг 13.
Шаг 12. Меняем два числа местами:
c = yi; yi = yi+1; yi+1 = c.
Шаг 13. Если цикл по i не закончился, идем на начало цикла, т.е. на шаг 10.
Шаг 14. Если цикл по k не закончился, идем на начало цикла, т.е. на шаг 9.
Шаг 15. Вычисляем сумму s = yj + yj-1.
Шаг 16. Печатаем s.
Шаг 17. Останов.
Задания для самостоятельной работы
Задание 1. Составить блок-схему для задания, указанного в таблице 5. Размер и имя массива выбрать самостоятельно.
Таблица 5
Вар. | Условие задачи |
Найти сумму четных чисел массива | |
Вычислить произведение отрицательных чисел массива | |
Определить количество нечетных чисел массива | |
Найти сумму отрицательных чисел массива | |
Определить количество отрицательных чисел массива | |
Вычислить произведение положительных чисел массива | |
Найти сумму положительных чисел массива | |
Определить количество четных чисел массива | |
Вычислить произведение четных чисел массива | |
Найти сумму нечетных чисел массива | |
Определить количество кратных 3 чисел массива | |
Вычислить произведение нечетных чисел массива | |
Найти сумму кратных 3 чисел массива | |
Определить количество не кратных 3 чисел массива | |
Вычислить произведение кратных 3 чисел массива | |
Найти сумму не кратных 3 чисел массива | |
Определить количество кратных 4 чисел массива | |
Вычислить произведение не кратных 3 чисел массива | |
Найти сумму кратных 4 чисел массива | |
Определить количество не кратных 4 чисел массива | |
Вычислить произведение кратных 4 чисел массива | |
Найти сумму не кратных 4 чисел массива | |
Определить количество кратных 5 чисел массива | |
Вычислить произведение не кратных 4 чисел массива | |
Найти сумму кратных 5 чисел массива | |
Вычислить среднее арифметическое положительных четных элементов массива | |
Найти среднее геометрическое отрицательных нечетных элементов массива | |
Найти произведение отрицательных не кратных пяти элементов массива | |
Найти среднее арифметическое элементов массива, находящихся в интервале [-10,20] | |
Найти среднее геометрическое элементов массива, находящихся в интервале [5,20] |
Задание 2. Составить блок-схему для задания, указанного в таблице 6. Размер и имя массива выбрать самостоятельно.
Таблица 6
Вар. | Условие задачи |
Найти значение минимального четного числа массива | |
Найти значение максимального четного числа массива | |
Найти значение минимального нечетного числа массива | |
Найти значение максимального нечетного числа массива | |
Найти значение минимального положительного числа массива | |
Найти значение максимального отрицательного числа массива | |
Найти значение минимального четного числа массива и его номер | |
Найти значение максимального четного числа массива и его номер | |
Найти значение минимального нечетного числа массива и его номер | |
Найти значение максимального нечетного числа массива и его номер | |
Найти значение минимального положительного числа массива и его номер | |
Найти значение максимального отрицательного числа массива и его номер | |
Найти значение минимального кратного 3 числа массива | |
Найти значение максимального кратного 3 числа массива | |
Найти значение минимального кратного 3 числа массива и его номер | |
Найти значение максимального кратного 3 числа массива и его номер | |
Найти значение минимального не кратного 3 числа массива и его номер | |
Найти значение максимального не кратного 3 числа массива и его номер | |
Найти значение минимального кратного 3 числа массива | |
Найти значение минимального кратного 5 числа массива | |
Найти значение максимального не кратного 3 числа массива | |
Найти номер минимального числа массива, принадлежащего интервалу [-3,4] | |
Найти номер максимального числа массива, принадлежащего интервалу [8,25] | |
Найти значение минимального числа массива, принадлежащего интервалу [3,12] | |
Найти значение максимального числа массива, принадлежащего интервалу [-5,15] | |
Найти номер и значение наименьшего положительного нечетного элемента массива | |
Найти номер и значение наибольшего отрицательного четного элемента массива | |
В массиве поменять местами наибольший и наименьший элементы | |
Найти частное от деления минимального на максимальный элементов массива | |
Записать число 100 вместо максимального положительного элемента |
Задание 3. Составить блок-схему для задания, указанного в таблице 7.
Таблица 7
Вар. | Условие задачи |
Дан массив X(15). Сформировать новый массив из четных чисел исходного | |
Дан массив X(25). Сформировать новый массив из нечетных чисел исходного | |
Дан массив D(15). Сформировать новый массив из кратных 3 чисел исходного | |
Дан массив A(10). Сформировать новый массив из отрицательных чисел исходного | |
Дан массив Z(15). Сформировать новый массив из положительных четных чисел исходного | |
Дан массив X(25). Сформировать новый массив из чисел исходного, лежащих в интервале [-3,7] | |
Дан массив Y(10). Сформировать новый массив из нечетных положительных чисел исходного | |
Дан массив D(12). Сформировать новый массив из положительных кратных 3 чисел исходного | |
Дан массив A(8). Сформировать новый массив из отрицательных четных чисел исходного | |
Дан массив C(15). Сформировать новый массив из больших 8 чисел исходного | |
Дан массив B(21). Сформировать новый массив из кратных 4 чисел исходного | |
Дан массив A(12). Сформировать новый массив из отрицательных нечетных чисел исходного | |
Дан массив X(8). Сформировать новый массив из отрицательных не кратных 3 чисел исходного | |
Дан массив G(9). Сформировать новый массив из четных чисел исходного массива, стоящих на нечетных местах | |
Дан массив Y(15). Сформировать новый массив из нечетных, кратных 3 чисел исходного | |
Дан массив A(18). Сформировать новый массив из нечетных, кратных 5 чисел исходного | |
Дан массив Z(10). Сформировать новый массив из четных чисел исходного, лежащих в интервале [1,12] | |
Дан массив A(11). Сформировать новый массив из нечетных чисел исходного, лежащих в интервале [-3,15] | |
Дан массив B(10). Сформировать новый массив из номеров отрицательных четных чисел исходного | |
Дан массив A(8). Сформировать новый массив из номеров отрицательных нечетных чисел исходного | |
Дан массив C(12). Сформировать новый массив из отрицательных чисел исходного, стоящих на четных местах | |
Дан массив F(13). Сформировать новый массив из отрицательных чисел исходного, стоящих на нечетных местах | |
Дан массив H(12). Сформировать новый массив из положительных чисел исходного, стоящих на четных местах | |
Дан массив V(19). Сформировать новый массив из отрицательных чисел исходного, лежащих в диапазоне [-20,-5] | |
Дан массив N(11). Сформировать новый массив из отрицательных кратных 5 чисел исходного | |
Дан массив K(15). Сформировать новый массив из положительных чисел исходного, стоящих на нечетных местах | |
Дан массив Y(11). Сформировать новый массив из отрицательных не кратных 5 чисел исходного | |
Дан массив Z(14). Сформировать новый массив из положительных кратных 5 чисел исходного | |
Дан массив R(13). Сформировать новый массив из отрицательных кратных 10 чисел исходного | |
Дан массив N(11). Сформировать новый массив из отрицательных кратных 8 чисел исходного |
Задание 4. Составить блок-схему для задачи, указанной в таблице 8. Имя и размер массива выбрать самостоятельно.
Таблица 8
Вар. | Условие задачи |
Найти сумму двух наибольших четных чисел массива | |
Найти произведение двух наибольших нечетных чисел массива | |
Найти произведение двух наибольших четных чисел массива | |
Найти сумму двух наибольших нечетных чисел массива | |
Найти сумму трех наибольших четных чисел массива | |
Найти сумму двух наименьших четных чисел массива | |
Найти сумму двух наименьших нечетных чисел массива | |
Найти сумму трех наименьших нечетных чисел массива | |
Найти сумму двух наименьших положительных чисел массива | |
Найти сумму двух наибольших отрицательных чисел массива | |
Найти сумму трех наименьших положительных чисел массива | |
Найти произведение двух наименьших положительных чисел массива | |
Найти произведение двух наибольших отрицательных чисел массива | |
Найти произведение трех наибольших кратных 5 чисел массива | |
Найти произведение трех наименьших не кратных 4 чисел массива | |
Найти произведение трех наибольших положительных кратных 3 чисел массива | |
Найти произведение трех наименьших отрицательных нечетных чисел массива | |
Найти сумму трех наименьших положительных четных чисел массива | |
Найти сумму трех наибольших нечетных, лежащих в интервале [1,30], чисел массива | |
Найти произведение четырех наименьших, лежащих в интервале [-20,20], чисел массива | |
Найти сумму четырех наименьших кратных 5 и не больших 50 чисел массива | |
Найти произведение двух наибольших и двух наименьших положительных четных чисел массива | |
Найти сумму двух наибольших и двух наименьших отрицательных четных чисел массива | |
Найти произведение двух наибольших и двух наименьших отрицательных нечетных чисел массива | |
Найти сумму двух наибольших и двух наименьших нечетных чисел массива, лежащих в интервале [1,25] | |
Найти произведение двух наибольших и двух наименьших положительных кратных 3 чисел массива | |
Найти сумму двух наибольших и двух наименьших кратных 3 и не меньших 10 чисел массива | |
Найти произведение двух наибольших и двух наименьших кратных 5 и не больших 20 чисел массива | |
Найти сумму трех наибольших, не кратных 5 положительных чисел массива | |
Найти произведение трех наименьших отрицательных кратных 3 чисел массива |
Лабораторная работа 3