- •2. Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Следование
- •Варианты индивидуальных заданий Выполнить поразрядные логические операции над машинными кодами
- •Пример программы
- •Лабораторная работа №2 Операторы ветвления
- •Варианты индивидуальных заданий
- •Пример разработки математической модели и схемы алгоритма решения задачи для варианта задания вида:
- •Текст программы
- •Варианты индивидуальных заданий
- •Лабораторная работа №3 Операторы цикла
- •Пример программы
- •Лабораторная работа №4 Статические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №5 Динамические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №6 Методы сортировки
- •Варианты индивидуальных заданий Методы сортировки
- •Области сортировки элементов матриц
- •Примеры программ
- •Лабораторная работа №7 Передача имён функций в качестве параметров
- •Текст программы
- •Лабораторная работа №8 Строки и текстовые файлы
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Структуры и файлы структур
- •Пример программы
- •Лабораторная работа №10 Линейные списки
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №11 Стек, дек, очередь
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №12 Классы
- •Варианты индивидуальных заданий
- •Примеры программ
- •Литература
Лабораторная работа №4 Статические массивы
Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки статических массивов.
Задание на программирование: используя технологию процедурного программирования, разработать программу обработки одномерных и двумерных (матриц) статических массивов в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.
2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.
3) Построить схему алгоритма решения задачи.
4) Составить программу на языке C/С++.
5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.
Выходные данные должны выводиться на экран с пояснениями.
6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.
7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1.
1) Дан массив b0, b1,…, b2n-1. Написать программу построения новых массивов x0, x1,…, xn-1 и y0, y1,…,yn-1, значения элементов которых соответственно равны значениям b1, b3,…, b2n-1 и b0, b2,…, b2n-2.
2) В заданной матрице поменять местами первую строку и строку, содержащую наибольший отрицательный элемент матрицы.
2.
1) Дан целочисленный массив a0, a1,…, am-1. Из абсолютных величин его элементов выбрать наибольшую. Далее построить массив, i-й элемент которого равен нулю, если |ai| не совпадает с выбранным значением, и равен 1 в противном случае.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий наименьший положительный элемент матрицы.
3.
1) Написать программу построения по заданному массиву a0, a1,…, an-1 нового массива, значения элементов которого равны a0, a0+a1, a0+a1+a2, , a0+a1+a2+…+an-1.
2) В заданной матрице поменять местами строку, содержащую максимальный элемент матрицы, и строку, содержащую минимальный элемент матрицы.
4.
1) В вещественном массиве x0, x1,…, xn-1 заменить нулем значения всех его отрицательных элементов, предшествующих его максимальному элементу.
2) В заданной матрице поменять местами главную и побочную диагонали.
5.
1) Даны массивы a0, a1,…, an-1 и b0, b1,…, bn-1. Получить новый массив, значения элементов которого соответственно равны a0, b0, a1, b1, a2, b2, …, an-1, bn-1.
2) В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент матрицы.
6.
1) Дан вещественный массив x0, x1, x2,…, xm. Значения всех его элементов, следующих за элементом с наибольшим значением, заменить величиной b.
2) В заданной матрице поменять местами среднюю строку и средний столбец.
7.
1) Даны вещественные массивы x0, x1,…, xn-1 и y0, y1,…, yn-1. Преобразовать их по правилу: большее из значений xi и yi принять в качестве нового значения xi, а меньшее – в качестве нового значения yi.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наибольший отрицательный элемент матрицы.
8.
1) Дан целочисленный массив a0, a1, a2,…, an-1. Если в массиве нет ни одной компоненты с заданным значением К, то первую по порядку компоненту этого массива, не меньшую всех остальных компонент, заменить значением К.
2) В заданной матрице поменять местами первую строку и первый столбец.
9.
1) Написать программу, осуществляющую циклический сдвиг компонент массива x0, x1, x2,…, xn-1 (n>2) на одну позицию влево, то есть получающую массив x1, x2, x3,…, xn-1, x0.
2) В заданной матрице поменять местами последний столбец со столбцом, содержащим наименьший положительный элемент матрицы.
10.
1) Дан вещественный массив a0, a1, a2,…, an-1. Если в этом массиве есть хотя бы один элемент, значение которого меньше Р, то значения всех отрицательных элементов массива заменить их квадратами, в противном случае значений всех элементов массива умножить на число B.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей наименьший по абсолютной величине элемент матрицы.
11.
1) Дан вещественный массив x0, x1, x2,…, xn-1. Определить сумму и количество компонент этого массива, принадлежащих отрезку [a,b].
2) В заданной матрице поменять местами первый столбец со столбцом, содержащим наибольший по абсолютной величине элемент главной диагонали.
12.
1) Преобразовать массив а0, а1, а2,…, аn-1 так, чтобы его элементы расположились в обратном порядке: аn-1, аn-2,…, а0.
2) В заданной матрице поменять местами две строки: строку с указанным номером и строку, содержащую наименьший положительный элемент матрицы.
13.
1) Написать программу выбора среди элементов массива а0, а1, а2,…, аn-1 наибольшего среди остающихся после выбрасывания наибольшего и всех ему равных. Предполагается, что не все элементы равны между собой.
2) В заданной матрице поменять местами последний столбец и побочную диагональ.
14.
1) Из массива а0, а1, а2,…, а3n-1 получить массив b0, b1,…, bn-1, очередная компонента которого равна среднему арифметическому тройки очередных компонент массива а.
2) В заданной матрице поменять местами столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы.
15.
1) Дан целочисленный массив b0, b1,…, bn-1. Если значения элементов этого массива не образуют убывающей последовательности, то заменить значения его отрицательных элементов единицами.
2) В заданной матрице поменять местами первую строку и строку, содержащую максимальный отрицательный элемент матрицы.
16.
1) Дан целочисленный массив а0, а1, а2,…, аn-1, среди элементов которого могут быть равные. Преобразовать исходный массив, оставив в каждой группе равных между собой элементов только один, выбросив все остальные. Освободившийся хвост массива заполнить нулями. Дополнительный массив не использовать.
2) В заданной матрице поменять местами первый столбец и побочную диагональ.
17.
1) Дан вещественный массив а0, а1, а2,…, аn-1. Если в этом массиве есть хотя бы один элемент со значением, принадлежащим отрезку [x, y], то значения всех элементов, принадлежащие этому отрезку, заменить величиной К.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей минимальный положительный элемент матрицы.
18.
1) Дан массив а0, а1, а2,…, аn-1. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные, сохранив при этом относительный порядок их следования. Дополнительный массив не использовать.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий минимальный по абсолютной величине элемент матрицы.
19.
1) Написать программу выполнения следующего задания: из всех непрерывных участков массива а0, а1, а2,…, аn-1, состоящих из нулей, выбрать наибольший по длине. Вывести индексы его начала и конца.
2) В заданной матрице поменять местами последнюю строку со строкой, содержащей максимальный отрицательный элемент матрицы.
20.
1) Написать программу, осуществляющую циклический сдвиг компонент массива
x0, x1,…, xn-1 на одну позицию вправо, то есть получающую массив xn-1, x0, x1,…, xn-2.
2) В заданной матрице поменять местами последний столбец со столбцом, содержащим минимальный положительный элемент матрицы.
21.
1) Дан вещественный массив x0, x1, x2,…, xm-1. Значения всех его элементов, предшествующих элементу с наибольшим значением, заменить величиной c.
2) В заданной матрице поменять местами среднюю строку и главную диагональ.
22.
1) Дан массив x0, x1, x2,…, xm-1. Все положительные значения его элементов, следующих за элементом с наименьшим значением, заменить величиной d.
2) В заданной матрице поменять местами главную диагональ и средний столбец.
23.
1) Дан массив b0, b1, b2,…, b2m-1. Написать программу построения нового массива с элементами, значения которых соответственно равны b2m-1, b0, b2m-2, b1, …, bm, bm-1. Исходный массив оставить без изменения.
2) В заданной матрице поменять местами столбец, содержащий элемент с максимальным отрицательным значением, и столбец, содержащий элемент с минимальным положительным значением.
24.
1) Дан массив а0, а1, а2,…, а2n-1. Написать программу построения нового массива с элементами, значения которых соответственно равны а0, аn, а1, аn+1,…, аn-1, a2n-1. Исходный массив оставить без изменения.
2) В заданной матрице поменять местами последний столбец и столбец, содержащий элемент с минимальным положительным значением.
25.
1) Найти сумму и произведение значений всех элементов массива b0, b1, b2,…, bm-1.
2) В заданной матрице из целых чисел поменять местами первую строку и строку, содержащую элемент с максимальным отрицательным значением.
26.
1) Найти сумму положительных и число отрицательных элементов массива
а0, а1, а2,…, аn-1.
2) В заданной матрице найти сумму значений элементов, принадлежащих главной диагонали, и произведение значений элементов, принадлежащих побочной диагонали.
27.
1) Написать программу вычисления числа элементов с положительными значениями и суммы отрицательных значений элементов массива x0, x1, x2,…, xm-1.
2) В заданной матрице целых чисел найти сумму значений элементов, лежащих по её периметру (принадлежащих первой и последней строке и первому и последнему столбцу матрицы).
28.
1) Задан упорядоченный по возрастанию массив y0 < y1 <…< ym-1 и величина x. Известно, что y0 < x < ym-1. Написать программу определения целого числа К, удовлетворяющего условию: yk-1 < x < yk.
2) В заданной матрице целых чисел найти сумму значений элементов, лежащих выше главной диагонали.
29.
1) Дан массив b0, b1, b2,…, b2m-1. Переставить элементы этого массива так, чтобы значения его элементов были соответственно равны b2m-1, b0, b2m-2, b1, …, bm, bm-1. Дополнительный массив не использовать.
2) В заданной матрице найти сумму значений элементов, лежащих ниже побочной диагонали.
30.
1) Дан массив а0, а1, а2,…, а2n-1. Переставить элементы этого массива так, чтобы значения его элементов были соответственно равны а0, аn, а1, аn+1,…, аn-1, a2n-1. Дополнительный массив не использовать.
2) В заданной матрице целых чисел найти сумму значений элементов, не принадлежащих главной и вспомогательной диагоналям.
