Реализация Простейшего Класса На С++

Тема в разделе "C/C++/C#", создана пользователем hatiko, 29 мар 2012.

  1. hatiko

    hatiko Гость

    Здравствуйте, прошу помощи!!!ПОЖАЛУЙСТА. :) :)
    Разработать класс large – длинное целое. Для хранения одной десятичной цифры использовать одно число типа char. Количество десятичных цифр, которые должны размещаться в этом числе, передавать в конструкторе. Реализовать методы присваивания, сложения двух чисел, печати числа на экране. Переписать программу вычисления числа Фибоначчи, для типа large. Вычислить fn=100 (22 десятичных цифры). Замечание: если Вы в прошлый раз использовали рекурсивный алгоритм вычисления чисел Фибоначчи, то теперь Вам необходимо разработать нерекурсивный алгоритм, так как рекурсивное вычисление для n=100 займет слишком много времени (возможно, несколько миллионов лет).

    Вот пока все что у меня есть((
    typedef unsigned int uint;


    class Large
    {
    char sym;
    long fibonacci(long);
    int i;
    int s;
    public:
    Large(const char *str);
    Large(int i);
    Largeadd(const Large&s);
    void divide(Large denom, Large &quot,
    Large&rem, bool RemDesired)const;//методы класса
    int compare(const Large&y)const;//включение сравнения
    private:
    char P[20];
    };


    //сложение

    class Large{

    Large operator+(const Large&);

    };


    //конструктор


    Large a,b(31946);
    a = b*Large(35);

    //Пусть конструктор от целого числа задает количество десятичных цифр в числе. И есть оператор присваивания, который в качестве параметра принимает целое число. Тогда можно сделать так:
    class Large{

    Large& operator=(int s) {
    ConvertFromInteger(s);
    return *this;
    }
    Large operator*(const Large& s);
    };

    Large a,b,c;
    b = 31946;
    c = 35;
    a = b*c;
    //теперь будем считать, что количество десятичных цифр в числе не фиксировано, а должно задаваться в конструкторе:


    class Large
    {

    public:

    Large(char* s, int n=0); //конструктор, преобразующий строку с записью числа во внутренний формат.
    //При этом вторым параметром указывается максимальная размерность (количество десятичных цифр).
    Large(long a=0L, int n=0); //конструктор, в который в качестве первого параметра передается начальное значение числа в виде длинного целого. //Вторым параметром опять же следует не обязательный параметр – количество десятичных цифр.
    Large(Large& d);

    };



    #include <iostream.h>
    #include <stdlib.h>

    long fibonacci(long);

    int main()
    {
    int i,j=0;
    const int n=20;
    int a[n];
    cout <<"Массив Фибоначии \n";
    for(i=0;i<=n-1;i++)
    a=fibonacci(i);
    for(i=0;i<=n-1;i++)
    {
    cout << '[' << i+1 << ']' << '=' << a <<'\n';
    }
    return 0;
    }

    // Вычисление числа Фибоначчи(long n)


    {
    if (n==0 || n==1)
    return n;
    else
    return fibonacci(n-1)+fibonacci(n-2);
    }




    // Вывод символьной переменной в виде десятичного числа
    include <stdio.h>
    void main()
    {
    char sym;
    printf("Vvedite simvol: ");
    sym=getchar();//функция для чтения с клавиатуры
    printf("Simvol=%c\n",sym);//вывод символьной переменной sym в символьном виде
    printf(ASCII(dec)=%d\n,sym);//вывод символьной переменной sym в виде десятичного числа


    Спасибо.
     
Загрузка...

Поделиться этой страницей