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

Математические операции для дробного числа ( заданного структурой ) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ простая сложность. разбиение кода (+) http://www.cyberforum.ru/cpp-beginners/thread976942.html
Хочу реализовать код программы по следующему принципу. Например задан main.cpp: main.cpp if сложение или вычитание? // задача про Сложение: сin >> a >>в ; а+в = с;
C++ Как сделать грамотное обращение к текстурам? Пишу на SDL 2. Есть массив блоков на весь экран, блоки 8 на 8 пикселей (рисую двойным циклом). Блоки используют разные текстуры. К примеру, последовательность текстур: 1, 2, 1, 1, 3. Если я правильно понимаю, то, к текстуре 1 программа обращается 2 раза. И насколько я понимаю, лучше сделать по одному обращению к каждой текстуре за кадр. Т.е. сперва отрисовать текстуру 1 везде, где она есть и т.д.... http://www.cyberforum.ru/cpp-beginners/thread976900.html
Какой алгоритм и математическая модель у данной программы? C++
Парными простыми числами называют два простых числа, разность которых равна двум, например: 3 и 5; 17 и 19. Напишите программу нахождения n таких пар.
Как подключить Boost? C++
Нужно получить список файлов в папке (кроссплатформенно), в нете все ссылаются на Boost, я пробовал понять как собрать filesystem и как подключить (VS 2012), гуглил пол-дня, даже что-то на этом форуме нашёл, пробовал читать на официальном сайте, но ничего не получилось. Кто может подробно разжевать, как собирается и подключается это чудо? Ну либо как проще кроссплатформенно получить список файлов...
C++ Обращение к динамической структуре через массив указателей http://www.cyberforum.ru/cpp-beginners/thread976873.html
При попытке обратиться к элементу динамической структуры через связанный с ним элемент массива указателей выдаёт ошибку (со строчки 73): #include <iostream> #include <fstream> #include <string> using namespace std; struct Book {
C++ Трёхзначное число Как узнать есть ли число трёхзначным? И как вывести его первую и последнюю цифру?? подробнее

Показать сообщение отдельно
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
16.10.2013, 20:36  [ТС]     Математические операции для дробного числа ( заданного структурой )
Спасибо еще раз, но мне не поможет. Почему? Потому, что запрещено использовать stl. Да и вообще сторонние библиотеки. Можно iostream, и стандартные. Задание давали и принимают депилы.
Так что тема актуальна. Ввод, инициализация, вывод на экран есть. Переводит со строки в структуру и обратно. Нужны операции плюс и минус

Добавлено через 30 минут
Рабочий код(если пригодится, и если таки кто-нибудь еще поможет).
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
using namespace std;
 
struct TFraction {
        long ing;
        unsigned short frc;
        unsigned short count;
};
 
class cFraction {
    private:
        TFraction object;
    public:
        void init(char* num_str);
        void input(void);
        void output(void);
        char* toPChar(void);
        TFraction getStruct(void);
        cFraction cFraction::operator+(cFraction &b); //нужен
};
 
int Length(const TFraction &tfr);
int Length(int N);
 
int _tmain(int argc, _TCHAR* argv[])
{
    cFraction a; a.init("123.0045");
        cout << "A: "; a.output(); cout << endl;
 
        cout << "Input B: ";
    cFraction b; b.input();
        cout << "B: " << b.toPChar() << endl;
        
    cFraction c = a+b;
    system("pause");
    return 0;
}
 
//инициализация объекта
void cFraction::init(char* numstr)
{
        char *dott;
 
        this->object.ing = atol(numstr);
        dott = strstr(numstr,".");
 
        this->object.count = 0;
        if (*dott == '.'){
            while (*(++dott) == '0')
                this->object.count++;
            this->object.frc = (unsigned)atol(dott);
        } else this->object.frc = 0;
}
//ввод данных в объект
void cFraction::input(void)
{
        char numstr[30];
        cin >> numstr;
        this->init(numstr);
}
//вывод данных на экран
void cFraction::output(void)
{
        cout << this->object.ing << ".";
        for(int i=0; i<this->object.count; i++)
            cout << "0";
        cout << this->object.frc;
}
//возвращение строки с данными
char* cFraction::toPChar(void)
{
        char *num_str = new char [30];
        for(int i=0; i<30; i++)
            num_str[i]=0;
        _itoa_s(this->object.ing,num_str,15,10);
 
        unsigned dott_pos = 0;
        while ( num_str[dott_pos] != '\0')
                dott_pos++;
        num_str[dott_pos] = '.';
        int temp_pos = dott_pos+1; 
        for( int i=temp_pos; i<this->object.count+temp_pos; i++) {
            dott_pos++;
            num_str[i] = '0';
        }
        _itoa_s(this->object.frc, &num_str[dott_pos+1],15,10);
        return num_str;
}
//возвращение структуры
TFraction cFraction::getStruct(void)
{
    return this->object;
}
 
//вспомогательные
int Length(const TFraction &tfr)
{
        char str[20];
        _itoa_s(tfr.frc,&str[0],15,10);
        return strlen(str)+tfr.count;
}
int Length(const int N)
{
        char str[30];
        _itoa_s(abs(N),&str[0],15,10);
        return strlen(str);
}
Добавлено через 5 часов 48 минут
Код написан. Тема закрыта.
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru