2011-12-01から1ヶ月間の記事一覧

#プログラム大喜利 文字列をカエサル暗号化する関数またはプログラム

COM

Twitter. It's what's happening. Twitter. It's what's happening. 朝食を終えてから書いたので「朝飯前」とは言えないが、内容はそのレベル。 妙に真面目に書いてしまって、前提に無い条件にも対応はしている。 /* caesar.c */ #include <stdio.h> #include <stdlib.h> #inclu</stdlib.h></stdio.h>…

#プログラム大喜利 内容不定Job実行系(わざわざCで書いてみる編)

COM

Twitter. It's what's happening. 上の回答例で「実はCでも出来んことはない」と書いた以上Cでも書いてみる。 jobmgr.h #ifndef jobmgr_h #define jobmgr_h typedef struct JOBHDR { struct JOBHDR * prev; struct JOBHDR * next; struct JOBHDR * rmv_next;…

#プログラム大喜利 内容不定Job実行系

COM

Twitter. It's what's happening. 実はオブジェクト指向問題だったりする。 JavaやC++, Ruby などのオブジェクト指向言語であれば非常にすっきりと実装できたりする。実はCでもできん事は無いのだけれども、スコープをファイル単位で分けねばならなかったり…

#プログラム大喜利 出題その(5)

COM

Twitter. It's what's happening. 誤答のため削除。

#プログラム大喜利 出題その(4)

Twitter. It's what's happening. これでむしろ必要なのは、プログラムを組む前に「言葉の意味を理解する能力」と「言葉が指すものについての知識」、その上で「式を組み立てる能力」だな。要求される仕様によっては、何をおいても基礎学力が必要という例で…

#プログラム大喜利 出題その(3)

COM

Twitter. It's what's happening. やることは中学校で習うレベルなので、わざわざググる程のものでもなく出来る筈。 #include <stdio.h> #include <stdlib.h> #include <math.h> #define PARAM_R 200.0f #define PARAM_THETA (M_PI / 12.0) typedef struct { double x, y; } VEC; /* * </math.h></stdlib.h></stdio.h>…

#プログラム大喜利 出題その(2)

COM

Twitter. It's what's happening. 正攻法で書くとこんな感じか。 /* my_cbrt.c */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define CONV_REPEAT 30 double my_cbrt(int N) { double x = N; int i; for(i = 0; i < CONV_REPEAT; i++) { x = sqrt(sqrt((double)N * x))</math.h></stdlib.h></stdio.h>…

#プログラム大喜利 出題その(5) 再回答

COM

上記と同じ問題を再回答。 #!/usr/bin/perl my %hash = ( 'B' => 1, 'K' => 2**10, 'M' => 2**20, 'G' => 2**30, 'T' => 2**40 ); while(<STDIN>) { /^\s*([0-9\.]*)([KMGTB])/; $sz = $1 * $hash{$2}; eval("s/^\\s*[0-9\.]*[KMGTB]/".$sz."/"); print $_; } 1; 上</stdin>…

#プログラム大喜利 (その2)

考えてみリゃループの中で if 文使ってなくても、跳んだ先の関数内でif分岐してりゃ分岐の処理数は同じなんだよな。それだったら最初からループの中でやったほうが速い。 #include <stdio.h> #include <stdlib.h> void select_char(char * buf, int pos) { int i; if(pos == 9) </stdlib.h></stdio.h>…

プログラム大喜利

Twitter. It's what's happening. こんなツイートをした以上は自分が書かないと怒られそうなので書いてみる。 #include <stdio.h> #include <stdlib.h> void select_char(char * buf, int pos) { int i, c; if(pos == 9) { buf[pos] = '\0'; printf("%s\n", buf); return; } // </stdlib.h></stdio.h>…

90億の神の御名 新訳

2007-02-23 - 帰ってきた人生戦闘詳報 2007年ごろにこんなお題でプログラムチャレンジを行ったのだけど、2009年に出たクラークのベスト版では本の表題にもなっている。90億の神の御名 (ザ・ベスト・オブ・アーサー・C・クラーク 2) (ハヤカワ文庫SF)作者: ア…

VOCALOID Job Plugin を簡単に作ってみたのだけど…

一つだけ注意しなければならないことが。 マニュアルには文字コードが UTF-8のみ と書かれているが、 より正確には、いわゆる UTF-8Nのみ をサポートしている。 UTF-8 と UTF-8N の違いは、テキスト冒頭の BOM とよばれるエンディアンマークの有無だけで、通…

VOCALOID3 Job Plugin 開発キットを拾って来た。

VOCALOID3 Job Plugin の開発キットが vocaloidstore.com で頒布されているのでダウンロードしてみた。 中身は PDF のドキュメントとサンプルのスクリプトのみ。 大仰なクラスライブラリとかヘッダファイルとかが付いてくると思っていたところ、Lua 5.1.4 を…