Работа с векторами и матрицами (Лабораторная работа № 1), страница 6

cout<<"A = "<<A<<endl;

     getch();

// обнуление указателя

     A=NULL;

// вывод указателя

     cout<<endl<<"Значение указателя после его обнуления"<<endl;

cout<<"A = "<<A<<endl;

     getch();

}

Динамическое выделение памяти позволяет рационально ее использовать и существенно при работе с большими массивами. Однако при работе в окне DOS превысить размер в 64 К нельзя. При работе непосредственно в среде Windows размеры массивов ограничиваются лишь объемом оперативной памяти.

5. Программные модули, используемые в работе

Для определения типов данных, необходимых при работе с векторами и матрицами, используется заголовочный файл define.h. Он должен находиться в том же рабочем каталоге, где предполагается сохранять свои файлы и из которого запускается Borland C++.

Для иллюстрации работы с типами Vector и Matrix даются программные модули vector.cpp, matrix.cpp и matfunc.cpp. Они содержат ряд функций для работы с векторами и матрицами. Алгоритмы, которые лежат в их основе, изучались в прошлом семестре. Некоторые их них описываются в прилагаемом файле Матричные алгоритмы.doc.

Для иллюстрации работы с типами SVector и SMatrix даются программные модули svector.cpp, smatrix.cpp. В них размещены аналогичные функции, но использующие структурные типы.

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

Программы, приведенные на листингах 4 – 6, находятся в файлах listing4.cpp,  listing5.cpp и listing6.cpp.

6. Задание к работе

1)  Прочитать тексты          Введение.doc, define.doc, demo.doc, находящиеся в каталоге Introduction.

2)  Проанализировать тексты функций, находящихся в модуле  matrix.cpp. Разработать управляющие программы для использования некоторых из них (по заданию преподавателя)  и опробовать их работу. Примерные варианты могут быть следующие:

-  Заполнить матрицу, содержащую m строк и n столбцов случайными числами. Определить минимальные и максимальный элементы матрицы и их расположение. Вычислить среднее значение и среднеквадртичное отклонение элементов матрицы.

-  Вычислить произведение двух заданных с клавиатур матриц, а также их нормы. Проверить, равна ли норма матрицы-произведения произведению норм матриц-сомножителей.

-  По заданной с клавиатуры квадратной матрицы вычислить обратную ей. Перемножить заданную матрицу и полученную обратную, вычесть из произведения единичную матрицу и найти норму матрицы-разности. Убедиться, что полученная норма близка к нулю.

3)  Проанализировать тексты функций, находящихся в модуле smatrix.cpp. Разработать аналоги  имеющихся в модуле matrix.cpp функций, но отсутствующих в модуле smatrix.cpp (по указанию преподавателя),  вставить их в модуль  smatrixs.cppи опробовать их работу.

4)  Проанализировать текст функции ExpMat(), находящийся  в модуле matfunc.cpp. Разработать аналогичную функцию для расчета другой функции матричного аргумента из приведенных в тексте МатричныеАлгоритмы.doc (по указанию преподавателя), вставить ее в модуль matfunc.cpp и проверить работу.

5)  Исполнить программы, находящиеся в файлах listing4.cpp,  listing5.cpp и listing6.cpp. Разработать программу, выполняющую заданные преподавателем действия с векторами и/или матрицами и исползующую динамические массивы.

6)  Исполнить программы, находящиеся в файлах TMatr.exe и TVect.exe. Эти программы разработаны в среде программирования C++ Builder А.Я. Архангельским.   Они дают хорошее представление о возможностях разработки интерфейсов для программ научно-технических расчетов, которые дают системы визуального и объектно-ориентированного  программирования.

6. Литература

1.  Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: Диалог-МИФИ, любой год издания.

2.  Подбельский В.В., Фомин  С.С. Программирование на языке Си. М.: Финансы и статистика, любой год издания.

3.  Подбельский В.В. Язык С++. М.: Финансы и статистика, любой год издания.

4.  Боревич З.И. Определители и матрицы. М.: Наука, 1988.

5.  Матричные алгоритмы.doc. Текстовый документ в электронной форме.