0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 10
1

Реализовать перегрузку операторов сравнения для пользовательского типа "Обыкновенная дробь"

20.06.2018, 11:17. Показов 1609. Ответов 7
Метки нет (Все метки)

Структура. дробное сравнение


1. Создайте структуру дробей, состоящую из двух полей int-type


2. Напишите функцию, которая сравнивает две части и возвращает результат сравнения как один из символов:>, <или =.

3.программа требует ввода двух фракций, вызывает функцию и отображает результат на экране.

1/7 <1/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
#include <iostream>
using namespace std;
 
struct fraction    
{
  
   int number1;
   int number2;
};
 
int main(){
    int a, b;
    
    fraction nr1;
   nr1.number1=a;
   nr1.number2=b;
   cin >>a;
   cin >>b;
   if (a>b){
    cout << a  << " >  " << b;
else
    cout<<b <<  " > " << a ;}
 
if (a=b){
    cout<< a << "=" << b <<endl;}
   return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2018, 11:17
Ответы с готовыми решениями:

Реализовать перегрузку заданных операторов для пользовательского класса комплексных чисел
Нужно добавить операторы перегрузки для комплексных чисел, но я что-то вообще не догоняю как это...

Реализовать поиск в массиве объектов пользовательского типа (структура "Маршруты")
Здравствуйте, нужна помощь, нужно доработать код, но не совсем понимаю как Вот код (что именно...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа ("Справочная автовокзала")
В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его ...

Реализовать поиск по заданному полю в списке объектов пользовательского типа (структура "Телефонная книга")
Дано задание, готово все, кроме последнего пункта, подскажите пожалуйста как реализовать его...

7
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
20.06.2018, 11:37 2
Что именно не выходит или где ошибка?
0
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 10
20.06.2018, 11:58  [ТС] 3
Я не могу понять, что не так


C++ (Qt)
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
#include <iostream>
using namespace std;
 
struct fraction    
{
  
   int nr1;
   int nr2;
};
 
int main(){
    
    
    fraction x;
   cin>> x.nr1;
   cin>> x.nr2;
  
   if (x.nr1>x.nr2){
    cout << x.nr1  << " >  " << x.nr2;}
else
    cout<<x.nr2 <<  " > " << x.nr1 ;}
 
if (x.nr1 == x.nr2){
    cout<< x.nr1 << "=" << x.nr2 <<endl;}
   return 0;
}
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
20.06.2018, 12:18 4
Лучший ответ Сообщение было отмечено Heimik как решение

Решение

Ну смотри, Дробные числа это не целые т.е твой int сразу отпадает.
Сейчас напишу свой пример как думаю я

Добавлено через 14 минут
Вот мой пример решение вашей задачи.
Будут вопросы, пиши
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
/******************************************************************************
 
                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
 
*******************************************************************************/
 
#include <iostream>
 
using namespace std;
 
struct fraction 
{
    
  double num1_1;
  double num1_2;
  double num2_1;
  double num2_2;
  double sum1;
  double sum2;
    
};
 
int main()
{
 
setlocale(LC_ALL, "Russian");
cout << "Введите дробные числа по типу -> Число - Enter - число. (черточка / не нужна)" << endl;
fraction *exemp = new fraction;
cin >> exemp->num1_1;
cin >> exemp->num1_2;
cin >> exemp->num2_1;
cin >> exemp->num2_2;
exemp->sum1 = exemp->num1_1 / exemp->num1_2;
exemp->sum2 = exemp->num2_1 / exemp->num2_2;
 
 
if (exemp->sum1 > exemp->sum2) 
{
    
    cout << exemp->num1_1 << "/" << exemp->num1_2 << " > "<< exemp->num2_1 << "/" << exemp->num2_2;
    
}else 
    cout << exemp->num1_1 << "/" << exemp->num1_2 << " < "<< exemp->num2_1 << "/" << exemp->num2_2;
 
delete exemp;
 
return 0;
 
    
}
Добавлено через 48 секунд
Конечно слегка на костылях, но у меня нет сил думать что то сильное
1
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 10
20.06.2018, 12:23  [ТС] 5
Благодарю вас! Я буду изучать ваш пример
0
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
20.06.2018, 12:26 6
Цитата Сообщение от Heimik Посмотреть сообщение
Благодарю вас!
Рад помочь
0
358 / 317 / 216
Регистрация: 21.02.2013
Сообщений: 744
20.06.2018, 12:37 7
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
#include <iostream>
using namespace std;
 
struct fraction
{
 
   int n1;
   int n2;
};
 
 
// Наибольший общий делитель
int NOD(int n1, int n2)
{
  int div;
  if (n1 == n2)  return n1;
  int d = n1 - n2;
  if (d < 0) {
    d = -d;  div = NOD(n1, d);
  } else
    div = NOD(n2, d);
  return div;
}
// Наименьшее общее кратное
int NOK(int n1, int n2)
{
  return n1*n2 / NOD(n1, n2);
}
 
char Compare(const fraction& f1, const fraction& f2){
 
    int nok = NOK(f1.n2, f2.n2);
    if(f1.n1 * (nok / f1.n2)  > f2.n1 * (nok / f2.n2))
    return '>';
    else if(f1.n1 * (nok / f1.n2)  < f2.n1 * (nok / f2.n2))
    return '<';
    else
    return '=';
}
int main()
{
  fraction f1, f2;
  cout << "Fraction 1: ";
  cin>> f1.n1 >> f1.n2;
  cout << "Fraction 2: ";
  cin>> f2.n1 >> f2.n2;
 
  cout << Compare(f1, f2);
 
 
  return 0;
}
1
0 / 0 / 0
Регистрация: 20.06.2018
Сообщений: 10
20.06.2018, 13:50  [ТС] 8
Jurok_85 Спасибо, ваш пример хорош, но мне трудно понять его:/

Добавлено через 8 минут
axela002 Я попробовал ваш пример.
Он мне подходит.
Я многому научился. Спасибо (translate google
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2018, 13:50

Структура "Компьютерная игра": реализовать поиск в массиве объектов пользовательского типа по заданному полю
Вывести на экран названия всех компьютерных игр, которые могут быть установлены на заданном...

Создать класс "обыкновенная дробь"
Привет,я первый раз работаю с классами,помогите пожалуйста с программой, так-же буду очень...

Перегрузка операторов ==, !=, <, > для класса "Дробь"
Не могу найти ошибку, почему то числитель второй дроби увеличивается... Думал может что-то с...

Переопределение оператора "меньше" пользовательского типа для работы с set
Понимаю, что чтобы хранить в set элементы некоторого класса, нужно переопределить оператор &lt; для...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.