IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Использование метки
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Такой вопрос: вщзможно ли использованием метки (label) заменить использование цикла? И если да то как это будет выглядеть?


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Цитата
Откуда, собственно, ясно, что желание употребить Exit обусловлено неумением выбрать адекватную управляющую конструкцию.

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

Оператор case очень нужен и для goto

case A of
1: goto 1;
2: goto 2;
3: goto 3;
end;


Но в операторе case переменная A может быть не любого типа. Если вдруг понадобился неподдерживаемый тип, жди 100 лет пока в новом компиляторе добавят возможностей или переделывай структуру или воткни goto.

Если много раз апгрейдить эту процедуру

procedure MyProc;
begin
case A of
B: DoSomething; //коменты, зачем и когда это нужно
C: begin //коменты, зачем и когда это нужно
тут некая последовательность нужных и полезных операторов
end;
end; //case
end;


Однажды может понадобиться goto - чтобы перед case лишние операторы не выполнялись. Но лучше обходиться минимумом goto, от лишних вреда больше чем пользы, проверено.


Под масштабированием в большую сторону я понимал втыкание в программу больших и не очень кусков кода без существенной отладки. Представь некое усройство из квазиживого пластика. Стиральная машина или пылесос (или гибрид). Понадобилось приделать к нему возможности утюга. Находится нужное место, делается надрез, в него молоточком (goto) загоняется кусок пластика отрезанный от утюга. Как только утюг имплантирован, швы заровнялись, устройсройство стало больше в размерах и теперь не только пылесосит ковры но и утюжит. Так выглядит идея в идеале.
В консольных утилитах не нужно заморачиваться над интерфейсом - тот же квазиживой пластик непонятной формы. В какой-то момент ощущается нехватка некоторых опций командной строки, их нужно добавить, но существенно переделывать программу (а для этого придётся подробно её изучать) как-то не хочется, лень наверное smile.gif Но может и просто не хватить знаний\времени на другие способы.

Под маштабированием в меньшую сторону понимал немного варварский метод. Берётся готовая работающая программа или библиотека и при помощи goto отсекается всё лишнее. Код никуда не исчезает, но он никогда не будет выполняться. Например, оконная система turbo vision на турбопаскале. В описании написано: изучай всё или ничего. Но можно изучить лишь часть, воткнуть в объект goto и использовать вместо неизученного или ненужного оригинального кода свой альтернативный. Причин для использования три: лень, эксперимент и необходимость.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Вячеслав Людской   Использование метки   4.10.2009 13:45
volvo   Смотря как и где используется метка... Вообще-то м…   4.10.2009 13:56
kosyak   Всегда можно обойтись без меток и Goto. Лучше их н…   4.10.2009 14:55
SKVOZNJAK   Практически любой цикл можно заменить метками, и в…   5.10.2009 4:43
andriano   Вообще-то GOTO с меткой может использоваться для о…   5.10.2009 14:03
Вячеслав Людской   Так что я понимаю, что goto'м лучше не увлекат…   5.10.2009 17:21
TarasBer   Буду стараться обходиться без goto. Но и в этом…   5.10.2009 18:53
andriano   Например выход из вложенного цикла намного проще и…   7.10.2009 10:46
Lapp   Другими словами, оператор перехода плох не сам по …   7.10.2009 11:34
TarasBer   Другими словами, оператор перехода плох не сам по…   7.10.2009 22:57
andriano   Давайте отменим Exit, Break, Continue? Мне без р…   8.10.2009 0:33
SKVOZNJAK   Мне без разницы, ни одним из них никогда не польз…   15.10.2009 3:46
andriano   Я вместо этого: procedure MyProc; begin If A=B th…   16.10.2009 0:52
SKVOZNJAK   Спорное утверждение. Проше, пожалуй, лишь в одном…   15.10.2009 4:10
Вячеслав Людской   Действительно, буду считать, что ты мне этого не г…   5.10.2009 21:06
volvo   Сквозняк, вот ты агитируешь за GoTo, а ты пробовал…   15.10.2009 4:42
SKVOZNJAK   Я не агитирую всех и всегда использовать GOTO а ли…   15.10.2009 6:21
SKVOZNJAK   А я давно его и не использую, goto гибче, а для а…   17.10.2009 5:55
andriano   Но лучше обходиться минимумом goto, от лишних вред…   18.10.2009 1:51
SKVOZNJAK   Нужен - он тот самый оператор из которого состоит…   19.10.2009 3:45


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 23:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name