] > Problems

レポート課題

課題1

課題1-1、課題 1-2 について 2005年 6 月 6 日までにレポートを提出しなさい。 様式は自由ですが、 A4 の用紙を使用し、表紙を付けて下さい。 提出は講義時、または 11 号館 12 階 1206 室の指定場所まで。

課題1-1

表計算ソフトを使用して、方程式 a x2 + b x + c = 0 を満たす x を求める表を作成しなさい。 入力 abc がどのような値(0を含む) になっても正しい値が出るようにしなさい。 また、解は実数のみを考えても、複素数を考慮しても良い。

課題1-2

表計算ソフトで使われる絶対参照の重要性を、例を用いて説明しなさい。

課題2

以下の課題について 2005 年 6 月 20 日までにレポートを提出しなさい。 様式は自由ですが、 紙を使用して下さい。 提出は講義時、または 11 号館 12 階 1206 室の指定場所まで。

課題

C 言語を使用して、方程式 a x2 + b x + c = 0 を満たす x を求めるプログラムを作成しなさい。 入力 abc がどのような値(0を含む) になっても正しい値が出るようにしなさい。 また、解は実数のみを考えても、複素数を考慮しても良い。

再提出の皆さんへ

方程式の解法の解説は必須です。これを完璧に説明した後、この説明を元にプ ログラムをつくります。 レポートで一番重要なのは目的の問題を解く過程です。使う道具の歴史や機能 ではありません。

方程式を解くとは、その等式を満たすような変数の値を求めることです。 したがって、答は 1, 2, などの数字の他「解無し」や「すべての数」など になるはずです。 どんな変数の値を考えても等式が成り立たない時は「解なし」です。 「計算できない」とか「成立しない」などの答はありえません。

プログラムが正常に動作しない人が多いです。 本来はプログラムの作者がすべての責任を負うのですが、今回はこちらでテス トデータを作成しました。 下記のテストデータを作成したプログラムで解かせ、 手計算で答を求め一致するようにプログラムを修正して下さい。 そして、レポートにテスト結果を載せて下さい。

  1. 0 x2 + 0 x + 0 = 0
  2. 0 x2 + 0 x - 0.5 = 0
  3. 0 x2 + 0.5 x + 0 = 0
  4. -0.25 x2 + 0 x + 0 = 0
  5. 0 x2 - 0.5 x - 1.5 = 0
  6. -0.25 x2 + 0 x + 4 = 0
  7. -0.25 x2 - 0.25 x + 0 = 0
  8. 3 x2 + 4.5 x - 3 = 0
  9. 100 x2 + 60 x + 9 = 0
  10. 2 x2 - 2 x + 0.58 = 0

なお、どうしても手計算に不安がある人は、 Mupad に solve(4*x^2+4*x+1=0,x) などと解かせてもよいです。

講義で説明したことを使用する場合は、重要度を考えて記述を簡潔にしても構 いません。 しかし、講義で説明していないような手法で課題を解決しようとする場合、そ のような手法に関しては教科書レベルの説明が必要です。 scanf, sscanf, fgets, break, continue, switch などを使用 したい場合、必ず教科書レベルの詳しい説明をして下さい。

フローチャートというプログラムを説明するための図はお勧めしません。 フローチャートはブロック構造がなく、データ構造の貧弱なプログラミング言 語である機械語、古いBASIC、FORTRAN、 COBOL などで有用です。 しかし、 C 言語に用いようとすると、当たり前のように使用するテクニック をフローチャートでは書くことはできません。 一方、本講義では日本語での説明に重点を置いていますが、これはプログラム の説明を日本語ですることは、オブジェクト指向分析につながるからです。 もし、どうしてもプログラムを図示したければ UML をお使い下さい。

課題3

以下の課題について 2005 年 7 月 4 日までにレポートを提出しなさい。 様式は PDF 形式で、 WWW ブラウザを使用し、提出ページ に従いファイルを提出しなさい。 画面サイズは A4 にして下さい。

課題

C 言語を使用して次のプログラムを作成しなさい。入力として、正の浮動小数点の値が次のように与えられているとします。

float a[]={1.5, 3.3, 6.7, 0.2, 2.9, -1};

但し、この -1 はデータの終りを意味している特別な値です。この時、与えられた数の平均値を計算して出力するプログラムを作成しなさい。

また、プログラム中の配列変数 a の定義を次に取り替え(それ以外の部分は変更せずに)、同じく正しく計算できることを確かめなさい。

float a[]={3.3, 6.7, 0.2, 2.9, -1};

評価方法

レポートのページ制限はありませんが、簡潔さ読み易さは評価しますので、 同じ内容なら短い方を高く評価します。 評価は 10 点法で行い、5 点以下は不合格として再提出してもらいます。

なお、写したと思われるほど酷似したレポートが複数提出された場合、原著が どれかの調査を行わず、抽選で一通のレポートのみを評価 の対象とし、他は提出済みの不合格レポートとして再提出は課しません。 自分で意図せずに他人にコピーされてしまった場合も同様ですので、レポート の取り扱いについては十分に注意して下さい。

また、成績評価は全レポートの合格と定期試験の受験が前提です。 レポートが一つでも不合格、または定期試験を受験しなかった時は不合格にな ります。


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科