[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 01/21 18:45 / Filesize : 71 KB / Number-of Response : 258
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

七行プログラミング part6



1 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 23:00:49 ]
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-10あたりに。

前スレ
pc11.2ch.net/test/read.cgi/tech/1142467359/
part4
pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
pc.2ch.net/tech/kako/984/984182993.html

79 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:29:28 ]
>>77>>78
じゃあyもlongにして、あとtも消せる?

#include<stdio.h>
int*s,*d;main(c,v)char**v;{long W,x,y,a;unsigned char h[54],f[3];for(fread(h,1,
54,s=fopen(v[1],"rb")),W=*(long*)&h[18],fwrite(h,1,54,d=fopen(v[2],"wb")),a=4-W
*3%4;y++<*++&W;a-4&&fread(h,1,a,s))for(x=W;x--;fwrite(f,1,3,d))fread(h,1,3,s),f
[0]=f[1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}

80 名前:79 mailto:sage [2008/07/09(水) 23:30:33 ]
すまんなんでもない

81 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:32:05 ]
>>79
お前ちゃんと走らせてるのか?
出力が同じになることぐらい確認しとけよ。

82 名前:79 mailto:sage [2008/07/09(水) 23:32:56 ]
実は今出先なのでCのコンパイラがなかった
すます

83 名前:71 mailto:sage [2008/07/09(水) 23:43:43 ]
面倒だからみんなlongで

#include<stdio.h>
long*s,*d,y;main(c,v)char**v;{unsigned char h[54],f[3];long *t=&h[18],x,a;fread
(h,1,54,s=fopen(v[1],"rb"));a=4-*t*3%4;fwrite(h,1,54,d=fopen(v[2],"wb"));for(;y
++<t[1];a-4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),f[0]=f[
1]=f[2]=77*h[2]+150*h[1]+29*h[0]>>8;}

84 名前:71 mailto:sage [2008/07/10(木) 00:13:01 ]
#include<stdio.h>
unsigned char h[54],f[3];long*s,*d,y,*t=h+18,x,a;main(c,v)char**v;{fwrite(h,1,
fread(h,1,54,s=fopen(v[1],"rb")),d=fopen(v[2],"wb"));for(a=4-*t*3%4;y++<t[1];a-
4&&fread(h,1,a,s))for(x=*t;x--;fwrite(f,1,3,d))fread(h,1,3,s),*f=f[1]=f[2]=77*h
[2]+150*h[1]+29**h>>8;}

85 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:49:30 ]
いい流れだ

86 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:14:57 ]
おまえらそんな可読性の高いコード書いてて恥ずかしくないの?

87 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 11:00:43 ]
>>86 恥なんかあったら、コードは掛けんよ(笑




88 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:10:20 ]
JavascriptでBase64エンデコード
<script>S=String.fromCharCode;c='0123456789+/=';for(i=122;64<i;i-=i-97?1:7)c=S(
i)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/
i.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;j
--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&25
5)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>

ほぼ限界だと思うんだが、どうなんだろう
pやcharAtが冗長な気もするけど・・・

89 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:18:39 ]
お、79文字に収まった

<script>S=String.fromCharCode;c='0123456789+/=';for(i=123;65<i;)c=S(i-=i-97?1:7
)+c;document.write(eval('l=v.length;for(i=p=0;i<l;){for(n=0,j='+(/[^+/-9=A-Z]/i
.test(v=unescape(encodeURI(prompt(r=''))))?'3;j--;l<i&&p--)n=n<<8|v.charCodeAt\
(i++);for(j=4;j--;)r+=c.charAt(n>>6*j&63)}p?r.slice(0,p)+(p+1?"==":"="):r':'4;\
j--;t-64||p--)n=n<<6|(t=c.indexOf(v.charAt(i++)))&63;for(j=3;j--;)r+=S(n>>8*j&\
255)}decodeURIComponent(escape(r.slice(0,p)||r))')))</script>

90 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:05:50 ]
<body id=D onKeyDown=K=event.keyCode-38 onload='Z=X=[B=A=12];(Y=function(){for(
C=[q=c=i=4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?
h+=K:t?B=C:0;i=K=q--;f+=Z[A+p])k=X[p=h+B[q]]=1;h+=A;if(f|B)for(Z=X,X=[l=228],B=
[[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P+=
k++,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228
)?i%A?"■":"■<br>":"_");D.innerHTML=S+P;Z[5]||setTimeout(Y,i-P)})(h=K=t=P=0)'

91 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:04:11 ]
>>35の方が少し短い

92 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:17:17 ]
innerHTMLのほうがいい罠

93 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:34:04 ]
innerTextとかIEだけじゃん 環境依(Ry

94 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:58:39 ]
Firefoxで動くから問題ない

95 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 15:44:19 ]
Firefoxじゃ動かんだろ

96 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:18:26 ]
うごくよ

97 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 16:54:21 ]
どちらもIEとFirefoxで動いたが、
OperaとSafariではどちらも動かなかった。



98 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 17:18:11 ]
Mozilla Firefox 2.0.0.6,
Mozilla Firefox-3.0 3.0a8,

どっちでも動かないんだが・・・

99 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:49:10 ]
Firefox では動かないよ
まあそんなことはどうでもいいけど、<br> を \n にするだけのために innerText を使うのはいただけない

100 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 20:43:48 ]
htaで動けばおk

101 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:26:40 ]
W3C DOMで採択されていないinnerTextを使うなんて…なぜ標準厨が湧かないんだ!!

102 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:08:18 ]
JScript標準ですがなにか

103 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:37:02 ]
>>101
マジレスするとinnerHTMLもW3C DOM非準拠。
HTML5待ちだよ。

104 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 15:16:14 ]
まさかJScriptなんて言葉が出てくるとはな


105 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:33:10 ]
出てきても何も問題は無い

106 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:01:55 ]
C++で正規表現エンジン?らしきものをやってみました
10行ですが、これ以上は厳しい・・・

#include <iostream>
struct a{a*b;char*c,*d;int e,f,g;};struct{int h(a*i,char*j,char*&k){a l={i,k,0,
99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k==
'?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k);}
int n(a*i,char*j,char*&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b
,j,o.d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,
char*j,char*&k){int p=*k++;if(p=='('||(p=j&&(p=='$'?!*j:((p-'.'?p==*j:*j)&&++j)
)&&n(i,j,k),0))while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,
char**s){return 2<r&&q.h(0,s[2],s[1]=(char*)(std::string("(.*?")+s[1]+")").
c_str())&&std::cerr<<"ktkr.\n";}

コマンドラインの引数に”正規表現”と”マッチ対象の文字列”をこの順番で与えて実行すると
マッチした場合だけ”ktkr”と出力します。使えるメタ文字: . $ ? ?? * *? + +? ( | )
^はグローバル変数を使わないと実装出来なそうだったので却下しました・・・


107 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:04:50 ]
あとCのソースを七行×79文字の形式に変換してくれるスクリプトを書きました
もし役に立てるのでしたら幸いです
xxx.s97.xrea.com/x/7amigos/7amigos.cgi



108 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:39:36 ]
>>106
#include <iostream>
typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i,
k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k
=='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k)
;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o.
d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x&
k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\
while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r
&&q.h(0,s[2],s[1]=(x)(std::string("(.*?")+s[1]+")").c_str())&&std::cerr<<"ktkr\
.\n";}

109 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 15:40:49 ]
>>107
二文字の演算子が分解される…

110 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:17:04 ]
9行目にバグがありました、、、
#include <iostream>
typedef char*x;struct a{a*b;x c,d;int e,f,g;};struct{int h(a*i,x j,x&k){a l={i,
k,0,99,99,1};return(*k-')'&&*k-'|'?(m(0,0,k),*k=='*'||*k=='+'&&++l.f||(l.f=1,*k
=='?')?(l.g=*++k-'?')||++k:(l.e=0),l.d=k,i=&l,0):!(j&&(k=i->c,i->b)))||n(i,j,k)
;}int n(a*i,x j,x&k){a l=*i,o=l;return j?l.e<l.f--?m(&l,j,o.c):l.f<0?h(l.b,j,o.
d):l.g&&m(&l,j,o.c)||h(l.b,j,o.d)||!l.g&&m(&l,j,o.c):h(0,0,k);}int m(a*i,x j,x&
k){int p=*k++;if(p=='('||(p=j&&(p-'$'?(p-'.'?p==*j:*j)&&++j:!*j)&&n(i,j,k),0))\
while(!((p=h(i,j,k))&&j||*k++-'|'));return p;}}q;int main(int r,x*s){return 2<r
&&q.h(0,s[2],s[1]=(x)(std::string("(.*?(")+s[1]+"))").c_str())&&std::cerr<<"ktkr\
.\n";}

>>108
なるほど。char*が多いのは気になってたのですが、typedefとは。不覚でした

>>109
根本的ではないっぽいですが、とりあえず直してみました

111 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 10:28:38 ]
Part5で9行正規表現はあったね。メタ文字は少なかったけど。

112 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 08:34:58 ]
バグとSTL取ったら伸びてしまいました・・・。
その代わりVC++でもコンパイルできる様になりました。これ以上はもう無理そうなので最後にします。

#include <stdio.h>
typedef char*a;struct b{b*c;a d,e;int f,g,h;}i={0,0,0,0,1,1};struct{int j(a&k,
a l=0,b*m=0){b n={m,k,0,99,99,1};return(*k&&*k-')'&&*k-'|'?(o(k,0,0),*k=='*'||*
k=='+'&&++n.g||(n.g=1,*k=='?')?(n.h=*++k-'?')||++k:(n.f=0),n.e=k,m=&n,0):!(l&&(
k=m->d,m->c)))||p(k,l,m);}int p(a&k,a l,b*m){b n=*m,q=n;return l?n.f<n.g--?o(q.
d,l,&n):n.g<0?j(q.e,l,n.c):n.h&&o(q.d,l,&n)||j(q.e,l,n.c)||!n.h&&o(q.d,l,&n):j(
k);}int o(a&k,a l,b*m){int r=*k++;if(r=='('||(r=l&&(r=='$'?!*l:((r-'.'?r==*l:*l
)&&++l))&&p(k,l,m),0))while(!((r=j(k,l,m))&&l||(j(k),*k++-'|')));return r;}}s;
int main(int t,a*u){for(char v[99]="(",*w=v;*w?(*++w=*u[1]++,1):s.o(*u=v,u[2]++
,&i)?(puts("ktkr."),0):*u[2];);return 0;}

>>111
あれがなければこの挑戦もなかったですね、、、
そこまで縮められるなんて夢にも思わなかったと思うので(日本語でおk)

113 名前:前すれ969 mailto:sage [2008/07/26(土) 22:53:38 ]
UTF-16BEのテキストファイルをUTF-8に変換
Winの人は(ry
#include <stdio.h>
FILE*i,*o;int a,b;int F(int c){return putc(128|c%64,o);}int main(int c,char**v)
{if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w")))for(;a=getc(i),a-EOF;((a=a<<8
|getc(i))>>11!=27)?a<128?putc(a,o):a<2048?(putc(192|a>>6,o),F(a)):(putc(224|a>>
12,o),F(a>>6),F(a)):(b=getc(i)%4,c=getc(i),a=64+a%1024,putc(240|a>>8,o),F(a/4),
F(a<<4|b*4|c>>6),F(c)));return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c
<3?"usage: %s input output\n":"fairu wo hirakenaijanaika! itteyoshi!!\n",*v);}
エンディアンを自動判定するのは難しそうだな…

それから、前スレ969のプログラム(UTF-8→UTF-16)を4文字ほど短縮した
#include <stdio.h>
FILE*i,*o;int l,p,t[]={0,192,224,240},r=65536;void P(int p){putc(p>>8,o);putc(p
%256,o);}int main(int c,char**v){if(c>2&&(i=fopen(v[1],"r"))&&(o=fopen(v[2],"w"
)))for(fputs("\xfe\xff",o);(c=getc(i))-EOF;(p-=r)>=0?P(p/1024+55296),P(56320+p%
1024):P(p+r))for(p=c-t[l=(c&224)-192?(c&240)-224?(c&248)-240?0:3:2:1];l--;p=p<<
6|getc(i)%128);return i&&fclose(i),o&&fclose(o),o?0:!!fprintf(stderr,c<3?"usag\
e: %s input output\n":"fairu wo hirakenurupoaijanaika! itteyoshi!!\n",*v);}

あと、俺以外の人が変数の型を省いて短縮するのはいいけど、
stderrを省いて実行時に落ちるようになるのはやめてくれ
むしろ、落ちるくらいなら無駄なメッセージ出力を無くしてしまった方がいい

114 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 18:44:02 ]
正直、セキュリティやデバッグ目的で冗長なコードを実装するのは
七行プログラミングとしてどうかと思うがな。

短縮よりも機能や安定性を優先しようと思えば、いくらでも出来るわけで。
七行未満になったなら、糞メッセージを表示するより不正なEOF判定でも入れておけ。

115 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:40:05 ]
「〜はやめたほうがいい」
「〜はどうかと思う」
なんかは、自分のコードに反映させればいい。
規律と可能性は背反するものだし、正解はないだろう。

116 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:13:02 ]
他人のオナニーに注文つけるのは無粋ってもんだ

117 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:40:42 ]
今いいこと言った



118 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 21:42:56 ]
すげーオナニーを見せてくれるとうれしい!?

119 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:46:10 ]
要は称えあってれば満足なんですね
mixiとかオススメ

120 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:53:57 ]
卑屈なのが文面から滲み出てくるなあ
一種の言語調教なんだから楽しくやろうぜ?

121 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 23:14:10 ]
他人にオナニー見せてるわけだからAV女優並にある程度注文つけられても仕方ないだろ。

122 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:41:23 ]
え?あいつらタダであんなことやってんの?
それtも>>121が金払ってくれるって話か?

123 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 05:10:32 ]
はいはい釣り釣り

124 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:40:38 ]
カッコの付け方やスペースの入れ方の違いで一生罵り合える人種に
注文付けるななんて中東を平和にするより無茶

125 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 16:31:11 ]
#include <windows.h>
void _(long*A,HWND B,int C,int D,int E){if(GetWindowRect(B,(RECT*)A),A[2]-=A[0
]+=26,A[3]-=A[1]+=99,SetForegroundWindow(B)){}while(E>2?Sleep(E),keybd_event((
char)(C>2?E-C:C?88+C:160),0,3-2*D,0),!~(C-=D=!D)?E=0,1:1:(E-->0?SendMessage(B,
513+!E,E,((47+D*16)<<16)+20+C*16),1:++C-A[2]/16?SetCursorPos(A[0]+C*16,A[1]+D*
16),GetPixel(GetDC(0),0,0)==0xFFFFFF?E=2:1:++D-A[3]/16?C=-1:0)){}}void main(){
if(_((long*)malloc(16),FindWindow("マインスイーパ",0),5,1,93),exit(0),0){}}

126 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 16:58:54 ]
>>113
nurupo

127 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:05:54 ]
少しだけ残るのね



128 名前:デフォルトの名無しさん [2008/08/14(木) 08:48:24 ]
NOP
NOP
NOP
NOP
NOP
NOP
NOP

129 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:33:07 ]
HLT

130 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 10:45:58 ]
RDTSC
MOV ECX,EAX
STI
HLT
RDTSC
SUB EAX,ECX
RET

131 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 13:16:23 ]
>>130
無意味な事を無駄なく実行するそのコードの有様に感動したw

132 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:07 ]
STIとHLT間のクロック数の計測?
何がすごいのかわからない(たぶん俺の知識がなくて)

133 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:33:55 ]
>>132
STIの後にHLTすると、割り込み許可状態で待機する。まぁOS作ってないと分からんわな。
つまりあれだ、アクセラレータか何かの設定をしたあとSleep(-1);して、
叩き起こされたところでその間に何クロック分の時間が経ったかを計算してるようなもん
(しかし2GHzのマシンでさえ2秒強でオーバーフローする!)

134 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:27:39 ]
インラインアセンブラとかじゃ動かない?

135 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:10:56 ]
>>133
解説してくれたのにわるいが、それくらいはわかるんだ。
結局何がすごいの?

136 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:32:51 ]
>>135
あとは感性の問題だからあまり気にするな
すごいと思う人がいれば、何も思わない人がいる。それだけだ

137 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:42:12 ]
自作自演だったんだろ
突っ込んでやるなよ



138 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:42:01 ]
オーバーヘッドが少ないとか、そういう事じゃないの?
>>131の話からすると。

139 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:58:57 ]
>>134
インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか

あなたがどんな特殊な/一般的な環境を持っているかは知らないけど。

>>135
明らかに無意味な事を無駄なく7行で表現するにはセンスが必要だと思うが
凄いとは思わんな

140 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 10:35:16 ]
>>139
> インラインアセンブラだとHLTもSTIも無いだろうな。RDTSCもあるかどうか

それはない

141 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:59:07 ]
なかったらgasでコンパイルできない

142 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 12:31:25 ]
MSCのインラインアセンブラはDBとかの疑似命令に対応してなかったけどな

143 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:06:22 ]
アセンブラとインラインアセンブラの区別がつかない人が居るスレはここですか?

144 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:07:36 ]
インラインアセンブラにそれがなかったらgasでコンパイルできないのか、そうか

gasでコンパイルできないのか。

145 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 04:27:37 ]
っていうかインラインの命令って下請けのアセンブラに丸投げなんじゃないの?

146 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:25:21 ]
コンパイラによる。
GCCは丸投げするからなんでも通る。MSCは自前。

147 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:22:42 ]
逆ポーランド記法な有理数電卓
入力は99文字まで、スタックの大きさは10まで
もういじりたくないorz
#include <stdio.h>
typedef int I;abs(I);G(a,b){for(;b&&(a%=b)&&(b%=a););return abs(a+b);}I s[20],*
p=s+20,*q=s+18,g;char f[100],*i=f;long strtol(I*,I**,I);main(){for(fgets(f,100,
stdin);*i;++i)47<*i&&*i<58?*--p=1,*--p=strtol(i,&i,0),--i:*i-32&&*i-10?*i-47?*i
-42?*i-45?*i-43?0:(p[2]=p[2]*p[1]+p[3]**p,p[3]*=p[1]):(p[2]=p[2]*p[1]-p[3]**p,p
[3]*=p[1]):(p[2]*=*p,p[3]*=p[1]):(p[2]*=p[1],p[3]*=*p),(p+=2,g=G(*p,p[1]),p[1]<
0?g=-g:0,*p/=g,p[1]/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");}



148 名前:デフォルトの名無しさん [2008/09/10(水) 11:09:57 ]
#include<stdio.h>
#include<stdlib.h>
G(a,b){for(;b?a%=b:0;)b%=a;return a+b;}int*v,*u,*r,s[20],*p=s+20,*q=s+18,g,f[25]
;char*i=f;main(c){for(fgets(f,100,stdin);c=*i;++i)47<c&&c<58?*--p=1,*--p=strtol(
i,&i,0),--i:(v=p+1,r=p+2,u=p+3,c%=6)-2&&c-4?c-5?c?c-3?c-1||(*r=*r**v+*u**p,*u*=*
v):(*r=*r**v-*u**p,*u*=*v):(p[2]*=*p,*u*=*v):(*r*=*v,*u*=*p),(p+=2,g=G(*p,*u),g*
*u<0?g=-g:0,*p/=g,*u/=g):0;for(;p-q-2;q-=2)printf("%d/%d\t",*q,q[1]);puts("");}

↑適当に縮めてみました。gccで通るコードでよければ3・4行くらいで書けそうですね。

149 名前:デフォルトの名無しさん [2008/09/12(金) 02:01:15 ]
7行では無い、2行コードですが7行スレへ行けと言われたので・・・
C/C++の宿題スレに書いたものをそのまま転載します。
[1] 授業単元:C/C++(.c/.cpp最小ファイルサイズを目指せ!!)
[2] 問題文(含コード):
int型のsin,cosテーブルを"sincos.cpp"というファイル名で出力
警告の有無は問わず。
コード:main.c<とりあえずココまで短くなりました> :以下コード

f;i;main(){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10?
32:9,(int)(sin(i*3.141592653589793/180)*65536),i%10<9?"": "\n");fclose(f);}

これより短くせよ。但し、出力結果は同じになるように。
[3] 環境
 [3.1] Windows
 [3.2] VisualStudio2005
 [3.3] C/C++どちらでも可
ちなみにReleaseで.exeに出力しています。


150 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 04:41:15 ]
ちょうてけとー
f;i;main(x){for(f=fopen("sincos.cpp","w");i<450;i++)fprintf(f,"%c%6d,%s",i%10
?32:9,x=sin(i*atan(1)/45)*65536,"\n"+(i%10<9));fclose(f);}

あと、
もともとプロトタイプ宣言とか省いて
超コンパイラ依存なコードになってるんだから、
もうぶっちゃけfcloseも省いてよくね?

151 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:38:26 ]
>>150
宿題の相手までしてやる必要はないよ。
調子に乗った教えて君が増えたら困る。

152 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:06:53 ]
流れブッタ切りですまんが、、、
#include<math.h> して M_PI 使ったほうが短いし、解り易いと思うんだ。


153 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:38:16 ]
#include<math.h>+M_PI
3.141592653589793
atan(1)*4
どうみてもincludeは長いです.

154 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:53:11 ]
本当なら
#include<math.h>+atan(1)*4
なんじゃないの

155 名前:デフォルトの名無しさん [2008/09/12(金) 12:36:42 ]
603 :デフォルトの名無しさん [↓] :2008/09/11(木) 19:55:20
>>595
う〜ん、直値は見なかったことにしよう
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7710.c

156 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:00:40 ]
__FILE__

157 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 15:26:38 ]
M_PIはプリプロセッサだから無理だけど
atanはリンカで無理やり打ち込める



158 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 18:44:32 ]
M_PIもプリプロセッサのオプションで…

159 名前:デフォルトの名無しさん [2008/09/12(金) 22:20:52 ]
atan(1)*4は気づかなかったw
ちなみにM_PIは
#define _USE_MATH_DEFINES
#include<math.h>
M_PI
ってなるから長い・・・



160 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:21:22 ]
そんなオプションが要るのか…w
Cは言語仕様と関係ない部分で挙動が変わりすぎて困るね。
C++なら普通におこられるだけだけど。

161 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:59:32 ]
オプションで、とか言い出したら /Dm=main() つけて、とかそういうことになっちゃう

162 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 22:34:06 ]
有名どころでは
  #include "/dev/tty"
とか


163 名前:デフォルトの名無しさん [2008/09/22(月) 23:14:16 ]
>>162
目からウロコを射出した

昔の人は天才的なバカだな

164 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:42:30 ]
なるほどなー

「標準入力をコンパイルしたい時は /dev/tty を include しよう」
alohakun.blog7.fc2.com/blog-entry-460.html

165 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 20:45:02 ]
__FILE__ をうまく使ってファイル名でプログラム書くって技もあったような。

166 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:26:36 ]
画期的すぎる

167 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 01:45:02 ]
みつけた。これだ。

www.ioccc.org/1993/lmfjyh.c

> char*_=__FILE__;

で、これのファイル名を(ダブルクォートも含めて)次のようにする。

";main(){puts("Hello World!");}char*C=".c

そうすると、

> char*_="";main(){puts("Hello World!");}char*C=".c";

とかになるわけだ。



168 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 03:31:23 ]
ファイル名に*が使えないOSでは[]とかか

169 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 06:15:54 ]
test

170 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 17:46:09 ]
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define N 100
int main(int c,char**v){uintmax_t m=1,n=1,o=1,i,p;for(c=c>1?atoi(v[1]):10;c;--c
,o=n+=m+=n,putchar('\n'))for(putchar('0'+(p=o/m)),putchar('.'),i=1;i<N;++i)put\
char('0'+(p=(o=(o-p*m)*10)/m));return 0;}

171 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 05:59:01 ]
メインとは
    「人生オワタ\(^o^)/」で 重大エラー

172 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 09:22:00 ]
>>170 何の結果を出しているのか解説キボンヌ

173 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 15:48:06 ]
これだろ。
ja.wikipedia.org/wiki/%E9%BB%84%E9%87%91%E6%AF%94

174 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:14:42 ]
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define N 100
uintmax_t m=1,n=1,o=1,i;int main(int c,char**v){for(c=c>1?atoi(v[1]):10;c--;o=n
+=m+=n)for(printf("\n%d.",o/m),i=1;i++<N;)o=(o-o/m*m)*10,printf("%d",o/m);retu\
rn 0;}

あんまり変えずに縮めてみた。


175 名前:174 mailto:sage [2008/11/18(火) 20:16:54 ]
n+=m+=n;
この文の繰り返しでフィボナッチ数が生成されるのに感動をおぼえた。

176 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 10:13:24 ]
10行分超過

<body id=d onKeydown=k(event.keyCode-38)><div id=I height=100 width=280 valign=
bottom><div id=r>○<div id=t>大</div></div></div><p id=g><script>a=-4;b=10;X=3*
(Y=90);D=document;s=setInterval;S=parseInt;H="innerHTML";A="style";p="position"
;O="absolute";g[A][p]=I[A][p]=O;r[A][p]="relative";l(o=B=r.v=J=n=0);Q(B,r);P(20
,r);q=15;E=[0,0,0,0,0,0,0,0];L=E.length;s(G,150);M=s(h,150);w=-20;function Q(z,
e){e.y=Y-S(e[A].paddingTop=Y-z+"px");}function l(z){g[H]=z;}function G(){r.v;r.
K=r.y;r.v+=a;if(B<(F=r.v+r.y)&&F<Y){Q(F,r);}else{r.v=0;Q(B,r);if(!o){t[H]="大";
}}}function h(){if(Math.random()<0.11+n/50000){for(j=0;j<L;j++){if(!E[j]){E[j]=
1;break;}}if(j<L){T=D.createElement("div");T.id="e"+j;T[H]=(j==4)?"砲":(j%3==1)
?"棘":j%2==0?"亀":"栗";d.appendChild(T);P(X-b,T);T[A][p]=O;Q(w+((j==4)?40:0),T)
;}}for(i=0;i<L;i++){if(E[i]>0){c=D.getElementById("e"+i);R((-b)*((i==5)?2:1),c)
;if(c.x<20){E[i]=0;d.removeChild(c);}if(r.x>c.x-q*0.1&&r.x<c.x+q*1.3&&r.y>(C=c.
y-w)-q*1.5&&r.y<C+q*1.5){if(i%3!=1&&r.K>0){E[i]=0;k(0);J=1;d.removeChild(c);c[H
]="";l(n+=100);}else{r.v+=b*3;t[H]="出";clearInterval(M);k=function(){};o=1;}}}
}}function P(z,e){e.x=S(e[A].paddingLeft=z+"px");}function R(z,e){if(0<(f=z+e.x
)&&f<X){P(f,e);}else{e.V=0;}}function k(z){R(b*z,r);if(!z&&(r.y==B||J)){r.v+=b*
1.7;t[H]="方";J=0;}}</script>


177 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 21:59:43 ]
今までの短縮技がまったく生かされてないような

過去の作品を見てみよう!



178 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:39:49 ]
>>176
どうやってもキラーに太刀打ちできなかったww

179 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 00:48:42 ]
7行でライツアウト

180 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 00:26:48 ]
変な動きする

#!/usr/bin/perl # THIS INTERPRETER RUNS UNSTABLY, CANNOT EXECUTE NEST SYNTAXES.
if($#ARGV){print"7Lines BF interpreter\nUsage: ./7bfi File [Files..]";exit(-1);}
@m=(0)x256;@c=split(//,`cat "@ARGV"`);for($i=$p=0;$i<=$#c;$i++){if($c[$i]eq'['&&
!$m[$p]){for($j=$i;$j<=$#c;$j++){$i=$c[$j]eq']'?$j+1:$i;}}if($c[$i]eq']'&&$m[$p]
){for($j=$i-1;$j>=0;$j--){$i=$c[$j]eq'['?$j:$i;}}if($c[$i]eq'>'){$p++;}if($c[$i]
eq'<'){$p--;}if($c[$i]eq'+'){($m[$p]%=0xFF)++;}if($c[$i]eq'-'){($m[$p]%=255)--;}
if($c[$i]eq'.'){print chr($m[$p]);}if($c[$i]eq','){$m[$p]=unpack('c2',getc);}};

181 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:21:05 ]
>>179
これがサイズ可変
<body id=B><script>w=5;x=w+1;function f(n,_,g){f[n]^=1;f[n+1]^=1;f[n-1]^=1;f[n+
x]^=1;f[n-x]^=1;for(j=w*x;j;)_+=j--%x?'<a href=javascript:f('+j+',++c)>'+(f[j]?
g='●':'○'):'<br>';B.innerHTML=g?_:'Great!!'}for(i=w*x;i;)i--%x&&Math.random(c
=0)<.5&&f(i)</script>

これが 5 x 5 固定
<body id=B><script>a=f=function(n,_,g){a^=(1<<n)*67.515625;for(j=30;j;)_+=j--%6
?'<a href=javascript:f('+j+',++c)>'+(a>>j&1?g='●':'○'):'<br>';B.innerHTML=g?_
:'Great!!'};for(i=30;i;)i--%6&&Math.random(c=0)<.5&&f(i)</script>

182 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:01:50 ]
>>179
俺も作ってみた

<title>LO</title><body onload="S='',A=[U='<button id=',V=' onclick="U(',W=
')">・</button>'];B=[b=0];Q=['#cab','#f08',x='#867'];for(i=0;++i<42;A[i]=B
[i]=0)S+=i>6&i<36?i%6?U+i+V+i+W:'<br>':'';document.getElementById(0).innerHTML=
S;U=function(i){B[i]^=b,V(i-6),V(i-1),V(i),V(i+1),V(i+6);for(m=j=0;j++<36;m|=A[
j]);m?0:alert('You got it!')};for(i=7,V=function(i){if(i%6&&i>6&i<36)I=document
.getElementById(i).style,I.backgroundColor=y=Q[A[i]^=1],I.color=B[i]?x:y};i<36;
i++)i%6?Math.random()<.5?U(i):V(i)+V(i):0;b=1"><pre style="line-height:1" id=0>

183 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 22:07:53 ]
>>181
うはあこれは凄い

184 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 03:25:47 ]
>>182
unterminated stringと出たのだが(FF3)

185 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 13:10:49 ]
>>184
&quot; が " になってるんだと思う
あと、無理矢理改行されてるから1行にしないとだめ
なんだかなぁ

186 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 04:02:52 ]
using System.Drawing;using System.Drawing.Drawing2D;using f=System.Single;
class P{static void Main(string[]a){using(Bitmap i=new Bitmap(a[0])){M(i,1
,f.Parse(a[1]),f.Parse(a[2]),f.Parse(a[3]));i.Save(a[0]+"-d.bmp");}}static
Bitmap M(Bitmap i,f s,f z,f w,f h){if(s>.0001){using(Bitmap t=M((Bitmap)i.
Clone(),s*z,z,w,h))using(Graphics g=Graphics.FromImage(i))using(Matrix m=
new Matrix()){m.Translate(w,h);m.Scale(s,s);m.Translate(-w,-h);g.Transform
=m;g.DrawImage(t,new Point());}}return i;}}

usage filename z(<1.0), w, h


悪魔は出てきません。

187 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 04:22:48 ]
どういうプログラムか書いてくれると、まとめる時に助かります。



188 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:43:48 ]
>>187
合わせ鏡みたいな何かです。

文字数に余裕があったので回転も加えてみた

using System.Drawing;using System.Drawing.Drawing2D;using f=System.Single;
class P{static void Main(string[]a){using(Bitmap i=new Bitmap(a[0])){M(i,1,f.
Parse(a[1]),f.Parse(a[2]),f.Parse(a[3]),f.Parse(a[4]));i.Save(a[0]+"-d.bmp");}
}static Bitmap M(Bitmap i,f s,f z,f r,f w,f h){if(s>.0001){using(Bitmap t=M((
Bitmap)i.Clone(),s*z,z,r,w,h))using(Graphics g=Graphics.FromImage(i))using(
Matrix m=new Matrix()){m.Translate(w,h);m.Scale(s,s);m.Rotate(r);m.Translate(
-w,-h);g.Transform=m;g.DrawImage(t,new Point());}}return i;}}

usage: filename z(<1.0) r w h

なんか逆に汚くなったような… orz

189 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:39:50 ]
#include <stdio.h>
main(){
int i=0;
i=(i++?i-1:i+1);
printf(%d, i);
}

悪魔が出るかも?

190 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:35:23 ]
>>189
2重引用符忘れてるじゃん。

191 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:20:06 ]
普通にエラーだったな

192 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:49:29 ]
悪魔=コンパイルエラー

193 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:31:40 ]
コンパイル通る環境あるのか?

194 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 01:43:12 ]
printfの所はともかく、?は副作用完了点なので悪魔は出ない

195 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 02:20:44 ]
ネタくれ

196 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 13:13:22 ]
鼻から悪魔がでればそれで十分

197 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 03:52:43 ]
おら、ネタもってきたぞ

空から女の子が降ってくる - ぼくはまちちゃん!(Hatena)
d.hatena.ne.jp/Hamachiya2/20090109/fallingirl

> 文字数が多くて IE6 だと動かないようになっちゃったのが残念です…!
> だれかもっと縮めて!
> (500文字くらいに!)

javascript:(function(){scroll(0,0);H='hamachiya.com/';D=document;F=Math.floor;
R=Math.random;Q=new Image;Q.src=H+'g1.gif';L=function(){var X=F(R()*vw);var Y=0;
var r=F(R()*9)+3;var V=Z(X,Y);D.body.appendChild(V);var f=function(){if(Y+r<vh){V.style.top
=(Y+=r)+'px'}else{V.style.top=vh+'px';V.src=H+'g2.gif';setTimeout(function(){V.src=H+'g3.gif'},550);
clearInterval(t);}};var t=setInterval(f,40)};Z=function(x){var e=D.createElement('img');e.src=Q.src;
var s=e.style;s.position='absolute';s.left=x+'px';s.top=0;return e;};var vw,vh;Q.onload=function(){
vw=(self.innerWidth||D.documentElement.clientWidth||D.body.clientWidth)-Q.width;vh=(
self.innerHeight||D.documentElement.clientHeight||D.body.clientHeight)-Q.height;setInterval(
L,800);Q.onload={}}})()

ブックマークレットなんで1行にしてアドレスバーに突っ込むタイプの奴な



198 名前:デフォルトの名無しさん [2009/01/10(土) 03:57:14 ]
age忘れた

199 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:18:43 ]
512バイトプログラミングか
とりあえずお行儀よいコード
javascript:(function(H,G,D,R,c,a,T){scroll(T=D.title,0);setInterval(function(o,
i){if(R()<.05)a.push(D.body.appendChild(o=new Image)),o.src=H+1+G,i=o.style,i.
position='absolute',i.right=R(o.s=R(o.b=99)*3+1)*90+'%';for(i=0;o=a[i++];)with(
o)b-=s,b<0&&setTimeout(function(){src=H+3+G;onclick=function(){D.title=[T,++c];
D.body.removeChild(this)}},550,src=H+2+G,a.splice(--i,b=1)),style.bottom=b+'%'}
,40)})('hamachiya.com/g','.gif',document,Math.random,0,[])

200 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:36:19 ]
行儀無視 420 bytes
javascript:scroll(H='//hamachiya.com/g',G='.gif',D=document,R=Math.random,a=[],
D.title=0,setInterval(function(){if(R(B=D.body)<.05)a.push(B.appendChild(o=
new Image)),o.src=H+1+G,i=o.style,i.position='absolute',i.left=R(o.s=R(o.b=99)*
3+1)*90+'%';for(i=0;o=a[i++];)with(o)b-=s,b<0&&setTimeout(function(){src=H+3+G;
onclick=function(){D.title++;B.removeChild(this)}},550,src=H+2+G,a.splice(--i,b
=1)),style.bottom=b+'%'},40))

まともなカウンター 499 bytes
javascript:scroll(H='//hamachiya.com/g',D=document,B=D.body,R=Math.random,a=[],
S=B.appendChild(C=D.createElement('b')).style,S[P='position']=A='absolute',S.
top=0,S.fontSize='9em',setInterval(function(){if(R(G='.gif')<.05)a.push(B.
appendChild(o=new Image)),o.src=H+1+G,S=o.style,S[P]=A,S.left=R(o.s=R(o.b=99)*3
+1)*90+'%';for(i=0;o=a[i++];)with(o)b-=s,b<0&&setTimeout(function(){src=H+3+G;
onclick=function(){C.innerHTML++;B.removeChild(this)}},550,src=H+2+G,a.splice(
--i,b=1)),style.bottom=b+'%'},40))

201 名前:デフォルトの名無しさん [2009/02/19(木) 07:12:24 ]
age

202 名前:デフォルトの名無しさん [2009/02/26(木) 16:04:55 ]
AgI

203 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:38:23 ]
sage

204 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 05:41:45 ]
ネタくれ

205 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:57:03 ]
万華鏡

206 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:05:29 ]
無理だろwww

207 名前:デフォルトの名無しさん [2009/03/31(火) 21:12:53 ]
C/C++で、

int*a;

みたいなスペースが入らない記述があるけど、
これって環境依存?依存しない?
遠い昔こういう書き方をしたらエラーになった気がするけど。




208 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:36:57 ]
聞く場所間違っているよ。
【初心者歓迎】C/C++室 Ver.64【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1234193151/
こちらへどうぞ。

最長トークンで分けられるので、int, *, a, ;に分けられる。
ゆえに、スペース(大抵スペースといえば、半角のスペースだろうけど)が、入らなくても問題はない。

エラーになった原因はおそらく
C89までは、ブロックの先頭でしか変数を宣言できなかったから。
すでに、aという識別子が宣言または定義されていたから。
int*a;より前でなんらかの構文エラーをそのまま引きずって、int*a;が構文エラーと見なされたから。
などなどか。

209 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:37:18 ]
仕様書読めよ

210 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:43:59 ]
>>208
thx!


211 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:54:51 ]
www.youtube.com/watch?v=y9uYEM2osYQ
これを作ってみた。テキスト化はやる気が足りなかった。
ESCで終了

:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
:~J_%!f?&3t39w_!!TPgMvBW!K"^_wwM/wCK"#`wwP%d1W!j<PdMOoC<>L@l#l-&@>@Hl#l&0lbjuN
:l,?Mrt2L#Ytg7t&h8=PLbtq@l<Pbteq@"c1.#PfRPi^%&3kf&:Mv7!/I"aw6w9Mw_d!L"O9pR33bf
:)P\j3bfr)5hIH#nB:'Isf,%`V!9hMn#"3i_!&Lf&pk"!!!!"777!"!!!!"777!"!!!!"!!!!*


212 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:54:17 ]
base64のデコードの方だけだけど、jsで2行でできたw
<input onkeyup='event.keyCode-13||window.open("data:text/html;base64,"+
this.value,"","width=400,height=300")' >

213 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 07:59:50 ]
location でいいし

214 名前:デフォルトの名無しさん [2009/04/11(土) 11:39:52 ]
タブをきれいにスペースに置き換えるスクリプトがほしいです。

215 名前:デフォルトの名無しさん [2009/04/11(土) 12:50:48 ]
>>214
www.pinkdragon.net/doc_lib/contents/ja/ruby_man/FAQ-le4ba6t0m4eck3116sclvb.html#a7.2e17.20.e3.82.bf.e3.83.96.e3.82.92.e3.82.b9.e3.83.9a.e3.83.bc.e3.82.b9.e3.81.ab.e5.b1.95.e9.96.8b.e3.81.97.e3.81.9f.e3.81.84.e3.81.ae.e3.81.a7.e3.81.99.e3.81.8c

216 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 22:32:27 ]
pc11.2ch.net/test/read.cgi/hard/1235225061/940

<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+d+'80>',d+'80>'];for(i in a){s[1]+=d+
'30>';for(j in a)s[1]+=e+a[j]+c+a[i]+'>液晶TV';s[2]+=e+a[i].replace(/f/g,'eb').
replace(/0/g,10)+'><div style=width:40;height:40;'+b+a[i]+'>';s[3]+=e+(x=(256+4
*i).toString(16).slice(1))+x+x+c+'fff>'+4*i;s[4]+=e+(x=(y=255-4*i).toString(16)
)+x+x+'>'+y}B.innerHTML=s.join('<tr><th colspan=8>')">

217 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 01:30:34 ]
<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+(f=d+'80>'),f];for(i in a){g=a[i];h=4*i
;s[1]+=d+'30>';for(j in a)s[1]+=e+a[j]+c+g+'>液晶TV';s[2]+=e+g.replace(/f/g,'e\
b').replace(/0/g,10)+'><div style=width:40;height:40;'+b+g+'>';s[3]+=e+(x=(256+
h).toString(16).slice(1))+x+x+c+'fff>'+h;s[4]+=e+(x=(y=255-h).toString(16))+x+x
+'>'+y}B.innerHTML=s.join('<tr><th colspan=8>')">

d+'80>'を1つに
g=a[i];の追加
h=4*i;入れたら文字数変わらないけどコードの改行位置が変わった



218 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 01:50:44 ]
<body id=B bgcolor=gray onload="a='fff,ff0,0ff,0f0,f0f,f00,00f,000'.split(',');
b='background:#';c=';color:#';d='<tr height=';e='<td align=center style='+b;s=[
'<table width=640 cellspacing=0>','文字が滲んで見えないか','カラーバーの中の四\
角が見えるか'+d+'200>','階調が見えるか'+(f=d+'80>'),f];for(i in a){g=a[i];h=4*i
;s[3]+=e+(x=(256+h).toString(16).slice(1))+x+x+c+'fff>'+h;s[4]+=e+(x=(y=255-h).
toString(16))+x+x+'>'+y;s[1]+=d+'30>';for(j in a)s[1]+=e+a[j]+c+g+'>液晶TV';s[2
]+=e+g.replace(/f/g,'eb').replace(/0/g,10)+'><div style=width:40;height:40;'+b+
g+'>'}B.innerHTML=s.join('<tr><th colspan=8>')">

s[*]の順番入れ替えて5行目末の\を消した

219 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 02:15:46 ]
うぜえ

220 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 19:15:18 ]
乙乙

221 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 22:33:43 ]
htmlタグが無かったりタグを閉じてなかったり
いろいろルール違反な感じなのは良いのか?

222 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 22:55:02 ]
動けばいいのだ。
そもそもhtmlタグはもとから省略可能。
終了タグも省略可能なものは結構あるぞ。


223 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 22:59:26 ]
>>221
doctype宣言がないんだからやりたい放題

224 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:08:18 ]
hjhgg

225 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:10:32 ]
<script>m=Math;i=0;setInterval(function f(){_.innerHTML+=(i<17?(m.PI+"").charAt
(i):m.floor(m.random()*10))+(++i%99?"":"<br>")},1)</script><a id=_>

226 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 00:31:40 ]
関数名って必要?

227 名前:デフォルトの名無しさん [2009/05/16(土) 06:51:37 ]
あんまり多くすると重いかも
小数点とか区切り位置とかは手抜き

<body id=B onload="a=prompt('何桁?',b=1e4)>>2;c=d=0;setInterval(function w(){if
(0<a--){e=a*14+14;for(f=c%=b;g=--e*2;c=c/g|0)c=c*e+b*(d?w[e]:b/5),w[e]=c%--g;d=
f+c/b|0;B.innerHTML+=(d+b+'').slice(1)+(a%25?' ':'<br>')}},250)">



228 名前:デフォルトの名無しさん [2009/05/24(日) 05:52:29 ]
wonderfulで動く7行プログラムキボン

229 名前:デフォルトの名無しさん [2009/05/27(水) 20:31:40 ]
cm.xrea.cc/thread/program_002.html#R448 にあったのが
C++版だったので、Cで動くようにしてみた。コンパイラは gcc-4.3.2 で確認。

#include <stdio.h>
int main(int c,char *v[]){unsigned C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xedb88320:0);
for(C=~0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%08lx %s\n",~C,v[1]);return 0;}

230 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 08:02:07 ]
ついでに CRC16
#include <stdio.h>
int main(int c,char *v[]){unsigned short C,t[256];int i,j;FILE *F;
if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;}
for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xa001:0);
for(C=0;(i=getc(F))>=0;C=t[C&255^i]^C>>8);
fclose(F);printf("%04x %s\n",C,v[1]);return 0;}

CRC16の場合、テーブル無しに直接計算するコードもあったりするのだが
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC16.ASM
ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC120.ASM
こういうのをCにしてみるのも面白いかと思った。

231 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 08:57:12 ]
DOS系ディスクイメージのヘッダ出力。perl-5.8.8と DOS版Jperl4 で動作確認。
こんな感じだと、ちょっとしたバイナリデータ確認なんかにも使えそうだと思った。

#!/usr/bin/perl
sub D{print"@_\n";exit 1}&D("$0 [-o offset] <imgfile>")if$#ARGV<0;$F=shift;if(
$F=~/^-/){&D("??: -$'")if"o"ne$';$_=eval(shift);$F=shift}open(F)||&D("$F:$!\n")
;binmode F;seek(F,$_,0);read(F,$_,128);close F;@_=unpack(vCvCv2Cv3V,substr($_,
11,21));$i=0;for((secsize,cluster_secs,reseverd_secs,fat_num,root_dir_max,
seccount,media_disc,fat_secs,trk_secs,heads,hidden_secs)){print"$_:$_[$i++]\n"}
print"VolLbl:'".substr($_,0x2b,11)."'\nFatType:'".substr($_,0x36,8)."'\n"


232 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 20:21:54 ]
>>230
反転してるのかこれ

233 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:07:49 ]
既出を参考にマインスイーパ
コマンドライン引数として「横 縦 地雷数」を「"」で囲んで渡す 例)"9 9 10"
座標は左上を「1 1」として「x y」で入力
#include <stdio.h>
extern"C"long time(long*);int r=time(0),w,h,b,m;char*f,*p,*q;void C(int t){if(
p[t]==63){int i=9,k=0;for(m--;i--;p[t]=q[t]?64:48+k)k+=q[t+i/3*w-w+i%3-1];for(
i=9;!k&&i--;)C(t+i/3*w-w+i%3-1);}}int main(int n,char**v){sscanf(v[1],"%d%d%d"
,&w,&h,&b);n=w++*h;h*=w;f=new char[m=h+w*4+h];for(q=f+w*2;m--;p=q+h+w)f[m]=0;
for(m=n-b;h--;)p[h]=(h+1)%w?r=r*69069+5,(r>>26&63)<64*b/n--?b-=q[h]=1,63:63:10
;for(;puts(p),m*=!q[h];C(h=--n*w+--b))scanf("%d%d",&b,&n);delete[]f;return 0;}

先人たちに感謝を

234 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 04:04:50 ]
おお、久しぶりに大作きたか

しかし過疎ったな…このスレ。活気あった頃が懐かしい

235 名前:デフォルトの名無しさん [2009/09/23(水) 06:31:29 ]
ゲーム音楽にありそう

236 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 06:33:37 ]
誤爆しました


237 名前:デフォルトの名無しさん [2009/09/23(水) 07:28:31 ]
ネタくれ



238 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:24:12 ]
ゲーム音楽

239 名前:デフォルトの名無しさん [2009/09/25(金) 01:29:19 ]
ゲーム音楽という言葉が出たのでスレ違いだけど、
音出しテスト用にデータ量が少ないBGM探してるんだけど
おすすめ何かありませんか?
今はゼビウス使ってますが飽きてきたので
この年代のナムコは簡単でいいBGMが多いね

240 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 01:42:37 ]
ファルコムの曲でもつかえば?
場合によってはライセンスがフリーだし

241 名前:デフォルトの名無しさん [2009/09/25(金) 01:44:17 ]
じゃあxanaduにするわ
あんがと

242 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 02:03:53 ]
MML から WAVE 生成とかできるかな

243 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 09:31:17 ]
>>242
cm.xrea.cc/thread/program_004.html#R867
867-869,920 七行達成ビミョーだけど。


244 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 12:13:33 ]
>>243
なるほど・・・

245 名前:デフォルトの名無しさん [2009/09/30(水) 03:10:07 ]
人生を変える名言・格言 今日の昼飯  ガッカリした観光名所 おまえら花粉対策何してる?
どんな本を読めばいいのかわからない  ニコニコ動画でこれは見とけ!って いう動画ある?
一番欲しい物┌──────────────────────┐...ただし異論は認める
ュー速 三大  |┌‐‐.───────────────────‐.┐|  ν速民 お薦めの漫
決めようぜ ! !|| lニニニl                             ||.先での悲惨な出来事
マイナーだけ...||                                 || 今期で一番面白いア
外食で 何食 .||‐iニニニi.iニニニi──────┬─────────┤| ど.こ.までが一般的な
遅.刻.の.言.い||. L∩,,」L∩,,」         i                 ||.っ て 言 う の ?
あ つ ま れ〜||                   i     ∧_∧      ||った映画 といえば ?
外食600円以.||                   i     (´∀` )     || コロコミックの思い出
がいい 職業 .||                   i    /" ̄ ̄ ゙̄i      || んだらどうするの ?
エリアの魅力.||                   i    | ヽ      |     .||にありがちな事と言え
る.んじゃね.??||                   i    ゝ___丿     ||ν速民ならどうする?
 .未だにニコ.||                   i                 || い奴はいないよな ?
..日の思い出..|!'‐/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ゙̄ヽ───────┘| 必ずレスがもらえるコ
 衝撃の動画├─| ─┐─┐  ナ_ヽヽ     | |..|───────‐┤絶対 入れたい アドオ
がいいよネ  |  |  .ノ  / イ / _  ── . .|            |する理由、やめた理由
野山の魅力 |  \____   ______/            | 一体 どっちが害悪?
お前らの知っ.|         \/                        |.してもらうと嬉しいこと

246 名前:デフォルトの名無しさん [2009/09/30(水) 03:10:48 ]
5日ぶりのレスが誤爆でごめんね、ごめんね;;

247 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 08:34:35 ]
ガタガタじゃないか



248 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:21:33 ]
というほどでもないと思うが

249 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:39:25 ]
「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」:ITpro
itpro.nikkeibp.co.jp/article/Interview/20091104/340019/?ST=develop&P=2

>  ちなみに以前は,「7行プログラミング」という2ちゃんねるのスレによく書き込んでいたのですよ。
> 「トリッキーの1」っていうハンドル・ネームで「6行オセロ」とかを作っていて,面白かったですね。




250 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:04:30 ]
>>249
俺が書こうと思ってきたら書き込まれてたwwww

251 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 03:12:48 ]
ttp://tsushima.2ch.net/test/read.cgi/newsplus/1257697437/
ν即+見て久方ぶりに飛んできました…初期の砂嵐なんかはお題も良かったね。
ttp://www.broadtail.jp/
typedef と詰め詰めのコードがキモいヘッダ画像はさすが悪趣味だね。

252 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:03:40 ]
ぬるぽ

253 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 00:16:35 ]
ガッ

254 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:48:41 ]
>>249
この人part1からいたみたいだな
しかも常連さん

255 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 17:04:13 ]
おれもいつかインタビューで仮眠愚アウトする日がくるかもしれない

256 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 19:17:39 ]
#define MAX 36
typedef long long a,b[MAX];void c(a*e,a*f){a g=*e,h=*f;for(;g?h%=g:0;)g%=h;*e/=
g+=h;*f/=g;}int printf(char*,...),d;int main(){for(b e={1},f={1};printf("B[%d]\
=%lld/%lld\n",d,e[d],f[d]),++d<MAX;){a g=0,h=1,i=d,j,k,l;for(;i--;g=g*l+k*h,h*=
l,c(&h,&g))for(l=f[j=i],k=e[i];c(&k,&l),j;k*=d+1-j)l*=j--;h*=d+1;c(&g,&h);l=h<0
?i:1;e[d]=-g/l;f[d]=h/l;}}

257 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 11:02:20 ]
ベルヌーイ数か
これはC99のソースなんだな








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<71KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef