Вопрос № 167467: Изучаю С++. Если работаю в консоли(командная строка), могу ли получить распечатку готового решения? Если можно, то пожалуйста поподробнее с примером. Спасибо....
Вопрос № 167519: Помогите пожалуйста написать программу! Задание: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle (прямоугольник), Circle(круг), Trapezium (трапеция) со своими
ф...Вопрос № 167542: Здравствуйте Уважаемые эксперты. Помогите пожалуйста решить задачу. Я плохо разбираюсь в математике. Мне бы хотя бы математически ее помочь бы решить... В приложении я привел файл с методичкой и с примером решения.. Все хорошо расписано но я все равн...Вопрос № 167584: не могу запустить функцию SearchPath SearchPath(NULL,"disclaimer",".txt",
255,lpBuffer,NULL); из всего прочитаного я понял что нужно передать четыре параметра адрес директории имя файла тип файла размер буфер...Вопрос № 167587: доброго времени суток.эксперты,срочно нужна помощь!!есть задача:Определить класс с именем Train, содержащий следующие поля: 1) название пункта назначения; 2) номер поезда; 3) время отправления. Определить методы: 1) ввод данных в ма...
Вопрос № 167.467
Изучаю С++. Если работаю в консоли(командная строка), могу ли получить распечатку готового решения? Если можно, то пожалуйста поподробнее с примером. Спасибо.
Отвечает: Dr_Andrew
Здравствуйте, Гарбер Лев Хаимович! Наиболее простое решение - сохранить вывод программы в текстовый файл, который затем распечатать во внешней программе. В приложении это рассмотрено на простейшем примере. Код комментирован. Удачи!
Приложение:
Ответ отправил: Dr_Andrew (статус: Профессионал) Казахстан, Алма-Ата Организация: Казахский научный центр карантинных и зоонозных инфекций WWW:Медицинские программы для Linux ICQ: 256452186 ---- Ответ отправлен: 17.05.2009, 16:51
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249340 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 167.519
Помогите пожалуйста написать программу! Задание: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle (прямоугольник), Circle(круг), Trapezium (трапеция) со своими функциями площади и периметра. Самостоятельно определить, какие поля необходимы, какие из них можно задать в базовом классе, а какие - в производных. Площадь трапеции: S=(a+b) * h / 2
Отправлен: 17.05.2009, 14:04
Вопрос задал: Azarov88 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Терсков Сергей
Здравствуйте, Azarov88! Решение задачи смотрите в коде:
Класс figure полностью абстрактный. Работа с наследованными классами проводится через указатель на базовый класс. Вообще пример классический и похожие реализации можно найти во многих учебниках по С++. Например нечто подобное есть у Бьярна Страуструпа в разделе "Абстрактные классы".
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 18.05.2009, 04:17
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249372 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 167.542
Здравствуйте Уважаемые эксперты. Помогите пожалуйста решить задачу. Я плохо разбираюсь в математике. Мне бы хотя бы математически ее помочь бы решить... В приложении я привел файл с методичкой и с примером решения.. Все хорошо расписано но я все равно не очень понял как это можно сделать и вообще что требуется... Пожалуйста, помогите. Заранее благодарен
Приложение:
Отправлен: 17.05.2009, 16:28
Вопрос задал: Dimon4ik (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ross
Здравствуйте, Dimon4ik!
В задаче требуется табулировать функцию находя ее точное и приближенное значение, вычисленное путем разложения в ряд Тейлора. Вот решение:
Код:
#include <limits> #include <iostream> #include <iomanip> using namespace std;
double Calculate(double x, double epsilon, long n = numeric_limits<long>::max()) { double f = 0, square = x + 1; double f_tmp;
for (long i = 1; i<= n; ++i) { square *= square; f_tmp = f + (double(MINUS_ONE_POWER(i)) * square) / double(i);
if (ABS(f_tmp - f) <= epsilon) return f_tmp; f = f_tmp; }
re
turn f; }
void main() { int k = 10, n = 40; double a = -2, b = -0.1, dx = (b-a)/k, epsilon = 0.0001;
for (double x = a; x <= b; x += dx) { cout<< setw(4) << "X=" << setw(15) << x << setw(4) << "SN=" << setw(15) << Calculate(x, 0.0, n) << setw(4) << "SE=" << setw(15) << Calculate(x, epsilon) << setw(4) << "Y=" << setw(15)
<< log(1 / (2 + 2 * x + x * x)) << endl; } }
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Практикант)
Ответ отправлен: 17.05.2009, 22:40
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249356 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 167.584
не могу запустить функцию SearchPath SearchPath(NULL,"disclaimer",".txt", 255,lpBuffer,NULL); из всего прочитаного я понял что нужно передать четыре параметра адрес директории имя файла тип файла размер буфера
последние два должны содержать полный путь файла и размер буфера для адреса файла. после компиляции выдает ошибку что последние два параметра используються без инициализации. Помогите запустить функцию.
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Практикант)
Ответ отправлен: 18.05.2009, 00:43
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249365 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 167.587
доброго времени суток.эксперты,срочно нужна помощь!!есть задача:Определить класс с именем Train, содержащий следующие поля: 1) название пункта назначения; 2) номер поезда; 3) время отправления. Определить методы: 1) ввод данных в массив из n элементов в типа Train; 2) УПОРЯДОЧИТЬ В АЛФАВИТНОМ ПОРЯДКЕ ПО НАЗВАНИЮ ПУНКТОВ НАЗНАЧЕНИЯ; 3) ВЫВОД ИНФОРМАЦИЮ ИНФОРМАЦИЮ О ПОЕЗДАХ, ОТПРАВЛЯЮЩИХСЯ ПОСЛЕ ВВЕДЕННОГО ПОЛЬЗОВАТЕЛЕМ ВРЕМЕНИ.
нужно ещё:Задача - добавить в задачу на классы методы
печать, вывод, поиск.
Задача - добавить в задачу на классы методы конструктор, деструктор, операция (по смыслу задачи - сложение, логическое "И", "ИЛИ" и т.д.)
#pragma region Декларации // Класс время отправления class deptime { public: // Конструктор deptime(unsigned int hour=0,unsigned int min=0) throw(...); // Час unsigned int hour() const; // Минуты unsigned int min() const; // Опереторы сравнения bool operator<(const deptime& right) const; bool operator>(const deptime& right) const; private: unsigned int _hour:5; un
signed int _min:6; };
// Класс поезд class train { public: // Конструктор // destination - пункт назначения // no - номер // time - время отправления train(wstring destination,unsigned int no,deptime time); // Номер unsigned int no() const; // Назначение wstring
destination() const; // Время отправления deptime time() const; private: wstring _destination; unsigned int _no; deptime _time; };
// Оператор вывода для train wostream& operator<<(wostream& stream,const train& r);
// Шаблонная функция для ввода всякой ерунды:) template<class T> T input(wstring msg);
// Класс вектор поездов class trainsVector:public vector<train> { public: // Доба
вление поездов void addTrains(); // Сортировка по месту назначения // ascending - по возрастанию(true) void sortOnDestination(bool ascending=true); // Возвращает вектор поездов идущих после определенного времени(time) trainsVector afterTime(deptime time); private: // Используется для сравнения по пункту назначения static bool destinationComparer(const train& t1,const train& t2); };
// Оператор вывода для trainsVector wostream& operator<<(wostream& stream,const
trainsVector& r);
// Пользовательское меню int userChoice(); #pragma endregion Декларации
int main() { locale::global(locale("russian_russia.866")); // Наш вектор поездов trainsVector trains; while(true) { switch(userChoice()) { case 1: trains.addTrains(); break; case 2: trains.sortOnDestination(); break; case 3: { deptime time=input<deptime>(L&qu
ot;Введите время:"); wcout<<trains.afterTime(time); break; } case 4: wcout<<trains; break; case 5: return 0; } } }
#pragma region Общие функции int userChoice() { while(true) { wcout<<L"Сделайте свой выбор:"<<endl <<L"1 - Добавить информацию о поездах"<<endl <<L"2 - Сортировать по названию пунктов назначения"<<endl <<L"3
- Найти поезда отправляющиеся после определенного времени"<<endl <<L"4 - Просмотреть список"<<endl <<L"5 - Выход"<<endl <<L"Ваш выбор:"; wchar_t ch=_getwche(); wcout<<endl; switch(ch) { case L'1': return 1; case L'2': return 2; case L'3': return 3; case L'4': return 4; ca
se L'5': return 5; default: wcout<<L"Неверный выбор"<<endl; } } }
#pragma region Определение методов и операторов для deptime deptime::deptime( unsigned int hour,unsigned int min ) throw(...) { if(hour>=24 || min>=60) { throw invalid_argument("Invalid time"); } else { _hour=hour; _min=min; } }
unsigned int deptime::hour() const { return _hour; }
unsigned int deptime::min() const { return _min; }
template<class _Elem,class _Traits> basic_istream<_Elem,_Traits>& operator>>(basic_istream<_Elem,_Traits>& stream,deptime& r) { const ctype<_Elem>& fac=use_facet<ctype<_Elem>
>(stream.getloc()); unsigned int hour=0; unsigned int min=0; _Elem c=0; if(stream>>hour>>c && c!=fac.widen(':')) { stream.putback(c); stream.setstate(ios::badbit); } else { stream>>min; } if(!stream.fail())r=deptime(hour,min); return stream; } #pragma endregion Определение методов и операторов для deptime
#pragma region Определение методов и оп
ераторов для train train::train( wstring destination,unsigned int no,deptime time ) :_destination(destination) ,_no(no) ,_time(time) {
wostream& operator<<(wostream& stream,const train& r) { stream<<r.no()<<','<<r.destination()<<','<<r.time(); return
stream; } #pragma endregion Определение методов и операторов для train
#pragma region Определение методов и операторов для trainsVector void trainsVector::addTrains() { ios::fmtflags flags=wcin.flags(); wcin.unsetf(ios::skipws); while(true) { wcout<<L"Введите информацию о поезде:"<<endl; wcout<<L"Пункт назначения(пустая строка для завершения ввода):"; wstring dest; getline(wcin,dest); if(dest.empty())break; unsigned int no=input<unsigned int>(L"Номер поезда:"); deptime time=input<deptime>(L"Время отправления(чч:мм):"); push_back(train(dest,no,time)); } wcin.flags(flags); }
wostream& operator<<(wostream& stream,const trainsVector& r) { for(trainsVector:
:const_iterator it=r.begin();it!=r.end();++it) { stream<<(*it)<<endl; } return stream; } #pragma endregion Определение методов и операторов для trainsVector
Пример работы:
Код:
Сделайте свой выбор: 1 - Добавить информацию о поездах 2
- Сортировать по названию пунктов назначения 3 - Найти поезда отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход Ваш выбор:1 Введите информацию о поезде: Пункт назначения(пустая строка для завершения ввода):Москва Номер поезда:1 Время отправления(чч:мм):12:23 Введите информацию о поезде: Пункт назначения(пустая строка для завершения ввода):Киев Номер поезда:2 Время отправления(чч:мм):0:15 Введите инф
ормацию о поезде: Пункт назначения(пустая строка для завершения ввода):Минск Номер поезда:3 Время отправления(чч:мм):20:10 Введите информацию о поезде: Пункт назначения(пустая строка для завершения ввода):Мандрыкино Номер поезда:4 Время отправления(чч:мм):23:59 Введите информацию о поезде: Пункт назначения(пустая строка для завершения ввода):К черту на кулички Номер поезда:5 Время отправления(чч:мм):6:06 Введите информацию о поезде: Пункт назначения(пустая строка для завершения
ввода): Сделайте свой выбор: 1 - Добавить информацию о поездах 2 - Сортировать по названию пунктов назначения 3 - Найти поезда отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход Ваш выбор:4 1,Москва,12:23 2,Киев,0:15 3,Минск,20:10 4,Мандрыкино,23:59 5,К черту на кулички,6:6 Сделайте свой выбор: 1 - Добавить информацию о поездах 2 - Сортировать по названию пунктов назначения 3 - Найти поезда
отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход Ваш выбор:2 Сделайте свой выбор: 1 - Добавить информацию о поездах 2 - Сортировать по названию пунктов назначения 3 - Найти поезда отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход Ваш выбор:4 5,К черту на кулички,6:6 2,Киев,0:15 4,Мандрыкино,23:59 3,Минск,20:10 1,Москва,12:23 Сделайте свой выбор: 1 - Добавить информацию о поездах 2 - Сортировать по названию
пунктов назначения 3 - Найти поезда отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход Ваш выбор:3 Введите время:12:00 4,Мандрыкино,23:59 3,Минск,20:10 1,Москва,12:23 Сделайте свой выбор: 1 - Добавить информацию о поездах 2 - Сортировать по названию пунктов назначения 3 - Найти поезда отправляющиеся после определенного времени 4 - Просмотреть список 5 - Выход
Ответ отправил: Micren (статус: Практикант)
Ответ отправлен: 20.05.2009, 18:52
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 249555 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.