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

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень мало в этом понимаю. Заранее спасибо!!!
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { mms_t *stream; char mms_link="mms://audio.rfn.ru/radiorus/audio/710/90.asf"; stream=mms_connect(0, 0, mms_link, 128); http://www.cyberforum.ru/cpp-beginners/thread439169.html
C++ Привет. Как можна найти с даного примера умножение элементов массива с четными номерами?
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc, _TCHAR* argv)
C++ Начало DEV С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательные и ни одно из них не принадлежат отрезку , то оба значения уменьшить в 10 раз; в остальных случаях х, у оставить без изменения. Решение ...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9 faila:\n"; cin>>name; ofstream out(name); cout<<"vvedite text:\n"; cin>>text; out<<text; out.close();
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните по-возможности, что это вообще такое (std::map я вкурсе что это контейнер и как с ним работать) в ступор вводит allocator подробнее

Показать сообщение отдельно
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
26.03.2014, 15:55     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Цитата Сообщение от Kins Посмотреть сообщение
Глава 7 Упражнение №5

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using namespace std;
static char ch;
////////////////////////////////////////////////////////////////
class fraction
{
private:
    int chsl, znam;
public:
    fraction(){chsl=0, znam=0;}     
    void getin()
    {cout <<"Введите числитель и знаменатель дроби: "; cin >>chsl >>ch >>znam;}
    void smm(fraction mass, fraction mas)
    {
        chsl=mass.chsl*mas.znam+mass.znam*mas.chsl;
        znam=mass.znam*mas.znam;
    }
    void dev(fraction smm, int sch)
    {
        fraction devi;
        devi.chsl=sch;
        devi.znam=1;
        chsl=smm.chsl*devi.znam;
        znam=smm.znam*devi.chsl;
    }
    void show()
        {cout <<"Среднее значение дроби: " <<chsl <<ch <<znam <<endl;}
};
///////////////////////////////////////////////////////////////
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    const int max=100;
    int n=0;
    char piu='a';
    fraction fr[max], summ;;
    do{
        fr[n++].getin();
        cout <<"Еще раз (д/н)?";
        cin >>piu;
    }while(piu!='n');
    for(int j=0; j<n; j++)
    {if(j>0)summ.smm(fr[j], fr[j-1]);}
    summ.dev(summ, n);
    summ.show();
    system("pause");
Иногда сравниваю решения с ответами в этой теме, для проверки правильности моего кода. Заметил что ответ на эту задачу у нас разный, потом сравнил с ответом Рики, с моим оно сошлось, и нашел онлайн калькулятор в интернете, там ответ с моим тоже сошелся. Решил отписать тут не ради похвастаться, а что бы были в курсе, может кому код понадобиться, а он у Вас не правильный. Вот мой ответ на эту задачу.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;
 
class fraction
{
    int a,b;
public:
    fraction() : a(0), b(0)
    {}
    fraction(int x, int y) : a(x), b(y)
    {}
    void set_fraction()
    {   
        char temp;
        cout << "Enter fracrion (format 1/2): ";
        cin >> a >> temp >> b;
    }
    void show_fraction();
    void add(fraction d1, fraction d2);
    void sub(fraction d1, fraction d2);
    void mul(fraction d1, fraction d2);
    void div(fraction d1, fraction d2);
    void lowterms(int &a, int &b);
};
//--------------------------------------------
void fraction::show_fraction()
{
    cout << a << '/' << b ;  //Âîò
}
//--------------------------------------------
void fraction::add(fraction d1, fraction d2)
{
    a = (d1.a*d2.b + d1.b*d2.a);
    b = (d1.b*d2.b);
    lowterms(a,b);
}
//--------------------------------------------
void fraction::sub(fraction d1, fraction d2)
{
    a = (d1.a*d2.b - d1.b*d2.a);
    b = (d1.b*d2.b);
    lowterms(a,b);
}
//--------------------------------------------
void fraction::mul(fraction d1, fraction d2)
{
    a = (d1.a*d2.a);
    b = (d1.b*d2.b);
    lowterms(a,b);
}
//--------------------------------------------
void fraction::div(fraction d1, fraction d2)
{
    a = (d1.a*d2.b);
    b = (d1.b*d2.a);
    lowterms(a,b);
}
//--------------------------------------------
void fraction::lowterms(int &a, int &b)
{
    long tnum, tden, temp, gcd;
    tnum = labs(a);
    tden = labs(b);
    if(tden == 0)
    {
        cout << "Error, den = 0!";
        exit(1);
    }
    else if( tnum == 0)
    {
         a = 0;
         b = 1;
         return;
    }
    while(tnum !=0 )
    {
        if(tnum < tden)
        {
            temp = tnum;
            tnum = tden;
            tden = temp;
        }
        tnum = tnum - tden;
    }
    gcd = tden;
    a = a / gcd;
    b = b / gcd;
}
//--------------------------------------------
 
 
int main()
{
    const int N = 100;
    int i = 0;
    fraction f[N],f_answ;
    char ch,ex;
    do 
    {
        cout << "Fraction N: " << i+1 << endl;
        f[i++].set_fraction();
        cout << "Continue? y/n: ";
        cin >> ex;  
    } while (ex != 'n');
    for(int j=0; j<i; j++)
    {
        if(j)f_answ.add(f_answ, f[j]); 
        else f_answ = f[j];
    }
    cout << "Amount: "; 
    f_answ.show_fraction();
    cout << endl;
    fraction f_div(i, 1);
    f_answ.div(f_answ, f_div);
    cout << "Average: ";
    f_answ.show_fraction();
    cout << endl;
    return 0;
}
 
Текущее время: 23:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru