Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #26
22.08.2007 16:57

Sfunx
Участник
Зарегистрирован: 22.08.2007
Сообщений: 11

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Хорошая коснтрукция, с помощью которой как раз можно обойти рекурсию во многих случаях (ну, например при вычислениии факториала).

А ты в курсе, что switch-case - это полный, 100% аналог if-goto ?

VoLk88 написал:

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

Бесполезного ? Ну ты хватил... Нука мне примерчик цикла на ассемблере без goto явного или неявного ? Или скажешь, что и ассемблер не нужен ? smile В итоге - любой цикл и любое ветвление на уровне машкодов раскладывается в ненавистные тебе goto...

Не люблю линух - я люблю пользоваться нужными мне программами, а не воевать всё время с пингвинами, уж простите.

А при чём тут любовь ? Я тебе реальный пример привёл, что в реальной ОС, в которую вливаются миллиарды зелёных и которая гораздо удобнее и недёжнее убогой микрософтовской поделки, используется довольно много операторов goto... Кстати - в книжке по программированию, тоже есть рекомендации, как написать компактный и культурный код, используя goto...

Неактивен

0    0    #27
22.08.2007 18:24

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

2Sfunx
Какая глупость про if-goto... в селект-кейс (на С) вообще все пункты выполняются до бреак, начиная с отмеченого, и он является "полуаналагом" if then else (elseif elseif elseif...) end if (это для пущей понятливости)
И линух - не самая удобная (это 100%) и надёжная уж п(р)оверь. Виндой пользуются в России 95% пользователей и софт в основном под неё пишут. Дрова хрен под линух найдёшь, да просто КУЧА НЕДОСТАТКОВ! Но не о линухе...
А какая у тебя книжка "по программированию" - синияя или толстая? по программированию на чём? Наверное, у тебя клёвая книжка...
Вообще чё напали-то все? Если никто из вас не может без GoTo обойтись это совсем не значит, что больше никто не сможет! Короче, GoTo не есть истина и всегда обхожу эту дрянь, а ты, дорогой Sfunx можешь и дальше пользоваться чем тебе угодно, в любых целях и количествах. А если бы ты был повнимательнее при работе с отладчиком, то заметил бы, что jmp, jp, jnz не всегда используются как GoTo, чаще это тот самый If. А с машиной Тьюринга игрался? Читал статьи самого Тьюринга или Поста? Нет? Оно и видно...

Неактивен

0    0    #28
22.08.2007 18:41

Olegus t.Gl.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2904
Вебсайт

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Вообще чё напали-то все?

Никто, собственно, на тебя не нападает. Просто были поставлены вопросы, выдвинуты аргументы, приведены выдержки из реального практического опыта. Всё это спокойно и степенно. Ты же, VoLk88, не привёл ни одного рационального аргумента — всё сплошь эмоциональные, я уж не говорю про оскорбления. Все отсылки к авторитетам также сделаны «в общем ключе». Попробуй продавить народ конкретикой — горлопаны всегда тушуются перед голыми прозрачными фактами. Глядишь, народ и уважительней отнесётся к твоему мнению.
Это типа как спорить на тему, что можно всю жизнь прожить, ни разу человека по яйцам не ударив, — дурной тон это, всегда можно решить проблему по-другому, более цивилизованно…

Неактивен

0    0    #29
22.08.2007 19:08

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

Olegus t.Gl. написал:

VoLk88 написал:

Вообще чё напали-то все?

Никто, собственно, на тебя не нападает. Просто были поставлены вопросы, выдвинуты аргументы, приведены выдержки из реального практического опыта. Всё это спокойно и степенно. Ты же, VoLk88, не привёл ни одного рационального аргумента — всё сплошь эмоциональные, я уж не говорю про оскорбления. Все отсылки к авторитетам также сделаны «в общем ключе». Попробуй продавить народ конкретикой — горлопаны всегда тушуются перед голыми прозрачными фактами. Глядишь, народ и уважительней отнесётся к твоему мнению.
Это типа как спорить на тему, что можно всю жизнь прожить, ни разу человека по яйцам не ударив, — дурной тон это, всегда можно решить проблему по-другому, более цивилизованно…

Знаете, мне вот больше делать нечего, как каждому расписывать всё и выжимать примеры. По-моему не маленькие тут, чтобы "вынь да положь". Так обычно в технарях учат - делай так и вот так, а теория лишняя. Я сам начал программировать и учился в основном по исходникам, а теперь сам же могу из теории и общих положений вынести для себя что-то. Может новый топик начать: "Великий и могучий Вайл Неубиваемый", так там найдутся те, кто скажет, что без него никак и всё тут и скрещивать самому цикл с условием можно, но геморно, хотя в машинном коде всё будет аналогично, просто дело удобства.
Пусть тушуются все кому не лень над голыми фактами, но киселём расплываться перед недопрограммистами я не собираюсь (и врядли кто-то хочет).
А проблемы собственно и нет никакой - Фон Нейман сказал, что принцип модульности один из основополагающих, а его перевирают те самые горлопаны и сами же удивляются: "а почему этот процессор(ОЗУ, видеокарта...) мне не подходят".

Неактивен

0    0    #30
22.08.2007 19:55

Korwin
Гоблин, зеленый от недосыпа (+194, -16)
Откуда: Екатеринбург
Зарегистрирован: 27.11.2007
Сообщений: 801
Вебсайт

У трав, растущих на мягкой земле - слабые корни. (с)Korwin

Re: Великий и могучий Гоуту Неубиваемый

Eten написал:

Урку привел, как пример широкого использования goto.
Под языком Т, можно понимать любой язык, который реализует все стандартные действия алгоритма на уровне школьного.
И отмечу на последок, редко встречаются языки, где нет такого понятия в синтаксисе, как цикл. Его изучить не сложнее, чем оператор условного ветвления и возможностей он даст больше, нежели примение goto.wink

1. URQL - НЕ универсальный язык программирования. Она никогда не предназначалась для написания любых программ и реализации стандартных алгоритмов. В менюшных квестах потребность в использовании циклов встречается достаточно редко. Там же где надо - легко реализуется при помощи goto - который является переходом на метку. А если учесть, что URQL - сплошь состоит из меток (начало локации), то goto конкретно в URQL является вполне обоснованным и необходимым.
2. Там вам не тут, господа программисты smile
3. Сам предпочитаю использовать побольше goto smile И читабельность от этого не нарушается.

Неактивен

0    0    #31
22.08.2007 20:09

Blob
диван найт
Зарегистрирован: 21.08.2007
Сообщений: 5

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

но киселём расплываться перед недопрограммистами я не собираюсь

Ты попутался, студент! Уровень твоих познаний в программировании уже всем ясен. Вопросов нет. Вопрос в другом. Какие такие заслуги на програмерском поприще позволяют тебе такие высказывания? Ты не Страус часом?

Неактивен

0    0    #32
22.08.2007 21:59

Xlomid[оманад]
Участник (+85, -7)
Зарегистрирован: 21.06.2007
Сообщений: 178

Re: Великий и могучий Гоуту Неубиваемый

Елки-палки, вы бы так игры обсуждали... а еще лучше - писали, вовсю используя свои программистские таланты (хотя, ясное дело, профессиональным программистам среди форумчан и так более чем хватает практики).

Неактивен

0    0    #33
22.08.2007 22:50

uux
Участник (+887, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1625

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

2Sfunx
Какая глупость про if-goto... в селект-кейс (на С) вообще все пункты выполняются до бреак, начиная с отмеченого, и он является "полуаналагом" if then else (elseif elseif elseif...) end if (это для пущей понятливости)

Sfunx говорил не о внешнем сходстве (о котором толкуете Вы), а о внутреннем представлении... Говоря примитивно, select-case - это своего рода мнемокод для "структурированной" записи конструкции if-goto.

VoLk88 написал:

И линух - не самая удобная (это 100%) и надёжная уж п(р)оверь. Виндой пользуются в России 95% пользователей и софт в основном под неё пишут. Дрова хрен под линух найдёшь, да просто КУЧА НЕДОСТАТКОВ! Но не о линухе...

Я не разделяю мнения Sfunx'а об однозначном и безоговорочном преимуществе Linux перед Windows, но цель его ссылки была не в этом. Он привел это как пример серьезной программы на структурном языке программирования, где, тем не менее, используется goto. И привел он этот пример в качестве контр-аргумента на Ваше безапелляционное (и ничем, кроме апломба, не подтвержденное) утверждение о том, что "использующий goto несостоятелен как программист" (поскольку считать несостоятельными авторов Linux - очевидная нелепость).

VoLk88 написал:

Если никто из вас не может без GoTo обойтись это совсем не значит, что больше никто не сможет! Короче, GoTo не есть истина и всегда обхожу эту дрянь, а ты, дорогой Sfunx можешь и дальше пользоваться чем тебе угодно, в любых целях и количествах.

Уверен, Sfunx необычайно счастлив и польщен таким милостивым разрешением.

VoLk88 написал:

А если бы ты был повнимательнее при работе с отладчиком, то заметил бы, что jmp, jp, jnz не всегда используются как GoTo, чаще это тот самый If.

Т. е. и в Ассемблере можно обойтись без goto? Да, это действительно новое слово в программировании.

VoLk88 написал:

А с машиной Тьюринга игрался? Читал статьи самого Тьюринга или Поста? Нет? Оно и видно...

А Вы омуля на Байкале ели, уважаемый Volk88?

VoLk88 написал:

Знаете, мне вот больше делать нечего, как каждому расписывать всё и выжимать примеры. По-моему не маленькие тут, чтобы "вынь да положь". Так обычно в технарях учат - делай так и вот так, а теория лишняя. Я сам начал программировать и учился в основном по исходникам, а теперь сам же могу из теории и общих положений вынести для себя что-то.

VoLk88 написал:

Пусть тушуются все кому не лень над голыми фактами, но киселём расплываться перед недопрограммистами я не собираюсь (и врядли кто-то хочет).

Если уж Вы высказываете свое мнение, то будьте любезны (и готовы) его обосновать. А если не можете и не хотите, то либо держите его при себе, либо как минимум не удивляйтесь, что на Вас "нападают".

Вы тут ссылаетесь на "технари" (я только не понял, на технические ВУЗы или на техникумы), а сами ведете спор именно в таком ключе: не пользуйтесь goto, потому что это низзя! Раз пользуетесь goto - значит, козлы!

VoLk88 написал:

Может новый топик начать: "Великий и могучий Вайл Неубиваемый", так там найдутся те, кто скажет, что без него никак и всё тут и скрещивать самому цикл с условием можно, но геморно, хотя в машинном коде всё будет аналогично, просто дело удобства.

А вот это уже будет банальный плагиат.

Неактивен

0    0    #34
22.08.2007 22:51

Olegus t.Gl.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2904
Вебсайт

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Знаете, мне вот больше делать нечего, как каждому расписывать всё и выжимать примеры. По-моему не маленькие тут, чтобы "вынь да положь" … но киселём расплываться перед недопрограммистами я не собираюсь (и врядли кто-то хочет).

Не хочешь делать лишних телодвижений — не влезай в дискуссию будучи вооружён лишь крикливыми заявлениями. Парируя оскорблениями, ты лишь смешишь оппонентов, ибо, как заметил Blob, ничего такого, что позволило бы принять твою точку зрения на веру или почувствовать себя уязвлённым, ты пока не продемонстрировал. Так — воздух сотрясаешь…

P.S. Йоу! Почти всю мысль, оказывается, спёр у uux'а… Вот что значит медленно печатать!

Неактивен

0    0    #35
23.08.2007 06:11

uux
Участник (+887, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1625

Re: Великий и могучий Гоуту Неубиваемый

Xlomid[оманад] написал:

Елки-палки, вы бы так игры обсуждали... а еще лучше - писали, вовсю используя свои программистские таланты (хотя, ясное дело, профессиональным программистам среди форумчан и так более чем хватает практики).

Хлом, в десятку!wink

Неактивен

0    0    #36
23.08.2007 07:12

Sfunx
Участник
Зарегистрирован: 22.08.2007
Сообщений: 11

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

2Sfunx
Какая глупость про if-goto... в селект-кейс (на С) вообще все пункты выполняются до бреак, начиная с отмеченого, и он является "полуаналагом" if then else (elseif elseif elseif...) end if (это для пущей понятливости)

Я не спорю с тем, что любую конструкцию можно сделать как с goto, так и без оного (хоть на уровне маш-кода всё равно всё будет через goto). Но вот выдержка из книги "Brian W. Kernighan, Dennis M. Ritchie The C programming Language" :

"В Си имеются порицаемая многими инструкция goto и метки для перехода на них. Строго говоря, в этой инструкции нет никакой необходимости, и на практике почти всегда легко без нее обойтись. До сих пор в нашей книге мы не использовали goto.

Однако существуют случаи, в которых goto может пригодиться. Наиболее типична ситуация, когда нужно прервать обработку в некоторой глубоко вложенной структуре и выйти сразу из двух или большего числа вложенных циклов. Инструкция break здесь не поможет, так как она обеспечит выход только из самого внутреннего цикла. В качестве примера рассмотрим следующую конструкцию:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            goto error; /* уйти на ошибку */
error: /* обработка ошибки */
    ликвидировать беспорядок

Такая организация программы удобна, если подпрограмма обработки ошибочной ситуации не тривиальна и ошибка может встретиться в нескольких местах.
"

С Керниганом и Ричи тоже будешь спорить ? Да, goto запутывает программы ПРИ НЕУМЕЛОМ использовании, НО ИНОГДА очень удобна - и я с ними согласен.

VoLk88 написал:

И линух - не самая удобная (это 100%) и надёжная уж п(р)оверь. Виндой пользуются в России 95% пользователей и софт в основном под неё пишут. Дрова хрен под линух найдёшь, да просто КУЧА НЕДОСТАТКОВ! Но не о линухе...

"Не спорь о вкусе устриц с тем, кто их ел"(С).
Я окончил учиться в 99м году и имею опыт профессионального программирования под DOS, Windows около 8 лет и под Linux около 5 лет.
Занимался программированием на ассемблерах и С кроме персоналок таких процессоров z80, КР580, '51, AVR, ARM7, ARM9, 1878BE1 и ещё кое-что помелочи... Кроме этого пользовался Delphi, forth, fortran, lisp и prolog (совсем немного, но пользовал)...
И с таким опытом могу смело утверждать, что Linux (для меня, как для программиста... но о вкусах не спорят!) более удобная система. Сказки про "дрова" в прошлом уже давно. Система ставится без проблем несколькими кликами. Но вот попробуй мне поставить Windows на не-x86 проц? Такие компании как Siemens (только неделю назад разговаривал с её представителем), IBM, Goolgle - отказались или отказываются от Windows в пользу Linux. А пользователь - в 99% случаев =  лемминг. За что посадили на том и работает. Это вообще не аргумент. Сейчас даже в школы у нас Linux ставят. И без проблем.

VoLk88 написал:

А какая у тебя книжка "по программированию" - синияя или толстая? по программированию на чём? Наверное, у тебя клёвая книжка...

Например, та, что я привел - Кернигана и Ричи. Их авторитет тебя не убеждает ? могу ещё десяток названий привести. Везде goto не рекомендуется, но в то же время делается оговорка, что иногда этот оператор полезен...

VoLk88 написал:

Вообще чё напали-то все? Если никто из вас не может без GoTo обойтись это совсем не значит, что больше никто не сможет!

Потому что ты выдаёшь то, что тебе сказал какойто глупец, который не писал больших программ никогда, за истину в последней инстанции... Потому люди и возражают. Причём, заметь, не какие-нибудь студенты, а люди, имеющие реальный (и зачастую немалый) опыт в написании РЕАЛЬНЫХ программ. Может стоит прислушаться ?
Никто ни разу тебе не возразил, что без goto обойтись можно. Но "можно" и "нужно" - разные вещи. Иногда (особенно в устройствах с малыми ресурсами) - скорость и объём программы гораздо важнее, чем "принципиально обходится без goto". И я тоже стараюсь не использовать goto, но иногда приходится. Раз в год-два smile

VoLk88 написал:

Короче, GoTo не есть истина и всегда обхожу эту дрянь, а ты, дорогой Sfunx можешь и дальше пользоваться чем тебе угодно, в любых целях и количествах. А если бы ты был повнимательнее при работе с отладчиком, то заметил бы, что jmp, jp, jnz не всегда используются как GoTo, чаще это тот самый If. А с машиной Тьюринга игрался? Читал статьи самого Тьюринга или Поста? Нет? Оно и видно...

"Остапа понесло"(с)...
Помоему я уже писал, что тоже стараюсь НЕ пользоваться этим оператором. Но ИНОГДА приходится.
Интересно - как ты jp x, jmp x  используешь как if ? Это ж БЕЗУСЛОВНЫЙ переход - goto ? Пример, пожалуйста smile Кстати об отладчике, я начинал программировать, ассемблируя программу ручкой на листочке, потом вгонял её в машкодах в комп и запускал smile Эх... Были времена! И программы были структурные smile

jp x, jmp x = goto x
jz x = if ноль goto x
jnz x = if не ноль goto x

Так что не if, а if условие goto метка smile "И никуда-никуда нам не деться от ээээтогоооо..."(С)

В общем - кончай с юношеским максимализмом smile У всего есть две стороны... Когда ты это поймёшь - станешь неплохим программистом.

Отредактировано Sfunx (23.08.2007 07:26)

Неактивен

0    0    #37
23.08.2007 10:19

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

На ассемблере вчистую не программировал, но как я вижу (как понял) там goto=then, т.е. слово по-другому пишется, а смысл тот же.
Специально смотрел исходники: звезда номер 5, зомби 2, приключения маленького пупса написаны без GoTo. Также смотрел исходники некоторых крактро от Razor1911, тоже нет никаких GoTo.

Знаешь, Sfunx, лемминиги не лемминги, но не все же программёры, некоторым нужно просто печатать, другим рисовать, а третьим играть и для таких людей и работает программист.

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

В Java есть причудливая форма try{} (пытаться) и для неё catch (exception x){}, что является условным переходом, выполняющимся при появлении исключительной ситуации.

А Линухи стали ставить по школам и универам из-за дорогой лицензии Окон, вот и всё.

И вобщем мы тут говорим не о программировании огромнейших длиннющих программ, а о текстовых квестах.

Спасибо за замечания, конечно, но пока я GoTo ни разу не использовал за всю свою жизнь.

Неактивен

0    0    #38
23.08.2007 10:33

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

Куда мы залезли с этим GoTo? Тут люди вообще целые топики создают:

КАК НА ПАСКАЛЕ ЗАДАТЬ МССИВ?
Сегодня 15:12:41 : Nex

)))))))

Неактивен

0    0    #39
23.08.2007 11:03

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            goto error; /* уйти на ошибку */
error: /* обработка ошибки */
    ликвидировать беспорядок

аналогично что и

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            [b]call sub_error();[/b] /* вызвыть событие обработки ошибки */
sub_error(){} /* обработка ошибки */
    ликвидировать беспорядок

время сейчас немного другое...

Неактивен

0    0    #40
23.08.2007 11:54

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

Вот решил спросить у друга-программиста (программист из онлайн-игры "империя звёзд").
простите за ненорматив, но из песни слова не выкинешь.

VoLk88 (17:20) :
ты на чём щас программируешь?

777 (17:36) :
вкрадце если, то на С++.

VoLk88 (17:37) :
скажи мне друг, сколько раз ты использовал goto?

777 (17:37) :
ниразу, а что?

VoLk88 (17:39) :
да тут утверждают, что блядь гото клёвый и частенько приходиться им пользоваться, чтобы не раздувать прогу до немыслимых размеров, но ведь это же всю структуру нарушает!

777 (17:41) :
но ведь switch() - это тот же goto... только стандартизованный.. а свитчей у меня тут пиздец сколько.... ))

VoLk88 (17:42) :
он больше на if похож...

777 (17:43) :
это if и goto вместе, я б сказал...
потому что каждый case - это метка.

777 (17:43) :
и это, сука, факт. )))

VoLk88 (17:45) :
в vb (хоть и говно) канает if... elseif...elseif...elseif...end if так он тоже как свич!

777 (17:46) :
это та же хуйня, что и просто  } else { if() {} } написать.. после компиляции то работает одинаково... просто синтаксис позволяет сократить запись..

VoLk88 (17:48) :
ну да, я это и имел ввиду
спасибо

777 (17:48) :
не за что.. рад был повыебываться по всякой хуйне вместе с Вами. бляяя...

Неактивен

0    0    #41
23.08.2007 12:49

Sfunx
Участник
Зарегистрирован: 22.08.2007
Сообщений: 11

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

На ассемблере вчистую не программировал, но как я вижу (как понял) там goto=then, т.е. слово по-другому пишется, а смысл тот же.
Специально смотрел исходники: звезда номер 5, зомби 2, приключения маленького пупса написаны без GoTo. Также смотрел исходники некоторых крактро от Razor1911, тоже нет никаких GoTo.

goto - это "переход". Если по-русски. А как он там записан - jp, goto, if then goto - смысла это не меняет.

VoLk88 написал:

Знаешь, Sfunx, лемминиги не лемминги, но не все же программёры, некоторым нужно просто печатать, другим рисовать, а третьим играть и для таких людей и работает программист.

Логично. Вот и работают программисты и под Windows и под Linux и под FreeBSD и под eCos и под ещё сотню операционных систем smile И им за это платят. Слово "лемминги" я употребил в том смысле, что часто выбор средств вообще от пользователя не зависит. "Начальство заставило", "сосед вася поставил"... Большинству вообще пофиг... Работает - и ладно. Только когда отдел К придёт - начинают думать...

VoLk88 написал:

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

Согласен. Стили программирования отличаются. Но не ПРИНЦИПЫ. Вот два примера:
C:
for(i=0;i<10;i++)
     {
       // Тело цикла.
     }

ассемблер:

     ldr R0,#00
1:  cmp R0,#00
     beq 2f

     /* Тело цикла */
     inc R0
     b 1b
2:

Оба абсолютно структурны, делают одно и то же. Несмотря на то, что второй, на ассемблере использует goto в инкарнации b smile Так что не в языке дело, а в прокладке между монитором и креслом smile Сможет прокладка программу написать удобоваримо и структурно- тогда она и на асме получится красивой... А не сможет... так никакой с-шарп не спасёт...


VoLk88 написал:

А Линухи стали ставить по школам и универам из-за дорогой лицензии Окон, вот и всё.

Неа. Лицензия на Windows - копейки стоит... Беда в том, что виндовс - пустой... То есть в его комплект не входит ни графических редакторов (паинт не в счёт) ни текстовых (блокнот тоже не в счёт)... Ничего. Вот это, то чего в виндовсе нет стоит очень и очень бешенные бабки. А зачем их платить, когда можно поставить бесплатное и не хуже ? Я 5 лет пользуюсь для редактирования документов OpenOffice, для рисования и редактирования фоток - Gimpом... Более чем достаточно. Ну а школьникам-студентам - и подавно.

VoLk88 написал:

И вобщем мы тут говорим не о программировании огромнейших длиннющих программ, а о текстовых квестах.

Так  с того и началось, что некий язык для программирования квестов не имеет циклов иначе как с goto smile

VoLk88 написал:

Спасибо за замечания, конечно, но пока я GoTo ни разу не использовал за всю свою жизнь.

Молодец. Стиль - это прекрасно. Я тоже стараюсь не пользоваться.

Я, кстати, тоже раньше жутким максималистом был. Потом переболел. Понял простую истину - плохи те правила программирования, которые для достижения цели нельзя скорректировать. smile

Неактивен

0    0    #42
23.08.2007 13:02

Sfunx
Участник
Зарегистрирован: 22.08.2007
Сообщений: 11

Re: Великий и могучий Гоуту Неубиваемый

Вот так уже не аналогично :

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            goto error; /* уйти на ошибку */
        if (disaster1) /* если бедствие */
            goto error; /* уйти на ошибку */
        if (disaster2) /* если бедствие */
            goto error; /* уйти на ошибку */
        if (disaster3) /* если бедствие */
            goto error; /* уйти на ошибку */
        if (disaster4) /* если бедствие */
            goto error; /* уйти на ошибку */
        ....
error: /* обработка ошибки */
    ликвидировать беспорядок

В С нет вложенных процедур, поэтому если в разделе "ликвидировать беспорядок" используются локальные переменные (а они дам почти всегда используются) остаётся только goto или куча флагов... goto обычно проще.

Правила использования goto:
1. Если можешь не использовать goto без кардинального ухудшения читаемости-объёма-скорости программы - НЕ ИСПОЛЬЗУЙ его.
2. Если всё ж никак без goto не обойтись - то переходи им ТОЛЬКО внутри одной процедуры.
3. Никогда не делай циклы через goto. Всегда есть while() for() и break;

Вот собственно и всё... Итог всей темы...

Отредактировано Sfunx (23.08.2007 13:36)

Неактивен

0    0    #43
23.08.2007 14:52

Blob
диван найт
Зарегистрирован: 21.08.2007
Сообщений: 5

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            goto error; /* уйти на ошибку */
error: /* обработка ошибки */
    ликвидировать беспорядок

аналогично что и

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            [b]call sub_error();[/b] /* вызвыть событие обработки ошибки */
sub_error(){} /* обработка ошибки */
    ликвидировать беспорядок

время сейчас немного другое...

Ну и как ты будешь удалять локальные объекты в call sub_error();? GC состряпаешь? А когда вернешся из call sub_error();, что делать будешь?

Неактивен

0    0    #44
23.08.2007 14:53

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            goto error; /* уйти на ошибку */
error: /* обработка ошибки */
    ликвидировать беспорядок

аналогично что и

Код:

for (...)
    for (...) {
        ...
        if (disaster) /* если бедствие */
            [b]call sub_error();[/b] /* вызвыть событие обработки ошибки */
sub_error(){} /* обработка ошибки */
    ликвидировать беспорядок

время сейчас немного другое...

Код:

try {
    for (...)
        for (...) {
            ...
            if (disaster) /* если бедствие */
                throw(); /* уйти на ошибку */
            ...
        }
}
catch(...) {
    /* обработка ошибки */
    ликвидировать беспорядок
}

время сейчас совсем другое! smile

Неактивен

0    0    #45
23.08.2007 15:00

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Великий и могучий Гоуту Неубиваемый

Sfunx написал:

Так что не в языке дело, а в прокладке между монитором и креслом smile Сможет прокладка программу написать удобоваримо и структурно- тогда она и на асме получится красивой... А не сможет... так никакой с-шарп не спасёт...

+1

Неактивен

0    0    #46
23.08.2007 15:21

VoLk88
Участник
Откуда: космодром Свободный
Зарегистрирован: 22.07.2007
Сообщений: 32
Вебсайт

***in trance we trust***

Re: Великий и могучий Гоуту Неубиваемый

никогда меня столько не цитировали)

Неактивен

0    0    #47
23.08.2007 16:05

Евг
Участник (+299, -40)
Зарегистрирован: 13.04.2007
Сообщений: 556
Вебсайт

Neyðin kennir naktri konu að spinna.

Re: Великий и могучий Гоуту Неубиваемый

Хыхы, оборжаться, ребята. Топик - сахар.

Volk, имхо, типичный продукт 21го века, путающийся в причинно-следственной связи. Ну научили так человека. А отрицание пресвятого джампа и поклонение перед свитч кейсом это было очень забавно smile По аналогии: "я не работаю с атомами, атомы - отстой, вот молекулы это да-а, я и них любое вещество сделаю". С одной стороны с этим не поспоришь, с другой сразу видно где проблема.

VoLk88 написал:

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

Без этого везде никак, ты сам пишешь сплошными гоуту, просто об этом не догадывается smile Просто заботливый компилятор потом за тебя вставляет наши любимые гоуту вместо всяких заумных конструкций.

VoLk88 написал:

Спасибо за замечания, конечно, но пока я GoTo ни разу не использовал за всю свою жизнь.

Когда внезапно понадибится использовать(для оптимизации кода, написании асемблерной вставки или ещё в какой ситуаци) снововка в использовании гоуту не помешает smile

"Поэтому, может показаться, что вариант C# строже и конкретней C++, но он дает гарантии разумного использования команд, так чтобы не было возможности нарушить логичность кода."
Честно говоря, боюсь, такую гарантию могут дать только правильно настроенные мозги.

А на урке гоуту не пишут, ими там дышат и живут smile На том и стоим.

ЗЫ: главное, теперь понятно какой теме надо было посвятить сайт smile А то, фи, игры какие-то.

Отредактировано Евг (23.08.2007 16:17)

Неактивен

0    0    #48
23.08.2007 16:17

zerrr
Участник (+21, -5)
Откуда: Красноярск
Зарегистрирован: 20.11.2005
Сообщений: 567

Re: Великий и могучий Гоуту Неубиваемый

Евг написал:

Volk, имхо, типичный продукт

Вряд ли это продукт, если только основательно переработанный .

VoLk88 написал:

Так обычно в технарях учат - делай так и вот так, а теория лишняя.

Ишь ты, спеси то сколько .... какие мы гуманитарии, млин. И откуда такие познания о учебном процессе "технарей", милый? Дал бы я тебе от имени всех технарей в твое интеллигентное рыло, сынок... да, Заратустра не позволяет.  Ты сам-то, прежде, чем игрулину свою написать, много if-теории прочитал, теоретик хренов?

Отредактировано zerrr (24.08.2007 04:01)

Неактивен

0    0    #49
23.08.2007 16:24

Евг
Участник (+299, -40)
Зарегистрирован: 13.04.2007
Сообщений: 556
Вебсайт

Neyðin kennir naktri konu að spinna.

Re: Великий и могучий Гоуту Неубиваемый

VoLk88 написал:

Может новый топик начать: "Великий и могучий Вайл Неубиваемый", так там найдутся те, кто скажет, что без него никак и всё тут и скрещивать самому цикл с условием можно, но геморно, хотя в машинном коде всё будет аналогично, просто дело удобства.

Хыы, ещё одно предложение месяца. Давай! smile

Неактивен

0    0    #50
23.08.2007 17:16

Olegus t.Gl.
Участник (+1073, -250)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2904
Вебсайт

Re: Великий и могучий Гоуту Неубиваемый

Народ, читать очень интересно, только держите себя в руках. Давайте без мата (и производных типа «мля») в прямой речи! Разве что как цитату диалога (можно даже воображаемого) по аське с «близким другом». Типа как VoLk88 привёл лог общения с приятелем…

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru