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