- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define e if
#define h while
#define s return
#define v NULL
#define r else
#define u case
#define C switch
#define D for
#define L0 typedef
#define L int
L0 char S;L0 S*Z;L0 Z*U;L0 double N;
L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
void A(Z g,U t){h(' '==*g)g++;*t=g;}
Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
L main(void){
Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
L i;
Z k=B(n);
S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
T(w,k);
printf("%s\n",w);
}
Nastenka1998 19.08.2016 09:56 # +377
laMer007 19.08.2016 09:59 # +61
Напиши следующее признание в любви на ассемблере.
Ну по моему пора Nastenka1998 убрать из списка спамящих ботов и перестать минусовать, особенно если это кегги.
bagor 19.08.2016 10:00 # −83
Nastenka1998 19.08.2016 10:32 # +376
bormand 19.08.2016 17:42 # +62
Кегги, ты зачем пол сменила?
HaskellGovno 19.08.2016 18:07 # +30
bot 19.08.2016 20:33 # −1
dxd 19.08.2016 20:40 # +2
PACTPOBblu_nemyx 05.08.2019 01:26 # 0
bagor 19.08.2016 10:00 # −83
bagor 19.08.2016 09:58 # −84
laMer007 19.08.2016 10:01 # +61
Steve_Brown 19.08.2016 17:52 # +29
(В детстве хотел так сделать, чтобы меньше писать.
Не получилось. :(
)
bagor 19.08.2016 17:54 # −64
bormand 19.08.2016 17:55 # +29
1024-- 19.08.2016 10:04 # +59
И полиномы тут какие-то. А как из них Борманд получается?
laMer007 19.08.2016 10:06 # +57
1024-- 19.08.2016 10:08 # +59
Nastenka1998 19.08.2016 10:34 # +378
inkanus-gray 19.08.2016 10:52 # +58
guesto 19.08.2016 13:01 # −60
npocmou_xyu 05.08.2019 00:08 # 0
guest8 05.08.2019 01:44 # −999
CHayT 19.08.2016 14:24 # +56
bormand 19.08.2016 17:43 # +59
dxd 19.08.2016 19:39 # +9
666_N33D135 06.08.2019 14:49 # +1
http://govnokod.ru/25131#comment443310
PACTPOBblu_nemyx 06.08.2019 14:51 # 0
666_N33D135 06.08.2019 14:59 # +2
Так что в S" Forth" не только постфикс.
bormand 06.08.2019 15:39 # +2
Это очень необычные слова, иногда до неюзабельности. Как тот же create позвать с произвольным аргументом, не вшитым в код? Через evaluate разве что... ну или хаки с буфером.
npocmou_xyu 06.08.2019 16:09 # +2
В стандарте, почему-то ничего такого нет, но системы обычно включают в себя подобные слова. В S" SP-Forth" есть слово CREATED , в S" GForth" есть слово nextname которое работает с любым определяющим словом.
http://ideone.com/1FQCBN
Почти всегда есть какое-нибудь слово для создания хотя бы заголовка для строки из стека.
Psionic 19.08.2016 17:05 # +60
CHayT 19.08.2016 18:42 # 0
Жаль, что яой. Boku no Bormand.
LispGovno 19.08.2016 19:27 # −2
guest 19.08.2016 19:30 # −50
cmepmop 05.08.2019 19:47 # 0
fse 14.07.2017 18:32 # 0
file.min.c
А если серьёзно, заказчик, видимо, предъявил требование предоставить ПО в виде исходных кодов...
cmepmop 06.08.2019 13:57 # 0
bormand 06.08.2019 14:22 # +1
> заказчик
guest8 05.08.2019 01:47 # −999
PACTPOBblu_nemyx 05.08.2019 01:49 # 0