
![]() |
![]() ![]() |
![]() |
mamont001 |
![]()
Сообщение
#1
|
![]() Вожак стада ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Реальное имя: кирилл Репутация: ![]() ![]() ![]() |
всегда хотел узнать как кто относится
![]() -------------------- Админ наш,
Иже еси на серверах! Да святится имя Твое, Да приидет Unix Твой, Да будет воля Твоя, Как на земле , так и на небе. Пинг наш насущный дай нам на сей день; И прости нам счета наши, как и мы оставляем их должникам нашим; И не введи нас во искушение виндовое, Но избавь нас от лукавого Билли. И да пребудет с нами сила твоя великая, Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь! |
Bokul |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата не пользуюсь Сообщение отредактировано: Bokul - -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Не голосовал, ибо не нашел подходящего варианта: использую, но очень редко ...
|
Bokul |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Три этапа в развитии программиста:
Чайник - без Goto не куда; Понимающий - не использую; Профи - использую, но очень редко. ![]() -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Не голосовал, ибо не нашел подходящего варианта: использую, но очень редко ... Полностью согласен. Я бы даже сказал не использую Goto вообще, но иногда использую конструкции выхода exit (exit sub, return, braek и т.п.) в зависимости от языка, что в принципе является аналогом "goto end", т.к. перехода к конце программы\подпрограммы. p.s. Варианты ответа для детского сада aka "реальных" хакеров. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Michael_Rybak |
![]()
Сообщение
#6
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Цитата p.s. Варианты ответа для детского сада aka "реальных" хакеров. Чего, нормальные себе варианты имо ![]() |
мисс_граффити |
![]()
Сообщение
#7
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
было дело - использовала. в QBasic'е...
а потом как-то необходимости не возникало. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Как в программировании, так и в обычной жизни "посылаю на" очень редко..
![]() Уж и не припомню, когда... Но допускаю, что это может потребоваться либо для минимизации кода, либо для оптимизации программы. Было бы интересно привести пример кода, где это оправдано. Но я с ходу пример не приведу.. Может, volvo?.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
hiv |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Я бы даже сказал не использую Goto вообще, но иногда использую конструкции выхода exit (exit sub, return, braek и т.п.) в зависимости от языка. Абсолютно согласен ![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
SKVOZNJAK |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Было бы интересно привести пример кода, где это оправдано. Но я с ходу пример не приведу.. Может, volvo?.. Ушедшие от нас старожилы форума вспомни ли бы что таковая электронная живность в изобилии водится у Сквозняка ![]() Первый пример. Очистка событий нажатия клавиш и мышки. Ось реально многозадачная, так что события могут подаваться порциями, а размер буфера - вопрос конечно интересный. Обоснование применения гото: зачем красивый код портить, мне за это никто не заплатит ![]()
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 ![]() |
sonic |
![]()
Сообщение
#11
|
![]() Alone in the dark ![]() Группа: Пользователи Сообщений: 48 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не пользуюсь, т.к. если программа более менее обьемная, то её отладка превращается в кошмар
|
Altair |
![]()
Сообщение
#12
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Ушедшие от нас старожилы форума вспомни ли бы что таковая электронная живность в изобилии водится у Сквозняка smile.gif Я хотел написать, если бы Сквозной появлялся бы почаще... А то не поймешь - придет еще или нет.. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
SKVOZNJAK |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Долгое время почти не кодил, основы забывать стал. Плохо поддерживать разговор в таком режиме. А тут на линукс подсел и интерес к пасквилю разгорелся по новой. Вот только с поиском ответов на возникшие в процессе перехода вопросы на этом форуме было не очень. Всё-таки здесь народ больше на винде ездит. А я на ней в основном играю. Но ничего, с основными вопросами разобрался, теперь можно и пофлудить
![]() |
hardcase |
![]()
Сообщение
#14
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Пример с 'менюшкой' поразил.
Давненько я лапшеобразного кода не видел..... Странно, но красоты совершенно не заметил, наверно у меня просто другие эстетические принципы. (назначение кода тоже осталось в тумане) Использую GOTO только для устранения концевых рекурсий (и то - редко): переход на begin вместо рекурсивного вызова. Обычно если вижу, что хочется поставить в тексте GOTO, то налицо ошибка построения алгоритма и приходится заново его пересматривать. Хотя ещё Дейкстра предлагал использовать GOTO для выхода из нескольких вложенных циклов..... Но я предпочитаю выбрасывать исключения. Сообщение отредактировано: hardcase - -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Archon |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Когда впервые услышал, что использование goto, мягко говоря, "не приветствуется", очень удивился. Дескать, как же без него то, родимого... Оказалось можно.
![]() Кстати, когда в детстве программировал на QBasic'е, всегда мечтал, чтобы можно было метку задавать строкой. ![]() -------------------- Close the World...txeN eht nepO
|
xds |
![]()
Сообщение
#16
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кстати, когда в детстве программировал на QBasic'е, всегда мечтал, чтобы можно было метку задавать строкой. В QBasic можно и метки символические, и IFы блочные, и подпрограммы с функциями в виде отдельных блоков. Только поначалу я этого тоже не знал - писал по аналогии с SOS Basic (нумерация строк, GO TO, DEF FN), потом перешёл на блочный синтаксис (символические метки, IF ... END IF, SUB, FUNCTION).![]() Вот из поздних поделок (тогда я уже давно слез с QBasic и делал это кому-то на заказ): ![]() А вообще, на Quick Basic (синтаксис совпадает с QBasic, немного другая среда и есть возможность компиляции) был написан MicroCap 3.0, на моей XT (несмотря на её "турбовость" - 20 МГц!) он еле ворочался (при симуляции симметричного мультивибратора можно было спокойно идти мыться, а потом чаёвничать) ![]() -------------------- The idiots are winning.
|
Archon |
![]()
Сообщение
#17
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата В QBasic можно и метки символические... Не-а ![]() Код metka1$ = "label" + num$ GOTO metka1$ -------------------- Close the World...txeN eht nepO
|
SKVOZNJAK |
![]()
Сообщение
#18
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это просто анархия получается. Если такое скомпилировать, то код может получиться неэффективным.
|
Archon |
![]()
Сообщение
#19
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кстати, это было реализовано в одном из эзотерических языков.
-------------------- Close the World...txeN eht nepO
|
SKVOZNJAK |
![]()
Сообщение
#20
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я не против гото, очень даже за, но такой сильный инструмент нужно использовать упорядоченно. Выработать для себя правила применения и стараться их не нарушать.
|
![]() ![]() |
![]() |
Текстовая версия | 14.04.2025 14:44 |