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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Nazgul94
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 24
#1

Целочисленная таблица умножения дробей - C++

02.07.2013, 21:36. Просмотров 1339. Ответов 3
Метки нет (Все метки)

Используйте преимущество ООП, заключающееся в том, что однажды
созданный класс можно помещать в другие программы. Создайте новую
программу, которая будет включать класс fraction, созданный в упраж-нении 11. Программа должна выводить аналог целочисленной таблицы
умножения для дробей. Пользователь вводит знаменатель, а программа
должна подобрать всевозможные целые значения числителя так, чтобы
значения получаемых дробей находились между 0 и 1. Дроби из получив-шегося таким образом набора перемножаются друг с другом во всевоз-можных комбинациях, в результате чего получается таблица следующего
вида (для знаменателя, равного 6):
1/6 1/3 1/2 2/3 5/6
-----------------------------------------
1/6 1/36 1/18 1/12 1/9 5/36
1/3 1/18 1/9 1/6 2/9 5/18
1/2 1/12 1/6 1/4 1/3 5/12
2/3 1/9 2/9 1/3 4/9 5/9
5/6 5/36 5/18 5/12 5/9 25/36



Вот такое задание в Лафоре, которое никак мне не удается. Оставил его и пошел читать следующую главу. Но все время возвращаюсь к этой проге( одна из нескольких задач, которые я не решил из 6 прочитанных мной глав книги). Просто не могу понять как сохранять значения полученных дробей в массиве объектов т.к. для массива должен быть определен константный размер. Подскажите каким другим методом построить данную таблицу. Если прога она занимает много времени, наплюйте на нее. Заранее спс.

Вот листинг программы:

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
#include <iostream>
#include <conio.h>
#include <locale>
 
using namespace std;//пространство мен
//////////////////////////
int k;
class fraction //класс, где за обьекты взяты дроби
{ 
    private:   
    
    public: 
        int num; // числитель
        int den; //знаменатель
        fraction(): num(0), den(0)           //конструкторы
        { }
        void showfraction()const  //вывод данных
        { cout << "   " << num << '/' << den << "   ";}
        void lowterms(); // метод сокращения дроби
        void umn(fraction f1, fraction f2)// метод умножения дроби
        {
          num = f1.num * f2.num;
          den = f1.den * f2.den;
        }
};
void fraction::lowterms()  // сокращение дроби
{ 
    long tnum, tden, temp, gcd;
    tnum = labs(num);  // используем неотрицательные 
    tden = labs(den);  // значения (нужен cmath)
    if(tden == 0)    // проверка знаменателя на 0
        { cout << "Недопустимый знаменатель!"; exit(1); }
    else if(tnum == 0)    // проверка числителя на 0
        { num = 0; den = 1; return; }
    // нахождение наибольшего общего делителя
    while(tnum!= 0) 
        { 
          if(tnum < tden)  // если числитель больше знаменателя,
             { temp = tnum; tnum = tden; tden = temp; } // меняем их местами
           tnum = tnum- tden;  // вычитание
        } 
    gcd = tden;  // делим числитель и знаменатель на
    num = num / gcd;    // полученный наибольший общий делитель
    den = den / gcd; 
}
 
 
 
int main()
{  
    setlocale(LC_ALL,"RUS");
    cout << "      Введите знаменатель:  " ; cin >> k; cout << endl;
// далее как в цикле сохранить и перемножить? 
    /*fraction f, f1, f3;;
        f.num = k - 1;
        f.den = k;
        f1 = f;
    for(int i = 1; i < k - 1; i++)
        {   
            f3.umn(f, f1);
            f.showfraction();
            cout << "  *  " ;
            f3.showfraction();
            cout << endl;
            f.num = k - 1;
            f.den = k;
        }*/
 
    
_getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 21:36     Целочисленная таблица умножения дробей
Посмотрите здесь:

Не работает пример умножения и деления дробей - C++
Я переводил программу из паскаля, на паскале переменные в формате Реал а в си++ в Интежер. Так сделано потому что не смог преобразовать...

Написать программу для умножения дробей - C++
Дроби представляются в виде строки, транслируется и на его основе формируется двумерный массив коэффициентов. Результат подавать в виде...

Написать функции вычисления сложения, вычитания, умножения и деления дробей - C++
Заданы две дроби (числитель и знаменатель – поля структуры). Напишите функции вычисления сложения, вычитания, умножения и деления дробей....

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

Программа должна выводить аналог целочисленной таблицы умножения для дробей - C++
Задача из учебника Р.Лафоре Доброго времени суток! Я изучаю С++ самостоятельно, по данному учебнику, столкнулся с задачей: Используйте...

дана целочисленная таблица a[1..m]. - C++
дана целочисленная таблица a. среди элементов таблицы есть хотя бы один отрицательный. найти сумму s элементов расположенных после...

Таблица умножения - C++
Здравствуйте программисты! подскажите пожалуйста,как эту программу сдлать одним циклом. Зараннее благодарю. #include &lt;iostream&gt; ...

таблица умножения с++ - C++
Задача Разработать программу на языке С ++, предлагающую пользователю ввести целое число N и выводящую на консоль таблицу умножения от 1...

Таблица умножения - C++
Использовать двойной цикл for. В программе вводятся шестнадцатеричные числа m и n, после чего на экран выводится таблица умножения в...

Таблица умножения - C++
Привет. Нужно рандомно вывести два числа, имеющие значения от 1 до 9. Эти два числа перемножаются. Пользователь должен ввести...

Таблица умножения С++ - C++
1) Составить алгоритм вывода таблицы умножения следующего вида: - 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 ...

Таблица умножения - C++
Доброго времени суток, прошу помочь с данной программой. Напечатать полную таблицу умножения в виде: 1 х 1 = 1 2 х 1 = 2 ........


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
02.07.2013, 22:27     Целочисленная таблица умножения дробей #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
int main()
{  
    setlocale(LC_ALL,"RUS");
    cout << "      Введите знаменатель:  " ; cin >> k; cout << endl;
// далее как в цикле сохранить и перемножить? 
  fraction f1, f2, f3;
  f1.den=f2.den=k;
  cout<<"*****";
  for(int j = 1; j < k; j++){   
                f1.num=j;
                f1.den=f2.den=k;
                f1.lowterms();
                f1.showfraction();
  }
  cout<<endl;
        for(int i = 1; i < k; i++){
            f2.num=i;
            f2.den=k;
            f2.lowterms();
            f2.showfraction();
 
            for(int j = 1; j < k; j++){   
                f1.num=j;
                f1.den=k;
                f3.umn(f1, f2);
                f3.lowterms();
                f3.showfraction();
            }
            cout<<endl;
        }
_getch();
return 0;
}
Nazgul94
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 24
02.07.2013, 23:33  [ТС]     Целочисленная таблица умножения дробей #3
Огромное спасибо. Теперь буду спать спокойно))
Maximum911
0 / 0 / 1
Регистрация: 19.01.2014
Сообщений: 10
29.01.2014, 18:11     Целочисленная таблица умножения дробей #4
Тут явно не помешал бы манипулятор setw()
Yandex
Объявления
29.01.2014, 18:11     Целочисленная таблица умножения дробей
Ответ Создать тему
Опции темы

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