Реферат по предмету "Информатика, программирование"


Программа, реализующая тип данных "вещественная матрица"

Федеральноеагентство Российской Федерации по образованию
ГОУ ВПО«Тульский государственный университет»
Кафедраэлектронных вычислительных машин
Лабораторнаяработа № 1
Языкипрограммирования. «Классы»
Выполнил: студент
группы 230701
Гребецкая Е.В.
Проверил: Савин Н.И.
Тула2010
Введение
Задание
Реализовать класс «вещественнаяматрица», который позволяет осуществлять основные операции с вещественнымипрямоугольными матрицами.Техническое задание
Написать программу, реализующую типданных «вещественная матрица» и работу с ними. Класс должен реализовыватьследующие операции над матрицами:
• сложение, вычитание, умножение,деление (+, -, *, /)
• операции сравнения наравенство/неравенство;
• операции вычисления транспонированнойматрицыТребования к разработке
Microsoft VisualStudio 2008 или новее.
Наличие версий операционной системыMicrosoft Windows 98, Windows (Me), Windows 2000, Windows ХР,Windows Vista, Windows 7./>Требования к эксплуатации
MicrosoftWindows 98/Me/2000/ХР/Vista/7.Технические характеристики
Время и эффективность работы программызависит от эксплуатационных характеристик пользователя.Эксплуатационные характеристики
Для того чтобыпрограмма работала быстро и эффективно не требуется мощных компьютеров исовременных операционных систем. Ниже приведены минимальные параметрыкомпьютера, которые нужны для работы:
· Центральныйпроцессор: Intel Pentium 166 MHz (рекомендуется P2 400 MHz)
· Оперативнаяпамять: 128 Mb (рекомендуемая 256 Mb)
· Памятина жестком диске: 1 Мб.
· Мониторс разрешением VGA и вышеВходные параметры:
элементы матрицы вводятся с клавиатурыВыходные параметры:
Вывод в консоль результата выполненияпрограммы.

 Теоретическиеположениятранспонированная вещественная матрицаСправка по программным методам
Класс-это производный структурированныйтип, введенный программистом на основе уже существующих типов. Механизм классовпозволяет создавать типы в полном соответствии с принципами абстракции данных,т. е класс задает некоторую структурированную совокупность типизированныхданных и позволяет определить набор операций над этими данными. Простейшимобразом класс можно определить с помощью инструкции:
Ключ_класса имя_класса{список_компонентов};
где ключ_класса – одно из служебных словclass, struct, union, имя_класса – произвольно выбираемый разработчикомидентификатор, список_компонентов – определения и описания типизированныхданных и принадлежащих классу функций.
Конструктор – специальная функциякласса, которая вызывается автоматически при создании объекта типа класса. Имяконструктора совпадает с именем класса, не возвращает никакого результата, дажеvoid. Компилятор гарантирует единственный вызов конструктора для одногообъекта.
Деструктор – специальная функция класса,которая вызывается автоматически при уничтожении объекта. Имя деструкторасовпадает с именем класса, перед которым ставится символ “~”. Компиляторгарантирует единственный вызов деструктора для одного объекта. Деструктор неможет иметь параметров и поэтому не может быть перегружен.
При создании автоматической переменнойдеструктор вызывается автоматически при выходе из области видимости, то есть зарамки блока, в котором определена переменная. Для динамических переменных делаобстоят совсем по-другому, для освобождения занятой памяти используетсяоператор delete, который и вызывает деструктор.Справка по математическим методам:
Прямоугольная матрица – математическийэлемент, в котором в виде таблицы записываются числа, называемые элементамиматрицы, которые образую т прямоугольную область. Элементы, расположенные в рядпо горизонтали, называются строками матрицы, по вертикали — столбцами матрицы.
Действия с матрицами:
· Сложение:сложение матриц происходит поэлементно, например, элемент a11 складывается сэлементом b11, a21 с b21 и т.д.
· Вычитаниепроисходит поэлементно, аналогично сложению.
· Умножениематриц:
Произведениемматрицы />размером/>наматрицу />размером/>называетсяматрица />размером/>укоторой:
/>
· Транспонированиематрицы:
/>
· Сравнениематриц: если элементы одной матрици равны элементам другой матрицы, то матрицыравны.
/>/>Алгоритмические положения
В данной программе имеется файлmatrix.cpp в котором в секции private представлены типы размеров матрицы иуказателей, а в секции public констуктор класса, а также представлены функции,которые будут осуществляться при работе с этим классом.
Сначала срабатывает конструктор,выделяющий память под указатели и элементы.
Matrix::Matrix(intn, int m)
{int i,j;
Matrix::n=n;
Matrix::m=m;
a=new double*[n]; // выделение памятипод указатели
for(i=0;i
a[i]=newdouble[m]; // выделение памяти под элемент
c=newdouble*[n];
for(int i=0;i
c[i]=newdouble[m];
-числа, однако число строк и числостолбцов должно совпадать с прописанными в закрытой секции m и n.
{puts("\nВведите элементыматрицы:");
for(i=0;i
for(j=0;j
{cout
cin>>a[i][j];}
cout
Программная реализация Тестирование
При тестировании программы выполнениепрограммы прошло успешно.ПриложениеКод программы
#include«stdafx.h»
#include
usingnamespace std;
classMatrix{
private:
intn,m;//размеры матрицы
double **a, **c;// указатели
public:
Matrix::Matrix(intn, int m)
{inti,j;
Matrix::n=n;
Matrix::m=m;
a=newdouble*[n]; // выделение памяти под указатели
for(i=0;i
a[i]=newdouble[m]; // выделение памяти под элемент
c=newdouble*[n];
for(inti=0; i
c[i]=newdouble[m];
// Заполнениемассива элементами с клавиатуры
{puts("\nВведитеэлементы матрицы:");
for(i=0;i
for(j=0;j
{cout
cin>>a[i][j];}
cout
Matrix::~Matrix()
{for(inti=0;i
delete[]a[i];// освобождение памяти
delete[]a;};
//Операция присваивания
Matrix&Matrix::operator =(const Matrix &A)
{for(inti=0; i
for(intj=0; j
a[i][j]=A.c[i][j];
return*this;}
//Сложение матриц
Matrix& Matrix::operator +(Matrix &A)
{for(inti=0; i
for(intj=0; j
c[i][j]=a[i][j]+A.a[i][j];
return*this;}
//Вычитание матриц
Matrix& Matrix::operator -(Matrix &A)
{for(inti=0; i
for(intj=0; j
c[i][j]=a[i][j]-A.a[i][j];
return*this;}
// Умножение матриц
Matrix& Matrix::operator *(Matrix &A)
{
doubles=0;
for(inti=0;i
{
intz=0;
while(z
{
c[i][z]=0;
for(intj=0;j
{
s=GetI(i,j)*A.GetI(j,z);
c[i][z]+=s;
}
z++;
}
}
return*this;
}
//Сравнение матриц
Matrix& Matrix::operator ==(Matrix &A)
{intf=0;
for(inti=0; i
{for(intj=0; j
if(a[i][j]!=A.a[i][j]){cout
if(f==1)break;}
if(f==0)cout
return*this;}
//Транспонирование матрицы
voidMatrix::Transp()
{c=newdouble*[m];
for(inti=0;i
c[i]=newdouble[n]; // захват памяти под элемент
for(inti=0; i
for(intj=0; j
c[j][i]=a[i][j];
for(inti=0;i
delete[]a[i];// освобождение памяти
delete[]a;
a=newdouble*[m];
for(inti=0;i
a[i]=newdouble[n]; // захват памяти под элемент
for(inti=0; i
for(intj=0; j
a[i][j]=c[i][j];
Matrix::n=m;
Matrix::m=n;
};
voidmain()
{}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.