goto - с любимыми не расставайтесь, или break не тащит

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение runewalsh » 05.11.2020 18:31:14

Seenkao писал(а):По идее это вообще ни кому нафиг не надо. Большинство уложатся в разумные пределы массива.

Вот-вот, и ты сам привёл такие (несуществующие) массивы с размерами, не поддерживаемыми индексом for'а, как довод в пользу goto.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение iskander » 05.11.2020 18:41:43

Seenkao писал(а):думаю дальше продолжать не надо

Да как скажешь, общение с тобой - занятие так себе, пожалуй, в будущем можно от этого воздержаться.
Seenkao писал(а):Одно то, что её запускаешь и она без ошибок запускается, показывает, что наобум ты программу написать не можешь.

Ну, сознаюсь, грешен, наобум не могу. А ты, засчитыватель, и правда сумел её запустить?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 05.11.2020 19:21:13

runewalsh писал(а):Ты так говоришь «только», будто 99,99999% кода в мире — твои (и используют goto вместо while), а не наоборот.

Когда я пишу, примерно так и есть.
runewalsh писал(а):Не-не-не, речь шла про *сортировку массива* (более того, *пузырьком*) Перечитай сам себя:

Сквозняк писал(а):
Прицепились к этому пузырьку, который представляет собой квадратичную функцию с обработкой исключений через goto. А если сортировать массивы с длиной int64, то для компиляции в 32 бита циклы for придётся заменять на циклы goto.


Cортировку массива во внешнем хранилище ты будешь делать другими алгоритмами, чем сортировку массивов в памяти со случайным доступом.

Цикл for прекрасно натягивается и на внешний массив, нужно только чтобы внутри у него адреса преобразовывались. Вам нужен был пузырёк? Вот он и есть. А если будет не пузырёк, то почему там не должно быть цикла for? Опять же, сортировка пузырьком может быть не всего терабайтного массива, а его частей, где цикл for рулит и педалит. Моя твоя не понимай.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 05.11.2020 22:04:08

runewalsh писал(а):и ты сам привёл такие (несуществующие) массивы с размерами,
это был не я )))
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение runewalsh » 05.11.2020 22:27:45

Да, я уже заметил. Ну путаю вас, сорь. Мне в любом случае надоело.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение скалогрыз » 06.11.2020 05:29:21

runewalsh писал(а):Да, я уже заметил. Ну путаю вас, сорь. Мне в любом случае надоело.

а что за волшебница на аватаре, с ноткой?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение runewalsh » 06.11.2020 12:19:05

скалогрыз
Это моя предпочитаемая внешность персонажа игрока из Elona+, он в начале игры собирается из составляющих (пол, причёска, одежда, аксессуары, цвет кожи и остального). Нота означает радость либо опьянение.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение скалогрыз » 06.11.2020 18:21:25

runewalsh писал(а): из Elona+

понятно, а я всё безуспешно пытался угадать :)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Mikhail » 15.11.2020 10:22:33

Читать такое на форуме по Паскалю, по крайней мере, очень странно. :shock:
Mikhail
энтузиаст
 
Сообщения: 562
Зарегистрирован: 24.10.2013 16:06:47

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 16.11.2020 08:27:03

А кто-нибудь вот это http://www.freepascal.ru/forum/viewtopic.php?f=2&t=43124&start=135#p160727 вообще читал?
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 20.11.2020 10:04:43

Сквозняк писал(а):можете добавлять в вики.

Лучше сразу на govnocod.ru, вангую оглушительный успех.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 22.11.2020 16:47:40

мимо_проходил писал(а):
Сквозняк писал(а):можете добавлять в вики.

Лучше сразу на govnocod.ru, вангую оглушительный успех.

И что характерно, код считающийся расово правильным, с классами вместо гото, является исключительно токсичным, нечитаемым и с глюками, которые проще обойти костылями чем исправить. Например, в лазарусе, в дочерней форме, в событии "формкреате" ставишь размеры этой формы и при при её запуске - хрясь, ошибка. Зато если эти же параметры поменять из родительской формы, то ничего не падает. Вот где говнокод - в классах, а то, что написано с гото, работает одинаково хорошо при любой погоде и стек не рушит. Потому критически важные вещи лучше писать через гото.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение мимо_проходил » 22.11.2020 17:59:32

Сквозняк писал(а):Вот где говнокод - в классах

Не перекладывай с больной головы на здоровую. Речь не о классах, а о твоей "пузырьковой"(лучше сказать пупырьковой) сортировке, эпизод номер раз:
Код: Выделить всё
PROCEDURE BUBLESORT1(VAR BB3: ARRAY OF BYTE);//СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ
VAR
Q3: BYTE;
A2,S2,D2: LONGINT;
LABEL
100;
BEGIN
S2:=LENGTH(BB3);
IF S2<2 THEN GOTO 100;
IF S2=2 THEN BEGIN
   IF BB3[1]<BB3[0] THEN BEGIN
      Q3:=BB3[1];
      BB3[1]:=BB3[0];
      BB3[0]:=Q3;
                         END;
   GOTO 100;
             END;
S2:=S2-2;
FOR D2:=0 TO S2 DO
  FOR A2:=0 TO S2 DO IF BB3[A2]>BB3[A2+1] THEN BEGIN
      Q3:=BB3[A2+1];
      BB3[A2+1]:=BB3[A2];
      BB3[A2]:=Q3;
                                               END;
100:
END;

Всё, что выше первого for - просто мусор, выкинем его:
Код: Выделить всё
PROCEDURE BUBLESORT1(VAR BB3: ARRAY OF BYTE);//СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ
VAR
Q3: BYTE;
A2,D2: LONGINT;
BEGIN
FOR D2:=0 TO LENGTH(BB3)-2 DO
  FOR A2:=0 TO LENGTH(BB3)-2 DO IF BB3[A2]>BB3[A2+1] THEN BEGIN
      Q3:=BB3[A2+1];
      BB3[A2+1]:=BB3[A2];
      BB3[A2]:=Q3;
                                               END;
END;

Что касаемо вложенных for - пузырёк - сортировка, конечно, непрактичная, но на отсортированных данных она отработает за O(N).
Твой пупырёк на любых данных работает за O(N^2).
Словом, однозначно имеет смысл попытать с ним счастья на вышеуказанном ресурсе.
мимо_проходил
незнакомец
 
Сообщения: 9
Зарегистрирован: 09.11.2020 11:11:09

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 22.11.2020 18:29:18

Сквозняк
При чем тут классы? это особенность реализации. "формкреате" вызывается когда форма еще недоконца создана, нефиг там ее размеры ковырять. на других виджсетах ошибки скорее всего небудет
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Сквозняк » 22.11.2020 21:18:30

мимо_проходил писал(а):Что касаемо вложенных for - пузырёк - сортировка, конечно, непрактичная, но на отсортированных данных она отработает за O(N).
Твой пупырёк на любых данных работает за O(N^2).


Вот что интересно у математиков, так это их способность нести чушь с серьёзным выражением лица и искренне в неё веровать. Как свою математическую теорию измерять то собрался? Её доказательство находится в пределах погрешности измерений. У математиков обычно с логикой проблема, об этом ещё Блёз Паскаль писал. Человек дружащий с логикой поостерёгся бы фразы " на любых данных". Внезапно, бывают задачи, на которых нужно сортировать массивы, длина которых редко доходит до полусотни, даже до четверти редко доходит. Соответственно, квадратичный цикл выполняется быстро. Но не только его время нужно считать, но и затраты системы на разворачивание в рабочее состояние сортировальной машины - выделение ресурсов, возврат ресурсов в систему. Одни загрузки выжрут сколько-то времени и машинных мощностей. И вместе с накладными расходами алгоритм с лишним кодом может быть медленнее, особенно, если выполняется на менее крутом железе и других системных библиотеках. А если будет задача с большими данными, тогда под неё алгоритм оптимизируется, добавятся ускорители, которые на коротких массивах неэффективны, или другая сортировка применится. А тот алгоритм что я написал - базовый и не содержит ни указателей, ни классов, ни вызовов сторонних функций, которые и произведут всю сортировку.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru