powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / GOTO вечен...
25 сообщений из 51, страница 1 из 3
GOTO вечен...
    #36942539
Satans Claws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помниццо, в бытность обучения на первом али втором курсе, препод, читавший нам Паскаль (на самом деле, он читал нам процедурное программирование и общую теорию алгоритмитизации - просто все это далалось на примере Паскакаля, с параллельным изучением синтаксиса и семантики оного) ставил одну интересную задачу.

Суть задачи была в том, что с использованием GOTO она решалась буквально в 5 строк.
Без использования GOTO - на циклах и условных переходах (IF ... THEN ... ELSE) она решалась строк в 20, при этом становилась заметно хуже читаемой и тыпы.

И я вот нифига не могу вспомнить эту задачу. А задача явно "классическая".
Может, кто напомнит, а?

PS ВМК КГУ, Самитов Ренат Касимович.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942604
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
bool bExit=false;
for(int a= 0 ; a< 100 ; a++)
{
for(int b= 0 ; b< 100 ; b++)
{
for(int c= 0 ; c< 100 ; c++)
{
   if(arra[a,b,c]==MyValue)
   {
      bExit = true;
      break;
   }
}

if(bExit)
  break;

}

if(bExit)
  break;
}


c goto

Код: plaintext
1.
2.
3.
4.
5.
for(int a= 0 ; a< 100 ; a++)
for(int b= 0 ; b< 100 ; b++)
for(int c= 0 ; c< 100 ; c++)
   if(arra[a,b,c]==MyValue) goto exit;

exit:
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942664
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
bool cont=true
for(int a= 0 ; a< 100  && cont; a++)
for(int b= 0 ; b< 100  && cont; b++)
for(int c= 0 ; c< 100  && cont; c++)
   if(arra[a,b,c]==MyValue) cont=false;
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942672
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод
Код: plaintext
1.
2.
3.
4.
5.
bool cont=true
for(int a= 0 ; a< 100  && cont; a++)
for(int b= 0 ; b< 100  && cont; b++)
for(int c= 0 ; c< 100  && cont; c++)
   if(arra[a,b,c]==MyValue) cont=false;


я пишу проще, оформляю в отдельную ф-цию и

for(int a=0; a<100; a++)
for(int b=0; b<100; b++)
for(int c=0; c<100; c++)
if(arra[a,b,c]==MyValue) return true;
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942732
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
std::find(arra, arra +  100  *  100  *  100 , MyValue);
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942744
rstudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в RS
array#I#J#K=MyValue
...
Рейтинг: 0 / 0
GOTO вечен...
    #36942782
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rstudioв RS
array#I#J#K=MyValue
Да, ты поднаторел в элементарщине. А-ну ко выдай нам алгоритм Дейкстры на своём языке.


Модератор: Господа, для этого есть отдельный топик!
...
Рейтинг: 0 / 0
GOTO вечен...
    #36943864
Satans Claws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод
Код: plaintext
1.
2.
3.
4.
5.
bool cont=true
for(int a= 0 ; a< 100  && cont; a++)
for(int b= 0 ; b< 100  && cont; b++)
for(int c= 0 ; c< 100  && cont; c++)
   if(arra[a,b,c]==MyValue) cont=false;


В терминах С замечательно, а вот в терминах Паскаля уже хуже.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36943966
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Satans ClawsВ терминах С замечательно, а вот в терминах Паскаля уже хуже.
На реальных задачках разница нивелируется. Но rstudio прав - вычисления надо оформлять функциями. Потребности в goto просто нет.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36943973
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
_модПотребности в goto просто нет. в языках высокого уровня.


но, согласись, с goto - красиво! :)
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944066
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модПотребности в goto просто нет.
Наверное существует класс задач/оборудования где экономят даже на callback-ах функций и на глубине стека. Поэтому такое заявление надо дополнить прочими условиями. Иначе - бла-бла-бла...
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944096
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гото - форева!
Писал как-то начальнику кандидатскую диссертацию по структурному программированию . Ясен пень, никаких гото! Правда, это было писано для дураков и для защиты. Сам-то я с удовольствием эту штуку использую.
Кстати, и это существенно! В блоках бегин-энд (Паскаль имею ввиду) не должно быть вложений, больше четырёх. Четыре предмета, например, спички, все люди видят не считая, а уже пять - в голове раскладывают: 1+4 или 2+3. Не замечали?
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944106
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько лет назад был холиварчик по goto. Кто-то запостил исходник игры Пентамино. Я не анализировал, но как мне кажется использование goto в этом исходнике было рациональным.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944111
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

по моему, это из курса психологии. И речь шла не о 3-4 а о семи предметах, которые чел. может осязать, обдумывать одновременно.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944121
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eNoseно, согласись, с goto - красиво! :)
Функция лучше. Да и на реальной задаче вся красота пропадет.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36944132
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНаверное существует класс задач/оборудования где экономят даже на callback-ах функций и на глубине стека.
Тогда ASM - в нем без переходов никак. Собсно goto - это аналог перехода (атавизм :))
...
Рейтинг: 0 / 0
GOTO вечен...
    #36945005
jmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модТогда ASM - в нем без переходов никак. Собсно goto - это аналог перехода (атавизм :))
Хорошо хоть смайлик поставили. А ведь некоторые даже с ним не поймут, что это шутка...
...
Рейтинг: 0 / 0
GOTO вечен...
    #36945040
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jmp_модТогда ASM - в нем без переходов никак. Собсно goto - это аналог перехода (атавизм :))
Хорошо хоть смайлик поставили. А ведь некоторые даже с ним не поймут, что это шутка...
Ну я не понял. А в чём фишка-то?
...
Рейтинг: 0 / 0
GOTO вечен...
    #36945972
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Satans Claws,

RAII
...
Рейтинг: 0 / 0
GOTO вечен...
    #36946056
belugin4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... а в питоне можно вложить wbrks функцией

Типа
Код: plaintext
1.
2.
3.
for (x,y,z) in product(range( 100 ), repeat= 3 ):
    if array[x,y,x]==value:
        break
...
Рейтинг: 0 / 0
GOTO вечен...
    #36946401
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeГото - форева!
Писал как-то начальнику кандидатскую диссертацию по структурному программированию . Ясен пень, никаких гото! Правда, это было писано для дураков и для защиты. Сам-то я с удовольствием эту штуку использую.
Кстати, и это существенно! В блоках бегин-энд (Паскаль имею ввиду) не должно быть вложений, больше четырёх. Четыре предмета, например, спички, все люди видят не считая, а уже пять - в голове раскладывают: 1+4 или 2+3. Не замечали?
О чём речь, о том чтобы посчитать точное количество?
...
Рейтинг: 0 / 0
GOTO вечен...
    #36946880
Satans Claws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonпо моему, это из курса психологии. И речь шла не о 3-4 а о семи предметах, которые чел. может осязать, обдумывать одновременно.

Я от кого-то из преподов с нашей кафедры слышал другое - что обычный человек может оперировать не более чем с тремя общностями (для любого эпсилон существует N, такое, что для любого n >= N бла-бла-бла). Добавление четвертой общности вызывает у обычного человека ступор и требует тщательной концентрации для осмысления.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36946956
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача Эйнштейна - из этой-же области. К стыду должен признаться что я её не решил в уме. Слишком велика сила привычки. Чертаю всё на бумаге.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36947044
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗадача Эйнштейна - из этой-же области. К стыду должен признаться что я её не решил в уме. Слишком велика сила привычки. Чертаю всё на бумаге.
Хрень на самом деле, я не вижу смысла решать такую хрень в уме. На прологе можно резво накатать. Иначе зачем компьютеры придумали? Нужно только уметь их применять.
...
Рейтинг: 0 / 0
GOTO вечен...
    #36947297
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoХрень на самом деле, я не вижу смысла решать такую хрень в уме. На прологе можно резво накатать. Иначе зачем компьютеры придумали? Нужно только уметь их применять.
Это задача не для программирования а для оценки IQ или что-то в этом роде. По легенде старый немец задавал эту задачку своим будущим ученикам чтобы проверить проф-пригодность. Как видите, ваш покорный слуга не годится в помошники к Альберту. Ну и хер с ним, с этим чОртовый плагиатором. И не сильно хотелось...
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / GOTO вечен...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]