|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите решить |
|
|
C/C++ - Помогите решить
|
Новый участник Сообщения: 4 |
Задание:
1.Дано класс,покажите,как прибавить дружескую функцию fr(),которая получает один параметр типа myclass и возвращает true,если значение num отрицательное,и false-в другом случае. class myclass{ int num; public: myclass(int x){num=x} }; Определите другую дружескую функцию,которая использует результат функции fr().Покажите использование. 2.Написать програму,в которой создать два класса plane и helicopter.При чем оба имееют как закрытую переменную скорость и грузоподьемность.Проверьте эти переменные и выведите результаты сравнения в виде строк. 3.Создать два класса матрица и вектор.Определить конструкторы,деструкторы.Определить функцию умножения вектора на матрицу как дружескую.Определить дружескую функцию умножения матрицы на матрицу.Определить дружескую функцию умножения числа на матрицу.Продемонстрировать роботу функций в програме. |
|
Отправлено: 21:50, 01-11-2007 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Значит 2-я задача готова... 1-ю тоже, но нужно откоментировать - откоментирую выложу... Завтра...))))))
// Программа Задачи №2, о Вертолёте и Планере--------------------------------- #include <iostream.h> using std::cout; using std::cin; using std::endl; class Helicopter{ // Класс Helicopter public: Helicopter(int, int); // Конструктор Helicopter'a void Print() const { cout<<" Speed Helicopter: "<<Speed<<"\n"<<" Cargo Helicopter: "<<Cargo<<endl; };// Печать private: int Speed; // Скорость Вертолёта int Cargo; // Грузоподъёмность Вертолёта }; // ------------------------------------------------------------------------- class Planer{ // Класс Planer public: Planer(int, int); // Конструктор Planer'a void Print() const { cout<<" Speed Planer: "<<Speed<<"\n"<<" Cargo Planer: "<<Cargo<<endl; };// Печать private: int Speed; // Скорость Планера int Cargo; // Грузоподъёмность Планера }; // Конструктор Helicopter---------------------------------------------------- Helicopter::Helicopter(int spd, int crg) { Speed = (spd > 0) ? spd : 230; Cargo = (crg > 0) ? crg : 2000; cout<<" Inizialization... 'Helicopter'\n"; } // Конструктор Planer--------------------------------------------------------- Planer::Planer(int spd, int crg) { Speed = (spd > 0) ? spd : 230; Cargo = (crg > 0) ? crg : 1535; cout<<" Inizialization... 'Planer'\n\n"; } // Выполнение программы------------------------------------------------------ int main() { int z; Helicopter hel(21, 500); // Объект класса Helicopter, со своими значениями Planer plnr(53, 458); // Объект класса Planer, со своими значениями hel.Print(); // Вывод данных объекта класса Helicopter cout<<endl; // Пустая строка, для читабельности plnr.Print(); // Вывод данных объекта класса Planer cin>>z; return 0; } //------------------------------------------------------------------- |
------- Последний раз редактировалось Drongo, 24-04-2008 в 19:35. Отправлено: 21:25, 03-11-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо...каким компилятором можна компилировать???и если можна файл выложы....
![]() ![]() |
Отправлено: 00:24, 04-11-2007 | #3 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Borland C++ Builder 6 делал...
|
------- Отправлено: 17:28, 04-11-2007 | #4 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Вот 1 задача, а вот о Матрицах, сам бы хотел увидеть правильное решение, особенно об умножении Вектора на Матрицу... И описание класса Вектор... Тем не менее я попробую решить,
Умножение Матрицы на Матрицу Умножение Матрицы на Число А вы раскритикуйте мой код, хотя я и сам понимаю что решил по-дилетантски, но я пробую решить, только в этом вопросе нет соответсвующих знаний, в следующий раз я выложу половину решения 3-го задания... Код: // Программа Задачи №1, о Функциях друзьях---------- #include <iostream.h> using std::cout; using std::cin; using std::endl; class MyClass{ // Класс MyClass friend bool fr(const MyClass &mClass); // Функция друг, принимает ссылку на объект класс MyClass friend void printResult(const MyClass &mClass); // Функция друг, принимает ссылку на объект класс MyClass public: MyClass(int x) { num = x; }; // Конструктор private: int num; // Число.... }; // Булевая функция, если число положительное вернуть - true, если отрицательное - false------- bool fr(const MyClass &mClass) { return (mClass.num > 0) ? true : false; } // Печать результата, используя результат функции fr(const MyClass & mClass)-------------------------- void printResult(const MyClass &mClass) { if(true == fr(mClass.num)) // явное сравнение с возвращаемым результатом - true cout<<" Num: "<<mClass.num<<". Number Positiv"<<endl; else if(false == fr(mClass.num)) // явное сравнение с возвращаемым результатом - false cout<<" Num: "<<mClass.num<<". Number Negativ"<<endl; } // Выполнение программы------------------------------------------------------------------------- int main() { int z; MyClass MC_1(-8); // Объект с отрицательным аргументом MyClass MC_2(10); // Объект с положительным аргументом printResult(MC_1); // Вызов функции проверки для объекта MC_1 printResult(MC_2); // Вызов функции проверки для объекта MC_2 cin>>z; return 0; } //--------------------------------------------------------------------------- |
|
------- Отправлено: 18:58, 05-11-2007 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Решил часть 3-й задачи... Пожалуйста, раскритикуйте мой код... Приму любые дельные замечания..
Кроме того хочу узнать, посоветуйте, как решается данная задачка, если можно попунктно, например: шаг 1... шаг 2... шаг 3... и т.д... от чего отталкиваться, приму любые ссылки. Но больше всего хочу узнать, как определить класс "Вектор" и умножить Вектор на Матрицу... Очень бы хотелось увидеть код, выполняющий это умножение, а не сухое определение Вектора... Поскольку считаю для себя проблему в том, что я не могу определить класс "Вектор"... Передаю файл, который у меня получился... Так что критикуйте, как пожелает сердце, ведь в споре рождается истина, всем благодарен, за советы и помощь, кто откликнется! //--------------------------------------------------------------------------- #include <iostream.h> using std::cout; using std::cin; using std::endl; #include <iomanip> using std::setw; class Matrix{ // Класс Matrix // Дружеская функция умножения Матрицы на Матрицу friend void MultiplicationMatrix(Matrix &mMatrix); // Дружеская функция умножения Матрицы на Число friend void NumberMultiplicationMatrix(Matrix &mMatrix, int); public: Matrix(int height = 1, int width = 1); // Конструктор с аргументами по умолчанию void setMatrix(int height, int width); // Установка размера матрицы void UserFromKeyboards(); // Ввод данных с клавиатуры void PrintTwoMatrix(); // Печать Значений Матриц ~Matrix(); // Деструктор private: int *Matrix_1; // Указатель на целое (Первая Матрица) int *Matrix_2; // Указатель на целое (Вторая Матрица) int SizeMatrix; // Размер Матрицы int row; // Сколько строк в Матрице int column; // Сколько столбцов в Матрице }; // Конструктор-------------------------------------------------------------- Matrix::Matrix(int height, int width) { setMatrix(height, width); } // Установка размера Матрицы------------------------------------------------ void Matrix::setMatrix(int h, int w) { SizeMatrix = h * w; } // Ввод данных с клавиатуры------------------------------------------------- void Matrix::UserFromKeyboards() { int counter_1 = 1, counter_2 = 1; cout<<" Enter size Column: "; cin>>column; // Столбцы cout<<" Enter size Row: "; cin>>row; // Строки setMatrix(row, column); // Определение размера Матрицы ( row * column ) Matrix_1 = new int[SizeMatrix]; // Матрица 1 в виде одномерного массива Matrix_2 = new int[SizeMatrix]; // Матрица 2 в виде одномерного массива // Циклический ввод в 1-ю Матрицу for(int i = 0; i < SizeMatrix; i++){ cout<<" Enter value in 'Matrix_1', position "<<counter_1++<<" Value: "; cin>>Matrix_1[i]; } cout<<endl; // Пустая строка (для читабельности) // Циклический ввод в 2-ю Матрицу for(int j = 0; j < SizeMatrix; j++){ cout<<" Enter value in 'Matrix_2', position "<<counter_2++<<" Value: "; cin>>Matrix_2[j]; } } // Вывод элементов обоих Матриц на экран------------------------------------ void Matrix::PrintTwoMatrix() { int control_1 = 0, // Для вывода знака '|' в начале 1-й Матрицы control_2 = 0, // Для вывода знака '|' в начале 2-й Матрицы counColumn_1 = column, // Для вывода знака '|' в конце 1-й Матрицы counColumn_2 = column; // Для вывода знака '|' в конце 2-й Матрицы // Вывод на экран 1-й Матрицы for(int j = 0; j < SizeMatrix; j++){ if(control_1 == 0){ cout<<'|'; control_1++; } cout<<setw(7)<<Matrix_1[j]; if(j == counColumn_1-1){ counColumn_1 += column; cout<<'|'; control_1 = 0; cout<<endl; } } cout<<"\n\n"; // Пару пустых строк (для читабельности) // Вывод на экран 2-й Матрицы for(int jj = 0; jj < SizeMatrix; jj++){ if(control_2 == 0){ cout<<'|'; control_2++; } cout<<setw(7)<<Matrix_2[jj]; if(jj == counColumn_2-1){ counColumn_2 += column; cout<<'|'; control_2 = 0; cout<<endl; } } } // Деструктор--------------------------------------------------------------- Matrix::~Matrix() { cout<<"Destructor"<<endl; } // Дружеская функция умножения Матрицы на Матрицу. В качестве--------------- // хранения результатов используется 2-я Матрица---------------------------- void MultiplicationMatrix(Matrix &mMatrix) { int control = 0, counColumn = mMatrix.column; // Умножение Матрицы на Матрицу. // Циклическое умножение элемента 1-й Матрицы на элемент 2-й Матрицы for(int i = 0; i < mMatrix.SizeMatrix; i++) mMatrix.Matrix_2[i] *= mMatrix.Matrix_1[i];// * mMatrix.Matrix_2[i]; cout<<"\n\n Result Multiplication...\n\n"; // Вывод результата умножения Матрицы на Матрицу for(int j = 0; j < mMatrix.SizeMatrix; j++){ if(control == 0){ cout<<'|'; control++; } cout<<setw(7)<<mMatrix.Matrix_2[j]; if(j == counColumn-1){ counColumn += mMatrix.column; cout<<'|'; control = 0; cout<<endl; } } } // Дружеская функция умножения Матрицы на Число. В качестве------------------ // хранения результатов используется 2-я Матрица----------------------------- void NumberMultiplicationMatrix(Matrix &mMatrix, int number) { int control = 0, counColumn = mMatrix.column; // Умножение Матрицы на Число. // Циклическое умножение элемента 1-й Матрицы на элемент 2-й Матрицы for(int i = 0; i < mMatrix.SizeMatrix; i++) mMatrix.Matrix_2[i] = number * mMatrix.Matrix_1[i]; cout<<"\n\n Result Multiplication Number "<<number<<" 'Matrix_1'\n\n"; // Вывод результата умножения Матрицы на Число for(int j = 0; j < mMatrix.SizeMatrix; j++){ if(control == 0){ cout<<'|'; control++; } cout<<setw(7)<<mMatrix.Matrix_2[j]; if(j == counColumn-1){ counColumn += mMatrix.column; cout<<'|'; control = 0; cout<<endl; } } } // Выполнение программы------------------------------------------------------ int main() { int z, num; Matrix matrx_1; matrx_1.UserFromKeyboards(); // Ввод matrx_1.PrintTwoMatrix(); // Печать MultiplicationMatrix(matrx_1); // Функция умножения Матрицы на Матрицу // Предложение ввести Число на которое будет умножена 1-я Матрица cout<<"\n\n Enter Number Multiplication Matrix: "; cin>>num; cout<<endl; NumberMultiplicationMatrix(matrx_1, num); // Функция умножения Матрицы на Число cin>>z; return 0; } //--------------------------------------------------------------------------- |
------- Последний раз редактировалось Drongo, 31-01-2008 в 20:05. Отправлено: 17:57, 06-11-2007 | #6 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Последний раз редактировалось Drongo, 25-04-2008 в 14:51. Отправлено: 18:02, 06-11-2007 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Ребята, я чего то не могу отправить файл, нажал прикрепить, он загрузился, а дальше что делать - незнаю... Подскажите??
|
------- Отправлено: 18:03, 06-11-2007 | #8 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Хлопцы, здоров! Вот тут в Сети нашёл, файл по Матрице и Вектору, но чего-то не доганяю... Там
- пустые, вы б не могли, сказать какие нужно подключить?! И ещё, похоже там есть, в этой проге какая то синктактическая ошибка, но найти я её не могу... Если кто может помочь в этом буду рад, мне б разобраться в этом, очень хочу решить тую задачу... Файл прикрепляю, гляньте если не будет трудно... Подскажите великодушно ![]() ![]() |
------- Отправлено: 20:43, 14-11-2007 | #9 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Последний раз редактировалось Drongo, 25-04-2008 в 14:30. Отправлено: 20:45, 14-11-2007 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Помогите решить задачу | Urann | Программирование и базы данных | 11 | 14-05-2013 11:44 | |
помогите решить задачу | snikers | Программирование и базы данных | 2 | 27-08-2004 01:57 | |
помогите решить задачу | Guest | Программирование и базы данных | 2 | 21-05-2004 11:23 |
|