лабы для 28 варианта / Лабораторная работа№8
.docxСанкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича
ПРОГРАММИРОВАНИЕ
Отчёт по Лабораторной Работе №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;
}
Ж. Выводы
Тот факт, что результаты контрольных расчетов, выполненных вручную, достаточно совпадают с результатами контрольных расчетов, выполненных на ЭВМ, свидетельствуют о том, что программа составлена правильно.