2005-01-01から1年間の記事一覧

web_two_point

う〜ん、こんなポスターが → ■(via "Web 2.0 is made ...")

debian memo

net 上の page にある 圧縮ファイルを download するには どうするか ? ぼくは lftpget という lftp に 含まれる ユーティリティを 使っています。 まず lftp を インストールして、$sudo apt-get install lftp password:「作ってわかる Cプログラミング」 …

useless tips

vi エディタを 使いやすくするため、作業ディレクトリに 設定ファイルを 置いてみる。 ファイル名は .vimrc (ドットファイル)。 ディレクトリ名が c_lang だとすると、 $cd c_lang $vi .vimrcとして、ファイルを 開く。 中身は 2行だけ。 set sm set ts=4set…

はじめての C

さて、次の ステップは どうしようか ? いまの ぼくに 理解できそうな 本が ないか、本屋に いって 捜してみた。 それが コレ、 C については まったくの 初心者で 他の言語も よく知らないが、 i = i + 1 が 意味することぐらいは 何となく 想像できる 程度…

web archive

スキップリストに 関する 論文で、いろいろなところで 引用されている 論文に 次のものがある。 "Skip Lists vs B-trees" by M.D. Black 元の paper は 既に net 上には ないが、Lee's Journal が pdf.file を local copy に とってくれていた。 http://lee.…

プログラミング言語 C

二次元配列を 使って、表計算するコードが 下の本に 載っていた*1ので、ちょっと いじってみる。 ・プログラミングの力を生みだす本 (isbn:4274132072) total と average の 二重ループでは、 row と column の順が 逆になっています。 表は こんな感じで、 …

プログラミング言語 C

どうやら hash search と skip list の間には、構造体への ポインタを使った 共通する algorithm が あるらしい、という ところまでは 判明。(これ以上は、初心者では ムリみたい ...) ポインタ配列とは 別なので、とばしていた 多次元配列に 戻って、 実際…

プログラミング言語 C

hash関数による テーブル参照が わからないので、訳しながら 読んでみる。 このセクションでは、構造体の より特色のある面の 説明のために、table-lookup package の 中身を 書くことにしよう。 そのコードには、マクロや コンパイラにおける symbol table …

プログラミング言語 C

C の 初心者は ときどき 2次元配列と、例として でてきた name のような ポインタ配列との 違いについて 混乱することがある。 下のような 定義が 与えられたとする: int a[10][20]; /* 2-dimensional array */ int *b[10]; /* pointer array */ このとき、a…

プログラミング言語 C

多次元配列は ポインタ配列とは 違うものなので、後まわしにして、 n番目の 月の名前からなる 文字列の ポインタを 返す month_name(n) を 書く 問題を 考えてみよう。 これは (関数内のみで 働く) internal な static 配列には もってこいの 応用例である。…

プログラミング言語 C

少しだけ 関数 read_lines の コードを チェック。 char *p, line[MAX_LEN];while )((len = get_line(line, MAX_LEN))( > 0) if (n_lines >= maxlines || (p = malloc(len)) == NULL) return -1; else { line[len - 1] = '\0'; strcpy(p, line); line_ptr[n_…

プログラミング言語 C

ポインタ それ自体は 変数であるから、他の変数と まったく同様に 配列に 格納することができる。 このことを、一連のテキスト行を アルファベット順に 分類する プログラム、すなわち UNIX の プログラム sort の (余分な機能を 取り去った) 裸の version …

プログラミング言語 C

先に 進む前に、3月27日の 日記を 訂正。(p117-118) /* getint.c */ #include #include /* isspace, isdigit に必要 */#define MAX 100int get_int(int *); int get_ch(void); void unget_ch(int);main() { int n, m = 0; int num[MAX]; for (n = 0; n ; whi…

プログラミング言語 C

(ある関数での 戻り値 = 返り値が ポインタの 場合には) C では、データを正しく指す ポインタは 0 には ならないことを 保証しているから、0 という 戻り値は 異常事態の 発生を 知らせるのに 使うことができる。 一般に ポインタは、他の変数と 同様に 初…

プログラミング言語 C

基本に もどって、ちょっと 復習 ... C においては、ポインタと 配列との間に 強い 関係がある。 この関係が 強いので、ポインタと 配列とは 同時に 論じなければならない。 a[i] という 記法は、(ブロックの) 先頭から i番目の 位置の 配列要素を 参照する…

useless tips

google で 日本語を 英訳する page が あったので、早速 試してみた。 =http:// の後へ URL アドレスを 指定するだけで OK。 人の web page で 試すわけにもいかないので、自分の page で やってみる。 http://translate.google.com/translate?hl=en&sl=ja&u…

debian memo

[debian apt] debian woody の gcc コンパイラを version 2.95/3.0 から 3.3 へ 変更。# apt-get remove gcc-2.95 gcc-3.0と すると、かってに gcc-3.3 が インストールされる。 これって 変則ワザ ?

useless tip

[skiplist] skiplist を 使って 実装しようとしたけど、できなかった ... (;_;) net 上には - 少ないながらも - 工夫した skiplist の コードは あったのだが、いちばん 知りたい その使い方*1は なかった。 C の 初心者は こんなとこで つまずくのですネ。 …

はじめての C

AVL木の削除。 関数 avl_remove では 再帰が 使われてるが、引数に successor を とってる 箇所が ある。 あまり 安易には いじれないみたいだ。 なので、削除するデータを含む ノードを 返り値とする 検索関数を はさんでみた。 元にした search 関数は コ…

debian memo

ミラーサーバからの update が 不調*1なので、設定の練習も 兼ねて apt-setup を 実行した。 $ cd /etc/apt $ su password: # cp -f sources.list sources.list.bak # :> sources.list # apt-setup noprobeapt-setup の 設定画面に。 サーバは 今回は ftp.jp…

はじめての C

今度は AVL木。関数 avl_insert では 仮引数が それぞれ 構造体のポインタと 構造体になっているので、メモリの確保が 別に必要となります。でも、そんなこと できそうにもないので、avl_insert を少し改悪 ? してみることに ... /* insert_avl.c */ #includ…

はてダラ

結城さんが 早速 はてダラの 新しい version 1.3.0 を 作成してくれました、感謝。 http://www.hyuki.com/techinfo/hatena_diary_writer.html (追記) ぼくの debian woody での 設定は コチラ。 http://d.hatena.ne.jp/sekiyo/20040828 debian sarge でも 同…

はじめての C

splay木を 用いて tree の root を 変更させてみる。 その前に、ポインタを どう渡すか、ちょっと チェック ... struct Node **tree; int value;if (*tree == NULL) new_node(tree, value);if ((*tree)->left == NULL) new_node(&(*tree)->left, value);これ…

はてダラ

hatenaの ログイン時の仕様変更で、はてダラが 使えなくなった。 このままだと、日記の回数が 減るような気が ...

はじめての C

ランダム関数 rand() を 利用した balance tree を つくってみる。 RAND_MAX は 生成される 乱数の範囲 (K&R 2nd p317)。 ライブラリ time.h を 使って srand() の引数を 決めるようにした。 /* rand_insert.c */ #include #include #include struct Node { …

はじめての C

balance tree だけど、tutorial では 構造体 Tree を 使って、root を 返すようにしている。 それと、関数 norm_insert の中の new_node の 引数が、このままだと 1つ 足らない。 Tree は Node と 入れ換えれば、そのまま 使えるようなので、あとは norm_ins…

web archive

弁天小僧さんの page で 知ったけど、office さんを 有罪とした 東京地裁の判決文が、判例時報(判例時報社)に 掲載された。 http://www.ofours.com/bentenkozo/archives/2005/09/post_334.html 本屋に 判例時報を 置いてないか、ちょっと 捜してみます。

はじめての C

次は 二分木の削除。 できれば キーボードから 入力したいのだが、どうも うまく できないので、ヘッダファイルに 書き込むことに ... /* b_delete.c */ #include #include #include "b_delete.h"struct Node { int data; struct Node *left; struct Node *r…

はじめての C

二分木の挿入プログラムが やっと できた ... /* b_insert.c */ #include #include struct Node { int data; struct Node *left; struct Node *right; };int new_node(); int tree_insert(); void btree_walk(); int tree_height();main() { int value; stru…

half a woman's life

[Marjane Satrapi] Persepolis はてなで 日記を 始めたときから、母が 話していた 思い出を 書き留めている。 今は ちょっと 中断しているけど。 あまり 急ぐつもりもないので、この先 どうなるか わからないけど、できれば 女学校を 卒業した頃まで 書くつ…