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

Структурный тип - C++

Восстановить пароль Регистрация
 
@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
12.03.2012, 18:42     Структурный тип #1
Заданы две дроби (числитель и знаменатель – поля структуры). Напишите функции вычисления сложения, вычитания, умножения и деления дробей. Каждая из перечисленных функций должна возвращать несократимую дробь, которая получается при выполнении соответствующей арифметической операции.
Работа программы должна происходить по следующей схеме: ввод числителя первой дроби, ввод знаменателя первой дроби, ввод знака арифметической операции, ввод числителя второй дроби, ввод знаменателя второй дроби, результат.
Например, вычисление выражения ⅜ + ⅔ на экране должно выглядеть следующим образом:
>3
>8
>+
>2
>3
25/24
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
12.03.2012, 19:22     Структурный тип #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
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
struct fraction
{
    fraction(int _a = 1, int _b = 1) {a = _a; b = _b;}
    int a;
    int b;
};
 
void socr(fraction &a)
{
    for (int i = 2; i <= a.a; i++)
        if ((a.a % i == 0) && (a.b % i == 0))
        {
            a.a /= i;
            a.b /= i;
        }
}
 
void umn(fraction a, fraction b)
{
    fraction c(a.a*b.a, a.b*b.b);
    socr(c);
    cout << c.a << "/" << c.b << endl;
}
 
void del(fraction a, fraction b)
{
    fraction c(a.a*b.b, a.b*b.a);
    socr(c);
    cout << c.a << "/" << c.b << endl;
}
 
void pl(fraction a, fraction b)
{
    fraction c(a.a * b.b + b.a * a.b, a.b*b.b);
    socr(c);
    cout << c.a << "/" << c.b << endl;
}
 
void min(fraction a, fraction b)
{
    fraction c(a.a * b.b - b.a * a.b, a.b*b.b);
    socr(c);
    cout << c.a << "/" << c.b << endl;
}
 
int main(int argc, char *argv[])
{
    fraction a, b;
    char c;
    cin >> a.a >> a.b >> c >> b.a >> b.b;
    socr(a);
    socr(b);
    cout << "result = " << endl;
    switch (c)
    {
        case '*': umn(a, b);
        break;
        case '/': del(a, b);
        break;
        case 43: 
            pl(a, b);
        break;
        case '-': min(a, b);
        break;
        default: cout << "Incorrect sign" << endl;
    }
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
12.03.2012, 19:40  [ТС]     Структурный тип #3
если я не ошибаюсь, это уж точно не для начинающих!???

Добавлено через 1 минуту
_a - что это значит????
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
12.03.2012, 19:51     Структурный тип #4
Цитата Сообщение от @Макси@ Посмотреть сообщение
_a - что это значит????
просто переменная.
Цитата Сообщение от @Макси@ Посмотреть сообщение
если я не ошибаюсь, это уж точно не для начинающих!???
Ну вы же попросили:
Цитата Сообщение от @Макси@ Посмотреть сообщение
Напишите функции вычисления сложения, вычитания, умножения и деления дробей.
Правда сокращение дробей я сделал немного по своему, но это поправимо. Кстати, единственный косяк, который я пока нашел, может вывести запись вида:
4/1, 6/1 и.т.д, просто добавьте условие в каждой функции.
@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
12.03.2012, 19:54  [ТС]     Структурный тип #5
но это ведь раздел С++ для начинающих! я тут многое не поняла
например a.a, я еще так никогда не писала
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
12.03.2012, 20:00     Структурный тип #6
Цитата Сообщение от @Макси@ Посмотреть сообщение
например a.a, я еще так никогда не писала
Многое в этой жизни приходиться делать в первый раз. Вы написали надо реализовать программу со структурой. Вот я и реализовал:
C++
1
2
3
4
5
6
struct fraction
{
    fraction(int _a = 1, int _b = 1) {a = _a; b = _b;}  //конструктор
    int a;
    int b;
};
А потом просто создал переменную типа fraction
C++
1
2
fraction a;
cout << a.a; //получаем поле нашей переменной
с тем же успехом:
C++
1
2
fraction frac;
cout << frac.a;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 20:05     Структурный тип
Еще ссылки по теме:

C++ Описать структурный тип для представления геометрической фигуры кругюнаписаты програмуяка определяет, падает точка с заданными декартовыми координатам
C++ структурный тип
C++ Структурный вывод матрицы в консоль

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

Или воспользуйтесь поиском по форуму:
@Макси@
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 18
12.03.2012, 20:05  [ТС]     Структурный тип #7
спасибо большое я просто еще первокурсница
Yandex
Объявления
12.03.2012, 20:05     Структурный тип
Ответ Создать тему
Опции темы

Текущее время: 02:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru