cout<<"A = "<<A<<endl;
getch();
// обнуление указателя
A=NULL;
// вывод указателя
cout<<endl<<"Значение указателя после его обнуления"<<endl;
cout<<"A = "<<A<<endl;
getch();
}
Динамическое выделение памяти позволяет рационально ее использовать и существенно при работе с большими массивами. Однако при работе в окне DOS превысить размер в 64 К нельзя. При работе непосредственно в среде Windows размеры массивов ограничиваются лишь объемом оперативной памяти.
Для определения типов данных, необходимых при работе с векторами и матрицами, используется заголовочный файл 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.
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 А.Я. Архангельским. Они дают хорошее представление о возможностях разработки интерфейсов для программ научно-технических расчетов, которые дают системы визуального и объектно-ориентированного программирования.
1. Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: Диалог-МИФИ, любой год издания.
2. Подбельский В.В., Фомин С.С. Программирование на языке Си. М.: Финансы и статистика, любой год издания.
3. Подбельский В.В. Язык С++. М.: Финансы и статистика, любой год издания.
4. Боревич З.И. Определители и матрицы. М.: Наука, 1988.
5. Матричные алгоритмы.doc. Текстовый документ в электронной форме.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.