Форум программистов, компьютерный форум CyberForum.ru

ООП-отчет - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Внутреннее использование strtok http://www.cyberforum.ru/cpp-beginners/thread220761.html
Добрый вечер. Нужна Ваша срочная помощь. Мне нужно разбирать 2 строки на слова и каждое слово первой строки сравнить со словами второй, все было бы просто, но вот внутренное использование функции strtok невозможно. token = strtok(text, seps); while(token != NULL) { token0 = strtok(s_text, seps);
C++ Builder пож-ста в C++Builder Дана строка, содержащая текст на русском языке и некоторые 2 слова. Определить, сколько раз они входят непосредственно друг с другом. http://www.cyberforum.ru/cpp-beginners/thread220755.html
C++ Арифм.Прогрессия
Уже целый день сижу над задачей, но покачто получался только бред... Вот сама задача: Добавить к некоторой последовательности A=(ai), i=1..n, n<=100, наименьшее число элементов, чтобы получить арифметическую прогрессию ( напр 22 1 36 -> 1 8 15 22 29 36) Уже все перебрал, но всеравно в голове решение не укладывается...
Список указателей C++
Имеется структура данных, состоящая из 2 ух полей, необходимо создать отсортированный список указателей на эту структуру. Как создать отсортированный список структур я понимаю, а вот с указателями что-то не очень...
C++ Builder Unicode string C++ Builder 6 http://www.cyberforum.ru/cpp-beginners/thread220730.html
привет всем! вот у меня есть memory address которому требуется Unicode как мне вписать туда Unicode string в C++ Builder 6 ?????? (UnicodeString str;) - Не работает :(:(:(:( HANDLE pHandle; HWND wnd; wnd = FindWindow(0,"Game");
C++ Ошибка при линковке Здравствуйте. Помогите пожалуйста с проблемой над которой бьюсь уже не один день. Все компиляторы выдают след ошибки Error 3 error LNK2019: unresolved external symbol __imp__ImageList_Add@12 referenced in function "public: void __thiscall UserField::UserFieldInit(struct HDC__ *,struct HINSTANCE__ *,int,int)" (?UserFieldInit@UserField@@QAEXPAUHDC__@@PAUHINSTANCE__@@HH@Z) main.obj Error 4 error... подробнее

Показать сообщение отдельно
Светик@
1 / 1 / 0
Регистрация: 19.10.2009
Сообщений: 87

ООП-отчет - C++

26.12.2010, 18:02. Просмотров 566. Ответов 0
Метки (Все метки)

помогите написать отчет, очень нужно!!!!!
/*Определить класс "квадратная матрица", операции матричного умножения,
сложения, вычитания, транспонирования,
доступ к элементу матрицы по его индексам, вывод в поток.
*/

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <assert.h>
#include <stdlib.h>


class sqMatrix {
private:
float** pm; // massiv
int size; // razmernost vectora
void check_range( int );
public:
sqMatrix( int );
sqMatrix( float**, int );
sqMatrix( const sqMatrix& );
friend ostream& operator<< ( ostream&, const sqMatrix& );
sqMatrix operator+ ( const sqMatrix );
sqMatrix operator- ( const sqMatrix );
sqMatrix operator* ( const sqMatrix );
float* operator[] ( const int );
sqMatrix transposition();

~sqMatrix() { delete[] pm; }
};

//проверка индекса
inline void sqMatrix :: check_range( int index ) {
assert( index >= 0 && index < size );
}
// конструктор по умолчанию
// zapolnenie slyachainimi celimi chislami v diapozone [1, 9]
sqMatrix :: sqMatrix( int sz ) {
// check_range( sz );
size = sz;
pm = new float* [size];

for( int i = 0; i < size; i++ ) {
pm[i] = new float [size];
for( int j = 0; j < size; j++ )
pm[i][j] = 1 + rand() % 8;
}
}

sqMatrix :: sqMatrix( float** array, int sz ) {
// check_range( sz );
size = sz;
pm = new float* [size];
for( int i = 0; i < size; i++ ) {
pm[i] = new float [size];
for( int j = 0; j < size; j++ )
pm[i][j] = array[i][j];
}
}

// конструктор копирования
sqMatrix :: sqMatrix( const sqMatrix &m) {
size = m.size;
pm = new float* [size];
for( int i = 0; i < size; i++ ) {
pm[i] = new float [size];
for( int j = 0; j < size; j++ )
pm[i] = m.pm[i];
}
}

// перегрузка "*" : матричное умножение
sqMatrix sqMatrix :: operator* ( const sqMatrix m ) {
sqMatrix c( size );
for( int i = 0; i < size; i++ )
for( int j = 0; j < size; j++ ) {
float res = 0;
for( int k = 0; k < size; k++ ) {
res += pm[i][k] * m.pm[k][j];
c.pm[i][j] = res;
}
}
return c;
}

// перегрузка "+"
sqMatrix sqMatrix :: operator+ ( const sqMatrix m ) {
sqMatrix c( size );
for( int i = 0; i < size; i++ )
for( int j = 0; j < size; j++ )
c.pm[i][j] = pm[i][j] + m.pm[i][j];

return c;
}

// перегрузка "-"
sqMatrix sqMatrix :: operator- ( const sqMatrix m ) {
sqMatrix c(size);
for( int i = 0; i < size; i++ )
for( int j = 0; j < size; j++ )
c.pm[i][j] = pm[i][j] - m.pm[i][j];
return c;
}

float* sqMatrix :: operator[] ( const int index ) {
check_range(index);
return pm[index];
}
sqMatrix sqMatrix :: transposition() {
sqMatrix c(size);
for( int i = 0; i < size; i++ )
for( int j = i; j < size; j++ ) {
c.pm[i][j] = pm[j][i];
c.pm[j][i] = pm[i][j];
}
return c;
}

// отображение векторов: вывод в поток
ostream& operator<< (ostream &os, const sqMatrix &m) {
for( int i = 0; i < m.size; i++ ) {
os << "\t";
for( int j = 0; j < m.size; j++ )
os << setw(3) << m.pm[i][j] << " ";
os << "\n";
}
os << "\n";
return os;
}

int main() {
randomize();
int n = 3;
sqMatrix a(n),b(n);
ofstream& file = ofstream("output.txt");
file << "matr a:" << a
<< "a^T: " << a.transposition()
<< "matr b:" << b
<< "a + b =" << a + b
<< "a - b =" << a - b
<< "a * b =" << a * b
<< "a[2][2] = " << a[2][2]
<< "\n";
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru