情報処理Ⅱ 第14回 2006年1月23日(月).

Slides:



Advertisements
Similar presentations
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
Advertisements

情報処理Ⅱ 第1回 2006年10月6日(金).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第5回 関数(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
プログラミング言語としてのR 情報知能学科 白井 英俊.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
ファーストイヤー・セミナーⅡ 第8回 データの入力.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
第13回 プログラミングⅡ 第13回
情報処理Ⅱ 2005年10月7日(金).
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
情報処理Ⅱ 2005年12月9日(金).
第8回 プログラミングⅡ 第8回
情報科学1(G1) 2016年度.
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
情報処理Ⅱ 2006年1月13日(金).
第10回 プログラミングⅡ 第10回
情報処理Ⅱ 第1回 2007年10月1日(月).
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング2 関数
関数の定義.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
プログラミング 3 構造体(2).
第7回 プログラミングⅡ 第7回
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
第11回 プログラミングⅡ 第11回
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
情報処理Ⅱ 2008年1月30日(水).
情報処理Ⅱ 第2回:2003年10月14日(火).
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
コンパイラ 2011年10月20日
C言語 はじめに 2016年 吉田研究室.
プログラミング基礎a 第6回 C言語によるプログラミング入門 配列と文字列(その2)
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
情報処理Ⅱ 2005年1月25日(火) レポート課題2の解説.
第5回 プログラミングⅡ 第5回
情報処理Ⅱ 2006年11月24日(金).
情報処理Ⅱ 第7回 2004年11月16日(火).
情報処理Ⅱ 2005年10月28日(金).
情報処理Ⅱ 2007年1月26日(金).
情報処理Ⅱ 2007年12月3日(月) その1.
コンパイラ 2012年10月11日
プログラミング 4 文字列.
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
情報処理Ⅱ 2006年11月8日(金).
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
情報処理Ⅱ 2007年2月2日(金).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
情報処理Ⅱ 第9回:2003年12月16日(火).
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
情報処理Ⅱ 小テスト 2005年2月1日(火).
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
情報処理Ⅱ 第8回:2003年12月9日(火).
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング 3 ポインタ(1).
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング 2 静的変数.
Presentation transcript:

情報処理Ⅱ 第14回 2006年1月23日(月)

本日のスケジュール 14:50~14:55 … 復習問題 14:55~15:30 … おさらい問題 14:50~14:55 … 復習問題 14:55~15:30 … おさらい問題 何でも参照可.周りと相談可.質問可. 採点の対象にはならない. 15:30~16:15 … おさらい問題の解説 16:15~16:20 … 試験について

本日授業を欠席した人へ 1年生・再履修者共通 再履修者で,月7・8限に授業がある人 配布資料を渡すので,A-510まで Webでも読める 来る場合,メール連絡あるとありがたい 再履修者で,月7・8限に授業がある人 口頭で,本日の課題を指示するので,メールで回答すること. 1年生と,再履修者でもA-510まで配布資料を取りに来ない人からは,回答メールがあっても出席点としない.

試験の心構え しっかり準備をする. Webページの復習問題には目を通しておく. プログラムコードを見て,出題意図を把握する. 特に,「データ型の表現できる範囲」「演算子の種類と優先順位」「配列とポインタの使い分け」を理解しておく. Webページの復習問題には目を通しておく. プログラムコードを見て,出題意図を把握する. 何の話(2重ループ,文字列,関数と変数,再帰)か? プログラムコードを見て,日本語で説明できるよう,訓練する. 何をするプログラムか? 何をする関数,変数,型か?

大問3の解説(1) 解答例 コメント 29行目を return 0; とする. 関数が,値を返して関数処理を終了するとき, return(値); または return 値; と書く. returnは関数ではなく制御文のキーワードであることに注意. コンパイルエラーがあったら,問題のある「行番号」だけでなく,コンパイラが出力している「識別子」にも注意する.

大問3の解説(2) 解答例 コメント 先頭から順に見ても,末尾から逆順に見ても,同じ文字の並びになる文字列. 「palindrome = 回文」で安心しないこと. プログラムの動作説明は,40字程度の1文で書けるようにしよう.

大問3の解説(3) 解答例 コメント ./palindrome aba Yes ./palindrome Yes NooN 「この入力には何を出力するか?」は試験に出さない. 出力を見て,「どんな入力を与えたらその出力になるか」を考えること(未知のプログラムを実行するときにも重要).

大問3の解説(4) 解答例 2行目は前処理指令の一つであり,11行目でライブラリ関数の strlen を使用するために記述している. コメント 「ライブラリ関数」については,それを使うためにインクルードすべき「ヘッダファイル」も合わせて理解する. 入出力:stdio.h 文字列:string.h 文字情報:ctype.h その他有用な関数:stdlib.h

大問3の解説(5) 解答例 変数pは,文字列(コマンドライン引数の各語)が与えられるたびに,その先頭を参照するポインタ変数であり,26行目でその文字列を出力する際までその値を保持する. 変数qの初期値はpと同じ文字列の先頭であるが,14~19行目で回文の検査をする際,一つずつ次の文字を参照していく. コメント 変数名,関数名,プログラムを主語とした書き方に慣れること. 二つのものが指定されているとき,その違いが際立つように説明する.

大問3の解説(6) 解答例 誤答例 コメント while (q < r && *q == *r) { C言語の多彩な演算子を確認する.ただし丸暗記する必要はない. forやwhileの条件は,反復を打ち切る条件ではなく,反復を維持する条件である.

大問2の解説(1) 解答例 コメント 0 1 2 3 4 2 3 4 5 4 5 6 6 7 8 ループの変数の範囲に注意すること. 「i + j」が別のものに変わっても,出力内容が答えられるように.

大問2の解説(2) 解答例 誤答例 コメント W a k a W a k a y 文字列を参照するポインタ変数pについて 「p--」,「p+=2」は?

大問2の解説(3) 解答例 コメント x = 1, y = 2 x = 1, y = 2 swap関数内の変数x, yと,呼び出し側のそれらは別物 呼び出し元のx, yの値は,swapのx, yに渡される. swapのx, yの値は,呼び出し元に返らない.

大問2の解説(4) 解答例 コメント x = 1, y = 2 x = 2, y = 1 呼び出し元の「swap(x, y);」は,「{int tmp = x; x = y; y = tmp;};」に置き換えられる. tmpは,そのブロックの中だけのローカル変数. 最後のセミコロンは,空文であり,文法上問題ない. 関数形式マクロと関数プロトタイプを理解しておくこと.

大問2の解説(5) 解答例 factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) 120 コメント 再帰の打ち切り条件に注意(この問題では,factorial(1)からfactorial(0)を呼び出すことはない).

大問1の解答 (11) ① (1) ② (12) ② (2) ③ (13) ② (3) ① (14) ① (4) ② (15) ② (5) ① (6) ② (7) ② (8) ① (9) ② (10) ① (11) ① (12) ② (13) ② (14) ① (15) ②

大問1の解説 (3)0.1は,有限桁数の2進数で誤差なく表現できない. (6)単項演算子は「++」と「--」に限り,オペランドの右にも付けられるが,左に付けるのと効果が異なる. (11)関数や変数が増えると,オーバーヘッドが生じて,処理速度は低下する.(しかしそれは,現在のハードウェア・ソフトウェア技術からすると微々たるものである.) (15)構造体に限らず,「関数内のauto変数のオブジェクトのポインタを返す関数」を定義してはならない. コメント 授業で見聞きしたことを思い出す. おさらい問題の問題文は,本番でも,表現を変えて出題するかもしれない. 迷ったら,「プログラミングの心がけ」で選ぶ.

試験について 実施上のルール 配点 解答解説など 日時:2月3日(金)13:10~14:40 持込:自筆ノート1冊と,C言語の書籍1冊のみ可 「用紙1枚」は不可(カンニング防止のため). 本やノートへの挟み込み,糊付けも不可. 「ルーズリーフ」は,バインダに綴じており,試験中取り外さないなら可. 配点 出席:5点,レポート:10点×2,試験:75点 解答解説など 2月6日(月)ごろにWebで公開する.