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

Программа работы с дробями (консоль) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Самоудаление программы http://www.cyberforum.ru/cpp-beginners/thread162507.html
возможно ли, удаление самой себя проги сразу после запуска, на крайняк по окончанию работы, и как это осуществить?
C++ Разбить на классы Написала программу для игры в покер, но поскольку программировать я начала недавно, то забила все в один класс. Но получилось как-то не очень красиво и читать тяжеловато. Помогите пожалуйста разбить программку на 3 класса: Pack, On_hands и Prize. #include <iostream> #include <time.h> const int NotUsed=system("color 24"); using namespace std; class Pack { http://www.cyberforum.ru/cpp-beginners/thread162471.html
Скрыть программу C++
Вот кусок кода который скрывает активные программы: HWND Wnd; Wnd=GetForegroundWindow(); if (Wnd>0) ShowWindow(Wnd,SW_HIDE);
Как это читается C++
(*r).sled r - > sled Между ними нет разницы
C++ Не удается просмотреть значение переменной в DevCpp http://www.cyberforum.ru/cpp-beginners/thread162433.html
У меня есть компилятор Dev Cpp, проблема в том, что он не отлаживает программу.. Когда я добавляю переменную в список наблюдаемых, в списке переменных ничего не появляется.
C++ Конкатенация текстовых файлов Подскажите примерно как действовать. Нужно соединить данные(строки)из 2ух текстовых файлов и результат вывести в выходной файл. В каждом из файлов слова(строки) разделены пробелами: fille_1.txt: qwerty dert virt maestro jackson file_2.txt: piano buzz street lamp подробнее

Показать сообщение отдельно
bobromet
24 / 24 / 1
Регистрация: 06.03.2010
Сообщений: 59
30.08.2010, 22:02     Программа работы с дробями (консоль)
Вот, задача из контрольной, ввод с консоли сам допишешь,
для сокращения используется евклидовский алгоритм "наибольший общий делитель"
думаю знаком с ним, на всякий пожарный вот http://ru.wikipedia.org/wiki/%D0%9D%...B5%D0%BB%D1%8C
std:: по желанию, у нас можно было просто пространсво имен написать.
оператор << я оставил, может тоже пригодится
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
#include <iostream>
 
using namespace std;
 
class Fraction
{
    int n;
    int d;
    int GCD(int a, int b);
 
public:
    class FractionExceptionDenominatorNull {};
 
    // int->Fraction
    Fraction( int numerator, int denominator = 1  );
    
    // левый аргумент имеет тип ostream, -> friend нужен
    friend ostream& operator<<(ostream& os, const Fraction& br);
    
    // 'int' + 'Fraction'  -> friend нужен
    friend Fraction operator+( const Fraction& left, const Fraction& right);
    
    
    //оба параметра имеют тип Fraction ->   
    //friend ненужен но возможен
    Fraction operator*(const Fraction& right)
    {
        return Fraction( n * right.n, d * right.d);
    }
};
 
 
Fraction::Fraction( int numerator, int denominator  ) 
{
    if(denominator == 0)
            throw FractionExceptionDenominatorNull();
        n = numerator;
        d = denominator;
        //знак только у числителя записываем
        if( d < 0 )
        {
            n = -n;
            d = -d;
        }
        //сокращаем
        int gcd = GCD(n, d);
        n = n / gcd;
        d = d / gcd;
    
}
ostream& operator<<(ostream& os, const Fraction& fr)
{
    return os << fr.n << "/" << fr.d << " ";
}
Fraction operator+(const Fraction& left, const Fraction& right)
{
    return Fraction( left.n * right.d + right.n * left.d, left.d * right.d );
}
 
 
 
// greatest common divisor - Euklid (iterativ):
int Fraction::GCD(int a, int b)
{
    if( a == 0 && b == 0 )
        throw "Exception в GCD: a и b == 0";
    a = abs(a);
    b = abs(b);
    int help;
    while( b > 0 )
    {
        help = a % b;
        a = b;
        b = help;
    }
    return a;
}
тестировалось этими штуками
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "fraction.h"
 
using namespace std;
 
void main()
{
    Fraction a( 5 );
    Fraction b( 1, 2 );
    Fraction c( 1, 4 );
    Fraction d( 115, -391 );
    Fraction e( -37*234, -37*432 );
    cout << a << b << c << d << e << endl;
    cout << b + c << endl;
    cout << 8 + e << endl;
    cout << d * e << endl;
    
    //system("pause");
}
воопщем не знаю, если чем то помог, значит всё круто.
чуть не забыл, остальные действия типа деления по аналогии сделать, сорри.)
 
Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru