授業の進行状況により予定を変更することがあります。
はじめに †
Lesson 01: Cプログラム †
- C言語の構文
- お約束
- 文字
- 文
- コメント
- 文字列
- printf文
- エスケープ文字
- 予約語
- インデント
- トークンと・フリー・フォーマット(おまけ)
- コンパイルと実行
- コンパイル
- コンパイラーとインタープリター
- gcc
- 実行
- chmod(おまけ)
- Cプログラムの作成と実行
- Windowsをプログラム開発用に設定する
- 開発用ソフトのダウンロードとインストール
- TeraPadをプログラミング用に設定する
- TeraPadでCプログラムを作成する
- CプログラムとTeraPadを関連付ける
- WinSCPでCプログラムをLinuxサーバーに転送する
- PuTTYでLinuxサーバーにログインする
- Cプログラムをコンパイルし実行する
Lesson 02: 変数と演算 †
- 変数
- 型
- int型
- double型
- 宣言
- 代入
- 初期化
- printf文による表示
- 暗黙的型変換
- オーバーフロー(おまけ)
- アンダーフロー(おまけ)
- まとめ
- 練習問題
- 演算
- 代入演算子
- 算術演算子
- 算術演算の結果の型
- 明示的型変換(キャスト)
- 演算子の優先順位
- 誤差(おまけ)
- まとめ
- 練習問題
Lesson 03: 条件分岐 †
- if文
- フローチャート
- 条件分岐
- if文
- 条件を満たさないときにも処理を行う
- 3つ以上に分岐する
- 関係演算子
- 関係演算を行うときの注意
- 論理演算子
- 論理演算を行う時の注意
- 条件に関係演算と論理演算を用いないif文(おまけ)
- まとめ
- 練習問題
Lesson 04: 画面への出力とキーボードからの入力 †
- 画面への出力
- printf関数
- 変換指定子
- 整数・小数を出力する
- 桁数を指定する
- ゼロ埋め
- 符号
- 左詰め
- エスケープ・シーケンス
- fflush関数(おまけ)
- まとめ
- 練習問題
- キーボードからの入力
- scanf関数
- 変換指定子
- 整数を入力する
- 小数を入力する
- 複数の値を入力する
- 入力ミス(おまけ)
- まとめ
- 練習問題
- 計算ゲーム
- 計算問題
- rand関数
- srand関数
- time関数
- サイコロ
- 計算ゲーム
- もうすこしマシなサイコロ(おまけ)
Lesson 05: 回数が決まっている繰り返し †
- for文
- 同じ処理を繰り返し行う
- カウント変数
- 増分・減分演算子
- for文
- 無限ループと強制停止
- 一度も処理しないfor文
- 合計を求める
- 複合代入演算子
- 繰り返し計算ゲーム
- for文のネスト
Lesson 06: 回数が決まっていない繰り返し †
- while文
- for文のおさらい
- 繰り返し処理のフローチャート
- while文
- 回数が決まっていない繰り返し
- break文
- continue文
- 正解するまで繰り返し計算ゲーム
- do-while文
- 繰り返し条件の後置判定(おまけ)
- do-while文(おまけ)
Lesson 07: プログラムの設計、コーディング、テスト(数当てゲームとじゃんけんゲーム) †
- 数当てゲーム
- 実行結果をイメージする
- フローチャートを作る
- プログラムを作る
- プログラムをテストする(おまけ)
- ブラック・ボックス・テスト
- ホワイト・ボックス・テスト
- じゃんけんゲーム
- 実行結果をイメージする
- フローチャートを作る
- プログラムを作る
- 無限ループとbreak文の組み合わせでプログラムを作る
- 前置判定while文でプログラムを作る
- プログラムをテストする(おまけ)
Lesson 08: 関数 †
- 関数
- 関数の呼び出し
- 関数の定義
- 引数と戻り値がある関数の定義
- 引数がない関数の定義
- 戻り値がない関数の定義
- 関数の中で宣言した変数の有効範囲
Lesson 09: 配列 †
- 配列
- 配列の宣言
- 配列の要素にアクセスする
- セグメント・エラーに注意
- 配列のすべての要素にfor文でアクセスする
- 配列の初期化
- 配列の要素数を調べる
- 配列のコピー
- 配列は配列に代入できない
- 配列をコピーするときはすべての要素をコピーする
- 配列と関数
- 配列を関数の戻り値にすることはできない
- 配列を関数の引数にすることはできる
- 配列を関数の引数にすると要素数は無視される
- 関数に渡された配列の要素数を調べることはできない
- 配列の比較
- 配列は == で比較できない
- 配列を比較するときはすべての要素を比較する
- 2次元配列(配列の配列)
- 2次元配列の宣言
- 2次元配列の初期化
- 2次元配列のすべての要素にfor文でアクセスする
- 多次元配列
Lesson 10: 文字列 †
- 文字
- 文字はchar型の変数
- 文字はシングル・クォーテーションで囲む
- 文字を出力するときの変換指定子は %c
- エスケープ・シーケンスは1文字
- 文字は文字コードで表される
- 数字を数値に変換する(おまけ)
- 文字の種類を判別する(おまけ)
- 文字列
- 文字列はchar型の配列
- 文字列を出力するときの変換指定子は %s
- 文字列の最後は \0
- 初期化のとき以外は文字列を直接代入できない
- 文字を一つずつ代入してもう字列を作る
- 文字列をキーボードから入力する
- 文字列を引数とする関数を作る
- 文字列操作関数を使う(おまけ)
Lesson 11: 場合分け †
- switch文
- if文による場合分け
- switch文による場合分け
- 複数の場合で同じ処理をするswitch文
- 条件演算子
- if文による場合分け
- 条件演算子による場合分け
- 条件演算子を用いた変数の初期化
Lesson 12: 変数の高度な使い方 †
- 変数の高度な使い方
- 変数名
- 基本データ型
- char型
- 符号付き整数型
- 符号なし整数型
- 浮動小数点型
- 符号付き整数型と符号なし整数型の違い
- 定数
- 整定数
- 浮動小数点定数
- 文字定数
- 値を変更できない変数
- 小さな数、大きな数の入出力
- 変数の有効範囲(スコープ)
- ブロック有効範囲
- ファイル有効範囲
- 変数の有効期間(記憶域クラス)
- 静的記憶域期間
- 自動記憶域期間
- C言語の規格(おまけ)
- 列挙型(おまけ)
- 定数の接尾語(おまけ)
- 整定数の接尾語
- 浮動小数点定数の接尾語
- 複素数型(おまけ)
Lesson 13: 演算子の高度な使い方 †
- 演算子の高度な使い方
- オペランド
- 増分・減分演算子の前置と後置
- ビット単位の演算子
- 補数
- 左シフト、右シフト
- 論理積
- 論理和
- 排他的論理和
- 論理演算子の短絡評価
- 配列添字演算子と関数呼び出し演算子
- 演算子の優先順位
- その他の演算子(おまけ)
- 2進数のビット列を作る(おまけ)
- 負の符号付き整数をシフト演算で2倍や1/2倍する(おまけ)
Lesson 14: 関数の高度な使い方 †
- 再帰呼び出し
- 再帰的定義
- 再帰呼び出しの振る舞い
- 注意すべきこと
- 再帰呼び出しが停止するように書く
- 再帰呼び出しが停止するように呼び出す
- なるべく再帰呼び出しを使わない
- 再帰呼び出しを使ったプログラムの例
- 階乗
- 階段の昇り方
- 値渡しと参照渡し
- 値渡し
- 参照渡し
- 配列は参照渡し
- ポインターによる参照渡し(おまけ)
- プロトタイプ宣言
- 関数のプロトタイプ宣言
- プロトタイプ宣言を省略できる場合
- 関数定義
- 関数の戻り値がint型
- プロトタイプ宣言における変数の有効範囲