Eukleides project

from http://d.hatena.ne.jp/u5_h/

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

(お勉強)正規表現

久々です!こっちの世界のほうが居心地がいいwというわけでC言語に戻ってまいりました。っといっても今日はコードを打ちません。いきなり打てというほうが正直辛いわけで、別に嫌いではないけれども他の仕事も結構忙しいわけで(^^;)いままで実はDLLインジ…

(文字列)BMアルゴリズム簡易版(改良できた)

今日のアルゴリズムはは、非常に難解だが、実用上もっとも優れた文字列照合アルゴリズムである。それはBoyer-Mooreアルゴリズムと呼ばれている。ここではBMアルゴリズムという。岩波のソフトウエア科学PP307にそのソースがPascalで記述されていますが。goto…

(文字列)KMPアルゴリズム

しばらくサボってて申し訳ないです。 別にサボってたわけではなく。仕事がうまくいかなかったり、BIOSのサービスコールやIA32、16を勉強したりとより実装指向な話題に陶酔していました。こちらも近日活動公開できればなんですがどうも、趣味の中でも一番楽し…

(文字列)単純な文字列の照合改良版

前回のアルゴリズムを少しだけ高速にしてみる。ただし計算オーダーは変わらず 改良点 ・テキスト側とパターン側各々に番兵を用いる ・1文字目をループの外側に出すこれにより2番目のループ計算による無駄を少なくする。 2番目のループは文字列の照合で用いる…

*[アルゴリズム](文字列)単純な文字列照合

今回から文字列のアルゴリズムについて紹介していきます。 今回は単純な文字列照合のアルゴリズムです。 文字列照合はエディタにおける文字探索やテキストデータベースにおける文字検索に応用されます。 今回はC言語における文字列の添字表現とソースの可読…

祝1000人達成記念ソース

なぜか駄文ばかり書いていたこのブログも1000達成したので記念ソースを書きました。 見た目で理解できなそうなプログラムをちょっと目指しましたwmakeして実行してのお楽しみ☆ #include #include #define $C printf( #define c_ 0x54,0x49 cc(char *c){*c=0x…

(tcp/ip関連)TCPのTIME_WAIT状態の実験

まずは単純な文字列をループバック(127.0.0.1)で送る送受信プログラムを作る。 比較のためにSTREAM型(TCP)とDATAGRAM型(UDP)の送受信プログラムを用意する //DATAGRAM型(UDP)の文字列受信サーバプログラム #include #include #include #include #include #in…

(構造関係)整列アルゴリズム3

今回はマージソートについて扱う。 仕組みは簡単である。配列のデータを要素1つずつ細かく分けてそれを大小比較してマージ(併合)するこれを繰り返し行う。ソート一回における扱う要素は2つ、4つ…とふくれあがる。これにより単純なソーティングよりも高速な処…

(構造関連)整列アルゴリズム2

今回は前回に引き続き整列アルゴリズムの効率的手法である、クイックソートとヒープソートを述べる。 まずは、クイックソートから述べる。 クイックソートは前回の単純整列法を改良したものである。配列のindexの中間値にあるデータを基準値とし大小に別けて…

(構造関連)整列アルゴリズム(1)

比較的平易な整列アルゴリズムを示す。 //simplesort.c //This program is sorting upstair data gradually //author u5 //2006 7 AUG //how to Make // gcc simplesort.c -o simplesort //how to exec // %./simplesort #include void swap(int *p,int *q);…

(アルゴリズム構造関係)探索のまとめ1

構造体配列における線形探索と2分探索 #include #include #define SIZE 17struct cell{ int key; char info[20]; }; struct cell a[SIZE]; //構造体配列における線形探索関数 struct cell linear_search(int target){ int p; for(p=0;p if(target==a[p].key)…

(アルゴリズム構造関係)構造のまとめ

データ構造のまとめをしようと思い夏に向けてさまざまな関数や構造を扱うことにする。 1.構造 線形リスト スタック・キュー(待ち行列) 二分木2.サーチ 線形探索 二分探索 2文探索木 B木 AVL木 ハッシュ法3.整列 シンプルソート(バブルソート) セレクトソ…

(WIN32API、システム関連)waveプレーヤー

今回は関数だけは参考にしました。そして他の部分である再生の処理に アラームを組み込み再生時間後に終了処理をするように制御した。そのため再生中に停止もできる設計。 //■コンパイル方法 //gcc m1.c -o m1 -lwinmm // //■実行 //input file name>sample.…

(構造関係)クイックソート

課題のpascal翻訳も30分で完了し、クイックソート完成☆ 瞑想に耽りながら考えたので関数を参考に・・・ コメント少なくてごめんなさい。決して天才肌ではないので //quicksort.c //date 2006 7/23 //author u5h // //Makefile //CFLAGS= -g //:quicksort // //c…

(構造関係・コンパイラ)字句解析lexical analysis

逆ポーランド記法(後順操作)を演算するプログラム これもいつかの課題ですが同じ手法が字句解析の応用されています。 lexと呼ばれています。これに構文解析のyaccがあって基本的なコンパイラを作成し、自分の定義した文法規則に従うプログラミング言語を開…

(構造関連)binarytree(いつかの課題で出たやつ)

図の2分木(Binary Tree)をプログラムより表述し、前順(preoder)、間順(inorder)、後順(postorder) で辿って下記のような実行結果を表示するプログラム#include #include struct node { char element; struct node *left; struct node *right; };void preorde…

(guntools群関連)emacsでデバッグgdb

#emacsでデバッグgdb 別にコマンドとしてgdbやxxgdb(M教授推奨)がありますが・・・ 今日はemacsユーザーに朗報(知っている人にはどうでもいい事実) - 〓emacsでまずcのソースを書きます。 〓次にMakefileを用意。 c-x c-w (ctrlキー+xキー,ctrlキー+wキー…

(network関係)httpクライアント

perlを読みながらCで作ってみました。ちょっとしたオプションをつけました。 今回もエラー処理は全くしていないのでご注意。 #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]…

線形探索リスト(動作可、関数の参考程度に)

番兵を用いた整列リストに昇順のデータを入力する。 /*list (LINIER SEARCH) */ #include struct cell{ int data; struct cell *next; };struct cell *header; struct cell *sentinel;/*線形探索関数*/ void lin_serch(int x) { sentinel->data=x;/*targetの…

FIFOリスト待ち行列(動作わざと不可、関数の参考程度に)

/*list queue(FIFO) buffer*/ #include struct cell{ double data; struct cell *next; };struct cell *qhead; struct cell *qtail; /*待ち行列end関数*/ void end(void) { qhead ='\0'; exit(1); } /*待ち行列enq関数*/ void enq(double x) { struct cell *…

LIFOリスト(動作わざと不可、関数の参考程度に)

/*list stack(LIFO) buffer*/ #include struct cell{ double data; struct cell *next; };struct cell *stack='\0'; /*リストend関数*/ void end(void) { stack ='\0'; exit(1); } /*リストpush関数*/ void push(double x) { struct cell *p; p=(struct cell…

プログラムを書くぞ宣言

基本言語:C スクリプト言語:perl オブジェクト指向言語:small talk をメインにやってみたい 特に ・ネットワークプログラミング ・データ構造(字句、構文解析、ハッシュを含む) ・低レベル演算 ・字句、構文解析 をメインに取り扱い ネットワーク関係…

UDPportscan BSD仕様

#include #include #include #include #include #include #include #include #include #include #include #include #include #include int main(void) { struct sockaddr_in addr; struct icmp *icmp; struct ip *ip; struct ip *ip2; struct timeval t; str…

ヘッダーとパケット

TCP/IPの通信の基本を覚える上で大事な5つのプロトコルを簡略して紹介します。 ******************************************************************************** Ethernet データリンク間の物理的な通信で機械固有のMACアドレスを使用する。 ***********…

早速(Networkprogramiing関連)

朝からいろんなツールを探しました. 主にアタッカー用のツールばかりDL. コード読み読み・・・。 今回は自作の超簡単なTCPローカルテスト用コード クライアント側 #include #include #include #include #include #include #include int main(void) { struct s…