1. Pascal / Говнокод #19982

    −43

    1. 1
    2. 2
    3. 3
    kol:=0; 
    for i:=1 to length(s) do 
    kol:=kol+1;

    https://otvet.mail.ru/question/41008748

    Запостил: stasyan1902, 11 Мая 2016

    Комментарии (40) RSS

    • это у кого то сильный запор мозгов случился.
      Ответить
    • Ждём функции сложения и умножения.
      Ответить
      • Было тут и покруче.
        gcc чсх характерно в mul и add соответственно отдуплил.
        Ответить
    • var s:string;
      kol:integer;
      begin
      writeln('vvedite stroky');
      readln(s);
      writeln('vvedite dlinu');
      readln(kol);
      writeln('stroka:');
      writeln(s);
      writeln('dlina:');
      writeln(kol);
      readln;
      end.
      (* Вопрос решён 5 лет назад *)
      Ответить
      • Смех смехом, а на кафедре экологии нашего вуза какие-то чуваки написали программу для расчёта облучения ультрафиолетом, в которую все табличные данные нужно было при каждом расчёте вводить вручную из методички. Даже собирались получить авторское свидетельство на своё произведение искусства.
        Ответить
        • Кто-то из программистов им сказал, что нельзя просто так хардкодить какие-то магические числа.
          А вдруг пи изменится?
          Ответить
          • его можно вычислять же.
            Ответить
            • А пирфоманс? Тормозит!
              Зачем вычислять пи, если оно уже есть в справочнике?
              Ответить
              • А если справочник устареет? Или там военное время.
                Ответить
                • А формула для вычисления (из того же справочника?) скорее всего тоже устареет.
                  В военное время самое точное значение пи придёт с указом в телефонограмме и будет прикреплено к каждому терминалу.
                  Ответить
                  • Явно вы не работали с военщиной. Для получения числа пи давно разработан, сертифицирован и введен в эксплуатацию аппаратный модуль Р41-ПР3. Работает по RS-232 и LPT, также оборудован уникальным интерфейсом, который совместим с дисководами 3.5''. Пользователь просто втыкает его в свой дисковод и читает значение пи из файла A:\ПИ.ТКС. Точность - около 8 знаков после запятой, экспортный вариант - около 4 знаков; зависит от географической широты модуля.
                    Ответить
                    • >Явно вы не работали с военщиной.
                      Как что-то плохое
                      Ответить
                      • Пиздец

                        Ты настолько ьупой, что даже шутки не понял
                        Ответить
                        • Это была значит очень тонкая шутка, почти неотличимая от рашкадействительности.
                          Ответить
                          • Нет просто ты тупая укрота.
                            Ответить
                            • Ну от укродействительности она еще менее отличима, т.к. украинская армия только с начала вашей братской помощи как-то стала преобразовываться после распада совка.
                              Ответить
                    • явно вы ни работает ворецщинай его ф свой дисуоводами 8 0 34 7 .

                      для получения числв пт давно разработан, сертифицираван и введен в экспортный модуль р8 7 6 5 -пр2 86 3
                      работан, сертифицирован и введен в экспортный фариант - около 0 5 88 0 знаков после запятой, экспортныф модуль р0 425 9 3 69 6 -пр 6 44 10 7 .
                      Ответить
                • А куда пропал Vasiliy?
                  Ответить
    • https://otvet.mail.ru/question - пожалуй лучший ресурс для программистов
      Ответить
    • Меьсе не знает только в изощрениях...
      http://govnokod.ru/13443
      Ответить
    • > kol:=0;
      > for i:=1 to length(s) do
      >kol:=kol+1;

      Школьный примитив уровня Вио мейлру.

      -- explicit type recursion with functors and catamorphisms
      
      newtype Mu f = In (f (Mu f))
      
      unIn (In x) = x
      
      cata phi = phi . fmap (cata phi) . unIn
      
      
      -- base functor and data type for natural numbers,
      -- using locally-defined "eliminators"
      
      data N c = Z | S c
      
      instance Functor N where
        fmap g  Z    = Z
        fmap g (S x) = S (g x)
      
      type Nat = Mu N
      
      zero   = In  Z
      suck n = In (S n)
      
      add m = cata phi where
        phi  Z    = m
        phi (S f) = suck f
      
      mult m = cata phi where
        phi  Z    = zero
        phi (S f) = add m f
      
      
      -- explicit products and their functorial action
      
      data Prod e c = Pair c e
      
      outl (Pair x y) = x
      outr (Pair x y) = y
      
      fork f g x = Pair (f x) (g x)
      
      instance Functor (Prod e) where
        fmap g = fork (g . outl) outr
      
      
      -- comonads, the categorical "opposite" of monads
      
      class Functor n => Comonad n where
        extr :: n a -> a
        dupl :: n a -> n (n a)
      
      instance Comonad (Prod e) where
        extr = outl
        dupl = fork id outr
      
      
      -- generalized catamorphisms, zygomorphisms and paramorphisms
      
      gcata :: (Functor f, Comonad n) =>
                 (forall a. f (n a) -> n (f a))
                   -> (f (n c) -> c) -> Mu f -> c
      
      gcata dist phi = extr . cata (fmap phi . dist . fmap dupl)
      
      zygo chi = gcata (fork (fmap outl) (chi . fmap outr))
      
      para :: Functor f => (f (Prod (Mu f) c) -> c) -> Mu f -> c
      para = zygo In
      
      
      -- factorial, the *hard* way!
      
      fac = para phi where
        phi  Z             = suck zero
        phi (S (Pair f n)) = mult f (suck n)
        
      
      -- for convenience and testing
      
      int = cata phi where
        phi  Z    = 0
        phi (S f) = 1 + f
      
      instance Show (Mu N) where
        show = show . int
      Ответить
      • Поясню несколькими словами что тут происходи: типизация вышла с израдной долей петушения, макосы кое-как замаскировали под параметрический полиморфизм, но метапрограммирования в среде монадических трансформеров из категории зигохистоморфный препроморфизм как эндофункторов. Получается, что для описания индуктивных рекурсивных данных результаты, значения и ко-индуктивных ко-рекурсивных потоков данных как вход все равно говенный.
        Ответить
    • int strlen_re(char *s)
      {
          if(*s == '\0')
              return 0;
          else
              return(1 + strlen_re(s+1));
      }
      Ответить
      • strLength str = strLength_ str 0
        
        strLength_ []    = id
        strLength_ (h:t) = strLength_ t.(+1)
        Ответить
        • Собрались студенты код писать, чтоб лабу по свежеизученной сишке сдать. Несколько из них были подающими надежду программистами и либо уже сишку знали, либо легко понимали, в чём суть. Остальным надо было побыстрее сдать эту ненужную фигню и пойти на кафедру медицинских плазменных ускорителей социологического квадруполя. Первые сидели и писали код, а вторые частенько какой-то фигнёй страдали.
          Посмотрел преподаватель код подающих надежду программистов и сказал: Да ох*ели же вы! Напитон. Срочно. Внутривенно. Понавелось царей-кулхацкеров. Раз-раз, чисти код, чисти. Вилкой, сука, тернарный оператор чисти.
          Потом решил он посмотреть код юных социоквадрупольщиков и готов был уже к худшему. А там... Всё понятно. Потому что сука не выпендривались социоквадрупольщики, а задачу решали наиболее простым и надёжным способом. Конечно, for i<strlen писали, но предельно понятно. Предельно. Понятно.
          Ответить
          • >тернарный оператор
            int strlen_re(char *s)
            {
                return *s ? (1 + strlen_re(s+1)) : 0;
            }
            Ответить
            • >Сишкоблядские строки.
              Напаскаль!
              Ответить
              • #include <stdint.h>
                typedef struct 
                {
                    uint16_t len;
                    char * data;
                } string;
                
                size_t strlen_poscal(const string * str)
                {
                    return str->len;
                }
                Ответить
                • Как сказал Великий и Ужасный Билл Майкросовтович, 65536 символов хва
                  Ответить
                  • Это я перепутал - в паскале, ЕМНИП, под длину вообще 1 байт отводился.
                    Ответить
                    • Так и есть, точно помню, что в нулевом байте строки хранился её размер. (Невероятно нужная и полезная информация, пригодившаяся мне первый и, надеюсь, последний раз в жизни.)
                      Ответить
                    • А в Дельфях потом появилось 100500 всяких разных строк (AnsiString, WideString etc), у которых под длину уже отводился не один байт, а побольше, а кроме того, ещё хранился максимальный размер. Но доступа к длине как к нулевому элементу уже не было.
                      Ответить
                • А правда что в поскале есть баг, что если длина строки равна какому-то магическому числу (меньше 1000), то происходит неведомая херня.

                  Когда-то слышал такие байки.
                  Ответить

    Добавить комментарий