|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
Оператор GOTO: за и против20.11.2011, 16:38. Показов 15369. Ответов 146
Метки нет (Все метки)
Люди, по ходу, газет не читают:
Оператор GOTO в языках высокого уровня является объектом критики, поскольку чрезмерное его применение приводит к созданию нечитаемого «спагетти-кода». Впервые эта точка зрения была отражена в статье Эдсгера Дейкстры «Доводы против оператора GOTO», который заметил, что качество программного кода обратно пропорционально количеству операторов GOTO в нём. Статья приобрела широкую известность как среди теоретиков, так и среди практиков программирования, в результате чего взгляды на использование оператора GOTO были существенно пересмотрены. В своей следующей работе Дейкстра обосновал тот факт, что для кода без GOTO намного легче проверить формальную корректность. Код с GOTO трудно форматировать, так как он может нарушать иерархичность выполнения (то есть парадигму структурного программирования), и потому отступы, призванные отображать структуру программы, не всегда могут быть выставлены правильно. GOTO также аннулирует многие возможности компилятора по оптимизации управляющих структур Доводы против оператора GOTO оказались столь серьёзны, что в структурном программировании его стали рассматривать как крайне нежелательный Начало тут
0
|
|
| 20.11.2011, 16:38 | |
|
Ответы с готовыми решениями:
146
Оператор GOTO и его метки Goto - за и против Оператор goto |
|
Кормпилятор
|
||
| 28.01.2017, 13:04 | ||
|
Конечно допускаю, что где-то(достаточно редко) вложенные циклы в количестве 100500 может быть и нужны, но подкорка головного мозга понимает, что за прогу, которая прошибает бошкой стену и вешает проц намертво, никто ничего не заплатит. В подавляющем большинстве недетерминированных задач использовать полный перебор - себе дороже.
0
|
||
| 28.01.2017, 13:42 | |
|
Quiet Snow
Мне кажется, что вы не до оцениваете применение кратных циклов в большом количестве для практики. Обычно и не требуется ТОТАЛЬНЫЙ ПЕРЕБОР. А требуется строго определенное выполнение самого внутреннего цикла (там может быть и условие). Иными словами такие программы работают достаточно быстро и в ряде случаев эффективно. Им помогает GOTO.
0
|
|
|
Кормпилятор
|
||
| 28.01.2017, 13:52 | ||
|
нужны ваши программы, какие программы и как их можно применить для чего-то полезного...
0
|
||
|
|
||
| 28.01.2017, 13:56 | ||
|
0
|
||
|
Кормпилятор
|
||
| 28.01.2017, 15:07 | ||
|
гигом памяти, да и даже старее компы не списывают. Но даже если и седьмой кор, это не повод поддерживать подход переборов и тотальный подход многопоточности. Нужно рассчитывать на то, что прогу могут запустить на самом убогом оборудовании. Про многоядерность говорил ещё с 2004 года - что оно тупиково, сейчас это отчётливо видно(12 ядер да сваяли, а частота какая? И как там будет работать одноядерная прога... знамо как, как кусок какахи...), а единственное где применяется эта самая многоядерность, так это развесить программы по ядрам, ну или в видеокодеках, то что можно дёшево распараллелить. В итоге люди предпочитают брать поменьше ядер и побольше частоту, да ещё и разгоняют свои бедные процессорики, сдавая их через два-три года в БУ, да гонимое железо нормально подолгу не работает. Во-первых современные компы недалеко ушли по сравнению с теми же пеньками прескотами в плане одноядерных задач и если бы не SIMD и толстые кеши, то разница была бы не сильно очевидная, во-вторых ресурсы всегда сильно ограничены, а пользователь всегда хочет комфорта, удобства и чтобы не было подвисаний и фризов, поэтому более интеллектуальные подходы как правило работают лучше. На самом деле многоядерность это штука довольно нестабильная, в плане своей концепции, Далеко не каждую архитектуру можно нормально заточить с учётом всех факторов. К тому же она значительно усложняет архитектуру софта. Приведу пример, сижу, допустим поигрываю на гитарке, повесил VSTHost на одно ядро дал ему приоритет, вдруг с бодуна касперыч или любой другой софт резко начинает конкурентно отбирать ЦП у VST хоста, тот начинает хрипеть, т.к. сбивается вся синхронизация (там дабл буфер флипующийся аппаратно с нотификацией) и что мне это должно доставить наслаждение, рестартать движок каждый раз когда, либо скайп что-то пукнет, либо анвирь полезет сканировать или обновляться(а его на ядра другие нельзя перевесить). Также с другим софтом, под XP и семёркой(в меньшей степени но тоже есть) чувствуется когда первое ядро забито под завязку, начинает останавливаться вся система. Загружаешь больше 40% на всех ядрах, реалтайма уже не видать(на далеко не слабом оборудовании при грамотном распределении софта по ядрам), проги начинают тупить, фризить, заикаться, потому что есть такой фактор как шина данных\команд и она не резиновая (напомню что в любой многопоточной системе всё это добро(не заточенное, т.е. код который называют небезопасным, а его валом) по итогу хардварно сводится в последовательный процесс, т.к. железо не может просто взять и забить на свои функции, если 4 потока захотят одновременно без специальных средств синхронизации получить доступ к одному участку памяти, шина данных окажется в затруднительном положении, но хардвар обязан будет такую ситуацию обработать исходя из распределения возможностей своих конвейеров, силу боттлнека на 12 ядерном компе даже боюсь представить, там шина конечно толстенная, но боюсь она этого не стерпит... Самый пожалуй дерьмовый фактор - когда программа не может знать сколько ресурсов есть в системе, т.к. на них постоянно влияют другие приложения. В таких условиях прога должна быть либо адски заточена потреблять с каждого ядра по чуть чуть и при этом насытиться, либо исповедовать старую проверенную временем идеологию - быть оптимизированной настолько насколько это возможно под одно ядро, но при определённых процессах занимать и другие ядра. Конечно этим всё не ограничивается, сейчас люди ковыряют и мелкозернистое распараллеливание, может это в будущем и будет той целевой нишей многоядерности вкупе со всякими OpenCL и CUDA, но сейчас многоядерность слишком неэффективна, а кодеры слишком плотно разожрались увидев гигабайты холёной оперативы.
0
|
||
|
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
|
|
| 28.01.2017, 19:32 | |
|
Как без гото переходить от одного блока к другому блоку?У меня там программа готовая весит в одной из 2 моих тем, откройте её и перепишите для меня пожалуйста без гото.Я ясно себе всё представляю и на такую простую тему разговаривать не хочу.
![]() ![]() Добавлено через 24 минуты Простейший способ создавать блоки использовать SLEEP 1000 чтобы сразу не пролетело без нажатия вами кнопки.
0
|
|
|
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
|
|
| 28.01.2017, 19:46 | |
|
Впереди идущие данные должны быть в программе уничтожены.
0
|
|
|
Кормпилятор
|
||||
| 29.01.2017, 01:43 | ||||
|
Какие блоки через SLEEP? Какие "Впереди идущие данные"?
Потому что точек входа может быть много, компилятору нужна однозначность. Поэтому для этой задачи лучше использовать логику на защёлках. Внутри процедур переходы допустимы, но в почти 100% случаев как раз внутри хорошо оформленных процедур они и не нужны. Исключение - это обработчики ошибок.
0
|
||||
| 29.01.2017, 13:47 | ||||||
|
Реальная программа с оператором GOTO
конечно я могу написать и без оператора GOTO, но кода будет несколько больше (данная программа вычисляет и распечатывает на экран простые числа от 5 до 97) Это тот случай где GOTO делает программу проще и яснее!!
0
|
||||||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|||||||
| 29.01.2017, 16:53 [ТС] | |||||||
0
|
|||||||
|
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
|
|
| 29.01.2017, 17:01 | |
|
В математике бывает плюс и минус не использовать гото это всё равно что из математики удалить минус.Процедуры,функции,подпрограммы увеличивают делая вставку в программу это как в математике знак плюс а гото выключение части программы это как знак минус.
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||
| 29.01.2017, 23:20 [ТС] | ||
|
0
|
||
| 30.01.2017, 09:45 | |
|
Мне кажется, что можно подвести некоторые итоги.
Итак, я представляю лагерь сторонников GOTO. ОБВИНЕНИЕ: GOTO усложняет понимание программы 1. ОДИН оператор GOTO не превратит программу в головоломку, так что Один GOTO для программы вполне приемлем. 2. Оператор GOTO целесообразно применять для выхода из сложных конструкций. 3. Оператор GOTO должен быть выше своей метки 4. Метка должна быть чётко видна и занимать целую строку примечание если соблюдать эти правила, то GOTO внесёт Смысл в Вашу бессмысленную жизнь!! (впрочем есть люди, у которых аллергия на GOTO и выше сказанное к ним не относится)
1
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||||
| 30.01.2017, 10:01 [ТС] | ||||
|
PS Лет 20 я программировал на Бейсике и написал за свою жизнь столько операторов GOTO, сколько Вам во сне присниться не может. Это трудности роста. Когда Вы изучите какой-нибудь нормальный язык, Вы забудете GOTO навсегда и будете (как и я) с улыбкой вспоминать свои доводы в его защиту.
0
|
||||
|
Модератор
|
||||||||||||
| 30.01.2017, 10:31 | ||||||||||||
2
|
||||||||||||
|
|
|
| 30.01.2017, 12:30 | |
|
1
|
|
| 30.01.2017, 12:30 | |
|
Помогаю со студенческими работами здесь
80
Оператор goto
оператор GoTo Безусловный оператор GoTo Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|