
- •Методические указания
- •«Алгоритмизация и программирование»
- •Часть 1. Понятие алгоритма и принципы алгоритмизации 4
- •Часть 2. Составление и отладка программы. Вычисление и
- •Часть 1. Понятие алгоритма и принципы алгоритмизации
- •1 Основные принципы разработки алгоритмов и программ
- •Лабораторная работа 1
- •3 Циклический вычислительный процесс
- •Задания для самостоятельной работы
- •Лабораторная работа 2 селективная обработка массивов
- •Общие сведения
- •1 Селективная (выборочная) обработка информации
- •2 Нахождение экстремального значения
- •3 Формирование одномерного рабочего массива
- •3.7 Сортировка элементов массива
- •Задания для самостоятельной работы
- •Лабораторная работа 3 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •1 Вложенные циклы
- •3.9 Обработка заданной строки (столбца) матрицы
- •3.10 Обработка заданной диагонали матрицы
- •3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию
- •Часть 2. Составление и отладка программы. Вычисление и обработка результатов
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа 5
- •Задание к лабораторной работе
- •Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:).
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.
- •Теоретические сведения
- •Задание к лабораторной работе
- •Лабораторная работа №8 Оператор switch, оператор break, оператор goto
- •Теоретические сведения
- •Ход работы
- •Задание к лабораторной работе
- •Лабораторная работа №9 Операции с, их приоритеты и использование. Преобразование типов
- •Приоритет операций и порядок выполнения (ассоциативность)
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Индивидуальное задание к лабораторной работе
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11 Формирование рабочих массивов с помощью операций селекции исходного массива
- •Теоретические сведения
- •Пример 18
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №12 Сортировка одномерных массивов
- •Теоретические сведения
- •Многомерные массивы.
- •Теоретические сведения
- •Индивидуальное задание к лабораторной работе
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Вложенные циклы. Многомерные массивы.
- •Теоретические сведения
- •Лабораторная работа № 15 Изучение графических средств с
- •Графические функции
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Рекомендована література
Лабораторная работа 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. Останов.