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

Задача про дроби - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Для чего функции поместили в "тип данных"? http://www.cyberforum.ru/cpp-beginners/thread1083537.html
Вопрос про функции. Для чего функции поместили в "тип данных"?
C++ Распознание кода typedef signed char aalSBool; const aalSBool AAL_SFALSE(-1); long SND_SPELL_SLOW_DOWN_END(AAL_SFALSE); SND_SPELL_SLOW_DOWN_END = aalCreateSample("magic_spell_slow_down_end.wav"); SND_SPELL_SLOW_DOWN_END = AAL_SFALSE; В первой строке определение синонима типа, а что дальше? 2-ая и 3-я строки похожи на прототипы функций, но у них нет определения. http://www.cyberforum.ru/cpp-beginners/thread1083534.html
C++ Работа со структурами
Помогите написать программу подобного рода: Работа со структурами. Программа должна содержать функции, необходимые для выполнения поставленной задачи. Задача:Даны сведения о 16 автомобилях: марка, номер и фамилия владельца. Определить фамилию владельца и марку по номеру. Сведения: Reno AK 6592 KK Мендус Mersedes AK 6593 KK Сизко BMV AK 6594 KK Андреев...
C++ Дано список записей с полями:фамилия ученика и дата рождения. Найти тех которые родились зимой
Помогите пожалуйста, задачу надо сдать через пол часа!!! Заранее спасибо
C++ В матрице найти максимальный и минимальный элемент,переставить строки в которых они находится http://www.cyberforum.ru/cpp-beginners/thread1083492.html
Здравствуйте уважаемые форумчане. Я столкнулся с проблемой вот такой: Разработайте программу обработки массивов. Входные данные введите с клавиатуры. Результаты работы программы отобразите на экране. Я только учусь так что еще пока все плохо. Матрица размером N*N Не могу понять как в матрице найти максимальный и минимальный элемент,переставить строки в которых они находится и если они в одной...
C++ Функция stod() выводит только 4 знака после запятой Как сделать так, чтобы функция stod() при преобразовании строки string в число double не ограничивала количество знаков после запятой четырьмя. Например, в этом примере: // stod example #include <iostream> // std::cout #include <string> // std::string, std::stod int main () { std::string orbits ("365.24 29.53"); std::string::size_type sz; // alias of size_t подробнее

Показать сообщение отдельно
Pro100Whisky
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 29
28.01.2014, 13:21     Задача про дроби
Сделал вроде всё правильно, но задача не работает и выдаёт ошибку на компиляции:
Код
1>  Для всех выходных данных обновления не требуется.
1>  drobi.cpp
1>d:\microsoft vusual studio 2010\vc\include\ostream(604): error C2248: std::basic_ios<_Elem,_Traits>::basic_ios: невозможно обратиться к private член, объявленному в классе "std::basic_ios<_Elem,_Traits>"
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          d:\microsoft vusual studio 2010\vc\include\ios(176): см. объявление "std::basic_ios<_Elem,_Traits>::basic_ios"
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>          Сообщение диагностики возникло в созданной компилятором функции "std::basic_ostream<_Elem,_Traits>::basic_ostream(const std::basic_ostream<_Elem,_Traits> &)"
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.56
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
вот сам код:
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
#include "stdafx.h"
#include <iostream>
#include "drob.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"Rus");
 
    drob d1(1,3);
    drob d2(1,7);
 
    cout<<"Дроби";
    cout<<"1:" <<d1<<endl;
    cout<<"2:" <<d2<<endl;
    cout<<endl;
 
    cout<<"d1+d2 = "<<d1+d2<<endl; 
    cout<<"d1-d2 = "<<d1-d2<<endl; 
    cout<<"d1*d2 = "<<d1*d2<<endl; 
    cout<<"d1/d2 = "<<d1/d2<<endl;
 
    return 0;
}
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
//вот заголовочный файл
#pragma once
#include <iostream>
using namespace std;
class drob
{   public:
    int numenator; // числитель
    unsigned int denominator; // знаменатель
    int NOD(int a, int b) const //наименьший общий делитель
    {
    if(a<0)
        a*= -1;
    while(b)
        {
            a %= b;
            swap(a,b);
        }
    }
    int NOK(int a,int b)const //наименьшее общее кратное
    {
    return a*b/NOD(a,b);
    }
    void Sokraschenie()
    {
    int nod = NOD(numenator,denominator);
    numenator/= nod;
    denominator/= nod;
    }
public:
    drob():numenator(1),denominator(1){};
    drob(int n,unsigned int d)
    {
        if(d!=0)
        {
        numenator   = n;
        denominator = d;
        Sokraschenie();
        }
        else {cout<<"Знаменатель равен 0!"; drob();}
    }
    double result(){return (double)numenator/(double)denominator;}
    
 
    drob operator+(drob& d1) const
    {
        drob result;
        if(denominator==d1.denominator)
        {
        result.denominator  =   denominator;
        result.numenator    =   numenator+ d1.numenator;
        result.Sokraschenie();
        return result;
        }
        int nok = NOK(denominator,d1.denominator);
        int x = nok / denominator;
        int y = nok / d1.denominator;
        result.denominator  =   nok;
        result.numenator    =   numenator*x + d1.numenator*y;
        result.Sokraschenie();
        return result;
    }
    drob operator *  (drob& d1)const
    {return drob(numenator*d1.numenator, denominator *d1.denominator);}
    drob operator -  (drob& d1)const
    {return drob(numenator,denominator) + drob(-d1.numenator, d1.denominator);}
    drob operator /  (drob& d1)const
    {return drob(numenator*d1.denominator, denominator *d1.numenator);}
    bool operator == (drob&d1) const
    {if(d1.numenator==numenator&& d1.denominator==denominator)return true; else return false;}
    friend ostream operator <<(ostream os, drob&d1)
    {os<<d1.numenator<<"/"<<d1.denominator; return os;}
    ~drob(void);
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru