Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - gepar

Страницы: Назад 1 ... 241 242 243 244 [245] 246 247 248 249 ... 431 Далее
7321
Hard'n'Soft / Re: Програмирование на C++
« : 17 Март 2011, 11:48:34 »
Цитата: HoRRoR
row*column+1 - зачем +1? Количество элементов матрицы NxM и равно NxM.
да это я чтобы пропустить элемент 0.
Цитата: HoRRoR
Непонятно, как ты используешь exit() без cstdlib.
Компилируется так - я и не использую  :)
Цитата: HoRRoR
Ай-яй-яй, не делают так. К тому же, у тебя оператор сравнения перегружен. Сравнивают адреса:
Понял, буду знать.
Цитата: HoRRoR
А что ты, собственно, удаляешь? Ты разве выделял память под этот ptr? Нафиг эту строку.
Ну а если у меня сначала было Array a(5,5) .... а потом уже a=b, следовательно место под a изначально было же выделено.
По поводу того чтобы не копировались мои массивы для сравнения исправлю, спасибо за подсказку.
Цитата: HoRRoR
Ну кто так делает? Это верх нерациональности. Заведи консанты или enum - {A_MAX, A_MIN}, принимай int или переменную типа этого enum'а, а там уже сравнивай или через switch выполняй необходимые действия.
Не читал я ещё о enum, посмотрю что он из себя представляет. Через switch идея была сделать.
Ну и спасибо за конструктивную критику  :)

7322
Nemesis_c, они там уже есть, да?

7323
Nemesis_c,а ещё можно где-то на стенке нарисовать квадратный вентилятор от которого будет дуть  :)

7324
Hard'n'Soft / Re: Програмирование на C++
« : 17 Март 2011, 01:07:30 »
Mr2, а , ты об этом, я уже убирал ;, там не в ней дело, вот смотри:
//свой класс-массив
//+ возможность получать min или max элемент массива
# include <iostream>
# include <iomanip>
# include <cstring>
using namespace std;

class Array
{
friend ostream &operator<<(ostream &output, Array &test);
friend ostream &operator>>(ostream &output, Array &test);
public:
    //конструктор по умолчанию
    Array(int a, int b)
    {
        row=(a>0) ? a:1;
        column=(b>0)? b:1;
        ptr= new int [row*column+1];
        for (int i=1;i<row*column+1;i++)
         ptr[i]=0;
    }

    //конструктор копии который не работает
    Array (const Array &abc)
    {
        if (*this!=abc)
        {
            if (row!=abc.row || column!=abc.column)
            {
                delete []ptr;
                row=abc.row;
                column=abc.column;
                ptr=new int[row*column+1];
            }
            for (int i=0;i<row*column+1;i++)
             ptr[i]=abc.ptr[i];
        }
        else exit(1);
    }

    //возможность обращения к нужному элементу массива
    int &operator()(int a, int b)
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //возможность обращения к нужному элементу массива для const объекта класса
    int &operator()(int a, int b) const
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //возможность нахождения min/max элемента
    int &operator()(string a)
    {
        if (a=="maximum")
        {
            int *max=&ptr[1];
            for (int i=1;i<row*column+1;i++)
             if (ptr[i]>*max)
              max=&ptr[i];
            return *max;
        }

        else if (a=="minimum")
        {
            int *min=&ptr[1];
            for (int i=1;i<row*column+1;i++)
             if(ptr[i]<*min)
              min=&ptr[i];
            return *min;
        }
        exit (1);
    }

    //проверка на равенство
    bool operator==(Array test)
    {
        if ((row!=test.row) || (column!=test.column))
         return false;
        for (int j=0;j<row*column+1;j++)
         if (ptr[j]!=test.ptr[j])
          return false;
        return true;
    }

    //проверка на неравенство
    bool operator !=(Array test)
    {
        return !(*this==test);

    }



private:
    int row; //колличество строк
    int column; //колличество столбцов
    int *ptr; //указатель на массив с элементами int
};

ostream &operator<<(ostream &output, Array &test)
{
    output<<endl;
    for (int i=1;i<((test.row*test.column)+1);i++)
    {
        output<<setw(3)<<test.ptr[i]<<" ";
        if ((i)%test.column==0)
         output<<endl;
    }
    return output;
}

ostream &operator>>(ostream &output, Array &test)
{
    output<<endl;
    for (int i=1;i<((test.row*test.column)+1);i++)
     output<<setw(3)<<test.ptr[i]<<" ";
    output<<endl;
    return output;
}


int main()
{
    Array a(2,3);
    a(1,1)=3;
    a(2,2)=5;
    Array b(5,5);
    b(1,4)=10;
    b(3,3)=20;
    cout<<"a=b ? : "<<boolalpha<<(a==b);
    cout<<"\nA:"<<a<<"B:"<<b;
    cout<<b("maximum");
    return 0;
}


Добавлено позже:
+ мне по прежнему интересно почему будет крешится программа с этой неправильной проверкой в конструкторе если в main он (констркутор копии) использоваться НЕбудет, но будет использоваться сравнение (== или !=). Вот сам попробуй убрать строку в main где используется сравнение и программа скомпилируется и будет работать нормально, но где же связь? Операции сравнения у меня никак не используют конструктор копии же.

7325
Разное / Re: Лучшая 16-битная консоль
« : 17 Март 2011, 01:00:40 »
Цитата: Pain
Половина игр с Денди уделывают по графике лайт крусайдер.
Нето чтобы я был фанатом графики, но это где же?


7326
Nemesis_c, ну они же там писали мол разработка игры велась дофига долго и прям и для 32x делали и для sega cd делали, я такое читал.

Добавлено позже:
И всё же непонятно почему не использовать уже реализованные фичи, можно было бы на крыше применить этот "ветер" например.

7327
Может и правда у разработчиков было дофига идей и часть из того что они писали правда?

7328
Hard'n'Soft / Re: Програмирование на C++
« : 17 Март 2011, 00:48:52 »
Mr2,нет, я только понял что нельзя  :)

7329
Hard'n'Soft / Re: Програмирование на C++
« : 17 Март 2011, 00:34:02 »
Но как сделать проверку что это не самоприсваивание, больше вникать никуда не надо, мне нужно лишь проверить что объект класса не присваивается самому себе, всё остальное работает.

Остальное кстати вот:
# include <iostream>
# include <iomanip>
using namespace std;

class Array
{
friend ostream &operator<<(ostream &output, Array &test);
friend ostream &operator>>(ostream &output, Array &test);
public:
    //конструктор по умолчанию
    Array(int a, int b)
    {
        row=(a>0) ? a:1;
        column=(b>0)? b:1;
        ptr= new int [row*column+1];
        for (int i=1;i<row*column+1;i++)
         ptr[i]=0;
    }

    //конструктор копии в который я не могу добавить проверку на самоприсваивание
    Array (const Array &abc)
    {
            if (row!=abc.row || column!=abc.column)
            {
                delete []ptr;
                row=abc.row;
                column=abc.column;
                ptr=new int[row*column+1];
            }
            for (int i=0;i<row*column+1;i++)
             ptr[i]=abc.ptr[i];
    }

    //возможность обращения к нужному элементу массива
    int &operator()(int a, int b)
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //возможность обращения к нужному элементу массива для const объекта класса
    int &operator()(int a, int b) const
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //проверка на равенство
    bool operator==(Array test)
    {
        if ((row!=test.row) || (column!=test.column))
         return false;
        for (int j=0;j<row*column+1;j++)
         if (ptr[j]!=test.ptr[j])
          return false;
        return true;
    }

    //проверка на неравенство
    bool operator !=(Array test)
    {
        return !(*this==test);

    }



private:
    int row; //колличество строк
    int column; //колличество столбцов
    int *ptr; //указатель на массив с элементами int
};

ostream &operator<<(ostream &output, Array &test)
{
    output<<endl;
    for (int i=1;i<((test.row*test.column)+1);i++)
    {
        output<<setw(3)<<test.ptr[i]<<" ";
        if ((i)%test.column==0)
         output<<endl;
    }
    return output;
}

ostream &operator>>(ostream &output, Array &test)
{
    output<<endl;
    for (int i=1;i<((test.row*test.column)+1);i++)
     output<<setw(3)<<test.ptr[i]<<" ";
    output<<endl;
    return output;
}


int main()
{
    Array a(2,3);
    a(1,1)=3;
    a(2,2)=5;
    Array b(5,5);
    b(1,4)=10;
    b(3,3)=20;
    cout<<"a=b ? : "<<boolalpha<<(a!=b);
    cout<<"\nA:"<<a<<"B:"<<b;
    return 0;
}

7330
Разное / Re: Юмор
« : 17 Март 2011, 00:18:01 »

7331
Там где-то был проход в стенке, но уже не помню где.

7332
Разное / Re: Несерьёзные новости
« : 16 Март 2011, 23:43:19 »
ALEX_230_VOLT,ноутбук это старый век, гламурные кисо и не только рекомендуют айпЭд, ведь это так круто носить с собой планшетник, разве не так?

7333
Hard'n'Soft / Re: Програмирование на C++
« : 16 Март 2011, 23:41:57 »
Пытаюсь тут сделать свой двухмерный массив с обращением к элементам как в паскале (1,2) вместо [1] [2].
Да только чего-то мой конструктор копии рушит работу всей программы, притом даже если я его не использую, а только он присутствует в коде то тут же отваливается возможность проверки на равенство двух объектов классов o_0
# include <iostream>
# include <iomanip>
using namespace std;

class Array
{
public:
    //конструктор по умолчанию
    Array(int a, int b)
    {
        row=(a>0) ? a:1;
        column=(b>0)? b:1;
        ptr= new int [row*column+1];
        for (int i=0;i<row*column+1;i++)
         ptr[i]=0;
    }

    //конструктор копии который не работает
    Array (const Array &abc)
    {
        if (*this!=abc);
        {
            if (row!=abc.row || column!=abc.column)
            {
                delete []ptr;
                row=abc.row;
                column=abc.column;
                ptr=new int[row*column+1];
            }
            for (int i=0;i<row*column+1;i++)
             ptr[i]=abc.ptr[i];
        }
    }

    //возможность обращения к нужному элементу массива
    int &operator()(int a, int b)
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //возможность обращения к нужному элементу массива для const объекта класса
    int &operator()(int a, int b) const
    {
        if ((a>0) && (a<=row) &&(b>0) && (b<=column))
         if (a==1)
          return ptr[a+b];
         else
          return ptr[(a-1)*column+b];
        else
         exit(100500);
    }

    //проверка на равенство
    bool operator==(Array test)
    {
        if ((row!=test.row) || (column!=test.column))
         return false;
        for (int j=0;j<row*column+1;j++)
         if (ptr[j]!=test.ptr[j])
          return false;
        return true;
    }

    //проверка на неравенство
    bool operator !=(Array test)
    {
        return !(*this==test);

    }



private:
    int row; //колличество строк
    int column; //колличество столбцов
    int *ptr; //указатель на массив с элементами int
};


int main()
{
    Array a(5,5);
    Array b(5,5);
    cout<<boolalpha<<(a!=b);//без попытки их сравнить программа
                            //в процессе работы ошибку возвращать не будет
    return 0;
}



Добавлено позже:
Тааак, в общем-то я напортачил с проверкой вначале не делаем ли мы самоприсваивание, уже понятно, осталось это исправить  :)

Добавлено позже:
да только чего-то не получается, как бы её грамотно устроить?

7334
Разное / Re: Несерьёзные новости
« : 16 Март 2011, 22:33:02 »
Я о таком и не слышал и по ТВ ничего не видел, это ваши сми только что-то целый репортаж решили сделать.

7335
Я тут последнюю версию mame качал (тот что с gui) и так и не смог найти где настроить управление (раньше же tab было), на какой клавише сейчас настройка висит?

7336
Я вот кстати поиграл пока немного, но как-то схожести с кастельванией особо не заметил, даже не знаю почему их так сравнивают и говорят что конами украла все идеи у нинтендо в своих кастельваниях с примесью рпг.

7337
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 18:30:08 »
CorvaX, ладно-ладно, уговорил. Я использовал другие алгоритмы поиска картинки в вебе, а не гугл со словом "говнарь".

7338
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 18:09:40 »
Цитата: CorvaX
Гепар как всегда сразил свой логикой Ладно, раз уж все картинки, что я выкладываю это "я или что-то мое", то чего мелочится - вот моя машина на фоне моего дома
Твоя картинка с якобы фанатами sega отредактированная в пейнте не засвечена в инете и является уникальной (или же взятой из контактика, если ты там есть, хотя чего это я засомневался, конечно же есть ты там), а картинка с Роллс Ройсом - нет (не уникальна).
По старой доброй традиции +1 тебе к фейлам  :)

7339
А вы не помните где они лежат (это начало игры, может запомнили) ? Я нашёл карту уровня и 3 или 4 прокачки обычных ракет (у меня обычных max толи толи 20), ещё нашёл возможность скручиваться в шар ну и возможность бомбы осталвять когда он шариком катается, вроде по всем щелям где можно было лазил по два раза и когда на карту смотрел то не видно было где я мог что-либо пропустить.
Ну я раз такое дело скриншот карты на выходных покажу, я сейв оставил на ноутбуке.

7340
А как открыть дверь с зелёной "кнопкой" в самом начале (нужно пройти направо от корабля и подорвать бомбами стенку)? Я было начал играть в эту игру, но прогулявшись по всем комнатам у меня осталась закрытой только эта дверь и я не знаю куда дальше деваться и что делать.

7341
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 17:18:28 »
Brick_Man,это ты подменой понятий занимаешься, форумчане не смотрят дом2, не слушают шансон и Диму Билана. Здесь же не мужики кому за 40/школота до 14 сидит (ну почти не сидит), которым нравиться что-то из вышеперечисленного тобой. И вообще это не имиджборда, а форум всё же. Ато взяли моду с громким смехом и мыслями "ща они будут по полу кататься от смега от моей пикчи" постить картинки и думать что они ну ооочень смешные, а ваши познания в фотошопе пейнте безграничны так что вы соперников вашей ненаглядной консоли разнесёте в пух и прах просто. На деле то оно не так и вообще откуда у фанатов snes сколько картинок быдла? У меня тут есть предположение что это вы свои же фото из папки "бухали--играли_в_snes--мобилы_отжимали" заливаете сюда в тему.

7342
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 16:43:41 »
Цитата: SyLaR
Чур, я в центре
Цитата: SyLaR
Только они не сильно смахивают на быдло и нищебродов.  
А ты всё же хотел чтобы смахивали?
Тема кстати к Лонгу вот-вот пойдёт, уже не долго осталось.

Добавлено позже:
KDash, да сколько картинок пусть не постят показывая свой батхерт результат-то всё равно выдаёт что людям больше нравиться.

7343
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 16:31:27 »
CorvaX, одноклассников сфотографировал и обрисовал, да? А потом обижаешься когда я на твой возраст намекаю  :D

7344
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 13:23:30 »
BaNdiT, а это нынче модно со стороны ущемлённых фанатов нинтендо, независимо от того кто им прищемил не ногу и не руку, писать о том что выигравшая сторона смотрит Comedy Clab/жуёт семечки/носит кепку/пьёт локальный (в Украине ваш ягуар не продают) быдло-напиток.
Староваты методы применяете, хочется видеть что-то новенькое. К тому же в те времена smd камеди клаб точно не показывала, а ягуара не было так что не срастается комментарий с названием темы.

7345
Разное / Дни Рождения форумцев
« : 16 Март 2011, 12:55:36 »
Присоединяюсь к поздравлениям Yaranga.

7346
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 12:54:24 »
И всё же сколько фанаты snes тут не будут тролить , smd как видите всё равно выигрывает, хотя я изначально думал что за snes процент голосов будет не больше четверти.

7347
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 12:47:38 »
Long, так я же не курил, я только смотрел на результаты голосования, посмотри же и ты  :)

7348
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 12:40:23 »
Что-то теперь голос snes стал ещё более недовольный, но теперь невнятный, как-будто ей рот заткнули ,  oh shi-...

7349
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 12:28:25 »
Не знаю что писал КорваХ но я когда заходил в тему слышал недовольный крик snes "ААААААААй".

7350
Разное / Re: Лучшая 16-битная консоль
« : 16 Март 2011, 12:24:00 »
... А тем временем сега нежно нагнула snes по результатам голосования и ...

Страницы: Назад 1 ... 241 242 243 244 [245] 246 247 248 249 ... 431 Далее