第2回レポートについて(提出日: 6/5)

課題 1

GC 含有量とは、塩基配列中に含まれるグアニン (G) とシトシン (C) の割合のことで、次のように定義される:

\[\textrm{GC含有量} = \frac{\textrm{G と C の数}}{\textrm{塩基配列の長さ}}\]

与えられた塩基配列のGC含有量を計算するプログラムを作成しなさい。塩基配列の与え方は次のどちらかを選択せよ:

  1. プログラム中に文字列として宣言する。
  2. scanf 関数や gets 関数などを使って標準入力(キーボード)から入力する。

実行例

acgt ← 入力
GC content = 50.000000%
gtcatgcaaaactgatgacgttgcatgatgtcga ← 入力
GC content = 44.117647%

課題2

次の3 × 3行列AとBの積を計算するプログラムを作成しなさい。

\[A = \begin{pmatrix} 1 & 3 & 2\\ 7 & 1 & 9\\ 10 & 5 & 0 \end{pmatrix}, \quad B = \begin{pmatrix} 2 & 11 & 3\\ 8 & 3 & 2\\ 9 & 3 & 4 \end{pmatrix}\]

ヒント

行列 A, B は次のように与えるとよい。

int A[3][3] = { {1, 3, 2}, {7, 1, 9}, {10, 5, 0} };
int B[3][3] = { {2, 11, 3}, {8, 3, 2}, {9, 3, 4} };

実行例

AB=
44 26 17
103 107 59
60 125 40

課題3

M × L 行列 A と L × N 行列 B を標準入力(キーボード)から入力し、その積 AB を出力するプログラムを作成しなさい。

ヒント

M, N, L は #define 文を使って定義する。

#define M 5
#define N 3
#deinfe L 4 

ヒント

M x L行列 \(A= \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1L}\\ a_{21} & a_{22} & \cdots & a_{2L}\\ \vdots &\vdots & \ddots & \vdots\\ a_{M1} & a_{M2} & \cdots & a_{ML} \end{pmatrix}\) と L x N行列 \(B= \begin{pmatrix} b_{11} & b_{12} & \cdots & b_{1N}\\ b_{21} & b_{22} & \cdots & b_{2N}\\ \vdots &\vdots & \ddots & \vdots\\ b_{L1} & b_{L2} & \cdots & b_{LN} \end{pmatrix}\) の積は M x N行列となり、それを \(C= \begin{pmatrix} c_{11} & c_{12} & \cdots & c_{1N}\\ c_{21} & c_{22} & \cdots & c_{2N}\\ \vdots &\vdots & \ddots & \vdots\\ c_{M1} & c_{M2} & \cdots & c_{MN} \end{pmatrix}\) とすると、その要素は \(c_{ij} = \displaystyle\sum_{k=1}^{L} a_{ik} b_{kj}\) となる。

レポート様式

  1. レポート本体は電子媒体(Wordなど)で作成し、「Canvas LMS」に提出する。
  2. プログラムは、いつもの演習と同じようにreplitに提出する。
  3. プログラムの作成方針を述べる。たとえば、変数の取り方、ポイントとなる計算に使う文、アルゴリズムの検討など。
  4. 考察をする。if 文と switch 文の違い、プログラムの作成過程で間違えた箇所とその理由、プログラム作成上の注意など。
  5. 締め切り: 6月5日(水)10:45

Updated: