C言語プログラミング教室



 このコーナーは初心者、ある程度出来るけど「ポインタでつまずいた」などといった人をターゲットとしたC言語の教室です。
別に上から順番に読んでいく必要はありません。好きなところから勉強してください。わかりやすく書いたつもりですが、分かりにくいところがあれば遠慮なく質問等してください。間違い・誤字などの指摘もお願いします。あと、3人が分担して作成したので若干書式が異なったりしますが我慢してください。
1999年9月 (更新:2001/04/29〜...)
作成者:藤原(F),山田(Y),玉城(T)

マークは入門者向けを意味します.

 1.プログラミングの予備知識(F&T)    2.簡単なプログラムの作成 (F&T)
 1.1)コンピュータについて
 1.2)コンピュータの基本構成
 1.3)アルゴリズムとプログラム
 1.4)プログラミング
 1.5)ソフトウェアの種類
 1.6)CPUとメモリーとプログラム
 1.7)プログラミングに必要なもの







 2.1) Cのプログラムの構造
 2.2) printf("")関数について
 2.3) ここまでの文法のまとめ
 2.4) 算術演算
 2.5) 実数の算術演算
 2.6) 型宣言子,演算子,書式指定子の一覧
 2.7) 変数とメモリー
 2.8) 変数型と変数のサイズ
 2.9) 定数の表現にも気をつけよう!
 2.10) 数学関数
 2.11) 主な数学関数
 2.12) プログラムを書くとき便利なその他の文法


 プログラムを作成して動かすために  (F)

 プログラムを作成して動かすために

 無料のコンパイラのダウンロード(入手)も出来ます!

△ しばらく,おまちください!準備中です


 3.流れ制御 (F&T)    4.配列変数 (F&T)
 3.1) アルゴリズムの流れを制御する
 3.2) アルゴリズムの流れを制御するCのキーワード
 3.3) 選択処理 その1 if( )文と条件式
 3.4) 条件式について(比較演算子と論理演算子)
 3.5) 繰り返し処理 その1 while( )文
 3.6) カウンター変数を積極的に利用する
 3.7) 書式指定子の効果
 3.8) 繰り返し処理 その2 for( )文
 3.9) 選択処理 その2 switch( )文
 3.10) 剰余演算子%の使い方 
 3.11) グラフを描いてみよう!
   4.1) 配列変数を理解するために
 4.2) 配列変数と配列要素
 4.3) 配列要素の指定のしかた
 4.4) for(),while()と配列変数
 4.5) 配列変数を宣言時に初期化する
 4.6) 合計(総和,Σ)や平均値を求める
 4.7) 多数のデータから最大値や最小値をみつける
 4.8) もちろん,配列変数はいくつでも使えます



 5. 演算子と演算結果     6. 2次元配列 
 5.1) Cの演算子のいろいろ
 5.2) 算術演算子と演算結果
 5.3) 代入演算子の演算結果
 5.4) 比較演算子の演算結果
 5.5) 論理演算子の演算結果
 5.6) 制御文の条件表現式
 5.7) if(a==b){ } を if(a=b){ } と書き間違えても...
   6.1) 1次元配列と2次元配列
 6.2) 2次元配列と2重ループ
 6.3) 2次元配列の宣言時の初期化



 7. 関 数 −その1−     8. ポインター変数 −その1− 
 7.1) まずは,数学関数の復習から
 7.2) 関数を作ってみよう!
 7.3) 戻り値の型と引数の型
 7.4) もちろん,関数は何個でも作れます.
 7.5) 戻り値のない関数
 7.6) 引数のない関数
 7.7) 関数から関数を呼び出す
 7.8) 同じ関数を何度も呼び出す
   8.1) まずは,メモリーの話から
 8.2) 変数のアドレスを調べる
 8.3) ポインター変数
 8.4) 変数名の変わりにアドレスを使う
 8.5) ポインター変数と間接演算子の組み合わせ
 8.6) 頭を整理してみよう



 9. ポインター変数 −その2−     10. 文字と文字列
 9.1) 関数とポインター変数
 9.2) ポインターを使って複数個の結果を返す
 9.3) ポインター変数の宣言時の初期化
 9.4) 1次元配列とポインター変数
 9.5) ポインター変数のインクリメント
 9.6) ポインターを使って配列を関数へ渡す
 9.7) 実は,配列変数名は...
 9.8) 配列へアクセスするもうひとつの方法
 9.9) 説明の必要は無いと思いますが...
 9.10) ここまでくれば...

   10.1) 文字(character)と文字型変数
 10.2) 文字と文字列(string)
 10.3) あらためて文字列の扱い方
 10.4) 実は文字も1バイトの整数値なのです.
 10.5) 制御文字の機能
 10.6) エスケープシーケンス


 11. 文字列と関数とポインタ−と    12. 文字列処理
 11.1) 文字列を関数に渡す
 11.2) 2次元配列とポインターの配列
 11.3) ポインターのポインター
 11.4) 呼び出し回数の少ない関数を作る
   12.1) まずは,ウォーミング・アップ!
 12.2) 文字列の長さを求める
 12.3) 文字列をコピーする
 12.4) 文字列をつなげる
 12.5) 文字列中から指定の文字をみつける
 12.6) まとめてみましょう



 13. 文字列処理関数    14. ファイル −その1−
 13.1) 基本的な文字処理関数
 13.2) 文字処理関数を使うための基礎知識
 13.3) 文字列の検索
 13.4) 文字列を切りとる(切り離す)
 13.5) キーボードから文字列を入力する
 13.6) 文字(数字)から数値への変換
 13.7) 数値から文字列字への変換
 13.8) 何でも文字列化してしまうsprintf()関数
   14.1) データ・ファイル
 14.2) ファイルとファイル名
 14.3) ファイルを扱うための予備知識
 14.4) ファイルを作成してみよう
 14.5) 作成されたファイルを確認する
 14.6) 既存のファイルのデータを読み込む
 14.7) 既存のファイルにデータを追加する
 14.8) fopen()関数の戻り値の使い方
 14.9) fscanf()関数の戻り値の使い方



 15. ファイル操作と関数    16. 
 15.1) ファイル名を変数に代入して扱う
 15.2) データ書込み操作の関数化の例
 15.3) データ読み込み操作の関数化の例
 15.4) 先へ進む前にswitch()文を
 15.5) 本題にもどって
 15.6) ついでに,データ追加機能も
 15.7) この章では
 




 コラム(F):プログラムにやりがいを感じたい人は特に読んでくださいね(^_^)

 パソコンで何が出来るのか?




 5.文字と文字列 (Y)    6.ファイル操作 (Y)
 5.1) 概要
 5.2) 文字の基本
 5.3) キーボードから文字を入力する
 5.4) 文字配列を使う
 5.5) 文字列の基本
 5.6) キーボードから文字列を入力する
 5.7) 文字列処理1:文字列コピー(strcpy関数)
 5.8) 文字列処理2:文字列連結 (strcat関数)
 5.9) 文字列処理3:文字列比較 (strcmp関数)
 5.10) 文字と文字列に関するライブラリ関数一覧
 5.11) あとがき

   6.1) 概要
 6.2) ファイルの種類
 6.3) ファイルの4つの基本手順
 6.4) ファイルに書きこむ
 6.5) ファイルからデータを読みこむ
 6.6) ファイルに追加書きこみする
 6.7) 複数のファイルを開く
 6.8) ファイル位置って何?
 6.9) ファイル構造のお話
 6.10) ファイル関するライブラリ関数一覧
 6.11) あとがき




 7.構造体 (F&T)    8.ポインタ  (F)
 7.1) 構造体の定義
 7.2) 構造体の使い方
 7.3) 構造体の配列
 7.4) 構造体について気が付いてほしいこと
 7.5) 構造体と関数
 7.6) 構造体に関するその他の文法
 7.7) 構造体の大きな利点(ポインタとかがある程度
    分かる人は読んでください!!)









 
 8.1) ポインタとは何でしょうか?
 8.2) ポインタと密接な関係・メモリのお話
 8.3) ポインタの宣言
 8.4) ポインタの演算
 8.5) ポインタの型
 8.6) ポインタが指し示すアドレスにある内容(実際の
    データ)を知る

 8.7) アドレス演算子と間接演算子の使い分けのコツ
 8.8) だから、ポインタは何に使うの?
 8.9) ポインタ配列とポインタのポインタ、ポインタの
    ポインタの・・・・・・
(2000/7/5追加)
 8.10) 関数ポインタ(2000/7/5追加)
 8.11) 関数ポインタは何に使う?(2000/7/5追加)
 8.12) 構造体へのポインタ
 8.13) 「ポインタ遊び」




 9.関数とその使い方 (F)    10.ビット演算 (F&T)
 9.1) 関数を利用する理由 (その1)
 9.2) 関数を利用する理由 (その2)
 9.3) 関数を自分で作る
 9.4) 引数と戻り値について
 9.5) return
 9.6) もう一つの重要なお話
 9.7) 関数同士の変数の見える範囲
 9.8) 引数にアドレスを与える
 9.9) 最初から用意されている関数を活用する
9.10) Windowsらしいソフトを作るヒントもライブラリ関数に!!
 10.1) バイトとビット
 10.2) ビットパターン
 10.3) シフト演算
 10.4) 論理積(&)と論理和(|)
 10.5) ビットごとの論理積(演算記号 &)
 10.6) ビットごとの論理(演算記号 |)
 10.7) どのように使われるのか
 10.8) XORとビット反転
 10.9) ビットごとのXOR(演算記号 ^)
10.10) ビット反転(演算記号 ~)
10.11) ビット演算を活用する(2000/7/5追加)



プログラミング・テクニック集                      by 藤原 直人
 ■ デバッグの達人になる!(プログラムがエラーで上手く動かない人の為に・・・)
   これはかなり役立つ!!  ■ デバッグの達人になる!(デバッガ利用法編)
 ■ 無駄な処理(分岐命令編)
 ■ 無駄な処理(文字列処理編)
 ■ より高速、より効率のいいプログラムを書く
 □ 読みやすいプログラムを書く
 ■ メモリを欲しいときだけ確保するようにし、無駄遣いを省く!
 □ 文法はC言語のままで、便利な関数・手続きだけC++言語より拝借する
 □ コンパイラによりプログラムの解釈方法が違うことを知る
 □ プリプロセッサ命令を活用する
 □ 名前の付け方の工夫
 □ 文字コードとは
 □ コマンドライン引数を使う
 ■ Windowsのめちゃかっこいいプログラムを作りたい!(画面上のボタンをマウスで押したり最大化最小化したりしたい!)
 □ 出来上がった実行ファイルのサイズがでかいんですけど・・・
 □ ライブラリを作ってプログラミングのグループ作業を効率化する
 □ 出来上がった自信作ソフトをインターネット上で販売する.