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

Спроектировать и реализовать класс BigInt - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа подсчета результатов выступления спортсменов по прыжкам с трамплина http://www.cyberforum.ru/cpp-beginners/thread266771.html
Struct sportsme +массив указателей { * misce Char famil ; Int nomer; Intmetry; Int baly; Int suma-ochky Uchasnyky } 1.В начале программы заполняем массив нулями, кроме номера.
C++ Динамическое программирование.Удаление строки Дана строка S, состоящая из n маленьких латинских букв. За один ход Вам разрешается удалить один или несколько подряд идущих одинаковых символов. Необходимо удалить все символы из строки S за минимальное количество ходов. Помогите довести до ума код,защитил алгоритм у преподавателя,а нормальная реализация не выходит.Заодно хотелось бы узнать,оптимальное ли это решение.Спасибо!... http://www.cyberforum.ru/cpp-beginners/thread266764.html
объединить три 2-мерных массива в один 3-мерный массив C++
Первый двухмерный задан рандомно. Второй и третий двухмерные заданы как результаты вычислений от функцый (табуляция по Х, У, А и В). Надо что б из этого всего получился 3-мерный массив. Который потом сортируется по возрастанию.
C++ неполадки с кампилятором
я сегодня уже писал о том что ищу графическую библиотку для Dev-Cpp на сайте константина полякова нашел то что искал и сделал все следуя инструкциям, но груфака так и не работает. в самой простой прогармме (там же на сайте взял текст) выдает 233 ошибки, причем все относятся к самой библиотеке graphics.h... в чем может быть дело? и как устранить их?
C++ Решение СЛАУ методом Гаусса http://www.cyberforum.ru/cpp-beginners/thread266739.html
помогите разобраться!!ВЫдает 85 ошибок!!!! #include <stdio.h> #include <conio.h> #include <tchar.h> #include <iostream> #include <stdlib.h> #include <time.h> #define eps 0.0000000001 class CMatrix
C++ Динамический массив из целых чисел Плохо разбираюсь с массивами, поэтому нужна помощь написать кусок кода, где создается динамический массив и формирующий в нем множества всех целых чисел вида 2^k и 3^k меньших заданного числа N в порядке возрастания. вообще даже соображений нет, вот что накалякал :( #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream.h> int main () { int N, k, a, b; k=1; подробнее

Показать сообщение отдельно
Koketka
5 / 5 / 0
Регистрация: 27.11.2009
Сообщений: 232
19.04.2011, 01:25  [ТС]     Спроектировать и реализовать класс BigInt
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
#ifndef BIGINT_H
#define BIGINT_H
#define BASE 10000    //основание СС(в элементах массива храним четырехзначные числа)
#define BASE_DIG 4    //размер основания
#define MAX_L 10      //максимальное количесвто четырехзначных цифр
 
#include <iostream>
#include <stdio.h>
 
const AnsiString NUM = "0123456789";
 
int DivRes(int dig, int size){  //если остаток от деления есть то возвращает 1, в противном случае 0
    if (size%dig==0){
        return o;
    } else return 1;
};
 
class BigInt {
public:
  int Size;             // Size - текущая длина (истинная длинна числа)
  int SizeMax;        // SizeMax - максимальная длина
  int *Coef;           // Массив коэффициентов (массив где храним наши четырехзнаяные числа)
 
  BigInt();                           //Объявление вида BigInt A, конструктор по умолчанию
  BigInt::BigInt(char *A)        //Объявление вида BigInt А("1234567")
  BigInt(const BigInt &A);       //Объявление вида BigInt А(1234567), конструктор копирования
  ~BigInt();                         //Деструктор
 
  BigInt& operator=(const BigInt &A);   // Оператор присваивания
 
};
 
BigInt::BigInt()                 // Объявление вида BigInt A, конструктор по умолчанию
{
  SizeMax = MAX_L;
  Size = 0;
  Coef = new int[SizeMax];
 
};
 
BigInt::BigInt(char *A)      //объявление вида BigInt А("1234567")
{
  SizeMax = MAX_L;
  Coef = new int[SizeMax];
  int n = 0;   //храним задействование количесвто элементов массива
 
  AnsiString ch, str ="";    //ch - тут храним текущий символ, str - тут храним число
 
  //проверяем, чтобы все введенные знаки были цифрами, и заносим его в переменную str
  for (int i=1; i<A.Length(); i++)
  {
      ch = "";
      ch += A[i];
      if(StrPos(NUM.c_str(),ch.c_str())){
          n=++;
          str+=ch;
      }
  }
 
  //дополняем 0-ями незаполненные доконца разряды
  ch="";
  while(DivRes(BASE_DIG,str.Length()!=0)){
      ch = str;
      str = "";
      str = "0" + ch;
  }
  ch = "";
 
  int sz = str/Length() / BASE_DIG;  // текущая длина нашего числа
 
  //теперь вводим число в массив coef
  for (int i = 1; i<+ sz; i++){
      Coef[i-1]=StrToln(str.SubString(str.Length() - 4*i, 4));  //тут также можно использовать функцию atoi()
  }
 
  Size = sz;
 
};
 
BigInt::BigInt(const BigInt &A);            //Конструктор копирования, объявление вида BigInt А(1234567)
{
    SizeMax = A.SizeMax;
    Size = A.Size;
    Coef = new int[SizeMax];
    for (int i=0; i<SizeMax; i++) Coef[i] = A.Coef[i];
};
 
BigInt::~BigInt()                                //Деструктор
{
    delete Coef;
 
};
 
BigInt& BigInt::operator=(const BigInt &A)   // Оператор присваивания
                         {
    const int*a = A.Coef;
 
    if(this == &A) return *this;   // Если присваивание вида А=А, то выйти
    if(SizeMax < A.Size) {         // Если размера не хвататет - переинициализация
        if(Coef) delete Coef;
        Coef = new int[A.Size];
        SizeMax = A.Size;
} else Size = A.Size;
for (int l=0; l < Size; l++) Coef[l] = a[l];
 
return *this;
};
 
 
#endif // BIGINT_H
 
Текущее время: 23:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru