лаба 3 прога. Обработка двумерных массивов
Скачать 220.39 Kb.
|
МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра Вычислительной техники ОТЧЕТ по лабораторной работе № 3 по дисциплине «Программирование» Тема: «Обработка двумерных массивов» Студентка гр. 2306 Никитина А. Д. Преподаватель Хахаев И. А. Санкт-Петербург 2022 Цель работы. Целью работы является изучение алгоритмов с обработкой двумерных массивов и получение практических навыков в написании программ с обработкой двумерных массивов. Задание (вариант 11) Дан двумерный массив ненулевых целых чисел. Определить, сколько раз элементы массива меняют знак (принимая, что массив просматривается построчно сверху вниз, а в каждой строке — слева направо). Постановка задачи и описание решения Переменная ch равна нулю. На вход принимаются числа n и m – количество столбцов и строк соответственно. Выполняется цикл for от i = 0 пока i меньше n, в котором выполняется ещё один цикл for от j = 0 пока j меньше m: вводится текущий элемент двумерного массива. Затем выполняется цикл for от i = 0 пока i меньше n, в котором выполняется ещё один цикл for от j = 0 пока j меньше (m-1): переменная ch увеличивается на 1, если произведение текущего и следующего элементов в двумерном массиве отрицательно; если i меньше (n-1), то есть строка не последняя, то переменная ch увеличивается на 1, если произведение последнего в текущей строке и первого в следующей строке в двумерном массиве отрицательно. После выполнения цикла выводится переменная ch. Описание переменных № Имя переменной Тип Назначение 1 a[][] int Двумерный массив 2 ch int Количество изменений знака 3 i int Счётчик 4 j int Счётчик 5 n int Количество столбцов в двумерном массиве 6 m int Количество строк в двумерном массиве 2 Схема алгоритма 3 Контрольные примеры: Исходные данные Результаты 2 2 4 -3 -5 4 2 3 6 4 3 2 5 -2 2 4 -2 -2 -4 2 2 6 4 3 2 -2 -2 5 Текст программы #include #define MAX_N 10 int main() { int a[MAX_N][MAX_N], i, j, n, m, ch = 0; puts("enter a two-dimensional array of nonzero integers..."); scanf("%i %i", &n, &m); for(i = 0; i < n; i++) { for(j = 0; j < m; j++) { scanf("%i", &a[i][j]); } } for(i = 0; i < n; i++) { for(j = 0; j < m - 1; j++) { ch += ((a[i][j] * a[i][j + 1]) < 0); } if(i < n - 1) { ch += ((a[i][j] * a[i + 1][0]) < 0); } } printf("change: %d\n", ch); return 0; } 4 Примеры выполнения программы Выводы. В результате выполнения работы мною были изучены и получены практические навыки обработки двумерных массивов на примере вычисления количества изменения знака элементов массива. 5 |