情報科学演習
2010.07.12
Back to index page
- 本日の作業内容
- 前回の宿題について
前回の宿題ですが,以前に今後はやってはいけないと,言っていた方法を使う人
が多くて残念です.平均値を求めるときに,自分で全ての要素を書き出して計算
している人が大半でした.(満点は3名のみ)
前にも言いましたが,プログラミングは面倒臭い計算をコンピュータにやっても
らうことが大事です.今回の移動平均は3つの平均でしたが,膨大なデータを処
理する際に,100個の数値の平均だったらどうしますか?常に,データが大量に
ある場合を想定していてください.
- 期末試験について
いよいよ次回(7/26)は期末試験です.手続的なことについて以下に書いておきま
すので,ミスの無いように対応をよろしくお願いします.
- 試験時間について
解答準備や退室作業などありますので,実際の試験時
間は80分になる予定です.
- 遅刻について
C7クラスの人は16:10分までに入室できるよう準備しておいてください.それ以
降の入室また遅刻は認められませんので,遅れないように注意してください.
- 途中退室
C6クラスの人は途中退室は出来ませんので,最後まで720教室に居てください.
気分が悪くなった場合には別途対応しますので,その場合には手を挙げて教えて
ください.
- 電子メールについて
解答用紙の提出は電子メールで行いますが,電子メールの利用は提出時(試験終
了5分前)に限定します.その時間以外に電子メールアプリが起動している場合に
は不正行為とみなしますので,注意してください.
- クラス入れ換え
C6クラスの試験が終了すると,受講生全員前のスペースに集合してもらいます.
そして,前の扉からエレベーターホールの方向へのみ移動可能ですので,東側エ
レベータもしくは非常階段を使用して移動してください.
C7クラスの人はC6クラスの試験終了後,教室後方のドアが開いたら入室を開始し
て,後ろのスペースに待機していて下さい.C6クラスの学生が退室した後に着席
可能です.
- 履物
C6クラスの人は入室時に履物を教室前方の三和土に置くか,自分で保管するようにしてください.退
室時には下足箱の方には進めません.
- 提出時間厳守
試験終了の合図をして以降の解答の提出は認められませんので,必ず時間内に提
出してください.
- コンパイル不能および動作不能の答案について
コンパイルできない答案や,動作させると適切に動かない,終了しないなどの不
備のある答案は採点しませんので,注意してください.
- 解答用紙
解答用紙はこれを使用してください.解答用紙自体がC言語のプログラムにすで
になっていますので,扱いに注意してください.
学生番号と名前は試験前にあらかじめ準備しておいてください.また,コメント
行の部分も消さないでください.もちろん,printf の行は消してはダ
メです.
- 提出方法
提出方法はいつもの通りです.件名が違っていると採点しませんので,そこも注
意してください.今回の件名は以下のようになります.
final_c6_s0940** (C6クラス)
final_c7_s0940** (C7クラス)
- 2配列
- 実習
- 添字を式にする練習
教科書p.52の5.1に書いてあるように,配列のデータを区別するのに使用する番
号を「添字」と言います.英語ではindexです.ここには順番を表す数字がきま
すが,式が来ても構いません.例に以下のような作業をしてみましょう.
適当な文字列を用意して,その文字列の順序を反転しましょう.下のようにして
みましょう.
Original string is "World Cup".
Reversed string is "puC dlroW".
|
ヒント
次のような文字列の配列を用意して,for ループで逆から表示するこ
とが可能です.
char str[10] = "World Cup";
|
また,配列に入っている文字を printf で1文字ずつ表示する場合%記
法では,文字を表す %c を使います.
解答例(18行)
- 文字型配列の活用
教科書p.67の(2)にあるように,数種類の文字列を配列にすることで使いやすく
なります.以前に作ったトランプの例を改良
してみましょう.
用意するのは次のような配列です.
char suit[4][9] = {"Spades", "Hearts", "Diamonds", "Clubs"};
char num[13][3] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
|
結果表示は同じように下のようにしましょう.
Your card is Q of Spades.
|
解答例(20行)
- 2次元配列の実習
教科書p.60の例3では数値を値に持つ2次元配列の初期化が出ています.これを応
用して,一桁の正の整数からなる5×5の数値列を作り,左上から右下へ,と,右
上から左下への対角線上の数値の和を求めましょう.結果は以下のようになるも
のとします.
2 4 1 8 2
1 8 2 7 5
2 7 5 4 3
5 4 3 9 1
3 9 1 3 1
Sums of diagonal elements are 25 and 21.
|
ヒント
ループを活用して自己代入で和を求めることができますが,その際に数値配列の
添字に式を使うことで簡単になります.
解答例(30行)
- パターン表示
文字列 World Cup を使用して,下に示す
ような表示を作りましょう.配列としては次のものを使うようにします.
char str[] = "World Cup";
|
ヒント
左上を原点とする座標系として考えると,直線の式 y = ax + b を考
えるとわかりやすくなります.
いくつかの表示パターンが簡単に作れます.
W W
o o
r r
l l
d
C C
u u
p p
|
解答例(22行)
W
o o
r r
l l
d d
C C
u u
p p
|
解答例(22行)
- 宿題
授業の最後に宿題の案内をしますので,注意していて下さい.
目次ページに戻る