|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
Оператор GOTO: за и против20.11.2011, 16:38. Показов 16297. Ответов 146
Метки нет (Все метки)
Люди, по ходу, газет не читают:
Оператор GOTO в языках высокого уровня является объектом критики, поскольку чрезмерное его применение приводит к созданию нечитаемого «спагетти-кода». Впервые эта точка зрения была отражена в статье Эдсгера Дейкстры «Доводы против оператора GOTO», который заметил, что качество программного кода обратно пропорционально количеству операторов GOTO в нём. Статья приобрела широкую известность как среди теоретиков, так и среди практиков программирования, в результате чего взгляды на использование оператора GOTO были существенно пересмотрены. В своей следующей работе Дейкстра обосновал тот факт, что для кода без GOTO намного легче проверить формальную корректность. Код с GOTO трудно форматировать, так как он может нарушать иерархичность выполнения (то есть парадигму структурного программирования), и потому отступы, призванные отображать структуру программы, не всегда могут быть выставлены правильно. GOTO также аннулирует многие возможности компилятора по оптимизации управляющих структур Доводы против оператора GOTO оказались столь серьёзны, что в структурном программировании его стали рассматривать как крайне нежелательный Начало тут
0
|
|
| 20.11.2011, 16:38 | |
|
Ответы с готовыми решениями:
146
Оператор GOTO и его метки Goto - за и против Оператор goto |
|
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
|
|
| 25.01.2017, 16:00 | |
|
Прерывание 9 индекс вне режима.Сообщение возникает при работе с массивами,когда индекс какого либо элемента массива превышает его объявленный в операторе DIM размер,а также в том случае,когда массив занимает в памяти объём более 64 Кбайт.Режим экрана SCREEN 13 320x200 имеет 256 цветов.
0
|
|
| 25.01.2017, 20:25 | |
|
0
|
|
|
Кормпилятор
|
||||
| 26.01.2017, 01:16 | ||||
|
Однако для 3D и работы с сетью ничего проще не видел, вообще в плане IDE там всё концептуально очень красиво сделано, т.е. тот случай когда пофиг на отсутствие русской справки мол и так всё понятно. Добавлено через 1 минуту Добавлено через 29 минут 13h программировали все кому не лень, потому что оно максимально просто. Это была целая эпоха в развитии демосцены и геймдева. Чтобы выводить полноцветную графику(и не морщиться) нужно минимум 1024x768 и 16бит. Но 16 бит(565) не удобно программировать из-за того, что кол-во бит на канал разное, в VESA конечно есть 555, но писать 2 байта и при этом терять 1 бит цветности - не айс. Поэтому возьмём минимум 24бита. Под DOS-ом обработку всего этого добра делали во FLAT режиме при помощи экстендеров, которые переводили проц в 32 битный режим и осуществляли обработку исключений. А нормально с этим работали только C-- и BorlandPascal. У PDS насколько помню по референсу была методология ISAM, "наслаждение" то ещё, кто работал с EMS тот знает. Поэтому STAR WARS лучше изучайте дельше Blitz, для начала оно полезнее чем бестолковая возьня с DOS.
1
|
||||
| 27.01.2017, 10:51 | |||||||||||
|
Я предлагаю вам, для сравнения, две абсолютно
одинаковые программы. Она без GOTO. Другая с GOTO. Какая лучше? - Пусть решит каждый сам (суть решаемой задачи я думаю ясна, внутренний цикл делает 500 оборотов и выход из всех циклов - там вывод результата) без GOTO.
0
|
|||||||||||
|
Заблокирован
|
|||||||
| 27.01.2017, 13:54 | |||||||
0
|
|||||||
| 27.01.2017, 15:23 | |
|
Shersh
Вы меня разочаровали. Ведь вы отлично знаете, что я хотел сказать. Ведь после циклов я мог добавить независимый код, который внутри уже не исполнишь. ... есть люди, которые очень хотят возразить... вы доказали, что вы один из них... как жаль...
0
|
|
|
|
||||||
| 27.01.2017, 16:42 | ||||||
|
В современных бейсиках можно обойтись без Goto
0
|
||||||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||||||||||||||||
| 27.01.2017, 16:57 [ТС] | ||||||||||||||||
|
echs, даже если дальше будет код, всегда можно обойтись без GOTO хотя бы командами
locm, команда
0
|
||||||||||||||||
|
Заблокирован
|
|
| 27.01.2017, 17:29 | |
|
echs, Вы представить себе не можете моих переживаний по поводу Ваших разочарований.
В оправдание могу лишь сказать - я не противник, но и не фанат GOTO (в отличие от Вас). Однако использование GOTO при написании кода с нуля подчеркивает лишь то, что у программиста большие проблемы с логикой или не было изначально внятного ТЗ. В Вашем конкретном случае все циклы можно было вынести в отдельную процедуру (функцию), использовать Exit Sub в нужный момент - и никаких претензий от фанатов структурного кода (к стыду оппонента) не возникло бы.
1
|
|
|
|
||||||||||||
| 27.01.2017, 17:57 | ||||||||||||
2
|
||||||||||||
| 27.01.2017, 18:08 | |
|
locm
Вы правы. Вы тысячу раз правы. Во многих языках стараются "выдавить из употребления" оператор GOTO. Вот и вводят операторы типа break, continue, exit.... и другие. А ведь эти все операторы изменяют линейную структуру программы. К ним можно отнести и оператор цикла и условный оператор и оператор выбора. Да всё. только бы не GOTO.
0
|
|
|
|
|
| 27.01.2017, 19:41 | |
|
Вводят новые операторы вместо Goto не просто так. К примеру break прерывает цикл, а EXIT SUB подпрограмму и это сразу понятно. В случае Goto это не очевидно и нужно смотреть где находится метка на которую указывает Goto.
Т. е. без Goto код более удобочитаемый и на его изучение нужно меньше времени.
0
|
|
|
Кормпилятор
|
|||
| 27.01.2017, 21:45 | |||
|
Break выкидывающий из n вложенных циклов - это отличнейшая конструкция, которая позволяет
обходиться почти полностью без гот, но в старых бейсиках и паскалях её нет, а флаги в силу неповоротливости этих диалектов, как-бы, понятно что отпадают. Добавлено через 11 минут первый признак некомпетентности программиста. Есть методологии, которые существенно эффективнее позволяют найти решение. матрёшки не хватит, а количество нажиманий F2 превысит все мыслимые и немыслимые физиологические пределы.
0
|
|||
|
|
||
| 28.01.2017, 07:43 | ||
|
Есть набор символов цифры от 0 до 9 и английские буквы от a до z. Составить программу, которая выведет все возможные комбинации этих символов в фиксированных строках длинной по 6 символов.
1
|
||
| 28.01.2017, 08:55 | ||
|
но если строки не фиксированной длины, а, например, нужно перебрать пароли от 1го до 6ти символов, то легче реализовать преобразование десятичного числа в 36-ричную систему. В зависимости от постановки задачи нужно применять тот или иной алгоритм, и если задача не требует полного перебора, то лучше его избегать или хотя бы отсекать не перспективные ветви решения методом ветвей и границ. по вопросу темы про goto: В своих кодах, как правило, не использую goto, только для обработок ошибок и в редких случаях когда применение goto оправдано.
0
|
||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||
| 28.01.2017, 10:39 [ТС] | ||
|
Генератор всех возможных комбинаций символов из заданных Есть прерывание цикла, но всё очень красиво смотрится
0
|
||
|
|
|||
| 28.01.2017, 11:37 | |||
![]() Перепишите на Basic, может увижу красоту. P.S. Красиво и понятно было во втором сообщении. В 5-м всё запутано, непонятно и макаронно, но возможно я просто не понимаю Паскаль.
1
|
|||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||||||
| 28.01.2017, 11:51 [ТС] | ||||||
|
Pro_grammer, беда GOTO не в том, что оно GOTO, а в том, куда оно GOTO. Циклы прерываются всегда и везде, и как справедливо замечено кем-то, в ассемблере тоже есть JMP. Но хают только Бейсик и это справедливо, потому, что "бейсикоиды" пользуются этим GOTO как дубинкой, круша логичное построение программы. Навскидку вот вам пример такой "талантливой" программы (echs будет с пеной у рта доказывать, что это отличная программа)
0
|
||||||
|
|
|||
| 28.01.2017, 12:41 | |||
|
Действительно ли это оправдано, написать макаронный код исключительно в угоду уменьшения кол-ва циклов?
0
|
|||
| 28.01.2017, 12:41 | |
|
Оператор goto
оператор GoTo Безусловный оператор GoTo Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|