応用プログラミング及び実習 2017年度 第1回 †[edit]
AProg/2017/ex00 を参照してください.
課題A(self) 締切: 今回の実習終了時 †[edit]
課題A-1からA-3まで全部できたらTAさんに申し出てください.全て紙に書いて考える課題です.
課題A-1 講義資料 Q5 †[edit]
今日の講義資料のQ5をやりなさい(紙の上で考えればよい).
check 右のリンク先に答えがあります.
本当に見ます?
課題A-2 講義資料 Q8 †[edit]
今日の講義資料のQ8をやりなさい(紙の上で考えればよい).
- check 以下に白字でヒントが書いてあります.マウスで文字列を選択すると見えるでしょう.
- ヒント1: f1 を呼ぶと x の値が変化してますね
- ヒント2: f1の3つ目の引数は番地を渡してますね
- check 右のリンク先に答えがあります.本当に見ます?
- check 関数を呼び出す際に書く引数(括弧の中に書くもの)を「実引数」といい,関数を定義する所で書く引数を「仮引数」といいます.この例では,関数 f1 に渡される実引数は 1.5, 2.0, &x の3つ.一方,関数 f1 の定義では,1つ目の引数を x, 2つ目を y,... という名前で扱うことにしています.実引数と仮引数に同じ名前の変数を使う必要はないことに注意.
課題A-3 講義資料Q9 †[edit]
今日の講義資料のQ9をやりなさい(紙の上で考えればよい).
check 以下に白字で答えが書いてあります.
- f01.c: ウ: 以下の3つで選ばれなかったから
- f02.c: ア: 第2引数が浮動小数点数 ==> 第2引数としてdouble型を受け取ってるのは ア だけ
- f03.c: イ: main中で関数 f の戻り値を受け取ってる ==> 戻り値のある関数は イ だけ
- f04.c: エ: 第2引数で番地を受け渡ししてる
注: C言語の規格上は,上記の答えの組み合わせ以外にもコンパイル&実行可能な解がいくつかあります.しかし,「最も適切な対応づけはどのようになるか」ですので...
注: コンパイル&実行の上では ア には何も問題がありませんが,人間の感覚ではおかしな所があります.さてどこでしょう → s + t と s - t
課題B(self) 締切: 今回の実習終了時 †[edit]
注意:
- 以下の文だけではディレクトリの作成の仕方やEmacsの使い方がわからないという人は,次のページを参照しなさい: Docs/4UNIXBeginners
- 以下の説明の「aprog20XY」の XY には,「20XYが年度を表す4桁の数(西暦)になるように」数を当てはめて考えてください.
この課題は以下の通りです.
- コンソールを開き,mkdir コマンドを使って,ホームディレクトリの下に aprog20XY というディレクトリを作りなさい.
- aprog20XYディレクトリに移動し,emacsを用いてこの中に ex01b.c という名前のファイルを作りなさい.このファイルの内容については,以下の指示に従うこと
- ex01b.c をコンパイルして動作を確認,ただし,実行形式のファイル名は ex01b とすること.
- check コンパイルの仕方忘れたひとは講義資料参照
課題C(TA) 締切: 今回の実習終了15分前 †[edit]
課題C-1とC-2の両方ができたら callta してください.「関数の定義を紙に書け」ですからプログラムのソース全体を書けと言っているわけではないことに注意.
課題C-1 関数 sum †[edit]
次の仕様の関数の定義を紙に書きなさい
- 関数定義の1行目は次の通り
int sum(int a[], int n)
- 配列aの先頭からn個の値の合計を求め,それを返す
- 関数の定義の中にprintf()は含まれないはずです
課題C-2 関数 ほげ †[edit]
以下のような関数の定義を紙に書きなさい
- 関数名は自分で適当に決める
- 引数は課題C-1の関数sumと同様とする
- 渡された配列の要素中に7の倍数があったら,その数を999倍する
- 関数の定義の中にprintf()は含まれないはずです
課題D(TA) 締切: 次回実習開始直後 †[edit]
課題D-1 ex01sum †[edit]
課題C-1の関数を用いて,次の実行例のような動作をするプログラムを作りなさい.
ただし,次のようにすること
課題D-2 ex01x999 †[edit]
課題C-2の関数を用いて,次の実行例のような動作をするプログラムを作りなさい.
ただし,次のようにすること
課題S(おまけ) 締切: 次回実習終了まで †[edit]
次のことをやりなさい.おまけ課題のチェックは高橋が担当しますので,直接高橋に声をかけてください.
- Docs/ポインタの話のQ2(初級)の2番をやって説明しなさい
- 2011年2月実施の「2010年度数理情報学科学力認定試験」の専門Iの問IVのプログラムを作りなさい.
学力認定試験や大学院入試の過去問はこちらにあります(全学認証のユーザ名とパスワードでログインする必要があります).