Отчёт по технологии программирования по теме Указатели на языке программирования СИ. Отчёт по Лабораторной работе №6. Обработка многомерного массива
Скачать 88.67 Kb.
|
МИНОБРНАУКИ РОССИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Российский государственный университет им. А.Н. Косыгина (Технологии. Дизайн. Искусство)» Отчет по лабораторной работе №6 По дисциплине «Технология программирования» Тема: «Обработка многомерного массива» Вариант №31 Выполнил: Скобелев М.Д. Группа: МИ-121 Проверил: Фирсов Д.А. Москва 2022 г. Теоретическая часть Массив – это пронумерованное множество элементов одного типа, собранных под одним именем. Каждый элемент массива определяется именем массива и порядковым номером элемента. Массив – это непрерывный участок памяти, содержащий последовательность объектов одинакового типа, обозначаемый одним именем. Основные понятия массивов: Элемент(значение) А) Адрес элемента – это адрес начальной ячейки памяти, в которой расположен этот элемент. Б) Индекс элемента – это порядковый номер элемента последовательности массива. В) Значение элемента(переменная) Адрес массива – адрес начального элемента массива. Имя массива – идентификатор, используемый для обращения к элементам массива Размер массива – количество элементов массива Размер элемента – количество байт, занимаемых одним элементом массива. Длина массива – количество байт, вводимое в памяти для хранения элементов массива. Индексация на языке СИ всегда начинается с нуля, а индекс последнего элемента всегда на единицу меньше, чем количество элементов массива. 2. Практическая часть Задание №1 Дан одномерный массив Хn. Найти количество неотрицательных элементов массива, попадающих в интервал [С ; D]. Напечатать все отрицательные элементы. Б лок-схема 1: Код программы 1: #include #include int main(void) { int n, N, i = 0, C, D; printf("Enter the number of array elements N="), scanf("%d",&N); int X[N]; for (n = 1; n <= N; n++){ scanf("%d", &X[n]);} printf("Enter C:"); scanf("%d", &C); printf("Enter D:"); scanf("%d", &D); int *arr[N]; for (n = 1; n <= N; n++){ arr[n] = &X[n];} for (n = 1; n <= N; n++) { if ((*arr[n] >= C) && (*arr[n] <= D) && (*arr[n] >= 0)){ i++;}} printf("%d\n", i); for (n = 1; n <= N; n++) { if (*arr[n] < 0) { printf("%d", *arr[n]);}}} Скриншот работы программы 1: Задание №2 Дан одномерный массив Yk. Найти последний элемент с нечетным значением. Все элементы с четными номерами заменить найденным значением. Удалить все отрицательные элементы. Блок-схема 2: Код программы 2: Скриншот работы программы 2: # include #include int main(void) { int k, K, i = 0, j = 0, o = 1; printf("Enter the number of array elements K="), scanf("%d",&K); int Y[K]; for (k = 0; k < K; k++) { scanf("%d", &Y[k]);} int *arr[K]; for (k = 0; k < K; k++){ arr[k] = &Y[k];} for (k = 0; k < K ; k++) { if ((*arr[k] % 2 == 1)) { i = *arr[k];}} int Y2[o]; for (k = 0; k < K; k++) { if (k % 2 == 0 && *arr[k] >= 0) { Y2[j] = i; j++;} else if (*arr[k] >= 0 && k % 2 == 1) { Y2[j] = *arr[k]; j++;} o++;} printf("i = %d\n", i); for (k = 0; k < j; k++){ printf("%d\n", Y2[k]);}} Выводы: В результате выполнения лабораторной работы я ознакомился со структурой массивов в языке Си, изучил и научился применять массивы и указатели. Научился составлять блок-схемы для массивов и указателей. Корректность работы программы была проверена с помощью контрольного набора данных, что подтверждает единство результата ручного расчета и контрольного запуска. |