Week 1: C言語基礎¶
日程概要¶
- Day 1: C言語入門と開発環境設定
- Day 2: 変数、データ型、演算子
- Day 3: 制御構造(条件分岐とループ)
- Day 4: 関数と配列の基礎
- Day 5: 実践演習とデバッグ技術
Day 1: C言語入門と開発環境設定¶
1.1 C言語の歴史と特徴¶
- UNIXオペレーティングシステム開発のために作られた経緯
- 高級言語でありながら低レベル操作が可能な特徴
- 移植性の高さと効率的な実行速度
1.2 C言語の利用分野¶
- システムプログラミング
- 組み込みシステム開発
- アプリケーション開発
- ゲーム開発
1.3 開発環境のセットアップ¶
- コンパイラのインストール(GCC for Linux/macOS, MinGW for Windows)
- 統合開発環境(IDE)の選択と設定(Visual Studio Code, Code::Blocks等)
- コマンドラインでのコンパイルと実行方法
1.4 最初のC言語プログラム¶
- プリプロセッサディレクティブ(#include)の説明
- main関数の役割
- printf関数の基本的な使い方
- セミコロンの重要性
- return文の意味
1.5 コンパイルと実行プロセス¶
- プリプロセス
- コンパイル
- リンク
- 実行可能ファイルの生成と実行
演習¶
- 開発環境のセットアップ
- "Hello, Embedded World!"プログラムの作成と実行
- プログラムの修正(自己紹介文の出力等)
Day 2: 変数、データ型、演算子¶
2.1 変数の基本概念¶
- メモリ上の記憶領域としての変数
- 変数の宣言と初期化
- 命名規則とベストプラクティス
2.2 基本データ型¶
| データ型 | サイズ (典型的) | 値の範囲 | 用途 |
|---|---|---|---|
| char | 1 バイト | -128 to 127 or 0 to 255 | 文字、小さな整数 |
| int | 4 バイト | -2,147,483,648 to 2,147,483,647 | 整数 |
| float | 4 バイト | 1.2E-38 to 3.4E+38 | 単精度浮動小数点数 |
| double | 8 バイト | 2.3E-308 to 1.7E+308 | 倍精度浮動小数点数 |
2.3 変数の宣言と初期化¶
2.4 定数¶
- '#define マクロ'
- const キーワード
2.5 型変換¶
- 暗黙の型変換(自動的な型変換)
- 明示的な型変換(キャスト)
2.6 演算子¶
- 算術演算子(+, -, *, /, %)
- 関係演算子(==, !=, >, <, >=, <=)
- 論理演算子(&&, ||, !)
- ビット演算子(&, |, ^, ~, <<, >>)
- 代入演算子(=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=)
- インクリメント/デクリメント演算子(++, --)
2.7 演算子の優先順位と結合性¶
演習¶
- 異なるデータ型の変数を宣言し、値を代入するプログラムの作成
- 簡単な計算プログラム(面積計算、温度変換等)の実装
- ビット演算を使用した簡単なフラグ操作プログラムの作成
Day 3: 制御構造(条件分岐とループ)¶
3.1 条件分岐¶
3.1.1 if文¶
3.1.2 if-else文¶
3.1.3 if-else if-else文¶
3.1.4 switch文¶
3.2 ループ構造¶
3.2.1 for文¶
3.2.2 while文¶
3.2.3 do-while文¶
3.3 制御転送文¶
- break
- continue
- goto(使用は推奨されない)
演習¶
- 成績判定プログラム(if-else文を使用)
- 簡易電卓プログラム(switch文を使用)
- 1から100までの素数を表示するプログラム(forループとif文を組み合わせて使用)
- ユーザー入力による繰り返し計算プログラム(while文を使用)
Day 4: 関数と配列の基礎¶
4.1 関数¶
4.1.1 関数の定義と呼び出し¶
4.1.2 関数プロトタイプ¶
4.1.3 引数の渡し方¶
- 値渡し
- 参照渡し(ポインタを使用)
4.1.4 再帰関数¶
4.2 配列¶
4.2.1 1次元配列の宣言と初期化¶
4.2.2 多次元配列¶
4.2.3 配列の操作¶
- 要素へのアクセス
- 配列の走査
- 配列と関数の関係
4.3 文字列¶
- 文字列の表現(文字配列)
- 文字列操作関数(strcpy, strcat, strlen等)
演習¶
- 複数の数値の平均を計算する関数の作成と使用
- 再帰を使用したフィボナッチ数列の計算
- 配列を使用した簡単な成績管理プログラム
- 文字列の操作(逆順にする、大文字小文字変換等)を行うプログラム
Day 5: 実践演習とデバッグ技術¶
5.1 デバッグ技術¶
- printfデバッグ
- デバッガの使用(GDB基礎)
- コンパイル時の警告の活用
5.2 コーディング規約とベストプラクティス¶
- 適切なコメントの書き方
- 命名規則
- インデントとコードの整形
5.3 実践演習:温度変換プログラム(拡張版)¶
5.4 追加の実践演習課題¶
- 簡易的な住所録プログラム(配列と構造体を使用)
- 数当てゲーム(乱数生成を含む)
- 簡単な文字列暗号化/復号化プログラム
5.5 週末プロジェクト¶
Week 1の学習内容を総合的に活用する小規模プロジェクト (例:簡易的な在庫管理システム、学生成績管理システム等)
まとめ¶
- C言語の基本構文、データ型、制御構造の復習
- 関数と配列の基本的な使い方の確認
- デバッグ技術とコーディング規約の重要性
- 実践的なプログラミングスキルの向上
次週の予告¶
Week 2では、ポインタと配列の詳細な関係、構造体、ファイル入出力など、より高度なC言語の概念について学びます。