паскаль, вы программер?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by rubik-nerubik, 10 Dec 2007.

  1. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    интгер на всяк случай ставил тамучто при умножнии
    99999999999 на 99999999 же в 5 ячейке массива буит храницца 9*9+9*9+9*9+9*9+9*9=324 что привышат байт,
    а обьекты ет на любителя , тем более прога не такая большая
    З.Ы. Если вопросы есть с удовольствием отвечу =)
     
  2. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    2~Lexx~ проще, но грамотное использование Integer эффективнее скажется на работе с длинными числами. перейдя в систему исчисления 10000, а лучше с longint в 100000000 количество операций с отдельными элементами массива для одного и того же числа будет в разы меньше. причем 10^n берется исключительно из-за удобства быстрого ввода\вывода таких чисел.
     
  3. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    Ну как быэто грамотнее объяснить
    максимальный объем стека паскаля - 65520 байт.

    BYte = 1 byte
    Integer = 2 byte
    таким образов в весь стек у тебя поместиться 32760 интежеровских переменных и 65520 байтовых. при грамотно организованной функции умножения у тебя бедут одновременно использоваться только соседние разряды - и значение элементов массивов не будет превосходить байтовую величину(компилятор же считает таким образом - это нуно делать на уровне двоичных кодов). К тому же в любом случае у тебя байт будет умножаться на байт быстрее чем два байта на два байта. (если не ошибаюсь где то на 25% быстрее).
     
  4. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    на самом деле нельзя написать на паскале программу которая бы высчитывала факториалы даже на половину просто нет такого типа данных в рамки которого можно внести там 33 факториала....
    Если только на теории....
    я имею ввиду полностью рабочую программу...
     
  5. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    ну простите... а как же пользовательские типы данных? а то что я писал- это так пустой звук? попробуй запустить мою програмку - на каких числах она отвалиться, если поставить тип данных extended... 10 байт на элемент - 3,4x10-4932 - 1,1x104932... помоему должно хватить )))
     
  6. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Простите не подумал просто не пользовался ни ризу этим типом данных для того что я делаю (простые школьные и не только задачи ) лонгейта хватало с крышей
     
  7. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    ~Lexx~ моя ,должна не отвалиться даже на 1000! если можешь обьясни чем она плоха
     
  8. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    Я товю программу не запускал -у мея счас нету паскаля на компе - он у меня исчез далеко на первом курсе. Просто я говою о нецелесообразности твоей программы - у нее и выч сложность на порядок больше моей и она еще не являеться Объектно-ориентированой. К тому же что за бяка - как ты передаешь в процедуру массив, который у тебя число... ну просто омерзительно - надо создать свой тип и передавать ссылку! того типа.
     
  9. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    понемаешь , моя тока изза длинки в скороости проигрывает (я не говорю, что мой код-идеал)
     
  10. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    Понимаешь - написать программу, которая рабоатет - подсилу каждому, а вот написать быстро работающую программу, которая при этом жрет мало ресурсов - вот это хинт.

    И зачем тогда усложнят алгоритм, если в итоге получили медленно работающую программу, с неграмотной передачей в процедуры. Которая ктому же жрет непойми сколько места. Плюс ты ее тестил? Попробуй - что то мне подсказывает, что она непапрет для заявленной 1000!
     
  11. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    на 1000! она выдает ответ ~1 cек, компилятор делфи 7, проц атлон 3500+ (на правильность проверял малые тесты работала верно )
    З.Ы. твоя прога 30! не вазьмет а по ресурсом буит хавать столькоже скока и моя (если динку допишешь)
    З.З.Ы. я не думаю ято моя прога работает медленно паетотму я опустил красату и компактность кода
     
    1 person likes this.
  12. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    ~Lexx~ )))) опять флуд)))\
    мне нужна работающая программа. все. )))) завтра смогу протестить прогу беефа
     
  13. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    >>К тому же в любом случае у тебя байт будет
    >>умножаться на байт быстрее чем два байта на два
    >>байта. (если не ошибаюсь где то на 25% быстрее).

    вполне очевидно, что ДАЖЕ проходя два байта в два раза медленнее мы пройдем всю длину в два раза быстрее)
     
  14. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    Ты что в горестном епаме работаешь? Или всю жизнь на делфи работаешь? Ты считать умеешь? замени в моей программе лонгинт на экстендед - у тебя получиться больше 1500 элементов влазит в стек... программа выводиться за 1 секунду???? бля эт опо твоему скорость? Ты што упал? У меня на выполнение программы идет меньше восьмой части секунды - на третьем пне. Про динамическую память - ты вообще что-нибудь когда-нить на динамике писал? или в школе на уроках информатике услашыв, что такое ссылки и виртуальные методы возомнил себя программистом? Я вообще не понимаю о чем с тобой можно спорить, если ты не способен понять линейный итерационный алгоритм.
    Что может быт ьпроще - каждый раз вычислять значение факториала - используя предыдущий факториал и тут же его суммировать... Неужели такие люди считают себя айтишниками... Это же простейшая программа класса 9. Оставь мечты стать программистом...

    Какая к черту красота и компактонсть кода - жуткий гибрид рекурсии и неумелая попытка передавать ф процедуру глобальный параметр... тыб еще сразу его начил фигачить.

    Прошу прощения у всех остальных пользователей - не сдержался.
     
    #34 ~Lexx~, 14 Dec 2007
    Last edited: 14 Dec 2007
  15. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    ~Lexx~ если не трудно напиши свою прогу ибо из твоих рассуждений ничего не понял,а там посмотрим
     
    1 person likes this.
  16. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    ой мама родите меня обратно
    дубль три) Uses crt;

    var i,n:integer;
    fact,sum:extended;

    Begin ClrScr;
    Writeln('vvedite chislo');
    Readln(n);
    sum:=0;
    fact:=1;
    for i:=1 to n do begin
    fact:=fact*i;
    sum:=sum+fact;
    end;

    writeln(sum);
    readln;
    end.
     
  17. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    последний вопрос , а с точностью что ты будешь делать?
     
  18. ~Lexx~

    ~Lexx~ Elder - Старейшина

    Joined:
    30 Sep 2006
    Messages:
    195
    Likes Received:
    28
    Reputations:
    0
    во первых какя тебе нужна точность? если тебе так нужно - завтра послезавтра выложу специальн одля тебя по человечески сделанную с пользовательскими типами и переопределением методов.

    Вот как бы появилось пару вопросов по твоей прогрмме - а зачем ты крепишь текстовый файл? для понта? во вторых - у тебя сразу же пойдет переполнение стэка - подумай почему. Вернее не сразу, а когда оно начнет считать.
     
    #38 ~Lexx~, 14 Dec 2007
    Last edited: 14 Dec 2007
  19. VERte][

    VERte][ Elder - Старейшина

    Joined:
    17 May 2007
    Messages:
    240
    Likes Received:
    163
    Reputations:
    32
    аха-ха жжёшь) а если у тебя n за maxint выйходит?) и ты конечно крут с extended, если у тебя будет найти сумму 1!+..+n! где n=100000, то ты пролетишь))))
     
    #39 VERte][, 14 Dec 2007
    Last edited: 14 Dec 2007
  20. Be0wuIf

    Be0wuIf New Member

    Joined:
    18 May 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    текстовые делал тамучто мне так тестить было удобней , на практике переполнения не было , обьесни почему оно буит...