|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
Оператор GOTO: за и против20.11.2011, 16:38. Показов 15233. Ответов 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 | |
|
Помогаю со студенческими работами здесь
60
Оператор goto
оператор GoTo Безусловный оператор GoTo Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|