Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ11зт / МУ к лабораторным работам.doc
Скачиваний:
12
Добавлен:
11.06.2015
Размер:
3.16 Mб
Скачать

Лабораторная работа 2 селективная обработка массивов

Цель работы: выработать практические навыки в составлении алгоритмов, написании и отладке программ в задачах селекции в одномерном массиве.

Общие сведения

1 Селективная (выборочная) обработка информации

Селективная обработка заключается в обработке только той информации, которая удовлетворяет заданному условию.

Пример 5. Подсчитать количество положительных чисел в массиве 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 Нахождение экстремального значения

Пример 6. Найти минимальное число из интервала [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. Останов.

Пример 7. Найти максимальное число и его номер в массиве 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 Формирование одномерного рабочего массива

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

Пример 8 Сформировать новый массив из положительных чисел исходного массива 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 Сортировка элементов массива

Сортировка - это упорядочение множества по убыванию или возрастанию признака, общего для всех элементов множества. Сортировку удобно производить методом выталкивания. Если надо отсортировать часть массива, удовлетворяющую заданным условиям, то вначале отбирают нужные элементы в рабочий массив, а затем его сортируют. Если рабочий массив не сформировался, то выводят об этом сообщение и останавливают программу.

Пример 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 < 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. Останов.

Соседние файлы в папке ИТ11зт