Массивы ЛР 4. ЛР4 Массивы. Лабораторная работа 4 Обработка одномерных и двумерных массивов
![]()
|
Лабораторная работа №4Обработка одномерных и двумерных массивов1. Цель работыЦелью лабораторной работы является получение практических навыков в работе с числовыми массивами в языке C. 2. Темы лекций для предварительной проработкиМодуль 2.4. Операторы организации циклической обработки Модуль 2.5. Числовые и символьные массивы 3. Планируемые результаты обученияВ результате выполнения лабораторной работы должны быть сформированы и развиты следующие профессиональные компетенции: на уровне знаний: – воспроизводить синтаксис объявления одномерного, многомерного массива как числового, так символьного; – объяснять стандартные приемы для работы с числовыми и символьными массивами. на уровне понимания: – объяснять механизмы доступа к элементам массива посредством индекса и указателя. на уровне применения: – выполнять операции над массивами; – осуществлять ввод и вывод массивов; – сравнивать массивы; – применять стандартные приемы для работы с массивами. на уровне анализа: – анализировать разработанную программу с целью выявления логических ошибок; – локализовать ошибки выполнения программы с целью их исправления; – анализировать результаты работы программы. на уровне синтеза: – использовать математические методы и вычислительные алгоритмы для решения практических задач; – проектировать структуру программы; – организовать работу в группе при совместном решении задачи; – проектировать тестирование программы; – защищать выполненную самостоятельную работу; – принимать верное решение при коллективном решении задачи. на уровне оценки: – давать оценку эффективности работы программы, основываясь на использованных структурах хранения данных и способах организации вычислений; – оценивать возможности структурных типов данных в организации данных программы. 4. Краткие теоретические сведенияМассив – это линейный тип данных или последовательность ячеек памяти одинакового типа. Массивы могут быть одномерными, двумерными и многомерными. Одномерные массивы соответствуют строке, двумерные – матрице. 4.1 Одномерные массивыПри объявлении массива указывают тип его элементов и в квадратных скобках размер массива. Для одномерного массива из 10 целых чисел объявление запишется в виде: int a[10]; Для одномерного массива из 5 чисел с плавающей точкой объявление запишется в виде: float a[5]; Удобно использовать при объявлении массива директиву препроцессора #define: #define SIZE 10 // определили поименованную константу, задающую размер массива void main() { int a[SIZE]; … } Для доступа к элементу массива указывают в квадратных скобках его номер. При этом следует отметить, что в языке С индексация элементов массива начинается с нуля. То есть для инициализации первого элемента массива единицей необходимо записать оператор: a[0]=1; Для работы с массивами обычно используют цикл for. Инициализировать массив можно разными способами. Если требуется можно инициализировать элементы массива сразу после объявления: int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; Можно заполнить элементы массива непосредственно в программе: int a[10]; a[5] = 5; for (int i=0; i<10; i++) a[i]=0; В этом примере сначала шестому элементу массива присваивается значения пять, затем все элементы массива обнуляются. Инициализация одномерного массива пользователем запишется в виде: int a[10]; for (int i=0; i<10; i++) { printf(″Введите значение a[%d]\n″, i); scanf(″%d″, &a[i]); } В этом примере сначала элементам массива присваиваются значения введенные пользователем. Рассмотрим пример нахождения количества отрицательных элементов массива. int a[10], count; … for (int i=0; i<10; i++) if (a[i]<0) count++; … Пример нахождения суммы отрицательных элементов массива. int a[10], sum=0; … for (int i=0; i<10; i++) if (a[i]<0) sum=sum+a[i]; … Пример нахождения минимального элемента массива и его индекса. int a[10], min, mini; … min=a[0]; for (int i=1; i<10; i++) if (a[i] min=a[i]; mini=i; } … Другой способ нахождения минимального элемента массива и его индекса min=0; for (int i=1; i<10; i++) if (a[i] min=i; } 4.2 Использование многомерных массивовПри создании двухмерного массива после его имени ставится два значения – количество строк и столбцов. Для двухмерного массива целых чисел размерностью 55 объявление запишется в виде: int a[5][5]; Многомерные массивы инициализируются так же, как и одномерные. В следующем примере массив sqrs инициализируется числами от 1 до 10 и их квадратами: int sqrs[10][2] = { 1, 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, 7, 49, 8, 64, 9, 81, 10, 100 }; Далее на примере показана инициализация и вывод элементов двухмерного массива. int a[10][20]; for (int i=0; i<10; i++) for (int j=0; j<20; j++) a[i][j] = 0; // инициализация массива нулями for (int i=0; i<10; i++) for (int j=0; j<20; j++) if(i==j) a[i][j] = 1; //инициализация главной диагонали массива единицами for (i=0; i<10; i++) { for (int j=0; j<20; j++) printf(“%i”, a[i][j]) printf(“\n”); // вывод массива в матричном виде } Как можно видеть из листинга после инициализации массива главная диагональ заполняется единицами. Предлагается в качестве упражнения заполнить другую диагональ. 5. Методические указанияЛабораторная работа содержит индивидуальные задания на: 1) обработку одномерного массива; 2) обработку двухмерного массива. В индивидуальных заданиях указан тип элементов массива целых чисел, его размер. Массив необходимо заполнять значениями, вводимыми с клавиатуры. При вводе массив представлять в общепринятом виде. Для всех вариантов задания следует иметь в виду следующее: – 0 считается положительным числом, если в задании не оговорен какой-то другой его статус; – в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики. 6. Индивидуальные заданияВариант 1 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите произведение элементов массива, расположенных между максимальным и минимальным элементами. 2. Дана матрица целых чисел A(N, M). Найдите её наибольший элемент и номера строки и столбца, на пересечении которых он находится. Вариант 2 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите произведение элементов массива, расположенных между максимальным и минимальным по модулю элементами. 2. Дана матрица целых чисел A(N, N). Перепишите элементы её главной диагонали в одномерный массив Y(N) и разделите их на максимальный элемент главной диагонали. Вариант 3 1. В одномерном массиве, состоящем из N целых элементов вычислите, сумму элементов массива, расположенных между первым и последним нулевыми элементами. 2. Напишите программу, заполняющую двухмерный массив размерностью 10 на 10 целыми числами по возрастанию. Вариант 4 1. В одномерном массиве, состоящем из n вещественных элементов, вычислите сумму элементов массива, расположенных между первым и последним отрицательными элементами. 2. Напишите программу, заполняющую элементы двухмерного массива змейкой. Вариант 5 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите сумму элементов массива, расположенных до последнего положительного элемента. 2. Дана целочисленная матрица A(N, M). Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию| ai j | < i. Вариант 6 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите сумму элементов массива, расположенных между первым и последним положительными элементами. 2. Вычислите целочисленную матрицу С(N, N), являющуюся суммой матриц А(N, N) и В(N, N). Вариант 7 1. В одномерном массиве, состоящем из N целых элементов, вычислите произведение элементов массива, расположенных между первым и вторым нулевыми элементами. 2. Дана целочисленная матрица A(N, M). Вычислите и запомните сумму и число положительных элементов каждого столбца матрицы. Результаты выведите в виде двух строк. Вариант 8 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму элементов массива, расположенных между первым и вторым отрицательными элементами. 2. Дана целочисленная матрица A(N, N). Вычислите сумму и число элементов матрицы, находящихся под главой диагональю. Вариант 9 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму элементов массива, расположенных между первым и вторым положительными элементами 2. Дана целочисленная матрица A(N, N). Вычислите сумму и число элементов матрицы, находящихся над главной диагональю. Вариант 10 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму модулей элементов массива, расположенных после первого элемента, равного 0. 2. Дана целочисленная матрица A(N, N). Вычислите произведение отрицательных элементов матрицы, находящихся под главой диагональю. Вариант 11 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму модулей элементов массива, расположенных после первого отрицательного элемента. 2. Дана целочисленная матрица A(N, N). Запишите на место отрицательных элементов матрицы нули, а на место положительных - единицы. Матрицу напечатайте в общепринятом виде. Вариант 12 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму модулей элементов массива, расположенных после первого положительного элемента. 2. Дана целочисленная матрица A(N, N). Выведите на печать нижнюю треугольную матрицу в общепринятом виде. Вариант 13 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму элементов массива, расположенных после максимального элемента. 2. Дана целочисленная матрица A(N, N). Найдите в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Матрицу напечатать в общепринятом виде. Вариант 14 1. В одномерном массиве, состоящем из N целых элементов, вычислите сумму элементов массива, расположенных после минимального элемента 2. Дана ненулевая целочисленная матрица A(N, N). Найдите в каждом столбце матрицы максимальный и минимальный элементы и замените их нулями. Матрицу напечатать в общепринятом виде. Вариант 15 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите произведение элементов массива, расположенных после максимального по модулю элемента. 2. В целочисленной матрице A(N, N) найдите для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов. Вариант 16 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите сумму модулей элементов массива, расположенных после минимального по модулю элемента. 2. Дана целочисленная матрица A(N, N). Найдите в каждой строке наибольший элемент и поменяйте его местами с элементом главной диагонали. Отпечатайте полученную матрицу в общепринятом виде. Вариант 17 1. В одномерном массиве, состоящем из N целых элементов, вычислить сумму элементов массива, расположенных после последнего элемента, равного 0. 2. Дана целочисленная матрица A(N, N). Найдите строку с наибольшим средним арифметическим значением элементов. Вывести на печать строку и среднее арифметическое значение ее элементов. Вариант 18 1. В одномерном массиве, состоящем из N вещественных элементов, в сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. 2. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов. Вариант 19 1. В одномерном массиве, состоящем из N вещественных элементов, найдите сумму положительных элементов массива, расположенных до максимального элемента. 2. Дана целочисленная матрица A(N, N). Найдите в каждом столбце наименьший элемент и поменяйте его местами с элементом побочной диагонали. Отпечатайте полученную матрицу в общепринятом виде. Вариант 20 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите сумму положительных элементов массива, расположенных до минимального элемента 2. Дана целочисленная матрица A(N, N). Поменяйте местами элементы главной и побочной диагоналей. Вариант 21 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите произведение отрицательных элементов массива кратных 2, расположенных до первого нулевого элемента 2. Дана целочисленная матрица A(N, N). Поменяйте местами элементы главной и побочной диагоналей. Вариант 22 1. В одномерном массиве, состоящем из N вещественных элементов, вычислите среднее арифметическое элементов массива, расположенных после минимального по модулю элемента. 2. Дана целочисленная матрица A(N, N). Найдите в каждом столбце первый отрицательный элемент и поменяйте его местами с элементом главной диагонали. Отпечатайте полученную матрицу в общепринятом виде. Вариант 23 1. В одномерном массиве, состоящем из N целых элементов, вычислите произведение четных элементов массива, расположенных между первым и вторым положительными элементами. 2. Дана целочисленная матрица A(N, N). Вычислите произведение ненулевых элементов матрицы, находящихся над главной диагональю. |