программирование 1-й семестр вариант №1 / отчёты / отчет5
.docxУО «Белорусский Государственный университет информатики и радиоэлектроники»
Отчёт
По контрольной работе №5 по теме:
«Обработка двухмерных динамических массивов. Функции пользователя»
Вариант 1
Выполнил:
Студент гр. ____
______________
Проверил:
______________
Минск 2010
Задание.
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Найти сумму элементов, расположенных на главной диагонали.
Т.к. нужно определить сумму элементов, расположенных на главной диагонали, то матрица является квадратной, поэтому M=N.
Листинг 5.1. Функция main
#include <iostream.h>
#include <conio.h>
int summ_main_diag(int n, int **a);
int main(){
int **a, i, j, n, m, summ;
cout << "Input N (M=N):\t";
cin >> n;
// Значение M=N, т.к. матрица квадратная
m = n;
a = new int *[n];
for (i=0; i<n; i++)
a[i] = new int [m];
cout << "\nInput A" << endl;
for (i=0; i<n; i++)
for (j=0; j<m; j++){
cout << "a[" << i+1 << "][" << j+1 << "] = ";
cin >> a[i][j];
}
cout << "\nMatrix A:" << endl;
for (i=0; i<n; i++){
for (j=0; j<m; j++)
cout << "\t" << a[i][j];
cout << endl;
}
summ = summ_main_diag(n, a);
cout << "Summa zna4eniy glavnoj diagonali = " << summ << endl;
delete []a;
cout << "\nPress any key to exit..." << endl;
getch();
return 0;
}
Листинг 5.2. Функция summ_main_diag
int summ_main_diag(int n, int **a){
int i, s=0;
for (i=0; i<n; i++)
s += a[i][i];
return s;
}
Результат выполнения программы.
Используемая литература.
Б. Страуструп. Язык программирования С++