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

    +92

    1. 1
    2. 2
    3. 3
    4. 4
    if (x>13)or(x<13)or(x=13) then begin writeln('введено невероное значение X');halt end else begin
    //Расчёт уравнения
    ..........
    end;

    в лабе в студента увидел o_O
    конечно он получил 2 за лабу
    но ка пример какокода супер

    Запостил: adli__82, 17 Августа 2010

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

    • Ваши лабы уже заебали откровенно. Очередная, не смешная и унылая муйня
      Ответить
      • показать все, что скрытона первом курсе тоже с чего-то надо начинать :)
        кста уравнения квадратного оно таки не решало
        d=b*b-4*a*b (c)
        Ответить
        • Начинать надо было до 1-го курса с нормального учебника, дабы не гавнить, ну или хотя бы не так. Да и вообще, нехер лезть, если это не твоё, ящитаю,
          Ответить
          • спасибо, я начал с книги Фаронова ещё в 12 лет (сейчас мне 28).
            Я сейчас предподаватель. И ЭТО написал один из моих студентов.
            Ответить
            • Стоило посоветовать товарищу. Быть может, выложите свой код? :D
              Ответить
              • Пожалуста:
                {$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
                {$Hints Off}
                {$Warnings Off}
                {$AppType Console}
                Program QuadraticEquation;
                Var
                  A,B,C,D,X,X1,X2,Y:Extended;
                
                  Function InputFloat(VarName:String):Extended;
                  Var
                    S:String;
                    R:Integer;
                    Res:Extended;
                 
                  Begin
                    Repeat
                      Write('Введите ',VarName,': ');ReadLn(S);
                      Val(S,Res,R);
                      If R<>0 Then WriteLn('Ошибка ввода.')
                    Until R=0;
                    InputFloat:=Res
                  End;{Function InputFloat}
                
                Begin
                  WriteLn('Программа решения квадратного уравнения.');
                  A:=InputFloat('A');
                  B:=InputFloat('B');
                  C:=InputFloat('C');
                  If A=0 Then 
                    If B=0 Then Begin WriteLn('Это не уравнение (A и B равны 0)');Exit End
                           Else X1:=-C/B
                         Else Begin
                           D:=Sqr(B)-4*A*C;
                           X1:=(-B-Sqrt(D))/(2*A);
                           X2:=(-B+Sqrt(D))/(2*A)
                         End;
                  WriteLn('X1=',X1:5:3);
                  If (A<>0)And(B<>0) Then WriteLn('X1=',X1:5:3);
                  WriteLn('Для поиска значения в произвольной точке');
                  X:=InputFloat('X');
                  Y:=A*Sqr(X)+B*X+C;
                  WriteLn('Значение в искомой точке F(',X:5:3,')=',Y)
                End.

                p.s. Сильно не критиковать, это учебный пример, в жизни было б меньше кода и замутов.
                Ответить
                • {$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
                  {$Hints Off}
                  {$Warnings Off}

                  дальше не читал

                  не хватает еще {$Errors Off} {$Compile No}
                  Ответить
                  • Часто пользуюсь Dcc32 и влом каждый раз править dcc32.cfg, а в среде Ctrl+O,O автоматически вставляєт текущие настройки компилятора.
                    ИМХО лично мне удобно.
                    Ответить
                    • зоебись настройка $A+
                      а вот это B- все всем понятно
                      C+ ну и тут читаемость 100%
                      Ответить
                      • Зато алфавит можно выучить.
                        Ответить
                      • В Delphi, кстати, есть более читабельные аналоги:
                        {$ALIGN ON}
                        {$BOOLEVAL OFF}
                        {$ASSERTIONS ON}
                        Только писать их надо руками.
                        Ответить
                      • Только в третьем плюса не хватает.
                        Ответить
                      • Да хуй бы с ней, с читаемостью; этим директивам по 15 лет минимум, их все наизусть знают. Говнище в том, что предподаватель жмакает удобные кнопочки и в итоге учит наших детей программировать с {$J+}{$WARNINGS OFF}{$HINTS OFF} в учебных примерах.

                        eg: почему вы не хотите служить в армии, однако пишете {$C+,D+,L+,Y+} в сочетании с {$O+,W-}? :-P
                        Ответить
                        • >этим директивам по 15 лет минимум, их все наизусть знают.

                          да ну? все-все?
                          говно (даже 15 летней выдержки =) ) остается говном
                          Ответить
                          • > да ну? все-все?
                            можно и в справочник слазить, заодно станет очевидно, что в той длинной личинке: 1 директива влияет на приведенный код, 4 существуют только для обратной совместимости и вообще ничего не должны менять. зато красиво отсортировано по алфавиту, да.

                            по мне, так всякое #pragma option push -bi -a8 и трубопаскакалевское {$Z4,A8} - равноуёбищны
                            Ответить
                • >>{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
                  ...
                  >>{$Warnings Off}

                  >>Var
                  A,B,C,D,X,X1,X2,Y:Extended;


                  Вы реально детей такому учите?
                  Ответить
                • числа с плавающей точкой нельзя сравнивать на равенство/неравенство

                  нет проверки на D < 0

                  X2 вообще нигде не выводится

                  в случае fabs(B) < epsilon и fabs(A) > epsilon будет выведен только один из корней (например x^2 -1)

                  нигде нет ни слова про кратность корней

                  итого:
                  неуд нумер адын

                  в жизни было б больше кода и замутов -> неуд нумер два
                  Ответить
                  • ...бедный, бедный преподаватель "программистских изыкоф" он уже пожалел, что запостил здесь чудо-код...
                    Ответить
    • да нормально, (x>13)or(x<13)or(x=13)
      Ответить
      • На целых всегда true, а на вещественных... Вдруг кто-то NaN ввёл?
        Ответить
    • Рискую показаться необразованным, но почему именно 13?
      Ответить
      • Чертова дюжина же. Программа упадет с AV в ImageBase + 00000666
        Ответить
      • Как заметил товарищ "This is obvious" 2 часа назад
        это - special black magic
        Ответить
    • ТОЖЕ ПРОЕБАН
      Ответить

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