本日の内容
- はじめに
- 先週の課題について
- レポートの出題文をよく読んで、出題者の意図を考えて作成すること
- コメントアウトして説明を書いておいたほうが良い
- 先週の課題でよく見た間違い
- C言語って世の中で使われているの?
- デバッグの基本手順
- コード内に行番号を表示する
- [ツール] メニューの [オプション] をクリックし、[テキスト エディタ]、[C++]、[全般] の順にクリックして、[行番号] チェック ボックスをオン
- エラーメッセージを参照して、デバッグが必要な行までコードを実行する
- デバッグが必要な行にブレークポイントをつける(行番号の左をクリック)
- デバッグを開始する ([F5]キーを押す。もしくは「デバッグ」→「デバッグ開始」をクリック)
- コードを1行ずつ実行する
- ステップオーバー ([F10]): コード内に関数があると、その実行直後まで進む
- ステップイン ([F11]): コード内に関数があると、その関数の1行目まで進む
- ステップアウト ([Shift]+[F11]) : 現在の関数を最後まで実行し、その関数を呼び出したコードに戻る
- 実行可能か?変数の値は正しいか?などを確認して、必要があれば修正する
- デバッグを停止する ([Shift]+[F5]、もしくは「デバッグ」→「デバッグの停止」をクリック)
- 不要なブレークポイントをクリックして消す
- 演習
演習
- 演習4.1 ファイルの内容を表示するプログラム
- 課題4.1 じゃんけんゲーム
- 課題4.2 1行メモを記憶するプログラム
演習4.1
コマンドラインからファイル名を入力し、ファイルが存在する場合はファイルの内容を表示するプログラムを作成する.ファイルが存在しない場合は、エラーメッセージを表示する。
注意事項
「デバッグなしで開始」で実行すると、ファイルの読み込みに失敗する。必ず「デバッグ開始」で実行すること。ただし「デバッグ開始」で実行すると、実行終了後にコマンドプロンプト画面が消失する。これを防ぐには、ソースコードの最終行にブレークポイントをつける。
手順
- キーボードからの入力を変数に格納するscanf()関数をリファレンスで引いて、書式と機能を確かめる.
- 下記のソースをもとに,まず自力でプログラムを書いてみる. 間違っていても構わない.
- ひととおり入力を終えたら,ビルドする前にソースをレポートに貼り付けておく.
- ビルドする。ビルドエラーをレポートに貼り付けておく.
- エラーを修正する。エラーを全て取り除いた後,実行して結果を確かめる.
- 結果が正解と異なってた場合は,ソースを見直す.
- エラーを取り除いたソースをレポートに貼り付ける.
- 実行結果をレポートに貼り付ける.
- 友人と相談する場合も,まずは自力で考えること. 誰と相談したか,また,相談した結果気がついた間違いをレポートに記述すること.
- scanf()の行について、実行前と実行後の配列変数filenemeの各値全部と型を書くこと.
ソース
ヒント
- 読み込み用ファイルの作成方法 : ソースファイルを右クリック -> 追加 -> 新しい項目 -> 名前欄にmemo.txt -> 追加
- 適当な文章を入力して保存(「ファイル」→「memo.txtの保存」をクリック)する
- memo.txtは、ソースファイル(xxxxx.c)と同じ場所に置くこと
[課題4.1]
じゃんけんゲームを作成せよ.
条件
- ユーザの手はキーボードから入力してもらう.
- ユーザの手を表す変数はint型とし,グーを0,チョキを1,パーを2で表すものとする.
- ユーザから入力された値が正常でない場合,ユーザの入力をやり直す.
- コンピュータの手はランダムに決定する.
- rand()関数を利用する.
- プログラムを実行するたびに異なる乱数が使われるよう工夫すること.
手順
- まず自力でプログラムを書いてみる. 間違っていても構わない.
- ひととおり入力を終えたら,ビルドする前にソースをレポートに貼り付けておく.
- ビルドする.ビルドエラーをレポートに貼り付けておく.
- エラーを修正する.エラーを全て取り除いた後,実行して結果を確かめる.
- 結果が正解と異なってた場合は,ソースを見直す.
- エラーを取り除いたソースをレポートに貼り付ける.
- 実行結果をレポートに貼り付ける.
- 友人と相談する場合も,まずは自力で考えること. 誰と相談したか,また,相談した結果気がついた間違いをレポートに記述すること.
- 「自分の手を入力する」処理について、実行前と実行後の変数yourChoiceの値と型を書くこと.
- 「コンピュータの手を表示する」処理について、実行前と実行後の変数CompChoiceの値と型を書くこと.
ソース
出力結果の例
ヒント
- 「コンピュータの手を表示する」処理のフローチャート
[課題4.2]
コマンドラインからメモを入力すると,日時とともにメモをファイルに
記録するプログラムを作成せよ.何度もプログラムを実行すると,1つの
ファイルに以下のようにメモが追記されていくものとする.
>> [3月18日 18時54分]
>> はじめてのメモ
>>
>> [3月18日 18時54分]
>> 2回目にプログラムを起動したときに入力したメモ
>>
>> [3月18日 18時55分]
>> 3回目のメモ
>>
注意事項
「デバッグなしで開始」で実行すると、ファイルの読み込みに失敗する。
必ず「デバッグ開始」で実行すること。
ただし「デバッグ開始」で実行すると、実行終了後にコマンドプロンプト画面が消失する。
これを防ぐには、ソースコードの最終行にブレークポイントをつける。
手順
- まず自力でプログラムを書いてみる. 間違っていても構わない.
- ひととおり入力を終えたら,ビルドする前にソースをレポートに貼り付けておく.
- ビルドする.ビルドエラーをレポートに貼り付けておく.
- エラーを修正する.エラーを全て取り除いた後,実行して結果を確かめる.
- 結果が正解と異なってた場合は,ソースを見直す.
- エラーを取り除いたソースをレポートに貼り付ける.
- 実行結果をレポートに貼り付ける.
- 友人と相談する場合も,まずは自力で考えること. 誰と相談したか,また,相談した結果気がついた間違いをレポートに記述すること.
- tm構造体の変数tについて、「現在時刻より時と分を取得」処理の実行前と実行後の各メンバ変数の値と型を書くこと.
ヒント
- 日時の取得: time関数とlocaltime関数,tm構造体を利用.
- 月の取得: t->tm_mon + 1
- 日の取得: t->tm_mday
- 「キーボードからの入力をmemo配列に格納する」処理は関数scanf()を利用
- 「ファイルに現在日時とmemo配列の内容を書き込む」処理は関数fprintf()を利用
- コマンドプロンプトから日本語を入力するときは[Alt]+[半角]キーを押す.
- 記録用ファイルを見る方法 : 「ソースファイル」を右クリック -> 追加 -> 既存の項目 -> memo.txtを選択するとソースファイルの下に表示される
ソース
レポート
- 提出先・期限
- https://www.kagoshima-u.ac.jp/manaba/の「プログラミング言語I及び演習」のレポートより提出
- 演習当日の23:55まで
- 内容
- Microsoft Wordを用いてレポートを作成すること.
下記について記述すること.
- 演習4.1 (ビルド前のソース,最初のビルドで見つかったエラーの一覧,エラー除去後のソース,実行結果,指定変数の実行前後の値と型
- 課題4.1 (ビルド前のソース,最初のビルドで見つかったエラーの一覧,エラー除去後のソース,実行結果,指定変数の実行前後の値と型
- 課題4.2 (ビルド前のソース,最初のビルドで見つかったエラーの一覧,エラー除去後のソース,実行結果,指定変数の実行前後の値と型
- 結論 (今回の演習を通じて学んだことについて客観的な事実を書く.主観的な内容は所感に書くこと.)~
- 質問・相談 (質問した場合や誰かと相談した場合は,その内容、相手名、所要時間を書くこと.)
- 所感 (感想や意見などを自由に書いてよい.)
- 提出ファイル
- Wordファイルにソースコードやキャプチャした実行画面などを貼り付けてmanabaのレポートから提出すること.
- テンプレート等(Word)
- Word表紙 (回数やタイトルなどを適宜修正して使うこと.)