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

Реализовать длинные целые числа в виде класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ заменить все положительные элементы на противоположные http://www.cyberforum.ru/cpp-beginners/thread1030655.html
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> using namespace std; void float1(double *mass, int const n); void float2(double *mass, int const n);
C++ Определить могут ли три значения представлять стороны треугольника. Привет всем:) В книге по С++, попалось вот такое задание( смотрите вложение ). Я в замешательстве :wall: Помогите сделать такую программу. Буду пытаться сам, но Заранее спасибо:) 4.32 Напишите программу, которая читает три ненулевых значения типа double, определяет и печатает, могут ли они представлять стороны треугольника. http://www.cyberforum.ru/cpp-beginners/thread1030642.html
Вычислить функции с использованием их разложения в степенной ряд. Функции и Перегрузка функций C++
Добрый день. Дана лабораторная работа, (см. ниже 2 скриншота) по заданию нужно вычислить функции с использованием их разложения в степенной ряд (функции с передачей параметров по значению). Я вроде бы выполнил условия, результаты видны, но не у верен в правильности, т.к. читал немного литературы и смотрел примеры. Результат - мой код внизу. А главное, не пойму как внедрить перегрузку...
построить на экране Колобка C++
4. построить на экране Колобка
C++ построить на экране Дом http://www.cyberforum.ru/cpp-beginners/thread1030630.html
3. построить на экране Дом
C++ Деструктор класса Имеется собственный класс, возник вопрос, деструктор класса вызывается не явно ? если так, то в какой момент он вызывается ? подробнее

Показать сообщение отдельно
fkty
1 / 1 / 0
Регистрация: 06.01.2013
Сообщений: 265
11.12.2013, 16:17  [ТС]     Реализовать длинные целые числа в виде класс
вот почти сделала,помогите пожалуйста доделать..
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
108
109
110
111
112
113
114
115
#include <conio.h>
#include <iostream>
using namespace std;
class BigInt {
public:
// к этим членам можно закрыть доступ
long Size, SizeMax; // Size – текущая длина
                    // SizeMax – максимальная длина
short *Coef; // Массив коэффициентов
 long n;           
BigInt();
virtual ~BigInt();
void zero(); // Обнулить число
void update();
void read ();//ввод с клавиатуры
void write ();//вывод на экран
 
 
};
 
BigInt::BigInt() 
{
    SizeMax = Size = 0; // Объявление вида BigInt A;
    Coef = 0; // Создается полностью пустое число
}
BigInt::~BigInt() 
{
    delete Coef;
}
void BigInt::zero() 
{ // A.zero() – обнулить число
    for(long i=0; i<SizeMax; i++) Coef[i]=0;
    Size=1;
}
 
 
 
// Вычисление C = A+B, работает вызов вида Add (A, B, A).
// максимальный размер C должен быть достаточен для хранения суммы
void Add(const BigInt &A, const BigInt &B, BigInt &C) 
{
    long i;
    long temp; // temp здесь и далее играет роль “временной” цифры,до выполнения переноса. Возможно, temp > BASE.
// для быстрого доступа к коэффициентам объявляются временные указатели a,b,c.
    const short *a=A.Coef, *b=B.Coef;
    short *c=C.Coef, carry = 0;
    int BASE=10;
// Добиваемся B.Size ≤ A.Size.
if ( A.Size < B.Size ) 
{
    Add(B,A,C);
    return;
}
// Теперь B.Size ≤ A.Size.
// Складываем два числа, i - номер текущей цифры
for (i=0; i<B.Size; i++) 
{
    temp = a[i] + b[i] + carry;
    if (temp >= BASE) 
    { // переполнение. Перенести единицу.
        c[i] = temp - BASE;
        carry = 1;
    } 
    else 
    {
        c[i] = temp;
        carry = 0;
    }
}
// Меньшее число кончилось
for (i=0; i < A.Size; i++) 
{
    temp = a[i] + carry;
    if (temp >= BASE) 
    {
        c[i] = temp - BASE;
        carry = 1;
    } 
    else 
    {
        c[i] = temp;
        carry = 0;
    }
}
// Если остался перенос – добавить его в дополнительный разряд
if (carry) 
{
    c[i] = carry;
    C.Size = A.Size+1;
}
else C.Size = A.Size;
}
 
void BigInt::read()
{
    cin>>n;
    return;
}
 
void BigInt::write()
{
    cout<<n;
    return;
}
 
void main ()
{
 
    BigInt Z;
    cout<<"введите длинное число"<<endl;
        Z.read();
 
    getch();
    return;
}
 
Текущее время: 01:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru