Я думаю, что вы никогда не видели говнокод. Я недавно взяла одну программку на Фортране переписать на нормальный язык. Программа фиг знает какого года. Вот выдержка.
Сразу извинюсь за кодировку — хрен знает, какая там, 866 и 1251 не подходят.
READ(1,*) U1CP,TIP,BTCP,AB
7 FORMAT(2F7.3,F7.5,F5.3)
READ(1,*) (R(I),I=1,istp)
3 FORMAT(7F7.5)
READ(1,*) (AI(J),J=1,istp)
8 FORMAT(7F4.2)
READ(1,*) HTH,ROKCP
5 FORMAT(F8.2,F4.2)
READ(1,*) (AMP(L),L=1,5)
6 FORMAT(5F6.3)
C=== яхЁхёўхЄ шёїюфэ√ї фрээ√ї ==================
DO 2 I=1,istp
R(I)=R(I)/R1CP
U(I)=U1CP*R(I)
2 continue
HTH=HTH/(U1CP**2)
WW=U1CP/R1CP
HTH1=HTH*(U1CP**2)
R75=(1.-ROKCP)*WW
DO 701 J=1,5
AK=1.4
PI=3.1415926
A10=U1CP
A11=C1ACP/A10
A22=C2ACP/A10
A32=1.-ROKCP
A33=A32**2
A34=A11**2
A35=A22**2
ARC1=A33/A34
ARC2=A33/A35
ARC11=A32/A34
ARC12=A32/A35
AKR=18.3*SQRT(TIP)
DO 4 I=1,istp
IF(AMP(J).EQ.0.) GO TO 50
IF(AMP(J).EQ.-1.) GO TO 55
IF(AMP(J).EQ.1.) GO TO 80
A40=R(I)**(-2.*AMP(J))
A41=ARC1*(AMP(J)-1.)*(1.-A40)/AMP(J)
A42=(AMP(J)-1.)*HTH*A32*(1.-R(I)**(-(AMP(J)+1.)))/
*((AMP(J)+1.)*A34)
C1A(I)=C1ACP*SQRT(1.+A41-A42)
A43=ARC2*(AMP(J)-1.)*(1.-A40)/AMP(J)
A44=(AMP(J)-1.)*HTH*A32*(1.-R(I)**(-(AMP(J)+1.)))
*/((AMP(J)+1.)*A35)
C2A(I)=C2ACP*SQRT(1.+A43+A44)
R76=(R75*R1CP**(AMP(J)+1.))/((R(I)*R1CP)**AMP(J))
C1U(I)=R76-HTH1/(2.*U(I))
C2U(I)=R76+HTH1/(2.*U(I))
GO TO 4
50 A50=2.*ARC1*ALOG(R(I))
A51=ARC11*HTH*(1.-1./R(I))
C1A(I)=C1ACP*SQRT(1.-A50+A51)
A52=2.*ARC2*ALOG(R(I))
A53=ARC12*HTH*(1.-1./R(I))
C2A(I)=C2ACP*SQRT(1.-A52-A53)
R96=(1.-ROKCP)*U1CP
C1U(I)=R96-HTH1/(2.*U(I))
C2U(I)=R96+HTH1/(2.*U(I))
GO TO 4
55 A61=2.*ARC1*(1.-R(I)**2)
A62=(2.*HTH*A11**2)*A32*ALOG(R(I))
C1A(I)=C1ACP*SQRT(1.+A61+A62)
A63=2.*ARC2*(1.-R(I)**2)
A64=(2.*HTH*A22**2)*A32*ALOG(R(I))
C2A(I)=C2ACP*SQRT(1.+A63-A64)
C1U(I)=(1.-ROKCP)*U(I)-HTH1/(2.*U(I))
C2U(I)=(1.-ROKCP)*U(I)+HTH1/(2.*U(I))
GO TO 4
80 C1A(I)=C1ACP
C2A(I)=C2ACP
C1U(I)=C1UCP/R(I)
C2U(I)=C2UCP/R(I)
4 CONTINUE
Ё-моё.
Красиво, да. Студенты иногда примерно так и пишут, а я с ними воюю. Можешь вот запостить: http://govnokod.ru/
ОтветитьУдалитьТам нет отдельной категории для ФОРТРАНА :)
ОтветитьУдалитьДа и регистрироваться заставляют. А так приведенный вариант занял бы почетное место, я думаю.
Может выложить на сайт к себе, как пример очень плохого кода...
Ой-вей, це ни разу не говнокод, так, жалкий намек ничтожного быдлокодеришки. Вы не видели кода людей, больных паттернами и ООП головного мозга. Там от места вызова до реального исполнения код проходит 15--25 уровней всяких оберток, расположенных в сотнях файлов. Причем это безобразие не документировано, автор давным-давно уволился, а текущие "архитекторы" и "эксперты" в "наследие" лезть боятся, а сами написать замену не могут.
ОтветитьУдалитьХа-ха, увидела операцию «подергивание» на Си:
ОтветитьУдалить++k--
Анонимному: не сталкиваюсь, работаю у нас в МАИ :), но верю, верю :)
ОтветитьУдалить