Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 138
1

Работа с дробями

13.03.2013, 19:29. Показов 1361. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, работы с дробями используя структуры. Написал функцию сложения (но чет напортачил)
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
#include<iostream>
#include<windows.h>
using namespace std;
struct Drob
{
int a;
int b;
};
Drob enterDrobData();
Drob addDrob(const Drob&, const Drob&);
 
void addDrob(const Drob&, const Drob&, const Drob&, const char);
char* rus(char*);
void main (void)
{
Drob d1, d2, dSum;
d1 = enterDrobData();
d2 = enterDrobData();
dSum = addDrob(d1,d2);
printResult(d1,d2,dSum, '+');
}
Drob enterDrobData()
{
Drob d;
cout<<("vvedite xnachenie drobi: ")<<"\n";
cout<<("chislitel:");
cin>>d.a;
cout<<("znamenatel: ")<<"\n";
cin>>d.b;
return d;
}
Drob addDrob(const Drob& d1, const Drob& d2)
{
    Drob d;
    d.a = d1.a*d2.b+d2.a*d1.b;
    d.b = d1.b*d2.b;
 
    return d;
}
void printResult(const Drob& d1, const Drob& d2, const Drob& d, const char znak)
{
printf("%d/%d %c %d/%d = %d/%d\n",d1.a,d1.b,znak,d2.a,d2.b,d.a,d.b);
system("pause");
}
char* rus(char* str)
{
static char buf[40];
CharToOem(str,buf);
return buf;
 
}
Также нужно дописать функцию вычитания(substract), функцию умножения(multiplication), и функцию деления(divine).
И тут полный стопор не знаю что куда и как.
Было бы не плохо если бы вы указали какую-нибудь ссылку или книжку с примерами.(также понадобится все это с использованием классов и функций).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2013, 19:29
Ответы с готовыми решениями:

Работа с дробями
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; void main() { setlocale(LC_ALL,...

Работа с дробями
Создать программу в виде учебника, раздел дроби, провести тестирования по теме. program s1;...

Модули работа с дробями.
Вот мне дали такое задание. См.рис. Задание не особо сложное.Но я немогу сделать некоторые вещи....

Структуры, работа с дробями.
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Имеется такая задача: Создайте...

7
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
13.03.2013, 19:45 2
ну раз уж структура, то проще было бы организовать так:

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
struct Drob
{
    double x;
    double y;
    
    Drob(double _x, double _y) : x(_x), y(_y) {};
 
    const Drob& operator + (const Drob& right)
    {
        if (this->y != right.y)
        {
            this->y *= right.y;
            this->x = this->x * right.y + right.x * this->y;
        }
        else
            this->x += right.x;
 
        return *this;
    };
 
    void Show()
    {
        cout << this->x << "\\" << this->y;
    };
};
 
int main()
{
    Drob a(3,4), b(2,4), c(5,2);
 
    a + b;
    a.Show();
 
    cout << endl;
 
    a + c;
    a.Show();
 
    cout << endl;
 
    system("pause");
}
1
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 138
14.03.2013, 02:29  [ТС] 3
Нужно что бы дробь была в виде 3/4 + 4/4. И что бы самому вводить знаменатель и числитель.
действия должны совершаться все сразу в столбик.
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
14.03.2013, 02:40 4
Вас, qretik, устроит вариант, если после действия, получится неприведенная дробь? Например
Код
1/6 + 1/4 = ( 4 + 6 ) / 4*6 = 10 / 24
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 138
14.03.2013, 02:51  [ТС] 5
Цитата Сообщение от GoldenId Посмотреть сообщение
Вас, qretik, устроит вариант, если после действия, получится неприведенная дробь? Например
Код
1/6 + 1/4 = ( 4 + 6 ) / 4*6 = 10 / 24
Спасибо, но нет.
Мне бы в своей разобраться...
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
14.03.2013, 03:18 6
Вот, qretik, в Вашем стиле
Кликните здесь для просмотра всего текста
На одно только обращу внимание. Русский язык в консоле подключается одной строкой (первая строка в main). И больше Вы по этому поводу не мучаетесь.

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
#include<iostream>
 
using namespace std;
 
struct Drob
{
    int a;
    int b;
};
 
Drob enterDrobData();
Drob addDrob(const Drob&, const Drob&);
Drob subDrob(const Drob&, const Drob&);
Drob mulDrob(const Drob&, const Drob&);
Drob divDrob(const Drob&, const Drob&);
 
void addDrob(const Drob&, const Drob&, const Drob&, const char);
//char* rus(char*);
 
void printResult(const Drob& d1, const Drob& d2, const Drob& d, const char znak);
 
void main (void)
{
    setlocale( LC_ALL, "rus" ); // рекомендуемый способ установления русского текста в консоли
    Drob d1, d2, dSum;
    d1 = enterDrobData();
    d2 = enterDrobData();
    dSum = addDrob(d1,d2);
    printResult(d1,d2,dSum, '+');
 
    printResult(d1,d2,subDrob(d1,d2), '-');
 
    printResult( d1, d2, mulDrob( d1, d2 ), '*' );
 
    printResult( d1, d2, divDrob( d1, d2 ), '/' );
}
 
Drob enterDrobData()
{
    Drob d;
    cout<<("vvedite xnachenie drobi: ")<<"\n";
    cout<<("chislitel:");
    cin>>d.a;
    cout<<("znamenatel: ")<<"\n";
    cin>>d.b;
    return d;
}
Drob addDrob(const Drob& d1, const Drob& d2)
{
    Drob d;
    d.a = d1.a*d2.b+d2.a*d1.b;
    d.b = d1.b*d2.b;
 
    return d;
}
 
Drob subDrob( const Drob &d1, const Drob &d2 )
{
    Drob d;
    d.a = d1.a*d2.b - d1.b*d2.a;
    d.b = d1.b*d2.b;
    return d;
}
 
Drob mulDrob( const Drob &d1, const Drob &d2 )
{
    Drob d;
    d.a = d1.a*d2.a;
    d.b = d1.b*d2.b;
    return d;
}
 
Drob divDrob( const Drob &d1, const Drob &d2 )
{
    Drob d;
    d.a = d1.a*d2.b;
    d.b = d1.b*d2.a;
    return d;
}
 
void printResult(const Drob& d1, const Drob& d2, const Drob& d, const char znak)
{
    printf("%d/%d %c %d/%d = %d/%d\n",d1.a,d1.b,znak,d2.a,d2.b,d.a,d.b);
    system("pause");
}
//char* rus(char* str)
//{
//  static char buf[40];
//  CharToOem(str,buf);
//  return buf;
//}
1
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 138
14.03.2013, 03:29  [ТС] 7
Спасибо, многое прояснилось), не подскажете литературку по которой учились.
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
14.03.2013, 18:31 8
Охотно.
1. (нахождения НОД).
2. НОК - там
Если известен наибольший общий делитель, можно использовать его связь с НОК:
Добавлено через 28 минут
Ох я тупанул. Не в ту ветку ответил.

Я учился по первоисточнику, Бьерн Страуструп. Язык программирования С++, Боженька дал заботать большую часть Справочного руководства оттуда. Но книга довольно тяжелая.

Посмотрите курс C++ для начинающих, два или какой-нибудь такой видеокурс.

Добавлено через 11 часов 23 минуты
А вообще Литература C++
1
14.03.2013, 18:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2013, 18:31
Помогаю со студенческими работами здесь

Работа с десятичными дробями
Ув. господа:) В качестве тренировки написал на Борланде простенький калькулятор, и почти все...

Калькулятор. Работа с обыкновенными дробями
подскажите с чего начать...

Работа с дробями
Задание: Напишiть програму для обробки простих дробів (кожен дріб задається двома натуральними...

StringGrid: работа с обыкновенными дробями
Здравствуйте! Делаю кое-какую работу. Имеется динамически созданная таблица StringGrid, по заданию...

калькулятор.работа с обыкновенными дробями
подскажите с чего начать...

С дробями
S=(1!/2)+(2!/3+4)+(3!/4+5+6)+(4!/5+6+7)+(5!/6+7+8+10+13)+(6!/7+8+9+11+14+19)+...... С клавиатуры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru