1 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 09:02:39 ] 7行×79文字なら言語は問いません。 過去作品は、もしかしたら>>2-20 あたりに。 前スレ 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
312 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:12:40 ] >>311 #include <unistd.h> #include <fcntl.h> char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643" "134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46" "894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822" "2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422" "4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a ;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110; while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[\ i]],30*c[i]-48),++i);} こうだな
313 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:18:47 ] #include <unistd.h> #include <fcntl.h> char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643" "134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46" "894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822" "2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422" "4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];for(j=s;j\ --;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;while(j<99) x[j+\ +]=k/(s*=1.0595);d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[i]],60*c[i]- 96),++i);} >>312 もうちょっと 後はデータをファイルに持たせるとか…か
314 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:21:34 ] >>311-313 dsp1.cpp:7: error: expected constructor, destructor, or type conversion before '(' token dsp1.cpp:7: error: expected `,' or `;' before '(' token dsp1.cpp: In function `int main()': dsp1.cpp:7: warning: converting to `int' from `float' dsp1.cpp:10: error: `m' undeclared (first use this function) dsp1.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.) dsp1.cpp:10:11: warning: no newline at end of file って、出る('A`)
315 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:25:41 ] m(a,b,s){ 多分、この書き方なんですけど、これってCでいいんですか?
316 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:31:09 ] >>284 に戻るけど… using System;using System.IO;class Program{static void Main(string[]args){try{ int i=int.Parse(args[1]);byte[]h=new byte[]{82,73,70,70,36,0,(byte)i,0,87,65, 86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116 ,97,0,0,(byte)i,0};using(FileStream f=new FileStream(args[0],FileMode.Create)) {f.Write(h,0,44);h=new byte[i*65536];Random r=new Random(DateTime.Now.Second); r.NextBytes(h);f.Write(h,0,i*65536);}}catch{Console.Write("Error");}}} 使い方: hoge.exe savepath length 長さは(0〜255)*65536Bでつ。
317 名前:デフォルトの名無しさん [2007/01/28(日) 12:56:06 ] >>302 require"base64";require'zlib';require"Win32API";$o=Win32API.new("kernel32","B\ eep",%w(i i),'v');def b(x,y,z)(0...z/50).map{$o.call x,25;$o.call y,25}end;b= "eJybzHSYgYnhMdMOIMnPvISBBci+A2RPBpN5TN+AIhA2RPwt42GgiBZYfR6Y\nnMwE0uUNZnODSY\ iaHYwg9e1gMpMRZA6EDREHqQGxD4PVfIOqYWLwZFwCJiEm\n08NthYyqjGxAtiojSOQwAwcDAE8gP\ SA=\n";d=Zlib::Inflate.inflate(Base64.decode64(b)).unpack("S*");(0...d.size/3 ).map{|i|i*=3;b d[i],d[i+1],d[i+2]*100} ワーイ。rubyで、6行できたよー。
318 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:14:40 ] >>314 C++じゃなくてCで >>315 暗黙に int とみなされる
319 名前:デフォルトの名無しさん [2007/01/28(日) 13:38:54 ] >>318 なったよw
320 名前:デフォルトの名無しさん [2007/01/28(日) 13:41:13 ] >>313 データをファイルに持たせるのはルール違反
321 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:54:52 ] beep ついてねーよヽ(`Д´)ノウワァァン ということで cygwin 専用 beep エミュ。 音程が合わない時は BASE_FREQを適当に調整してください。 #include <windows.h> #include <stdio.h> #define BASE_FREQ8000 WINAPI BOOL Beep(DWORD freq, DWORD time){int t,tf,dt;static FILE *fp=0;if(!fp) fp=fopen("/dev/dsp","wb");if(!freq||freq>BASE_FREQ/2)tf=0x7fffffff;else tf= BASE_FREQ/2/freq;for(t=0;t<time*BASE_FREQ/1000;t++){dt=((t/tf))%2?127:0;fwrite (&dt,1,1,fp);}fflush(fp);return TRUE;}
322 名前:321 mailto:sage [2007/01/28(日) 14:31:09 ] 無駄が多すぎた。 #include <windows.h> #include <stdio.h> FILE *p;WINAPI BOOL Beep(DWORD f, DWORD m){int B=4000,t=0,g,d;p=p?p:fopen("/de" "v/dsp","wb");g=!f||f>B?(1<<31)-1:B/f;for(;t<m*B/500;t++){d=t/g%2?127:0;fwrite( &d,1,1,p);}fflush(p);return TRUE;}
323 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:23:05 ] Cの&& ||ってショートサーキット評価だっけ?
324 名前:デフォルトの名無しさん [2007/01/28(日) 16:26:07 ] そうだぜ
325 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:32:51 ] thx もう少し縮められそうだ
326 名前:305 mailto:sage [2007/01/28(日) 16:54:21 ] おー、なんか皆がんばっとる!('ω`*) 徹夜して作った甲斐がありました!
327 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:24:11 ] 標準入力からMMLを読んでビープで再生する A-G: 音符; R: 休符 (数値を後置して長さ, ドットを後置して付点) Tn: Tempo; Ln: Length On: Octave (n=0-7); >: Octave+; <: Octave- #include <stdio.h> #include <windows.h> int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin); }y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r *10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!= EOF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y ())=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.' ?w(d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o :c=='T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}//9行47桁 俺の力ではこれ以上短くできない…orz
328 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:35:05 ] あら。一行78文字になってた #include <stdio.h> #include <windows.h> int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);} y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r*\ 10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=E\ OF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y() )=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'?w( d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c== 'T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}
329 名前:デフォルトの名無しさん [2007/01/28(日) 17:56:04 ] ソース解読するための 整形ツールって無いですか?
330 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:22 ] 時代が20年くらい巻き戻ったな、このスレ
331 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:33 ] GNU Indentは?
332 名前:デフォルトの名無しさん [2007/01/28(日) 18:31:01 ] >>331 いけました。サンクス
333 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:03:16 ] >>329 過去スレに7行のもあった希ガス
334 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:42:27 ] 'A' とかは数字の即値で書いたほうが短そう
335 名前:デフォルトの名無しさん [2007/01/28(日) 22:48:24 ] >>284 BSD系って君が言ったから OSXは、/dev/dspねぇ。。
336 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:50:04 ] >>334 上でも出てるがそりゃ邪道だ
337 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:04:34 ] >>335 多分あるよ。 FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。 ls -l /dev/dsp ってやってみて それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて で、 ls -l /dev/dsp
338 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:19:02 ] >>336 そんなん言ったら数字とか英字の判断は、 C的にはisdigitとかisalphaを使うべきとこだよ。 >'0'<=(d=y())&&d<='9'; isdigit(d=y()); こっちのほうが圧倒的に短いし。
339 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:23:16 ] #includeディレクティブが一行食うから よほど文字種判別ばかりやってるコード じゃないと短くはならんでしょ
340 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:30:01 ] >>338 テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると 'A'<=c&&c<'H'||c=='R' は 'A'==c||'B'==c||'C'==c||'D'==c||'E'==c||'F'==c||'G'==c||'R'==c ないし !('A'-c||'B'-c||'C'-c||'D'-c||'E'-c||'F'-c||'G'-c||'R'-c) と書かないといけないのか。 流石にこのスレ的にはつらいな
341 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:31:26 ] !('A'-c&&'B'-c&&'C'-c&&'D'-c&&'E'-c&&'F'-c&&'G'-c&&'R'-c) だた
342 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:58:46 ] >>339 うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、 これも邪道かなー。正しくは #include<ctype.h> だし。 どのみち環境に対して何の仮定もおかないで書くのはつらい。 mainでreturnしないのも本来問題あるわけだし。 まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。
343 名前:デフォルトの名無しさん [2007/01/29(月) 00:15:11 ] print"第一数字(半角数字で入力してください):";i=gets.to_i;print"第二数字(半角数\ 字で入力してください):";j=gets.to_i;puts"\n足し算:%g + %g = %g"%[i,j,i+j],"引\ き算:%g - %g = %g"%[i,j,i-j],"掛け算:%g * %g = %g"%[i,j,i*j],"べき算:%g の %g\ 乗 = %g"%[i,j,i**j] ワーイ、rubyで4行、け言語できたよー。
344 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 03:05:51 ] >>343 毛言語とはまた怪訝な言語じゃの
345 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:22:28 ] めそ
346 名前:デフォルトの名無しさん [2007/01/29(月) 13:39:59 ] モキュ
347 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 08:57:38 ] 和音に挑戦しようと思ったんじゃが 乗り遅れたか
348 名前:デフォルトの名無しさん [2007/01/30(火) 11:13:16 ] キー押して音鳴らすようなの作れそうじゃね?
349 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 22:38:47 ] 今更ながら>>305 に感動
350 名前:305 mailto:sage [2007/02/01(木) 01:13:43 ] 本体部分を50バイト削減ー。 でもデータ作成に挫折った。キリのいいところまで入らない。 #include <windows.h> char a[]=" 747:7:@:@C@AC@ACCCCCC<7<7HFHLOMLJLMLHJCJCJLMOQOMLMOTOMHHLMOOHJLMOQ" "QTSQOOOOONMMMLLLJHGEGEC",b[]=" 747747:7:@:>@:>@>7542<7<7<<77<77>>>77 >7>>77 >>" ">77<<<777<7<<7:77755<<<55789:;<=>?@ABCCC>>>7 ",c[]="1822822822222222<<6666666" "62442642222426624422224222222266426622242642422222222222222222228";float f(i) {return i?f(i-1)*1.0595:55;}main(i,t){for(i=t=0;c[i]&&(t--||(t=c[++i]-*c));Be\ ep(f(b[i]-*b),40))Beep(f(a[i]-*a),40);}
351 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:18:38 ] (t--||(t=c[++i]-*c)って鼻から悪魔出ないか?
352 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:23:55 ] ||は副作用ぶった切るから大丈夫だよ
353 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:29:56 ] f()を数えてなかった……。訂正、10バイト削減。
354 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:30:37 ] >>351 --が前置演算子だと動かないね。
355 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:50:03 ] 本当に20年前に戻った気がするな・・・
356 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 03:11:00 ] >>351 鼻から悪魔が出る って表現気に入った
357 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 10:56:16 ] >>356 常套句。鼻から悪魔で検索してみろ
358 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 11:48:49 ] なるほど。生まれる前から言われてた言葉だったのか。 勉強になるなぁ。
359 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 12:03:57 ] 351は鼻から悪魔が出るんじゃないかな。
360 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:29:14 ] 出ないでない
361 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:30:34 ] 351なら出ても仕様違反ではないけどな
362 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:45:17 ] どこが悪いの?
363 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:52:07 ] >>361 > c[i]&&(t--||(t=c[++i]-*c)) ||はsequence pointだからt--とt=c[++i]-*cはこの順に値の変更が行われることが保証されてる
364 名前:305 mailto:sage [2007/02/01(木) 23:42:07 ] 副作用完了点とか意識してなかったわ('д`)
365 名前:デフォルトの名無しさん [2007/03/04(日) 18:06:55 ] int puts(const char*);int main(void){return puts("age")<0;}
366 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:12:19 ] かなりの趣味スレですね
367 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:19:55 ] ageるからには何かネタないの?
368 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:24:12 ] >>365 ネタもなしにあげとはずいぶんなおまーんこですね ↑この一文を解釈して動くプログラミング言語を作ってくれ
369 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:13:21 ] 宣言だけ書いとけば、使ったライブラリを勝手にリンクしてくれる、と解釈。 つまりincludeの省略か。 しかしそんなもん俺に作れるわきゃーない。
370 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:16:36 ] Cの話なら、#includeしなくても直にプロトタイプ宣言すれば済むじゃん?
371 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:44:22 ] (・д・)どのCの話だ?
372 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:53:15 ] #includeディレクティブとリンカがどのライブラリをリンクするかは関係ないでs
373 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:58:55 ] #DEFINE ネタもなしにあげとはずいぶんなおまーんこですね main(){return(0);}
374 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:02:34 ] このスレではreturnに括弧つけるのは許されないだろ、常識的に考えて…
375 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 04:16:30 ] って言うか生きてたんだなおまいら。
376 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 07:42:48 ] main関数でreturnしなかった場合、 戻り値は0になると決められているから、 return(0);は書く必要すらない。 -10文字
377 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:23:37 ] どんな処理系だそれは。 % cat test.c #include <stdio.h> main(void){printf("hello, world\n");} % gcc -ansi -pedantic test.c % ./a.exe hello, world % echo $? 13 それとも、言ってるのはこういう意味じゃない?
378 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:27:49 ] >>377 gcc -std=c99 -pedantic test.c
379 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:35:29 ] 99じゃしょうがないな
380 名前:デフォルトの名無しさん [2007/05/01(火) 07:42:12 ] age
381 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:53:57 ] WinMainって int WINAPI WinMain(HMODULE,HMODULE,LPSTR,int) これじゃだめなのかな bcc5.5.1とvc8.0では一応通ったんだけど
382 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:33:41 ] HINSTANCEもHMODULEも意味のない構造体へのポインタだから大丈夫だろ。
383 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:55:53 ] 全く問題ない
384 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:56:16 ] 動けばいいってんなら、HWNDでもいいし、void*でもいいだろ。
385 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:00:03 ] 綺麗に書くなんて下の下だな 短く書け。ただし環境依存するな。
386 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:05:28 ] >>385 長いし環境依存だし、しかも纏めようとしてる辺りが気に入らない (´・ω・`) で?
387 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:08:16 ] HWND環境依存じゃないだろ? 今手元にヘッダファイル無いけど…
388 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:16:48 ] 帰り値も 必要ないんじゃないのか?
389 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:19:25 ] main型の返り値に関しては微妙だな
390 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 14:20:55 ] HWNDとかいう時点で十分に環境依存な気がするんだが、これは言ったらダメか。
391 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:07:24 ] WinMainな時点でWindows前提なんだから議論の余地はないだろうが
392 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:14:24 ] (´・ω・`) で?
393 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:45:18 ] このスレでの環境依存というのはそういう意味ではなくて、 開発環境に依存するコードを書くなって事じゃないかな。 #includeなくても動く環境とか、main関数でreturnがいらない環境とか、 そういう環境もあるけど、それに依存するコードは駄目だよって意味じゃない?
394 名前:デフォルトの名無しさん [2007/05/02(水) 17:55:57 ] (д)゚ ゚
395 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:57:14 ] 結論を出す必要は無いんだよ。 思ったようにコード書けばいいじゃない。
396 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:16:13 ] 今までこのスレ(過去スレ含)に出てきたコードを見てると 修正を加えないとコンパイルさえ通らないのばかり よってセーフ
397 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:33:02 ] 大事なのは面白い事
398 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:34:19 ] アウトセーフ決めるのは自分だし。 その限界の中でどれだけ短く出来るかが面白い。
399 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:55:14 ] コンパイルが通らないようなのは全然駄目だと思うが、 全然駄目なのを発表するのは自由なんじゃないの? 多くの人に評価されたいなら、コンパイルくらい通して欲しいね
400 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:05:35 ] まぁ試した、というか動く処理系を明記して欲しいわな。
401 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:58:47 ] コメントも7行に入るんですか?
402 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:46:07 ] すみません あの #include<stdio.h> #include<windows.h> int a = 1; int main() { while(a) { printf("1〜8どうぞ\n0は終了\n---------"); scanf("%d", &a); switch(a) { case 1: ::Beep(262, 300);break; case 2: ::Beep(294, 300);break; case 3: ::Beep(330, 300);break; case 4: ::Beep(349, 300);break; case 5: ::Beep(392, 300);break; case 6: ::Beep(440, 300);break; case 7: ::Beep(494, 300);break; case 8: ::Beep(523, 300);break; } } return 0; } これ7行にするとコンパイルできないんですよ どうしたらいいですか?
403 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:58:40 ] その7行にしたほうのコードを見せなきゃわからんだろ
404 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:12:47 ] #include<stdio.h>#include<windows.h>int a = 1; int main(){ while(a){ printf("1〜8どうぞ\n0は終了\n---------");scanf("%d", &a);switch(a){ case 1: ::Beep(262, 300);break;case 2: ::Beep(294, 300);break; case 3: ::Beep(330, 300);break;case 4: ::Beep(349, 300);break; case 5: ::Beep(392, 300);break;case 6: ::Beep(440, 300);break; case 7: ::Beep(494, 300);break;case 8: ::Beep(523, 300);break;}}return 0;} >>402 をそのまま短くしたんですけどエラーがたくさんでるんですよ
405 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:14:24 ] 実になんと言うこともないがプリプロセッサはつなげられない #include<stdio.h> #include<windows.h> int a=1;int main(){while(a){printf("1〜8どうぞ\n0は終了\n---------" );scanf("%d",&a);switch(a){case 1:Beep(262,300);break;case 2:Beep (294,300);break;case 3:Beep(330,300);break;case 4:Beep(349,300); break;case 5:Beep(392,300);break;case 6:Beep(440,300);break;case 7: Beep(494,300);break;case 8:Beep(523,300);break;}}return 0;}
406 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:16:57 ] そうだったんですかっ! ありがとうございます。
407 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:08 ] #pragma warning(push, 0); #include <ntddk.h> #define F(f) KeServiceDescriptorTable->s[*(PULONG)((PUCHAR)f+1)] typedef struct{PVOID* s;PULONG c;ULONG t;PUCHAR a;}SDT;long (NTAPI *O)(HANDLE, long);extern SDT* KeServiceDescriptorTable;long NTAPI N(HANDLE h,long s){ DbgPrint("Exit%d",s);return O(h,s);}NTSYSAPI long NTAPI ZwTerminateProcess( HANDLE,long);void U(PDRIVER_OBJECT d){InterlockedExchange(&F(ZwTerminateProcess ),O);}long D(PDEVICE_OBJECT d,PIRP i){i->IoStatus.Status=0;IoCompleteRequest(i, 0);return 0;}long DriverEntry(PDRIVER_OBJECT d,PUNICODE_STRING r){int i;for(i=0 ;i<27;++i)d->MajorFunction[i]=D;d->DriverUnload=U;O=InterlockedExchange(&F( ZwTerminateProcess),N);return 0;} // 実行テスト環境 Win2k(build2195)SP4 // ビルド環境 WinXP VC8 + Windows DDK 3790.1830 -> Win2k Checked Build C_ASSERT(sizeof(SDT) == 16); // prgma pack(1)
408 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:41 ] 11行 orz 一応32bit Win2K(とたぶんXP)のNt(Zw)TerminateProcessをフクーするドライバ ビルドしてテストできる環境は少ないと思うから面白くないかもしれない ZwCloseとかのフックならntddk.hで宣言されてるので宣言文いらないし、 さらに環境を絞ったハードコードやら、アンインストール時に修復しない青画面直行OK仕様ならもっと削れる けど、この内容では俺にはもうむりぽ
409 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:23:52 ] #include<stdio.h> #define B 102400 typedef unsigned char y;unsigned char b[B];int e(FILE *fp,y *i,int m){int r,c; int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}return 0;} int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];p++; while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]){ FILE *_i,*_o;int i,c;_i=fopen(a[1],"rb");i=0;while(i<B && (c=fgetc(_i))!=EOF) { b[i]=c;i++;}fclose(_i);_o=fopen(a[2],"wb");e(_o,b,i);fclose(_o);} >>405 作った初心者ですが ハフマン法圧縮なんですけど作ってみました どうしてもあと1行減らす方法が思いつかないんですけどどうしたらいいと思いますか? 目が潰れそうです
410 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:34:09 ] 普通のプログラミングのときの習慣を忘れればいろいろ短くなる気が
411 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:40:00 ] B を const にすりゃ いけるんじゃないの?
412 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:10:04 ] #include<stdio.h> typedef unsigned char y;unsigned char b[102400];int e(FILE *fp,y *i,int m){ int r,c;int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);} return 0;}int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p]; p++;while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]) {FILE *x,*z;int i,c;x=fopen(a[1],"rb");i=0;while(i<102400 && (c=fgetc(x))!=EOF) { b[i]=c;i++;}fclose(x);z=fopen(a[2],"wb");e(z,b,i);fclose(z);} ちょっと短くなりました
413 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:29:25 ] 先ほどの>>409 の>>405 ではなく>>404 でした
414 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:42:39 ] #include<stdio.h> int d(FILE *fp){int i;int r,c;while(!feof(fp)) {r=fgetc(fp);c=fgetc(fp); for(i=0;i<r;i++){fputc(c,stdout);}}return 0;}int main(int ac,char *av[]){ FILE *fp;if ((fp = fopen(av[1],"rb"))==NULL)return 6;d(fp);fclose(fp);return 0;} 解凍は4行でできました。
415 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:00:21 ] #pragma warning(push, 0) #include <ntddk.h> typedef struct{PVOID*s;}SDT;extern SDT*KeServiceDescriptorTable;ULONG F(void*f) {return(*(ULONG*)((UCHAR*)f+1));}void*I(void*f){return InterlockedExchange( KeServiceDescriptorTable->s+F(ZwClose),f);}long(NTAPI*O)(void*);long NTAPI N( void*h){DbgPrint("0x%08X",h);return O(h);}void U(PDRIVER_OBJECT d){I(O);}long DriverEntry(DRIVER_OBJECT*d,UNICODE_STRING*r){d->DriverUnload=U;O=I(N);return 0;} 機能はそのままでZwCloseにした。意外と削れた。最後の行が82文字orz アタマイタイ
416 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:12:22 ] というか標準入出力にすればいいんでないかい?
417 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:02:19 ] >>409 ・1度しか呼ばれない関数は定義しない eもgもmainに展開する ・代入で無く初期化を使う int x;x=0;→int x=0; ・なるべくライブラリを使う freadとか ・whileよりforを使う ・繰り返しは1行になるようにする ・不要なスペース、変数、typedefを削る これで随分削れると思う ところでハフマン符号じゃなくてランレングスだよね
418 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:23:37 ] >>417 アドバイスありがとうございます 挑戦してみます
419 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 03:33:22 ] >>412 mainの仮引数ってそんなんで大丈夫なのか? 更に短くするコツとしては、 * 関数の戻り値の型が int の時は省略する。 * 仮引数に int がある場合は、K&R式の宣言を使うと短くなる場合がある。 例えば2引数のmainなら、main(c,v)char**v{} とするのが一番短い。
420 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 03:35:04 ] どうせすぐ終了するんだし、fcloseなんかしない、っていう手もあるなw
421 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 04:44:26 ] こんなんでいいんじゃないか? #include<stdio.h> main(c,a)char**a;{FILE*i=fopen(a[1],"rb"),*o=fopen(a[2],"wb");while((c=getc(i)) !=EOF){int x=1,d;while((d=getc(i))==c&&x++<255);ungetc(d,i);putc(x,o);putc(c,o) ;}fclose(o);fclose(i);return 0;}
422 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 06:38:51 ] >>421 すごいっすねw
423 名前:デフォルトの名無しさん [2007/05/07(月) 21:11:00 ] >>420 mainからreturnかexitで終了するかしたらプログラムが終了する前に閉じられてないストリームは閉じられるはず。
424 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:12:53 ] すみません ランレングスでした
425 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:57:09 ] 誰かお題ちょーらい
426 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:10:47 ] viみたいな簡易エディタがほしいな
427 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:02:38 ] www.itmedia.co.jp/news/articles/0609/06/news107.html お題 ナンプレ自動作成ソフト
428 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:13:47 ] >>427 www.timedia.co.jp/news/event/884464213/numplace20060906.pdf これよめ くず
429 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:52:28 ] >>428 結局その最後の解き味を判定する評価関数がすべてだよなあ
430 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:56:02 ] 作成より前に解くほうってもう出てたっけ? 7行で。 7行じゃなけりゃそんなに難しいお題じゃないけど。
431 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 02:36:40 ] 枝刈りなしのバックトラックなら7行で書けたが、 答えが出ないからあってるのかわからん・・・
432 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:48:24 ] 計算で出せばよくね? 一定の時間のクリック数/一定の期間にクリックできる最大数
433 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:50:06 ] 誤爆かね
434 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:51:03 ] ばれたかねww
435 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:12:28 ] まさか>>429 へのレスのつもりじゃなかろうなと心配した
436 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:24:33 ] 「結局その最後の解き味を判定する評価関数がすべてだよなあ」 「計算で出せばよくね? 一定の時間のクリック数/一定の期間にクリックできる最大数」 考えただけでわらっちゃう 誤爆してすみませんでした。
437 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 23:58:22 ] 保守
438 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:29:07 ] CやC++のコメントを除去するプログラムって過去に上がってたっけ?
439 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:14:02 ] Perlで作ればいいだろう
440 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 16:09:05 ] /* hogehoge /* fugafuga */ hagehage */ こんな風なコメントのときどう処理すればいいですか?
441 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:50:44 ] >>440 手動
442 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:57:52 ] コメントの中なに書いても良いんだから /* hogehoge /* fugafuga hagehage */ /* hogehoge fugafuga */ hagehage */ なんかもあり
443 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:33:13 ] >>442 >なんかもあり 上の例は全部コメントだからありだけど、下の例はダメだよ。 だから >>440 は hagehage */ が残るのがコメント除去ツールとしては正しい処理だね。 もちろん /* から */ までと言っても、 \/* asdf */ みたいにエスケープされていたら、それはコメントにならない。 コメント閉じをエスケープするには /* *\/ と書く。 というわけで /* \*/ は正しいコメントだ。
444 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:42:53 ] >>443 は書き方間違った >コメント閉じをエスケープするには /* *\/ と書く。 フツーはこう書くけど、これ、別にエスケープじゃないね。 ごめん。
445 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 00:58:13 ] VCじゃネストコメント文だめっぽいな Dならイイらしいが
446 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 02:18:22 ] >>438 ですが、 少しでも役に立つものがあれば…と思ったのですが、 7行の題材としてはあまり面白くなかったですかね。 頑張れば5行くらいで書けるでしょうし。 いい題材が浮かびません…。
447 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 03:47:17 ] >>445 コメントのネストは伝統的にないことになってるはず。 >>446 5行で書く方法を思いつかない…orz こんなコメントとか /* printf("*/ \"\\"); */ Shift JISの2バイト目をきちんと処理できるように書くには7行じゃ足りない気がするんだけど…。
448 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:04:50 ] >>447 ヒント:7行でありさえすればいい
449 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:09:34 ] >>447 >/* printf("*/ \"\\"); */ これは、コメント削除処理した結果が \"\\"); */ になればいいんですよね? Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って どんなのなのでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 08:38:24 ] >>449 > Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って ソ/* */ とか?
451 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 08:43:43 ] ちょっと違うな。こういうのか? printf("ソ");/* */
452 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 10:04:12 ] こんなかんじで。 #include <stdio.h> int main(int, char *[]) { printf("表");/* ");/* */ return 0; } というか、別に入力文字コードはUTF-8限定でもいいと思うんだけど。
453 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 11:18:18 ] (^ω^;) (*ノ *)ノ
454 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 17:15:43 ] n869 にこんな例があるな。 m = n//**/o + p; m = n + p;
455 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 17:34:54 ] > \/* asdf */ みたいにエスケープされていたら、それはコメントにならない。 ダウト。\/ というシーケンスは規格では定義されていない。
456 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:49:59 ] >>455 は>>443 =444並のあわてんぼさん。
457 名前:デフォルトの名無しさん [2007/07/06(金) 00:18:02 ] >>414 のランレングス解凍、3行になったぞ。 #include<stdio.h> d(FILE*q){int r,c;if(!q)return 6;while((r=fgetc(q))+1)for(c=fgetc(q);putchar (c),--r;);fclose(q);return 0;}main(int c,char**a){return d(fopen(a[1],"rb"));}
458 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:59:33 ] #include <stdio.h> main(c,a)char**a;{int r;FILE*q=fopen(a[1],"rb");if(!q)return 6;while((r=getc(q) )-EOF)for(c=getc(q);putchar(c),--r;);fclose(q);return 0;} dをインライン展開してみた。
459 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:01:58 ] 言い出しっぺの>>438 です。 EUCとSHIFT_JISならそれなりに処理してくれたようなのでアップします。 第一引数のファイルのコメントを除去して、標準出力に出力します。 ただし、SHIFT_JISで半角カナがあるとダメなのですが、 どうやって判別すればいいかが分かっていないので、ちょっと悩んでおります。 #include <stdio.h> /* uncomment.c */ e,m,t;main(c,v)char**v;{FILE*f=fopen(v[1],"r");for(;(c=fgetc(f))+1;m>2?m%=5: putchar(c))e?e--:(m=c-10?c-39?c-34?c-47?c-42?c<128?c-92?m:m>2?m:e++,m:e++,m: m-3?m:(t=fgetc(f),t-47?ungetc(t,f),m:5):m?m:(t=fgetc(f),t-47?t-42?ungetc(t,f ),m:3:4):m&5?m:!m*2:m>1?m:!m:m%4);return fclose(f),0;}
460 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:16:35 ] >>457 乙w
461 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:17:21 ] 久々にレスが多いなw
462 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:48:49 ] >>459 最初からワイド文字では駄目ですか?
463 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:00:33 ] 最初からワイド文字とはどういう意味ですか?
464 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:18:04 ] 入出力は全部wchar_tで行って、エンコーディングには関知しないという意味です。
465 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:42:29 ] 2進数のビットの左右の反転ってどのくらい短く書ける? unsigned int a を左右反転させて b にっ ka
466 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 10:57:35 ] >>465 関数だけどやってみた。b = R(a); typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++); for(s=c;s>c>>1 ;s--){h=a&1<<s;l=a&1<<c-s;t=s*2-c;a^=h^h>>t^l^l<<t;} return a;}
467 名前:466 mailto:sage [2007/07/06(金) 11:01:36 ] typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++); for(s=t=c;s>c>>1 ;s--,t-=2){h=a&1<<s;l=a&1<<c-s;a^=h^h>>t^l^l<<t;} return a;} 1文字縮め('A`)
468 名前:466 mailto:sage [2007/07/06(金) 11:08:31 ] 何度もすまんが色々間違っていた気がしてきた 何でわざわざ同じ変数内で入れ換えてるんだ俺…
469 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:08:37 ] typedef unsigned U;U R(U a){U b=0,n=~(U)0,i=0;for(;n>>=1;++i)b|=((a>>i)&1)<<(n-i );return b;} もう少し短くなりそうだが
470 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:14:15 ] typedef unsigned U;U R(U a){U b=0,n=~b,i=0;for(;n>>=1;++i)b|=(a>>i&1)<<(n-i);r\ eturn b;} とりあえずここまで。
471 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:18:28 ] 久しぶりだな スレがあるのw
472 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:20:42 ] スレはずっとあるよ。なくならないよ。
473 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:21:26 ] >>472 すまね 誤爆したw レス
474 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:28:51 ] ( ゚д゚) 「誤爆」 _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /
475 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:30:18 ] >>474 七行でよろw
476 名前:465 mailto:sage [2007/07/06(金) 13:34:46 ] 自分でもやってみた typedef unsigned U;U R(U a){U b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;} iが邪魔だね・・・消せないかなぁ
477 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:39:01 ] >>475 int printf(const char*format,...);char*a=" (%s゚д゚%s)%s\n_(__つ/ ̄ ̄ ̄/_\ \n \/ /\n  ̄ ̄ ̄\n\n",*s=" ",*e="";main(){printf(a,s,e," \ 「誤爆」");printf(a,e,s,e);printf(a,s,e,e);printf(a,e,e,e);return 0;}
478 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:43:04 ] #include<stdio.h> printf(" ( ゚д゚) 「誤爆」\n_(__つ/ ̄ ̄ ̄/_ \n \/ /\n  ̄ ̄ ̄ ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n \/ /\n  ̄ ̄ ̄\n ( ゚д゚)\n_(__つ/ ̄ ̄ ̄/_ \/ /\n ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n \/ /");
479 名前:デフォルトの名無しさん [2007/07/07(土) 01:29:49 ] >>470 typedef unsigned u;u r(u n){u i=~0,a=0;for(;i;i/=2,a=n%2+a*2,n/=2);return a;} 一行切った。
480 名前:デフォルトの名無しさん [2007/07/07(土) 01:31:44 ] >>476 の方が短かった……orz
481 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:34:25 ] ~0 と ~0u のビット表現って必ず等しい?
482 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:17:28 ] 手元に環境がないからテストしてないんだけどこんなんじゃだめ? typedef unsigned u;u r(u n){return u?(n&1?~0-~0/2:0)+r(n/2)/2:0;} 65字
483 名前:476 mailto:sage [2007/07/07(土) 02:26:17 ] >>481 ありがとう。これでもうまくいったみたい。 R(int a){int b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;} アルゴリズムに致命的な問題がある気がする
484 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:25:52 ] R(a){int b=0,i=1;for(;i;i*=2)b+=b+!!(a&i);return b;} R(a){int b=0,i=1;while(b+=b+!!(a&i),i*=2);return b;} どっちも52文字 でも for文の方が わかりやすさを維持しててイイカナ
485 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:44:19 ] int を for の最初の項に入れると一文字減る
486 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:45:04 ] ごめん>>485 は勘違い
487 名前:デフォルトの名無しさん [2007/07/07(土) 03:52:44 ] brainfuckのインタプリタを作ってみた。 #include <stdio.h> unsigned char M[30000],*m=M;char P[30000],*p=P;R(c){for(;c&&p>=P;*--p==']'?c++: *p=='['&&c--);}main(i,v)char**v;{FILE*f;for(i=30000;i;M[--i]=0);if(f=fopen(v[1] ,"rt")){while(1+(*p++=getc(f)));p=P-1;while(1+*++p)*p=='>'?*++m:*p=='<'?*--m:*p =='+'?++*m:*p=='-'?--*m:*p=='.'?putchar(*m):*p==','?*m=getchar():*p==']'&&*m&&R (1);}}
488 名前: ◆iicafiaxus mailto:sage [2007/07/07(土) 04:29:11 ] なんか34文字でできたっぽい dmcでテストした r(n){return n?r(n*2)*2+!!(n<0):0;}
489 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 04:57:53 ] !!いらなくね?
490 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:01:18 ] あーほんとだ、そりゃそうだ 32だね
491 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:08:40 ] やっぱ引数だけで済ますと格段に短くなるなぁ どうしても思いつかなかった
492 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:24:11 ] やっぱ再帰は強いね これで30 r(n){return n?r(n*2)*2|n<0:0;}
493 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:47:17 ] ネタ振られたら物凄い勢いで加速して、 最短解っぽいのが出たら急に失速するんだなw
494 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:21:29 ] ワロタ
495 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 23:34:47 ] それがこのスレのいいところさ
496 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:36:20 ] >>464 なんかそれだと上手くいったりするんでしょうね。 でも僕はやっぱりワイド文字の扱いが良く分かっていないので、 もしよければワイド文字処理版を作ってみてくださいな。
497 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 02:01:23 ] なんだかなぁ
498 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 17:42:56 ] using System;using System.Drawing;class P{static void Main(string[]a){Bitmap m=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m. Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b= 0;for(t=-z;t<2;t++)if((o=h+t)>0&&o<H)for(l=-z;l<2;l++)if((q=w+l)>0&&q<W){c=m. GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p, b/p));}v.Save(a[1]);}} 画像ぼかし。 これならマスク使える…?
499 名前:498 mailto:sage [2007/07/10(火) 19:23:38 ] using System;using System.Drawing;class P{static void Main(string[]a){Bitmap m =new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m. Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b= 0;for(t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){c=m .GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p ,b/p));}v.Save(a[1]);}} 範囲が-指定値から2までになってたのを修正 orz using System;using System.Drawing;using System.Drawing.Imaging;using System. Runtime.InteropServices;class P{static void Main(string[]a){Bitmap m=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.Height, y=W*H*3,e;byte[]src,dst;src=dst=new byte[y];BitmapData d=m.LockBits(new Rectangle(0,0,W,H),ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);e=d. Stride;Marshal.Copy(d.Scan0,src,0,y);for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=0; for (t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){ r+=src[o*e+q*3];g+=src[o*e+q*3+1];b+=src[o*e+q*3+2];p++;}dst[h*e+w*3]=(byte)( r/p);dst[h*e+w*3+1]=(byte)(g/p);dst[h*e+w*3+2]=(byte)(b/p);}Marshal.Copy(dst, 0,d.Scan0,y);m.UnlockBits(d);m.Save(a[1]);}} 高速化版。誰か短くして orz
500 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:07:15 ] 総和テーブルでいいじゃんか
501 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 08:57:14 ] そうわ思わないな
502 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:21:33 ] CPU対戦の七行すごろくを考えてみたんだが、 動作確認テストをやっている最中に虚しくなってやめた。 ゲームって難しいなぁ。
503 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:56:21 ] >>1 を見てたんだけど、 part4って297レスしかつかなかったの?
504 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:58:33 ] >>40 にあった。ごめん。
505 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 13:11:08 ] 自動生成の迷路ゲーム…なんて無理か。
506 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 19:06:02 ] 迷路を作るだけなら前あったかも
507 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 22:41:39 ] Javaの3Dな迷路があったと思ふ
508 名前:6 mailto:sage [2007/07/16(月) 01:29:02 ] 交点の座標を詳しく求めてる 俺工房だから間違えてるのかもしれない
509 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:58:27 ] #include <stdio.h> double s(double c){double x;int i,n;n = 10;x = 0;do {x += 1;} while (x * x < c); for (i = 0;i < n;i++) {x = (x + c / x)/2;}return x;}int main(){double c;int a; scanf("%d", &a);c = s(a);printf("√は%lfです。\n", c);return 0;} ニュートン法を使ったあれです。 いじくってやってください。
510 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:05:29 ] 1.空白はつめる 2.初期化と代入は一緒に 3.+=1は++に でだいぶ短くなる予感。 ニュートン法とやらがあってるんかは知らんけどw
511 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:27:20 ] int printf(const char*,...);int scanf(const char*,...);main(){int c,n=10;double x=0;scanf("%d",&c);do x++;while(x*x<c);while(--n)x=(x+c/x)/2;printf("sqrt(%d)=\ %f\n",c,x);return 0;}
512 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:12:42 ] typedef int f(const char*,...);f printf,scanf;double c,x,n=10;main(){for(scan\ f("%lf",&c);x*x<c;)++x;for(;n--;x/=2)x+=c/x;return!printf("√は%fです。\n",x);}
513 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:17:55 ] >++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++.. ..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.> >.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<.. ..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++ +.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<< +++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>.. <.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>.....<..>..<...>..
514 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:01:28 ] >>513 なんのプログラム?
515 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:02:57 ] 標準出力にBrainfuckと読める絵を出力するプログラム。
516 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:03:45 ] >>515 言語は何なのかおせーて
517 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:04:23 ] Brainfuck
518 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:08:58 ] なにこれおもすれw +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.+++.------.--------.>+.
519 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:50:24 ] ローマ字をSJIS半角カタカナに変換する、そんな関数があると聞き やってまいりました。 ヘボン式訓令式どちらもサポートすると おそらく300バイト程度の関数になるでしょうか?
520 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:40:25 BE:360093863-S★(511223)] 「aiueo」のローマ字半角カナ変換して表示。 ●ローマ字半角カナ変換(Sの|Sを) A=(「shi|chi|tsu|fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu| ryo|gya|gyu|gyo|zya|zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so| ta|ti|tu|te|to|na|ni|nu|ne|no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze| zo|da|di|du|de|do|ba|bi|bu|be|bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。 B=(「シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ| ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ| リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。 Aで反復、S=Sの対象をB[回数-1]に置換。 Sで戻る。 誰か短くしてくれ
521 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:48:23 ] ye/イェ とか dhu/デュ とかあるんだよ?
522 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:55:52 BE:980255377-S★(511223)] 「ローマ字」のwiki見て書いたから忘れてたすまんorz
523 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 00:25:27 ] wyi,wyeって半角カタカナないんだな。
524 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 03:37:18 ] ローマ字変換、正攻法で攻めたらJavaScriptで18行になってしまた… スレに貼れないし。鬱だ氏のうorz
525 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 08:02:16 ] >>520 それって擬似コード?それともなでしこ?
526 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 14:31:21 BE:480125838-S★(511224)] なでしこですよ 正攻法がどんなんかわからん・・・この方法じゃこれ以上削れそうにないし・・・
527 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 14:57:44 ] >>526 トェェイがうまく変換できません・・・
528 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 15:01:03 ] アッー
529 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 16:32:24 BE:120031823-S★(511224)] 「kyouhasuunennburinidaigakuniittekoyoutoomoimasutoleleia-ltu」をローマ字半角カナ変換して言う。 //キョウハスウネンブリニダイガクニイッテコヨウトオモイマストェェイアーッ ●ローマ字半角カナ変換(Sの|Sを) A=(「-|ltu|xtu|la|li|lu|le|lo|xa|xi|xu|xe|xo|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu| fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|zya| zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|ta|ti|tu|te|to|na|ni|nu|ne| no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|zo|da|di|du|de|do|ba|bi|bu|be| bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。 B=(「ー|ッ|ッ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ| キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ| チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ| ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。 Aで反復、S=Sの対象をB[回数-1]に置換。 Sで戻る。 :::::::::::.: .:. . ∧_∧ . . . .: :::::::: :::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : :: ::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::  ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄
530 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:02:01 ] >>529 ちょw スレタイを7回音読しろよw
531 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:05:29 BE:900234959-S★(511224)] >>529 からがんばっても10行にしかなりませんでした 難しいわorz
532 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:11:57 ] クァ/qa クァ/qwa
533 名前:524 mailto:sage [2007/07/31(火) 20:50:37 ] var A="xtu|ltu|kwa|ky|sw|sy|sh|tw|ty|th|ny|hy|my|ry|wh|gw|gy|zy|dw|dy|dh|by|"+ "py|qw|qy|fw|fy|jy|vy|cy|ch|xy|ly|k|s|t|n|h|m|y|r|w|g|z|d|b|p|q|f|j|v|c|x|l|"+ "a|i|u|e|o";var B="ッ|ッ|クァ|キy|スa|シy|シャ|シ|シュ|シェ|ショ|トa|チy|テy|ニy|ヒy|ミy|リy|ウァ|ウィ"+ "|ウ|ウェ|ウォ|グa|ギy|ジy|ドa|ヂy|デy|ビy|ピy|クa|キy|フa|フy|ジy|ヴy|チy|チャ|チ|チュ|チェ|"+ "チョ|y|y|カ@|サ@|タ@|ナ@|ハ@|マ@|ヤ|イ|ユ|イェ|ヨ|ラ@|ワ|ウィ|ウ|ウェ|ヲ|カ@゙|サ@゙|タ@゙|ハ@゙|ハ@゚|クァ|ク"+ "ィ|ク|クェ|クォ|ファ|フィ|フ|フェ|フォ|ジャ|ジ|ジュ|ジェ|ジョ|ヴァ|ヴィ|ヴ|ヴェ|ヴォ|カ|シ|ク|セ|コ|a|a"+ "|ア|イ|ウ|エ|オ";B=B.replace(/\|.@([゚゙]?)/g,function(e){var r="";for(var i=0;i<5; i++)r+="|"+String.fromCharCode(e.charCodeAt(1)+i)+RegExp.$1;return r}).replace (/([^\|]*)a\|/g,"$1ァ|$1ィ|$1ゥ|$1ェ|$1ォ|").replace(/([^\|]*)y\|/g,"$1ャ|$1ィ|$1ユ|"+ "$1ェ|$1ョ|").split("|");A=A.replace(/([^aiueo]{1,2})\|/g,"$1a|$1i|$1u|$1e|$1o|" ).split("|");var t=prompt().replace("nn","ン").replace(/([^aiueo])\1/g,"ッ$1"). replace(/n([^aiueo]|$)/g,"ン$1");for(var i=0;i<A.length;i++)t=t.replace(A[i], B[i],"g");alert(t); 正規表現を使わないでやっていたが、なでしこのコードを参考にして13行。MS-IMEで出る字は大体出ると思うけど。 まだ冗長だなあ。
534 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:52:50 BE:960250368-S★(511224)] S="";X="-|ltu|xtu|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|fu|ji|";Y=空;Z=空; M="ky|sy|ty|ny|hy|my|ry|gy|zy|by|py|sh|ch|j|y"を"|"で 区切;N="a|u|o"を"|"で区切;Mで反復,D=対象;Nで反復,YにD&対象を一行追加; P="l|x|w|k|s|t|n|h|m|r|g|z|d|b|p"を"|"で区切;Q="a|i|u|e|o"を"|"で区切;Pで反復,E=対象;Qで反復,ZにE&対象を一行追加; A="{Xを"|"で区切}{\n}{Y}{Z}nn{\n}n{\n}a{\n}i{\n}u{\n}e{\n}o";B=(("ー|ッ|ッ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ| フ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ| ジャ|ジュ|ジョ|ヤ|ユ|ヨ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ワ|ウィ|ウ|ウェ|ヲ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ラ|リ|ル|レ|ロ|ガ|ギ|グ|ゲ|ゴ| ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ")の改行を空に置換)を"|"で区切;Aで反復,S=Sの対象をB[回数-1]に置換; >>533 を参考にして苦しいがスレタイ通りに・・・(゚Д゚;)
535 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:54:14 ] 一行79文字が守られていません。お引取りください。
536 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:54:48 BE:360094436-S★(511224)] \(^o^)/ ヽ ←さじ
537 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:19:30 ] ソースコードをP2Pネットワークに置く ソースコードのハッシュを算出する ハッシュを元にソースコードをDLしてくる →事実上ソースコードはハッシュ文字数に圧縮される ∩( ・ω・)∩ ばんざーい
538 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:34:10 BE:600156465-S★(511224)] ∩( ・ω・)∩ ばんざーい
539 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:36:23 ] >>537 7行79桁でファイル共有ソフトを書けと。
540 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:04:18 BE:280073827-S★(511224)] 「∩( ・ω・)∩ banza-i」をローマ字半角カナ変換して言う。 ●ローマ字半角カナ変換(Sの|Sを) 経過ダイアログはオフ。 A=((「isoroku.net/A.txt 」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。 B=((「isoroku.net/B.txt 」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。 Aで反復、S=Sの対象をB[回数-1]に置換。 Sで戻る。 //∩( ・ω・)∩ ばんざーい //orz
541 名前:デフォルトの名無しさん [2007/08/01(水) 03:10:59 ] >>525-526 疑似コードにしか見えんw
542 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 08:49:44 ] 日本語でプログラミング気持ち悪い
543 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:08:00 ] >>540 お前はアホか
544 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:26:47 ] 日本語でプログラミングはなしがいい
545 名前:デフォルトの名無しさん mailto:age [2007/09/03(月) 14:33:17 ] 保守
546 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:40:00 ] データ外部に置いたらダメだろ httpでプログラム取得、実行、というプログラムを書けば 汎用七行になってしまう
547 名前:デフォルトの名無しさん [2007/09/03(月) 14:41:49 ] httpでとってきて、evalか? こええよw
548 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:38:26 ] httpでとってきてCreateProcess
549 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:44:35 ] >>547 JavaScript が怖くて常に OFF にしてるの? サンドボックスがまともならそんなに怖くないかと
550 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:45:58 ] 実はperl
551 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:51:01 ] 実はzipとか
552 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:59:15 ] ttp://www.amazon.co.jp/Short-Coding-~%E8%81%B7%E4%BA%BA%E9%81%94%E3%81%AE%E6%8A%80%E6%B3%95~-Ozy/dp/4839925232/ref=pd_bbs_sr_3/249-8159845-3310719?ie=UTF8&s=books&qid=1188842300&sr=8-3 中身見たこと無いけどこの本のことは話題にはならないのね。
553 名前:デフォルトの名無しさん [2007/09/04(火) 12:23:18 ] 図書スレで話題になってたな
554 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 20:08:51 ] >>553 どんな内容かおせーて
555 名前:デフォルトの名無しさん [2007/09/22(土) 00:10:16 ] トリッキースレがなくなってますね。 トリッキースレの後継スレみたいなのないのかな。 別のスレで出た話ですが、 int my_fputwc(wint_t c, FILE *fp) { wint_t r = fputwc(c, fp); return (r == WEOF) ? EOF : r; } int wtbl[0x10000]; void dokkade_jikkou(void ) { int i; for (i = 0; i < 0x10000; i++) wtbl[i] = i; wtbl[0xffff] = EOF; } int my_fputwc(wint_t c, FILE *fp) return wtbl[fputwc(c, fp);]; } みたいなこと(WEOF(wint_tの0xffff)をEOF(intの-1)に変換) をもっとスマートに行う方法ないですかね。
556 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 00:37:10 ] インラインアセンブラが使え無い言語は 基本的に劣っていると考えたい・・・
557 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 01:01:47 ] 適当に書いてみた。スマートなのかも、速いのかもよくわからん。反省はしてない。 int my_fputwc(wint_t c, FILE *fp) { wint_t r = fputwc(c, fp); return ((!(r ^ 0xffff)) * EOF) | r; }
558 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 01:04:03 ] エラー デバッグ ブラウザ ツール www.mozilla-japan.org/ シンプル プログミング ツール proforceone.web.fc2.com/ 素因数分解サンプルプログラム Calculation processing にコピーして[RUN] A=2*3*5*11*13*17*19; x=A;write(" "+x+" ⇒"); for(i=2;x>=i;i++){if(0==x%i){k=0; for(j=2;(i>=j)&&(1>=k);j++){ if(0==i%j){k++;} } if(1==k){write(" "+i);} }}
559 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 14:40:32 ] >>555 どう考えてもfputwcが重すぎで大差ない気がするが int my_fputwc(wint_t c, FILE *fp) { wint_t r = fputwc(c, fp); return (~r + 0xFFFF&0xFFFF0000)^r; }
560 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:43:13 ] 保守
561 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:52:05 ] 保守
562 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:09:49 ] なんかネタないかね
563 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:38:01 ] echoサーバとか
564 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:41:30 ] 10 OPEN "COM1:" FOR INPUT AS #1 20 LINE INPUT #1, A$ 30 PRINT #1, A$ 40 IF NOT EOF(1) THEN GOTO 20 50 CLOSE #1 60 END 70
565 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 08:34:20 ] [,.] 4文字v
566 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:01:10 ] >>565 これなに?
567 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 13:46:53 ] 入力したものを出力するだけのプログラムなんじゃない?
568 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 13:57:06 ] 何もしないで戻るような気がする
569 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 14:27:16 ] これTCP? ポートってデフォルトは何番になるの?
570 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:00:54 ] >>565 はBFのコードだろ?
571 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 03:11:21 ] >>565 そりゃただのechoコマンドじゃないか。
572 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:24:25 ] >>569 TCP/UDP 7
573 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:31:43 ] RFC 3091 "Pi Digit Generation Protocol" のサーバーとかどうだろう。
574 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:16:44 ] lispで何か書こうかな。。。。 もしかして過疎?
575 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:27:59 ] 187byte スロットはスレ違い?
576 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:30:57 ] >>575 とりあえず書いてけよ。
577 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:55:55 ] つ <body onload=n=[1,b=2,x=3];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]+=n[2-i]-7?1:-6;b+=b?-1:2;document.body.innerHTML=x?n:n+(n[0]-n[1]|n[1]-n[2]?"\\nx":"\\no")',50) onmousedown=x+=x?-1:3> 誰かもっと削ってー
578 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 18:47:23 ] スルーとはお前らなかなかやってくれるなw でもやっぱりスレチだよな。ゲ製に投下してくる
579 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 18:50:49 ] >>577 スルーしたわけじゃないんだ。 ちょっと分野が違った。 すまね。
580 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 20:12:05 ] 俺は1時間くらい考えてみたけど <body id=B くらいしか思いつかなかった あとは表示が 1,2,3,x になってもいいならn=[1,b=2,x=3,"\\n"]とするとか
581 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:17:33 ] >>579 あっちで好評だったからもう気にしないんだぜw >>580 考えてくれてたのかサンクス なるほど、id=B はまったく思い付かなかった。コンマも気にしないからやってみたら n=[1,b=2,x=3,"\n"]; ってエスケープ1つで動いた これで結局 179Byte wwwこれ以上は想像もつかんw ああ、 onclick はなんとなくタブーねww
582 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:16:20 ] 何をするスクリプト?
583 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:21:47 ] >>582 使ってみるがよろし。
584 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:34:49 ] PCが見知らぬ動きをはじめた・・・!
585 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:49:34 ] n[0]-n[1]|n[1]-n[2] n[0]*6-n[1]*5-n[2] n[2-i]+=n[2-i]-7?1:-6; n[2-i]=n[2-i]%7+1; n[0]*6-n[1]*5-n[2]はちゃんと動くか分からん
586 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:05:20 ] >>585 上のは [2,1,7] で誤作動しますね 下のは (; Д )゚ ゚
587 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:15:21 ] n[0]*7-n[1]*6-n[2] だと大丈夫?
588 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:23:00 ] 動かしたけどさっぱり 最後の桁がぐるぐる回り続けてるだけだった
589 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:24:21 ] 素晴らしい。 いま 174Byte ですか。まだまだ削れそうな気がしてきました
590 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:30:39 ] >>588 <body id=B onload=n=[1,b=2,x=3,"\n"];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]=n[2-i]%7+1;b+=b?-1:2;B.innerHTML=x?n:n+(n[0]*7-n[1]*6-n[2]?"x":"o")',50) onmousedown=x+=x?-1:3> これで動かないか?
591 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:34:08 ] >>590 うごく
592 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 02:05:57 ] ああ、わかった B使うとかあらゆる意味で邪道だな クソだ
593 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:26:49 ] グローバル使わないでって火狐は怒るだろうな
594 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:49:45 ] HTMLで短くするのなんてナンセンスだよ onload=""って括ってないとか、<title>タグが無いとか、 innerHTMLで配列を代入とか、仕様違反が多すぎる。
595 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:00:48 ] titleを指摘する前に、htmlなのにhtml要素がないことに突っ込めw
596 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:09:20 ] htmlタグはHTML4では省略可能なので別になくていい そもそもDTD宣言がないからHTML4かどうかもわからないんだけどな
597 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:27:11 ] >>594 配列は toString メソッドが暗黙に呼び出されて文字列になる
598 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 15:55:51 ] >>597 そもそもinnerHTMLが仕様にないので、暗黙的にtoStringが呼ばれるとは限らない しかしArrayのtoStringの仕様がjoinだとはしらなんだ
599 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 16:45:57 ] そもそもここは標準規格に適合しないといけないスレじゃないだろ。
600 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 16:53:46 ] むしろ仕様と戦うスレ