Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы для 28 варианта / Лабораторная работа№8

.docx
Скачиваний:
3
Добавлен:
21.12.2020
Размер:
223.79 Кб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича

ПРОГРАММИРОВАНИЕ

Отчёт по Лабораторной Работе №8

тема: ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ

Санкт-Петербург 2020

А. Постановка задачи(28 ВАРИАНТ)

Требуется выполнить обработку числового двумерного массива. Все основные действия (ввод исходных массивов с клавиатуры, вычисления, вывод) следует выполнять с помощью функций.

Вычислить сумму чисел для каждого столбца, удовлетворяющих условию . Здесь a - произвольная величина. N <= 5, M <= 5

Лабораторная работа выполняется в виде одного файла, содержащего функции для работы с массивами и основную функцию main().

Б. Разработка алгоритма

Входные данные состоят из величин N (количество строк), M (количество столбцов, или, иначе говоря, количество чисел в каждой строке) и числовых последовательностей. Значения N и M вводятся в основной части программы.

В. Таблица идентификаторов

N

Обозначение в задаче

Идентификатор

Назначение

1

N

n

Входные данные

2

M

m

Входные данные

3

a

a

Входные данные

4

-

array[][]

Входные и выходные данные

5

i

Счётчик цикла

6

j

Д. Контрольный расчет

Назначение набора данных

Набор данных

Результаты вычислений

n

m

a

Ручные

Машинные

C1

C2

C3

C4

C1

C2

C3

C4

Контрольный набор

3

4

9

0

27

22

72

0

27

22

72

Е. Программа на языке Си

#include <stdio.h>

void input(float array[][5], int N, int M);

float sum(float array[][5], int N, int k, float a);

int main(void)

{

float array[5][5];

int n, m;

float a;

printf("N = ");

scanf("%d", &n);

printf("M = ");

scanf("%d", &m);

printf("a = ");

scanf("%f", &a);

printf("Enter array's elements:\n");

input(array, n, m);

for (int i = 0; i < m; i++)

printf("Column %d, summa= %.2f\n", i + 1, sum(array, n, i, a));

return 0;

}

void input(float array[][5], int N, int M)

{

for (int i = 0; i < N; i++)

for (int j = 0; j < M; j++)

scanf("%f", &array[i][j]);

}

float sum(float array[][5], int N, int k, float a)

{

int summ = 0;

for (int i = 0; i < N; i++)

if (array[i][k] > a)

summ += array[i][k];

return summ;

}

Ж. Выводы

Тот факт, что результаты контрольных расчетов, выполненных вручную, достаточно совпадают с результатами контрольных расчетов, выполненных на ЭВМ, свидетельствуют о том, что программа составлена правильно.