The Office Uchida, School of Computerコンピュータを学習する人の学校:パソコンキャンパス、プログラミングキャンパス |
ホーム→ C言語によるプログラミング 基礎編 |
文字の縮小
|
デジタルナレッジの本コンテンツの販売サイト (1ヶ月コース, 4,200円)、 (3ヶ月コース, 8,400円)、 (6ヶ月コース, 12,600円)
|
「C言語によるプログラミング 基礎編」 速習コース(約17時間30分:学習時間1ヶ月) 「C言語によるプログラミング 基礎編」 標準コース(約17時間30分:学習時間3ヶ月) 「C言語によるプログラミング 基礎編」 じっくりコース(約17時間30分:学習時間6ヶ月) 対象となる方:C言語のプログラムを実際に組めるようになりたい方、あるいは読めるようになりたい方 内容紹介:プログラミングの初心者の方からある程度のプログラミング経験をお持ちの方を対象に、C言語の持つ機能を一通り学習します。
e-Learningでは、データの流れや処理の流れをアニメーションで分かりやすく説明できます。
一方、書籍のほうは詳しく書いてある説明をじっくりと読んで理解するのに適しています。
なお、書籍は、内田智史監修、株式会社システム計画研究所編、
「C言語によるプログラミング 基礎編 第2版」、オーム社(ISBN 4-274-06440-9)を用いますので、別途ご用意ください。 講師 学習方法:本コンテンツの学習方法は、こちらからどうぞ。 FAQ:本コンテンツに対するFAQは、こちらからどうぞ。 |
|
第1章 プログラミングの基礎知識 (43分23秒) | |||
節 | タイトル | 収録時間 | ポイント |
---|---|---|---|
1.1 | 本ビデオ授業での学習の仕方 | 9:57 | なぜ、ビデオ授業か, 本講座の目的, 学習方法 |
1.2 | C言語の位置付け | 9:56 | ソフトウェアの活躍する範囲、科学技術計算の特徴, C言語の誕生とその意義, C言語のいいところ、わるいところ |
1.3 | プログラムの作成から実行まで | 22:10 | プログラムを機械語に翻訳して実行する意味, エディタでソースプログラムを作る, gccでコンパイルして実行する |
1.4 | プログラミングの基礎知識 | 1:20 | プログラミングに王道なし, 初心者から中級者になろう |
第2章 プログラミング入門 (56分47秒) | |||
節 | タイトル | 収録時間 | ポイント |
2.1 | 画面にメッセージを表示しよう | 20:02 | 画面にメッセージを表示するプログラム, プログラムの書き方と特徴, 基本的な文法知識 |
2.2 | 数の計算をしてみよう | 16:53 | 2個の数を加えるプログラム, 変数と計算するプログラムの書き方, 基本的な整数の演算子 |
2.3 | 入出力について | 9:04 | データの入力と出力, データを入力して表示するプログラム |
2.4 | プログラムの流れを変える | 10:48 | 条件判断, 条件判断を用いたプログラム例, データのチェック |
第3章 変数と式 (1時間54分51秒) | |||
節 | タイトル | 収録時間 | ポイント |
3.1a | 変数について | 9:05 | 変数とは何か, 変数の文法規則, 誤りのある変数の例 |
3.1b | データ型 | 26:37 | コンピュータで扱うデータ, 整数型と実数型, char型 |
3.1c | 定数 | 23:00 | 定数とは, 10進以外の定数, printf 変換 |
3.1d | 変数の定義 | 11:24 | 変数の定義, 変数の初期化, const, signed, unsigned |
3.2a | 式 | 15:25 | 式文、代入文, 演算子, 右辺値、左辺値 |
3.2b | 算術演算子 | 20:36 | 整数型・実数型の演算とその演算回路, 整数型の演算回路, 実数型の演算回路 |
3.2c | 混合演算 | 8:44 | 混合演算, 精度の消失, キャスト |
第4章 制御の流れ (2時間51分14秒) | |||
節 | タイトル | 収録時間 | ポイント |
4.1a | 条件演算 | 32:22 | 条件判断処理, 関係演算子、論理演算子、否定演算子, 文字の入力 |
4.2a | 条件演算 | 12:45 | if文, 複文, else文 |
4.2b | switch文 | 13:13 | switch文, さまざまなswitch文の例, プログラム例 |
4.2c | 多肢条件文 | 14:36 | 多肢条件文, if - else if - else文, switch文 |
4.2d | 多肢条件文の応用と数学関数 | 11:48 | 数学関数, エラーの例, プログラム例 |
4.3.1a | 繰り返し処理とwhile文 | 11:44 | ループ処理, while文, プログラム例(数表、集計) |
4.3.1b | インクリメント演算子など | 20:42 | インクリメント・デクリメント演算子とその動作, 練習問題と誤用例, プログラム例 |
4.3.1c | ループの境界条件 | 2:05 | ループの境界条件とタイミング |
4.3.1d | getcharとputchar | 11:15 | getcharとputchar, なぜ、入力文字にint型を使うのか, EOFとは何か |
4.3.1e | break文とcontinue文 | 3:49 | break文とcontinue文, プログラム例 |
4.3.2a | for文 | 15:08 | for文, continue文とbreak文, プログラム例 |
4.3.3a | do-while文 | 3:35 | do-while文, while文とdo-while文の違い, プログラム例 |
4.3.4a | 無限ループ | 3:49 | 無限ループとは, 無限ループのプログラム例, 無限ループ使用時の注意 |
4.3.4b | ループのネスト | 7:00 | ループのネスト, ネストとbreak文, 外側のループには脱出できない |
4.4a | 無条件分岐 | 4:35 | ラベル, goto文とループの内側からの強制脱出, 空文 |
4.5a | 条件演算子 | 2:48 | 条件演算子, プログラム例 |
第5章 関数 (2時間17分11秒) | |||
節 | タイトル | 収録時間 | ポイント |
5.1.1 | 関数とは(やさしい解説) | 25:30 | 例題による関数の紹介, パラメータの受け渡し, プログラムの形式と動作 |
5.1.2 | 関数を含むプログラムの構造 | 19:29 | プログラムの構造, ヘッダファイル, プロトタイプ宣言 |
5.1.3 | 関数の呼び出し手順 | 11:54 | 組み合わせ数を求める関数, 関数の具体的な呼び出しメカニズム, プログラム例 |
5.1.4 | 局所変数と数値計算 | 4:30 | 局所変数, 自作関数の作り方 |
5.2 | 関数宣言と引数 | 5:22 | 引数の記述形式, 引数の個数と型の一致, 関数の名前と重複の禁止 |
5.3 | いろいろな関数の例 | 14:03 | プロトタイプ宣言, 名前空間, void型関数 |
5.4a | さまざまな変数(概要) | 5:04 | 記憶クラス、記憶クラス指定子, 生存期間、配置場所、通用範囲(スコープ), 外部変数、静的変数、局所変数 |
5.4b | 自動変数 | 13:28 | 自動変数とは, 局所変数、仮引数, スタック |
5.4c | 外部変数とstatic変数 | 14:10 | ファイルの分割, 自分が呼ばれた回数を返す関数, 外部変数とstatic変数 |
5.4d | レジスタ変数 | 4:59 | レジスタ変数とは, 生存期間、配置場所、初期値 |
5.4e | 変数の初期化 | 7:10 | 静的変数の初期化, 自動変数の初期化 |
5.5 | 変数の通用範囲 | 11:32 | 通用範囲(スコープ)とは, ブロック、関数、複数ファイルにおける通用範囲 |
第6章 配列 (2時間8分14秒) | |||
節 | タイトル | 収録時間 | ポイント |
6.1 | 配列の概念 | 4:55 | 配列の必要性, 配列の基礎, 配列を用いる場面 |
6.2a | 配列の使い方 | 9:21 | 配列変数の定義, 配列定義の仕方, 配列を用いる場面 |
6.2b | 配列の利用例 | 8:12 | 配列のコピー, 配列の添字の範囲チェック, 全配列の初期化、最大値検索 |
6.3a | 平均値・分散・標準偏差 | 10:10 | 集計計算, 平均値・標準偏差, 配列を用いる場面 |
6.3b | 並べ替え | 15:33 | 交換法のアルゴリズム, 交換法のプログラム |
6.4 | 配列の要素数とマクロ定数 | 7:58 | 配列の特徴, マクロを使ったプログラムの修正 |
6.5a | 2次元配列 | 4:20 | 2次元配列の文法説明, 2次元配列の事例による説明 |
6.5b | 行列計算 | 8:08 | 行列を配列で表現する, 行列の和と積, 行列計算プログラム |
6.5c | 座標計算 | 16:15 | 座標計算, 最も遠い席を探す, サンプルプログラムのデータ構造 |
6.6a | 1次元配列の初期化 | 14:46 | 1次元配列の初期化, 配列の要素数, 配列処理のアルゴリズム |
6.6b | 2次元配列の初期化 | 5:11 | 2次元配列の初期化, 最後のコンマ, メモリ中の配置 |
6.7 | 多次元配列 | 8:34 | 多次元配列とは, 3次元配列、それ以上の配列, 多次元配列のアクセスと利用例 |
6.8 | 関数の引数に配列を使う | 14:51 | 関数に配列全体を渡す, 関数に配列の要素を渡す, 関数内での配列の変更 |
第7章 文字列 (1時間35分28秒) | |||
節 | タイトル | 収録時間 | ポイント |
7.1a | 文字列の表現 | 16:34 | 文字と文字列, 文字列を文字配列として使う, 文字列の標準関数 |
7.1b | 文字配列の初期化 | 6:45 | 文字配列の初期化, 文字列の初期化に関する注意 |
7.2a | 文字列の操作 | 3:16 | 文字列の操作 |
7.2b | 文字列のコピー | 5:45 | 文字列のコピー, 文字列をコピーする関数を定義する, その関数を使う |
7.2c | 文字配列の使用例と注意点 | 12:58 | 文字配列の使用例と注意点, 関数の引数に文字配列を記述する場合, 文字配列の寸法を超えたコピー |
7.2d | 文字列の長さ | 9:33 | 文字列の長さ, 文字列の長さを計算する関数, scanf関数とgets関数 |
7.2e | 文字列の連結 | 15:49 | 文字列の連結(誤り版と正解版、危険版), 連結のアルゴリズム |
7.2f | 文字列の比較 | 24:48 | 文字の大小(ASCIIコード表), 文字列比較関数, プログラム例 |
第8章 ポインタ (2時間00分10秒) | |||
節 | タイトル | 収録時間 | ポイント |
8.1a | アドレス | 4:09 | コンピュータの記憶装置, プログラムのロード, 記憶装置に配置されたプログラム |
8.1b | ポインタとは | 4:17 | ポインタとは, NULLポインタ |
8.1c | アドレス演算子 | 6:04 | アドレス演算子とは, アドレス演算子の利用, レジスタ変数のアドレスが取れない理由 |
8.1d | ポインタ変数の定義 | 9:58 | ポインタ変数の定義, ポインタ変数の定義の制限, さまざまなポインタ変数 |
8.1e | 間接演算子 | 8:27 | 間接演算子, アスタリスク(*)の用法, なぜ、特定の型しか指せないのか? |
8.1f | ポインタ変数の初期化 | 4:29 | ポインタ変数の初期化の重要性, ポインタの初期化, ポインタは危険 |
8.2a | ポインタ演算 | 19:04 | ポインタ演算とは, ポインタ演算の種類, ポインタ演算の具体的な例 |
8.2b | ポインタと配列 | 25:48 | アドレス計算, サンプルプログラム:合計を求める, ポインタで効率を追求する |
8.2c | ポインタ変数と配列の相違 | 6:13 | ポインタ変数を配列のように使う, ポインタと配列の相違 |
8.2d | 文字列とポインタ | 13:50 | 文字列定数, 初期化に用いられる文字列定数, プログラム例 |
8.2e | ポインタの引数としての使い方 | 17:51 | 誤りのあるswap関数と正しいswap関数, str_copy関数のポインタ版, 配列要素の和を計算する関数プログラムのポインタ版 |
第9章 構造体とユーザ定義型 (1時間36分19秒) | |||
節 | タイトル | 収録時間 | ポイント |
9.1 | 構造体の概念 | 23:49 | 構造体の概念とその定義, 複雑な構造体の定義, 構造体のネスト |
9.2 | 共用体 | 15:27 | 記憶装置の特性, 共用体とは, 共用体を使う場面 |
9.3 | 構造体と共用体の初期化 | 7:24 | 構造体の初期化, ネストされた構造体の初期化, 共用体の初期化 |
9.4a | 構造体の配列 | 12:09 | 構造体の配列, 構造体の配列の初期化, プログラム例 |
9.4b | 構造体へのポインタ | 4:56 | 構造体のポインタ |
9.4c | 構造体と関数 | 5:49 | 構造体を関数の引数にする, 構造体を返す関数の定義, プログラム例 |
9.5a | typedef | 16:54 | typedefの利用, 高度なtypedef, typedefが有効な局面 |
9.5b | 列挙(enumeration) | 7:57 | typedefの多少の問題点を列挙型で解決, 列挙型の正体, #defineとenumの違い |
9.5c | 宣言と定義 | 1:54 | 宣言と定義の違い |
第10章 ファイル (1時間21分06秒) | |||
節 | タイトル | 収録時間 | ポイント |
10.1 | ファイルの概念 | 8:26 | ファイルからのデータ入力, |
10.2 | ファイルからの入力 | 12:5 | ファイルを入力するには, 実際のプログラムの動作, プログラム例 |
10.3 | ファイル名を指定した入力 | 5:1 | ファイル名の指定, ファイル名の長さ, キーボードからのファイル名の入力 |
10.4 | 入力データの終わりの判定 | 4:12 | ファイルから入力するデータの終わりの判定 |
10.5 | 複数ファイルから入力するには | 2:37 | 複数ファイルからデータを入力する方法, その際の注意点 |
10.6 | ファイルへの出力 | 10:41 | ファイルへの出力, 出力時のプログラムの動作, 改行の注意点 |
10.7 | ファイルの追加出力 | 3:04 | ファイルの追加出力, プログラム例 |
10.8a | エラー発生時の対処 | 6:07 | エラーを未然に防ぐ, エラーチェックの方法, エラーチェックを行う関数 |
10.8b | fscan関数の危険性 | 13:24 | fscanf関数の危険性, fscanf関数の危険性の回避法 |
10.8c | fclose関数のチェック・例外処理 | 4:15 | fclose関数のチェック, 例外処理で有効なgoto文 |
10.9 | ファイルと入出力 | 8:32 | ファイルの入出力, 標準入力・標準出力・標準エラー出力 |
10.10 | 実用的なプログラムへの応用(概要のみ) | 2:42 | 実用的なプログラムを開発するには, サンプルプログラムの概要 |
|
本講座は、インターネット上で学習する新しい形態の教育システムです。 すべての授業はWeb上にあり、期間内であれば、いつでも視聴することができます。 また、この講座は書籍を使います。別途、書籍 内田智史監修、株式会社システム計画研究所編、 「C言語によるプログラミング 基礎編 第2版」、オーム社(ISBN 4-274-06440-9)を用意し、これを見ながら授業を受けて下さい。 プログラミングは、文法を覚えただけでは不十分です。本講座で学習した内容は必ず、実際にプログラムを作成して確認して下さい。 本来は、自分でプログラムを入力したほうが学習効果が高くなるのですが、この書籍のソースプログラムは、 筆者の研究室のC言語の勉強室に公開されています。 質問は受け付けておりませんが、私の大学の電子メールアドレス(uchida@inf.ie.kanagawa-u.ac.jp)には、一般の方や私の書籍の読者から多くの質問が参ります。 すべての質問に直ちに答えることはできませんが、極力解答するようにしています。常にお答えできるか分かりませんが、メールしてみてください。 なお、そのような質問は、FAQ集に登録させていただきます。 |
|
質問:すべてを学習するのにどのくらいの期間がかかりますか?
質問:本講座の前提知識は、どのようなものでしょう。
質問:指定された書籍がなくても、この講座を受講することができますか?
質問:どのような方にこの講座はお勧めですか?
質問:本講座でC言語のすべてを網羅しますか?
質問:本講座では、特定のCコンパイラを仮定していますか?
質問:本講座で学習したプログラムをダウンロードできますか? |
Copyright (C) 2006-2008 The Office Uchida, School of Computer, All Rights Reserved.
|