Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Программа, реализующая тип данных "вещественная матрица"
Раздел: Рефераты по информатике, программированию
Тип: лабораторная работа Добавлен 23:33:42 05 мая 2011 Похожие работы
Просмотров: 995 Комментариев: 21 Оценило: 3 человек Средний балл: 4 Оценка: неизвестно     Скачать

Федеральное агентство Российской Федерации по образованию

ГОУ ВПО «Тульский государственный университет»

Кафедра электронных вычислительных машин

Лабораторная работа № 1

Языки программирования. «Классы»

Выполнил: студент

группы 230701

Гребецкая Е.В.

Проверил: Савин Н.И.

Тула 2010

Введение

Задание

Реализовать класс «вещественная матрица», который позволяет осуществлять основные операции с вещественными прямоугольными матрицами.

Техническое задание

Написать программу, реализующую тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:

• сложение, вычитание, умножение, деление (+, -, *, /)

• операции сравнения на равенство/неравенство;

• операции вычисления транспонированной матрицы

Требования к разработке

Microsoft Visual Studio 2008 илиновее.

Наличиеверсийоперационнойсистемы Microsoft Windows 98, Windows (Me), Windows 2000, Windows ХР, Windows Vista, Windows 7.

Требования кэксплуатации

Microsoft Windows 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(int n, int m)

{int i,j;

Matrix::n=n;

Matrix::m=m;

a=new double*[n]; // выделение памяти под указатели

for(i=0;i<n;i++)

a[i]=new double[m]; // выделениепамятиподэлемент

c=new double*[n];

for(int i=0; i<n; i++)

c[i]=new double[m];

-числа, однако число строк и число столбцов должно совпадать с прописанными в закрытой секции m и n.

{puts("\nВведите элементы матрицы:");

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{cout<<"a["<<i<<"]["<<j<<"]=";

cin>>a[i][j];}

cout<<endl;}};


Программная реализация

Тестирование

При тестировании программы выполнение программы прошло успешно.

Приложение

Код программы

#include "stdafx.h"

#include <iostream>

using namespace std;

class Matrix{

private:

int n,m;

//размеры матрицы

double **a, **c;

// указатели

public:

Matrix::Matrix(int n, int m)

{int i,j;

Matrix::n=n;

Matrix::m=m;

a=new double*[n]; // выделение памяти под указатели

for(i=0;i<n;i++)

a[i]=new double[m]; // выделениепамятиподэлемент

c=new double*[n];

for(int i=0; i<n; i++)

c[i]=new double[m];

// Заполнение массива элементами с клавиатуры

{puts("\nВведите элементы матрицы:");

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{cout<<"a["<<i<<"]["<<j<<"]=";

cin>>a[i][j];}

cout<<endl;}};

Matrix::~Matrix()

{for(int i=0;i<n;i++)

delete []a[i];// освобождениепамяти

delete []a;};

//Операцияприсваивания

Matrix &Matrix::operator =(const Matrix &A)

{for(int i=0; i<n; i++)

for(int j=0; j<m; j++)

a[i][j]=A.c[i][j];

return *this;}

//Сложениематриц

Matrix & Matrix::operator +(Matrix &A)

{for(int i=0; i<n; i++)

for(int j=0; j<m; j++)

c[i][j]=a[i][j]+A.a[i][j];

return *this;}

//Вычитаниематриц

Matrix & Matrix::operator -(Matrix &A)

{for(int i=0; i<n; i++)

for(int j=0; j<m; j++)

c[i][j]=a[i][j]-A.a[i][j];

return *this;}

// Умножениематриц

Matrix & Matrix::operator *(Matrix &A)

{

double s=0;

for(int i=0;i<n;i++)

{

int z=0;

while(z<A.m)

{

c[i][z]=0;

for(int j=0;j<m;j++)

{

s=GetI(i,j)*A.GetI(j,z);

c[i][z]+=s;

}

z++;

}

}

return *this;

}

//Сравнениематриц

Matrix & Matrix::operator ==(Matrix &A)

{int f=0;

for(int i=0; i<n; i++)

{for(int j=0; j<m; j++)

if(a[i][j]!=A.a[i][j]){ cout<<"\nМатрицынеравны\n";f=1; break;}

if(f==1) break;}

if(f==0) cout<<"\nМатрицыравны\n";

return *this;}

//Транспонированиематрицы

void Matrix::Transp()

{c=new double*[m];

for(int i=0;i<m;i++)

c[i]=new double[n]; // захватпамятиподэлемент

for(int i=0; i<n; i++)

for(int j=0; j<m; j++)

c[j][i]=a[i][j];

for(int i=0;i<n;i++)

delete []a[i];// освобождениепамяти

delete []a;

a=new double*[m];

for(int i=0;i<m;i++)

a[i]=new double[n]; // захватпамятиподэлемент

for(int i=0; i<m; i++)

for(int j=0; j<n; j++)

a[i][j]=c[i][j];

Matrix::n=m;

Matrix::m=n;

};

void main()

{}

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита08:31:45 03 ноября 2021
.
.08:31:43 03 ноября 2021
.
.08:31:42 03 ноября 2021
.
.08:31:41 03 ноября 2021
.
.08:31:38 03 ноября 2021

Смотреть все комментарии (21)
Работы, похожие на Лабораторная работа: Программа, реализующая тип данных "вещественная матрица"

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(294399)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте