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

> Goto, отношение
GOTO
Всего голосов: 0
Гости не могут голосовать 
сообщение
Сообщение #1


Вожак стада
***

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

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


всегда хотел узнать как кто относится smile.gif


--------------------
Админ наш,
Иже еси на серверах!
Да святится имя Твое,
Да приидет Unix Твой,
Да будет воля Твоя,
Как на земле , так и на небе.
Пинг наш насущный дай нам на сей день;
И прости нам счета наши, как и мы оставляем их должникам нашим;
И не введи нас во искушение виндовое,
Но избавь нас от лукавого Билли.
И да пребудет с нами сила твоя великая,
Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

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

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


Цитата(Lapp @ 20.12.2006 5:38) *

Было бы интересно привести пример кода, где это оправдано. Но я с ходу пример не приведу..
Может, volvo?..

Ушедшие от нас старожилы форума вспомни ли бы что таковая электронная живность в изобилии водится у Сквозняка smile.gif
Первый пример. Очистка событий нажатия клавиш и мышки. Ось реально многозадачная, так что события могут подаваться порциями, а размер буфера - вопрос конечно интересный. Обоснование применения гото: зачем красивый код портить, мне за это никто не заплатит wink.gif


PROCEDURE BUF20(Z3: BYTE); {Ћ—?‘’ЉЂ Ѓ“”…ђЂ Љ‹Ђ‚›}
LABEL 1;
BEGIN
IF Z3<>0 THEN DELAY(Z3*100);
{FOR Z3:=1 TO 20 DO IF KEYPRESSED=TRUE THEN ReadKey;}
1:
SDL_PumpEvents;
if (SDL_PollEvent(event)>0) then begin
CASE event^.eventtype OF
SDL_KEYDOWN, SDL_MOUSEBUTTONDOWN : goto 1;
end;
end;
DELAY(25);
SDL_PumpEvents;
if (SDL_PollEvent(event)>0) then begin
CASE event^.eventtype OF
SDL_KEYDOWN, SDL_MOUSEBUTTONDOWN : goto 1;
end;
end;
END;

Ещё одна процедура из той же проги. Менюшка. Благодаря использованию гото всё уместилось в одну процедуру без дробления. Налицо инкапсуляция данных. Если так использовать goto с case то это уже не совсем уже тот безусловный переход о вреде которого предупреждам минздрав. Код процедуры используется многократно и с разными значениями. Если этот процесс автоматизировать, получим элемент ИИ. Программа сможет делать то, чему программист её не учил. Но результат такого действия не обязательно устроит человека.

PROCEDURE SINJKA; {Њ…Ќћ ‘?ЌњЉ?}
VAR AAA: ARRAY[1..7] OF STRING;
AA1: STRING;
Q3,W3,E3,R3,SINIJ,FLAG1,FLAG2: BYTE;
CONST IKS=18; IGREK=10;
LABEL 1,2,3,4,100;
BEGIN
SINIJ:=SINIUK;
AAA[1]:=' ';
AAA[2]:=' ЙННННННН ‘?ЌћЉ Ћ„?ЌЌЂ„–Ђ’ЋѓЋ ННННННН» ';
AAA[3]:=' є 255 є ';
AAA[4]:=' є 254 є ';
AAA[5]:=' є 253 є ';
AAA[6]:=' є 252 є ';
AAA[7]:=' ИНННННННННННННННННННННННННННННННННННј ';

E3:=1;
FOR W3:=IGREK TO IGREK+7 DO BEGIN
AA1:=AAA[E3];
R3:=1;
FOR Q3:=IKS TO IKS+ORD(AA1[0])-1 DO BEGIN
BUKVA(Q3,W3,ORD(AA1[R3]),11,1);
INC(R3);
END;
INC(E3);
IF E3=8 THEN E3:=1;
END;
{‚›•Ћ„ ‘?Њ‚Ћ‹Ђ ЌЂ ќЉђЂЌ - ЏЋ‡?–?џ ЏЋ
ѓЋђ?‡ЋЌ’Ђ‹?, ‚…ђ’?ЉЂ‹?, ЌЋЊ…ђ ‘?Њ‚Ћ‹Ђ, –‚…’ ˜ђ?”’Ђ, –‚…’ ”ЋЌЂ}
FLAG1:=1;
FLAG2:=0;

1:
W3:=2+IGREK+(255-SINIJ);
AA1:=AAA[3+(255-SINIJ)];
R3:=5;
FOR Q3:=IKS+4 TO IKS+ORD(AA1[0])-5 DO BEGIN
IF FLAG1=1 THEN
BUKVA(Q3,W3,ORD(AA1[R3]),10,0) ELSE
BUKVA(Q3,W3,ORD(AA1[R3]),11,1);
INC(R3);
END;
SDL_UpdateRect (screen,0,0,0,0);
CASE FLAG2 OF
3: BEGIN FLAG2:=0; GOTO 3; END;
4: BEGIN FLAG2:=0; GOTO 4; END;
END;

BUF20(1);
2:
SDL_PumpEvents;
if (SDL_PollEvent(event) > 0) then
begin
CASE event^.eventtype OF
SDL_MOUSEBUTTONDOWN : goto 100;
SDL_KEYDOWN: CASE EVENT^.KEY.keysym.SYM OF
SDLK_ESCAPE: GOTO 100;
SDLK_UP: BEGIN
FLAG1:=2;
FLAG2:=3;
GOTO 1;
3: FLAG1:=1;
IF SINIJ<>255 THEN INC(SINIJ);
GOTO 1;
END;
SDLK_DOWN: BEGIN
FLAG1:=2;
FLAG2:=4;
GOTO 1;
4: FLAG1:=1;
IF SINIJ<>252 THEN DEC(SINIJ);
GOTO 1;
END;
SDLK_KP_ENTER,SDLK_RETURN: BEGIN
SINIUK:=SINIJ;
CVET16[11]:=SDL_MapRGB(screen^.format,KRASNIUK,84,SINIUK);
GOTO 100;
END;
END;
END;
END;
GOTO 2;
100:
END;


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

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

1:
A:=2;
.............
goto 5;
2:
A:=3;
.............
goto 5;
3:
A:=4;
.............
goto 5;
4:
............


Нигилистам математически доказавшим ненужность этого оператора ответ простой GOTO 0 tease.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
mamont001   Goto   17.12.2006 2:03
Bokul   RE: Goto   17.12.2006 2:04
volvo   Не голосовал, ибо не нашел подходящего варианта: и…   17.12.2006 2:07
Bokul   Три этапа в развитии программиста: Чайник - без Go…   17.12.2006 2:13
Altair   Полностью согласен. Я бы даже сказал не использую…   17.12.2006 4:07
hiv   Я бы даже сказал не использую Goto вообще, но иног…   20.12.2006 15:05
Michael_Rybak   Чего, нормальные себе варианты имо :)   17.12.2006 5:36
мисс_граффити   было дело - использовала. в QBasic'е... а пото…   20.12.2006 5:51
Lapp   Как в программировании, так и в обычной жизни …   20.12.2006 12:38
SKVOZNJAK   Было бы интересно привести пример кода, где это о…   26.12.2006 17:47
sonic   Не пользуюсь, т.к. если программа более менее обье…   26.12.2006 18:09
Altair   Я хотел написать, если бы Сквозной появлялся бы п…   26.12.2006 20:15
SKVOZNJAK   Долгое время почти не кодил, основы забывать стал.…   28.12.2006 16:53
hardcase   Пример с 'менюшкой' поразил. Давненько я л…   21.01.2007 22:21
Archon   Когда впервые услышал, что использование goto, мяг…   22.01.2007 7:23
xds   Кстати, когда в детстве программировал на QBasic…   22.01.2007 9:37
Archon   Не-а :) В смысле чтоб так: metka1$ = "lab…   22.01.2007 16:00
SKVOZNJAK   Это просто анархия получается. Если такое скомпили…   24.01.2007 3:11
Archon   Кстати, это было реализовано в одном из эзотеричес…   24.01.2007 4:39
SKVOZNJAK   Я не против гото, очень даже за, но такой сильный …   24.01.2007 4:51
xds   Такие приёмы обычно реализуются в языках, изначаль…   24.01.2007 10:05
hardcase   Goto вполне применим. Только конструкции типа if, …   25.01.2007 0:26
SKVOZNJAK   if и for никто и не выбрасывает, это же основа стр…   5.02.2007 7:06
klem4   :crazy:   12.02.2007 0:04
TarasBer   Я всегда использую гото в процедуре считывания фай…   12.02.2007 1:51
SKVOZNJAK   А теперь реши эту задачку открывая файл как нетипи…   17.02.2007 1:33
TarasBer   А теперь реши эту задачку открывая файл как нетип…   17.02.2007 22:36
SKVOZNJAK   Смотря что считать помощью :) Просто по жизни поль…   19.02.2007 3:04
Game-lord   Пользуюсь, но очень редко =)   26.05.2007 17:32
andriano   Вопрс можно? Спасибо. А jmp @label за goto считает…   26.12.2007 3:08
Yevgeny   Сам почти не пользуюсь, но мой препод говорит, что…   20.01.2008 5:36
Айра   "Квалификация программиста обратна пропорцион…   21.01.2008 19:57
Michael_Rybak   То есть все программисты на питоне - одинаковой …   21.01.2008 20:26
Айра   вообще это относилось к паскалю.. :)   21.01.2008 20:40
Michael_Rybak   категорически несогласен в любом случае :)   21.01.2008 21:02
andriano   категорически несогласен в любом случае :) …   24.01.2008 3:24
Айра   Ну на то это и голосование, у каждого свое мнение)…   22.01.2008 9:40
Айра   А по-моему, Michael_Rybak, отнес это к моим словам…   24.01.2008 9:16
andriano   А по-моему, Michael_Rybak, отнес это к моим слова…   24.01.2008 13:16


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

 





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