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

Функции и перегруженный оператор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти элементы, которые встречаються в массиве не менее двух раз и лежащие в заданном диапазоне http://www.cyberforum.ru/cpp-beginners/thread178301.html
Дано натуральное число N и одномерный массив A1, A2, …, AN натуральных чисел. Найти элементы, которые встречаються в массиве не менее двух раз и которые лежат в диапазоне значений от m1 до m2 (определяються пользователем). Указать число вхождений найденных элементов.
C++ Найти минимальную сумму положительных элементов диагоналей, параллельных побочной диагонали Помогите решить. 1. построить упорядоченный массив a из элементов массива b и c. Массивы b и c предварительно упорядочены по возрастанию. 2. дан массивa. Найти минимальную сумму положительных элементов диагоналей, параллельных побочной диагонали pomogite rewit 1. postroit uporyado4niy massiv a iz elementov massiva b i c. massivy b i c predvaritelno uporyado4eni po vozvarastaniyu 2.dan... http://www.cyberforum.ru/cpp-beginners/thread178298.html
C++ Количество пятниц
Вычислить кол-во пятниц, приходящихся на 13-е числа столетия с номером n, где n - заданное натуральное число.
Вычисление факториала большого числа C++
написать программу, которая вычисляла бы факториал заданного большого числа, например 500, и результат вычислений с точностью до единицы выводила на экран.
C++ Запуск кода в памяти http://www.cyberforum.ru/cpp-beginners/thread178279.html
Добрый вечер.Возник один вопрос.Возможно ли в Си сделать следующее:выделить с помощью mmap участок памяти,загрузить в него исполняемый код и запустить его,нечто вроде php-шного if (...) {include();} и если возможно,то как ?
C++ написать программу кальуклятор, для вычисления по запросу пользователя одной формулы из трёх возможных перед началом работы программа формирует информационное сообщение, в котором перечисляются формулы,которые могут быть вычеслены, а также клавиши клавиатуры, которые нужно нажать, чтобы приступить к соответствующим вычислениям. далее в бесконечном цикле от пользователя ожидается нажатие одной из клавиш, соответствующих какой либо формуле. получив её, программа запрашивает у пользователя аргумент и... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
19.10.2010, 10:57     Функции и перегруженный оператор
Сделал через классы:
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>
#include <cstdlib>
#include <stdexcept>
 
unsigned long gcd(unsigned long a, unsigned long b)
{
    if(!b)
        return a;
    return gcd(b, a % b);
}
 
class fraction
{
 
public:
    fraction(long num, unsigned long denom);
    fraction(const fraction& rhs);
 
    fraction operator + (const fraction& rhs) const;
    friend std::ostream& operator << (std::ostream& os, const fraction& rhs);
 
private:
    void reduce();
 
    long            _numerator;
    unsigned long   _denominator;
};
 
fraction::fraction(long num, unsigned long denom)
{
    if(!denom)
        throw std::domain_error("Error dividing by zero");
 
    _numerator = num;
    _denominator = denom;
    reduce();
}
 
fraction::fraction(const fraction& rhs)
    : _numerator(rhs._numerator), _denominator(rhs._denominator)
{
}
 
fraction fraction::operator + (const fraction& rhs) const
{
    if(!_numerator)
        return rhs;
    else if(!rhs._numerator)
        return *this;
    else
        return fraction(
                   _numerator * rhs._denominator + _denominator * rhs._numerator,
                   _denominator * rhs._denominator);
}
 
std::ostream& operator << (std::ostream& os, const fraction& rhs)
{
    os << rhs._numerator << '/' << rhs._denominator;
    return os;
}
 
void fraction::reduce()
{
    if(_numerator)
    {
        unsigned long g = gcd(abs(_numerator), _denominator);
        _numerator /= g;
        _denominator /= g;
    }
}
 
fraction getFraction()
{
    long n;
    unsigned long d;
    std::cout << "Input numerator: ";
    std::cin >> n;
    std::cout << "Input denominator: ";
    std::cin >> d;
    return fraction(n, d);
}
 
int main()
{
    fraction f1 = getFraction();
    fraction f2 = getFraction();
    std::cout << "Fraction #1 = " << f1 << std::endl;
    std::cout << "Fraction #2 = " << f2 << std::endl;
    std::cout << "Sum = " << f1 + f2 << std::endl;
    return EXIT_SUCCESS;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru