
Лаба 1-8 Лабораторные работы 1 семестр [Вариант 4] / Лаба 5 по ОАиП
.docБелорусский государственный университет информатики и радиоэлектроники
Кафедра вычислительных методов и программирования
Лабораторная работа № 5
Тема: «Указатели. Программирование с использованием
динамических массивов»
Вариант 4
Выполнил студент группы № 922403
Олешкевич Андрей Сергеевич
Приняла: Коренская И.H
Минск 2009
Задание: задана матрица размерами NxM. Определить количество «особых элементов» матрицы, считая элемент «особым», если он больше суммы остальных элементов своего столбца.
Листинг программы:
#include <iostream.h>
int main()
{
int row, column; // Колличество строк и столбцов
int count = 0; // Счетчик
int sum = 0; // Сумма элементов столбца
// без "особого элемента"
cout <<"Input array measured (row, column): ";
cin >> row >> column;
//--- Инициализация двумерного динамического массива
int **ms = new int*[row];
for(int i = 0; i < row; i++)
ms[i] = new int[column];
//--- Запрос ввода значения
for(int k = 0; k < row; k++)
{
for(int j = 0; j < column; j++)
{
cout <<"Element "<<k+1<<":"<<j+1<<" = ";
cin >> ms[k][j];
}
}
//--- Поиск "особых элементов"
for(int a = 0; a < row; a++)
{
for(int d = 0; d < column; d++)
{
for(int t = 0; t < row; t++)
{
sum += ms[t][d];
}
sum -= ms[a][d];
if(sum < ms[a][d])
count++;
sum = 0;
}
}
cout <<"Quantity of special elements: " << count << endl;
//--- Освобождение ресурсов
for (int s = 0; s < row; s++)
delete[]ms[s];
delete[]ms;
//-------------------------
return 0;
}
Выводы: Проведя данную лабораторную работу, я освоил указатели, научился писать программы с использованием динамических двумерных массивов. Также выучил операторы new и delete, при помощи которых осуществляется создание и удаление указателей.