Language

html

tag
    o <p align="right">右寄せ</p> , <font color=red>赤文字</font>
    o <!-- コメント -->
    o <dl>
       <dt>言葉 A<dd>言葉 A の意味
       <dt>言葉 B<dd>言葉 B の意味
      </dl>
    o <a href="bookmarks.html">bookmarks へのリンク</a>
    o <a href="bookmarks.html#news>bookmarks.html の news というテキストへのリンク</a>
        <a name="news">リンクされる news の設定</a>
    o <ul>
       <li>・リスト1</li>
       <li>・リスト2</li>
      <ul>
    o A <blockquote>A に対しての引用</blockquote>
    o <table width="100%" border="0" cellspacing="0" cellpadding="0">
       <tr><th>タイトル A</th><td>123</td></tr>
      </table>
            cellspacing ; 枠太さ、cellpadding ; 枠とテキストとのマージン

      <table border="1">
       <tr><th rowspan="3">A</th><td>1</td></tr>
       <tr><td>2</td><td>3</td>
      </table>
          -----                           -------
          | |1| 上記の例                 |__A__| 下記の例
          |A|2|   rowspan                 |1|2|3|   colspan
          | |3|                           -------
          -----
      <table border="1">
       <tr><th colspan="3">A</th</tr>
       <tr><td>1</td><td>2</td><td>3</td></tr>
      </table>
    o <pre>そのままの表示</pre>
表記記号 &nbsp; --> スペース
referencehttp://www.web296.com/
webつくろードットコム(web296.com) Web制作専門検索エンジン
http://www.zdnet.co.jp/help/tips/html/index.html
ZDNet エンタープライズ ヘルプデスク: Tips for HTML
http://www.soho-union.com/series2/index.html
WEBのツボ || すべての企業ウェブマスターのために
http://kansai.pm.org/images/party/index.html
JPEG LIST
http://www.asahi-net.or.jp/%7Ewv7y-kmr/memo.html
備忘録
http://homepage.mac.com/toda/html/
簡単で正しいHTMLの書き方
http://techstyle.jp/
:::TechStyle::: HTML Table の参考になる
http://www.postgresql.jp/misc/event/LW2002/guide_lw2002.html
日本PostgreSQLユーザー会: LinuxWorld デモ・展示内容
HTML Table の参考になる
http://www.asahi-net.or.jp/%7Ebd9y-ktu/
HTMLコーディングチェック(HTML check)
../../HeartLand/1068/b/html_memo.html
HTMLに関する役に立たない覚書き
http://aks.dyndns.org/lmsanalog.php3
LMS一覧
table の参考になる
http://www.d1.dion.ne.jp/%7Eroute/emacs/emacs-intro/dot_emacs.html
dot.emacs
http://www2.wbs.ne.jp/%7Eskaga/
Shu's Home
http://www.ne.jp/asahi/minazuki/bakera/html/hatomaru.html.ja.jis
HTML鳩丸倶楽部 ☆ 水無月ばけらのHTML蘊蓄サイト
http://openlab.ring.gr.jp/k16/htmllint/reference.html
Another HTML-lint : References
http://www.suplex.gr.jp/%7Ehourin/
Hiroyuki HOURIN

Ruby

例:pop3
APOP 対応の POPサーバに接続しメールヘッダを取り込み Subject を標準出力に出力するサンプルプログラム。
以下、松本さんからのパクリ
通常の POP3 だと, Net::APOP.start ... を Net::POP3.start ... に変えます。
参考にしたのは、
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=net%2Fpop.rb
で、POP サーバからメール全体をとって来る例等が載ってます。
http://www.ruby-lang.org/
から, ドキュメント ==> Ruby 1.6 リファレンスマニュアル ==> 添付ライブラリ ==> net/pop.rb と
たどれば到着します。
#!/usr/local/bin/ruby
#
require 'net/pop'
require 'kconv'

Net::APOP.start( 'pop.server', 110,
                      'user', 'password' ) do |pop|
    if pop.mails.empty? then
        print "no mail.\n"
    else
        i = 1
        pop.mails.each do |m|
            header = m.header.gsub( "\r\n", "\n" ).gsub( "\n[ \t]+", "" )
            print i, ": "
            header.each_line do |l|
                print Kconv::toeuc(l).gsub("Subject: ","") if l =~ /^Subject:/
            end
            i += 1
        end
    end
end

bash

参考
     #!/usr/bin/sh          <=== シェルの宣言
     for i in *.txt         <=== 繰り返し命令
     do                     <=== ブロック開始
      nkf -s $i > $i.sjs
     done                   <=== ブロック終了
キーバインド
C-a行頭にカーソルを移動する
C-e行末にカーソルを移動する
C-h1文字削除
C-fカーソルを1文字進める
C-bカーソルを1文字戻る
C-pコマンドヒストリを戻る
C-nコマンドヒストリを進む
C-rヒストリの検索を行う
M-fカーソルを1単語進める
M-bカーソルを1単語戻る

C

Reference

参照
#include 
main()
{
	printf("Hellow, World!\n");
}
関連用語
ANSIAmerican National Standard Institute
米国規格協会が決めた標準規格に準拠している
Compile
コンパイル方法
$ gcc -o welcome welcome.c
welcome.c という名前のソースファイルを welcome という名前の実行ファイルにコンパイルする
エスケープシーケンス(画面やプリンタに出てこない制御文字)
\n改行
\aアラーム
\tタブ
\r復帰(カーソルを1番前に移動;エスケープシーケンスの後の文字に上書きされる)
printf("ABC\rxx"); => xxC
\bバックスペース(カーソルを半角前に移動;エスケープシーケンスの後の文字に上書きされる)
printf("ABC\bx"); => ABx
C言語で扱うデータの種類
数値整数10進数・8進数・16進数
実数小数点形式・指数形式
文字1文字('A')
文字列1つ以上の文字の集まり("ABC")
変数
  1. 空きメモリ上の計算領域
  2. 使用可能な文字(A〜Z , a〜z , 0〜9 , _アンダーバー)
  3. 先頭文字は数字以外
  4. 宣言位置は、main()のすぐ後ろで行う
データ型の一覧表
型指定子扱えるデータの範囲
整数int-2147483648 〜 +2147483647
実数float約-10(+38乗と表現したいのだが)〜+10(+38乗と表現したいのだが)
浮動小数点形式(普通の小数点を扱うときに使う)
double約-10(+308乗と表現したいのだが)〜+10(+308乗と表現したいのだが)
倍精度小数点形式
文字char-128 〜 +127
int;integer , char;charcter
変換書式を使用例
種類意味使用例結果
整数%d整数を10進で表示int a=10;
printf("%d",a);
10
実数%ffloat を小数点形式で表示float b=1.2345;
print("%f",b);
1.2345
%lfdouble を小数点形式で表示double c=1.2345;
printf("%lf",c);
1.2345
文字%c1文字表示char d='x';
printf("%c",d);
x
文字列%s文字列を表示char* e="Happy";
printf("%s",e);
Happy
printf("%d",total);%d;変換書式(total のデータ型に見合うもの) , total;変数名
printf 関数のまとめ(変数の中身を表示)
変数の中身だけを表示printf("%d",total);
文字列だけを表示printf("Hello");
変数の中身と文字列両方を表示printf("合計:%d",total);
複数の変数の中身を表示printf("%d:%d",total,average);
算術演算子
算術演算子+ , - , * , / , %
%:余りを求める演算子(整数にしか使えない)
5÷2=2、5%2=2
C言語で数値を計算するには、整数÷整数=整数 という法則がある(余りを計算しない)
代入演算子=
関係演算子(2つの値の関係を調べる;下記の他に、> , < , >= , <= が有り全部で6つ)
演算子使用例意味
!=a!=ba と b は等しくない
==a==ba と b は等しい
論理演算子(複数の条件式を組み合わせたり、真偽値を否定する演算子)
演算子使用例意味
&& アンパサンドアンサンドA&&BA式もB式も真論理積 (AND)
|| パイプパイプA||BA式かB式か一方が真論理和 (OR)
! エクスクラメーションマーク!A式の反転否定 (NOT)
真逆の意味
if(i==0)
i が 0 なら真
if(!(i==0))
i が 0 以外なら真
演算子の優先順位と結合法則
優先順位演算子の種類結合法則
高い















低い
一次演算子( ) , -> , [ ]左 → 右
単項演算子++ , -- , * , &右 → 左
乗法演算子(算術)* , / , %左 → 右
加法演算子(算術)+ , -
関係演算子< , > , <= , >=
関係演算子== , !=
論理 AND&&
論理 OR||
代入演算子= , += , -= , *= , /= , %=右 → 左
インクリメント演算子(カウントアップ や カウントダウン専用の演算子)
演算子使用例意味算術演算代入演算
++ インクリメントa++ , ++aaに1加えるa=a+1a+=1
-- デクリメントb-- , --bbから1引くb=b-1b-=1
文字と文字列の違い
  • 文字列の終端を表すのに「\0 (NULL文字)」と呼ばれるものが付く
  • 'A'「文字」 => A のみ 1byte ;メモリ上には、1バイトしか領域は取られない
  • "A"「文字列」 => A と \0 の 2byte ;2バイト必要

Sample Code

welcome.c
#include 
main()
{
	printf("Welcome\n");
	printf("To\n");
	printf("C language\n");
}
heikin.c (scan関数;変数にデータを取り込む)
#include 
main()
{
	int data1, data2, total, average;

	printf("データ1? ");
	scanf("%d", &data1);		//%d 変換書式、&変数名(変数名の前に & がつく)
	printf("データ2? ");
	scanf("%d", &data2);		//" "の中は変換書式だけしか書けない

	total = data1 + data2;
	average = total / 2;

	printf("合計:%d\n", total);
	printf("平均:%d\n", average);
}
ifbun.c (if文;2分岐)
#include 
main()
{
	int ten;
	printf("何点ですか? ");
	scanf("%d", &ten);

	if(ten >= 50 && ten <= 100)			//ifの後ろには、;セミコロンをつけない
	{
		printf("よくできました\n");
	}
	else
	{
		printf("がんばりましょう\n");
	}
}
switchbun.c (switch制御文;多分岐)
#include 
main()
{
	int no;
	printf("ご注文は? ");
	scanf("%d", &no);

	switch(no)							//switch条件式の後ろには、;セミコロンはつかない
	{
		case 1:							//caseの後ろには、:コロンをつける
			printf("180円です\n");
			break;
		case 2:
			printf("220円です\n");
			break;
		case 3:
		case 4:							//異なった商品で同金額の場合は、caseを並べるのみ
			printf("360円です\n");
			break;
		default:						//
			printf("入力ミスです\n");	//defaultは処理なしにするなら、省略可能
			break;						//
	}
}
whilebun.c (while制御文;回数未定の繰り返し:条件を満たしている間、処理を繰り返す場合に使う)
#include 
main()
{
	int sum = 0, val;

	printf("好きな数値は? ");
	scanf("%d", &val);
								//条件式の後ろには、;セミコロンはつかない
	while(val != 0)				//val !=0;繰り返す条件が先にきている。=> 前判断
	{							//(最初から"valが0じゃない"条件を満たしていなければ、1回も処理を行わない)
		sum = sum + val;		//複合代入演算子(sum += val;でも可);C言語独特の記述方法
								//条件を満たしている間(valが0じゃない間)繰り返しをしなさい
		printf("好きな数値は? ");
		scanf("%d", &val);
	}

	printf("合計:%d\n", sum);
}
whilebun-01.c (無限ループを使ってみる)
#include 
main()
{
	int sum = 0, val;

	while(1)
	{
		printf("好きな数値は? ");
		scanf("%d", &val);
		if(val == 0)				//ループを抜ける条件(終了条件)
		{							//(valが0であれば、繰り返しを抜けなさい)
			break;					//break; 無限ループを抜け出す式
		}
		sum = sum + val;
	}

	printf("合計:%d\n", sum);
}
forbun.c (for制御文;繰り返しの回数が決まっている)
#include 
main()
{
	int i;

	for(i=0; i<5; i++)					//条件式の後ろには、;セミコロンはつかない
	{									//i=0(初期処理); i<5(条件式); i++(後処理)
		printf("i の2乗:%d\n",i*i);
	}
}
org01.c (ユーザ作成関数)
#include 				//おまじない
int keisan(int x);				//keisan関数のプロトタイプ宣言(prototype;原型、試作品)
main()							//main関数
{								//始まり
	int data, ans;				//	整数型の変数dataとansを宣言

	printf("データは? ");
	scanf("%d", &data);			//	キーボードからdataに数値を受け取る

	ans=keisan(data);			//	keisan関数を呼出し、戻り値をansに代入
								//	実引数(data)をkeisan関数の仮引数(X)へコピー
	printf("ans:%d\n",ans);		//	ansの表示
}								//終り

int keisan(int x)				//keisan関数;仮引数(x)はmain関数の実引数(data)からコピーされる
{								//始まり
	int y;						//	整数型(int)の変数 y を宣言
	y=x*x;						//	x の2乗の計算結果を y に代入
	return(y);					//	呼出し元に制御と戻り値(y)を戻す
}								//終り
ユーザ作成関数は、、、
  • 変数の有効範囲(関数の中で変数宣言すると関数の中だけで有効である)
  • 呼出し側の引数=実引数、呼び出された側の引数=仮引数、戻す値=戻り値
  • 「関数名の前に戻り値の型指定子(int keisanのint)を書く」という決まりがある
  • main関数は、OSに制御を返します。戻り値がないので型指定子「void(UNIX系では
    認識しないので省略?)」を書きます。
    voidは戻り値の必要がない場合、型指定子のかわりに使ってください。
    voidはmain関数以外の関数でも使えます。
  • 「関数のプロトタイプ宣言」=main関数以外のユーザ作成関数には必ず書く。
    コンパイル時に「戻り値の型と引数の型のチェック」(データ型である)、さらに
    引数の数のチェックを行う。
hairetu.c (配列;同じ型のデータを複数扱う場合に使用)
#include 
main()
{										//配列の宣言方法
	int d[5] = {10,20,30,40,50};		//int 型指定子、d 配列名、[5] 要素数
	int i;

	for(i=0;i<5;i++)
		printf("d[%d]:%d\n",i,d[i]);
}
配列の特徴
連続して領域が確保される。まとめて名前がついている。
hairetu01.c
#include 
main()
{
	int i=0;
	int d[5];
	printf("数字を入力してください。終了=0\n");
	scanf("%d",&d[i]);
	while(d[i]!=0 && i<4)
	{
		i++;
		scanf("%d",&d[i]);
	}
	printf("入力された数字を表示します。\n");
	for(i=0;d[i]!=0 && i<5;i++)
		printf("%d\n",d[i]);
}
pointer.c (ポインタ)
#include 
void main()
{
	int a;
	int *p;

	a = 10;		//値格納用
	p = &a;		//アドレス格納用

	printf(" a = %d \t", a);
	printf("&a = %d \n",&a);

	printf(" p = %d \t", p);
	printf("*p = %d \n",*p);
}
ポインタ
  • 今までのプログラム => 領域に対して名前からアクセスする => 変数名を使う
  • ポインタを使用したプログラム => 領域に対してアドレスからアクセスする => ポインタ変数を使う
  • 変数=値を格納、ポインタ変数=アドレスを格納
  • &演算子=変数のアドレスを取り出す
  • *演算子=ポインタ変数のアドレス先の値を取り出す(*p;pがポインタ変数であることを示す演算子)
poinhen.c (変数をポインタ変数でアクセス)
#include 
void sub(int *p);

void main()
{
	int a = 10;
	printf("Before a = %d \n", a);
	sub(&a);						//&a アドレス
	printf("After a = %d \n", a);	//	↓↑
}									//アドレスをコピーすることで実引数に対して直接処理をかけることができる
									//	↓↑
void sub(int *p)					//*p ポインタ変数
{
	*p = *p + 100;
}
poinhai.c (配列をポインタ変数でアクセス)
#include 
void sub(int *p);
void main()
{
	int d[3] = {10, 20, 30};
	sub(d);					//配列の先頭アドレス
}
void sub(int *p)			//ポインタ変数
{
	int i;
	for(i=0; i<3; i++)
	{
		*(p+i) = *(p+i) + 100;
		printf("*(p+%d) = %d \n", i, *(p+i));
	}
}
mojisu.c (入力された文字数を表示)
#include 							//おまじない
#include 							//おまじない
void main()									//プログラムスタート
{											//始まり
	char text[6], buf[128];					//	文字型の配列textとbufを宣言
	int length;								//	整数型の変数lengthを宣言

	printf("<5文字>\n");					//	5文字以内で入力を促す
	printf("メッセージ:");					//	キーボードから
	scanf("%s", buf);						//		bufに文字列を受け取る

	length = strlen(buf);					//	bufの文字数を数え、lengthに代入

	if(length <=5)							//	lenngthが5以下?
	{										//	Yesの始まり
		strcpy(text, buf);					//		textにbufを代入
		printf("%d:%s \n", length, text);	//		lengthとtextを表示
	}										//	Yesの終り
	else									//	Noの始まり
		printf("%d:入力ミス\n", length);	//		lengthとエラーメッセージを表示
}											//終り

/* 構文重要項目
● キーボードからデータを受け取る際、データを格納すべき正式な配列にいきなり入れるのではなく、まず
   は作業領域に一度入れておき、そこで文字数を数え、条件を満たしていれば正式な入れ物に代入する
char text[6];
	要素数は必ず \0(NULL文字)を含んだ数を書く「扱いたい文字数+1」
scanf("%s", buf);
	第2引数は「格納する領域のアドレス」(配列名は配列の先頭アドレスを表す)
	(bufに文字列を取り込む際、最後に NULL文字を付加してくれる)
printf("%d:%s \n", length, text);
	変換書式が %sだった場合に限り(第2引数が文字列の場合)、配列名を書く
	(「第2引数で指定した配列の先頭から NULL文字を見つけるまで表示」という動きをする)
strlen関数
	文字列の長さを求める関数。文字数を数えてくれる。これを使って、条件にあっているかどうか調る。
	引数は文字数を調べたい文字配列(配列名)(string)
	戻り値は文字配列の文字数( NULL文字は文字数に含まない)
strcpy関数
	文字列の内容を代入する
*/
mojihikaku.c (入力された文字列の比較)
#include 						//おまじない
#include 						//おまじない
void main()								//プログラムスタート
{										//始まり
	char passwd[5]="1209", buf[128];	//	文字型の配列 passwd(初期化)と bufを宣言
	int i, flag = 0;					//	整数型の変数 iと flag(初期化)を宣言

	for(i=0; i<3; i++)					//	3回繰り返す
	{									//	繰り返しの始まり
		printf("Code Number :");		//		キーボードから
		scanf("%s", buf);				//			bufに文字列を受け取る
		if(strlen(buf)==4)				//		bufの文字数が4文字以内か?
			if(strcmp(passwd, buf)==0)	//			passwd と bufが等しいか?
			{							//			Yesの始まり
				flag = 1;				//				flagに1を代入
				break;					//				ループを抜ける
			}							//			Yesの終り
	}									//	繰り返しの終り

	if(flag == 1)						//	flag が1か?
		printf("success!\n");			//		success! と表示
	else								//	それ以外
		printf("miss!\n");				//		miss! と表示
}										//終り
/*
char passwd[5]="1209";
	初期化したい文字列を " " で囲む。NULL文字を含んだ形で初期化がされる。
if(strcmp(passwd, buf)==0)
	それぞれの配列の中に入っている文字列の内容の比較
	(戻り値;比較した文字コードの差 => 等しければ0、等しくなければ0以外の値)
*/
mojicopy.c (標準関数を使わずに入力された文字列 s1を配列 s2へコピーするプログラム)
#include 
void main()
{
	char s1[10], s2[10];
	int i;
	printf("なにか文字を入れてごらん:");
	scanf("%s", s1);
	for(i=0; s1[i]!='\0'; i++)	//文字列の最後にはNULL文字がつくので\0が見つかるまで配列の中の
	{							//文字を一つずつコピーしていく
		s2[i] = s1[i];
	}
	s2[i] = '\0';				//最後に NULL文字をつける
	printf("%s\n", s2);
}
/*
入力される文字数が9文字(NULL文字を入れて10文字)以内である事を前提
*/

$Id: language.html,v 1.15 2003/11/07 15:35:57 sam Exp $