情報処理Ⅱ 2007年2月2日(金).

Slides:



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

情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング入門2 第10回 動的な領域確保 情報工学科 篠埜 功.
データ構造とアルゴリズム 第10回 mallocとfree
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
情報処理Ⅱ 2005年12月9日(金).
第8回 プログラミングⅡ 第8回
構造体.
情報処理Ⅱ 第13回 2006年1月20日(金).
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
情報処理Ⅱ 第13回 2004年01月25日(火).
第10回 プログラミングⅡ 第10回
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
プログラミング2 関数
関数の定義.
情報処理Ⅱ 2008年1月21日(月).
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング入門2 第11回 情報工学科 篠埜 功.
プログラミング入門2 第11回 情報工学科 篠埜 功.
第7回 プログラミングⅡ 第7回
第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日(水).
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
情報処理Ⅱ 第14回 2006年1月23日(月).
情報処理Ⅱ 第2回:2003年10月14日(火).
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
情報処理Ⅱ 第1回 2004年10月5日(火).
情報処理Ⅱ 2007年1月19日(金).
C言語 はじめに 2016年 吉田研究室.
構造体と共用体.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
情報処理Ⅱ 2005年1月25日(火) レポート課題2の解説.
ネットワーク・プログラミング Cプログラミングの基礎.
高度プログラミング演習 (11).
情報処理Ⅱ 2006年11月24日(金).
情報処理Ⅱ 第7回 2004年11月16日(火).
情報処理Ⅱ 2005年10月28日(金).
情報処理Ⅱ 2007年1月26日(金).
情報処理Ⅱ 2007年12月3日(月) その1.
コンパイラ 2012年10月11日
プログラミング 4 文字列.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
情報処理Ⅱ 第9回:2003年12月16日(火).
情報処理Ⅱ 小テスト 2005年2月1日(火).
情報処理Ⅱ 2006年10月27日(金).
情報処理Ⅱ 第8回:2003年12月9日(火).
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

情報処理Ⅱ 2007年2月2日(金)

本日のスケジュール 13:10~13:20 … 復習問題 13:20~13:25 … どうしても話しておきたいこと 13:10~13:20 … 復習問題 13:20~13:25 … どうしても話しておきたいこと 13:25~13:55 … おさらい問題 何でも参照可.周りと相談可.質問可. 採点の対象にはならない. 13:55~14:35 … おさらい問題の解説 14:35~14:40 … 試験について

どうしても話しておきたいこと size_t 「バイト数」を表すデータ型 用途 sizeof演算子で得られる値の型 void *malloc(size_t size); size_t strlen(const char *s); など,バイト数が関わるライブラリ関数の引数・戻り値の型 例えば「typedef unsigned size_t;」と定義されている. 符号なしの整数型と思えばよい.

試験の心構え しっかり準備をする. Webページでは,授業スライドだけでなく,復習問題にも 目を通しておく. 特に,「演算子」と「配列とポインタの違い」を理解しておく. Webページでは,授業スライドだけでなく,復習問題にも 目を通しておく. プログラムコードを見て,日本語で説明できるよう,訓練する. 何をするプログラムか? 何をする処理,関数,変数か?

大問3の解説(1) 解答例 コメント 35行目を char *p = argv[i]; とする. 代入は,左辺が何型か,右辺が何型かチェックする. コンパイルエラーがあったら,問題のある「行番号」だけでなく,「識別子」にも注意する.

大問3の解説(2) 解答例 コメント 先頭何文字かの2回以上の繰り返しで構成される文字列 プログラムの動作説明は,短すぎても長すぎてもよくない. 30~40字程度で書けるようにしよう.

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

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

大問3の解説(5) 解答例 コメント r q s p 'W' 'a' 'W' 'a' 'W' 'a' '\0' 配列(特に文字列)と,その中を指し示すポインタの関係は,図示できるようにすること. 文字列を図示するとき,ヌル文字('\0')を忘れないように. r q s p 'W' 'a' 'W' 'a' 'W' 'a' '\0'

大問3の解説(5) 別解例 100: 'W' p = 100 101: 'a' q = 102 102: 'W' r = 100 103: s = 106 104: 'W' 105: 'a' 106: '\0' もちろん,試験の答案で色をつける必要はない.配列とポインタの区別 (箱の大きさなど)はあってもよい.

大問3の解説(6) 解答例(関数) int aliquot(int x, int y) { if (x % y == 0) { return 1; } else { return 0; } } コメント それぞれの仮引数の前に型を書く(「int x, y」は間違い). 「関数プロトタイプを記述しなさい」と間違えないこと.

大問3の解説(6) 解答例(関数形式マクロ) コメント #define aliquot(x, y) ((x) % (y) == 0) それぞれの引数の前に型を書いてはいけない. 置換内容には,それぞれの引数と,全体に,カッコをつける.

大問3の解説(7) 解答例 9行目を,「if (!(*p == *q && aliquot(strlen(p), q - p))) {」に置き換える. コメント プログラムの書き換え問題も出題する. 関数を新たに作って呼び出すとき,引数の対応づけ,演算子の優先順位に注意する. strlen(p)により,文字列pの長さが得られる. q - pはポインタ同士の減算で,配列の何要素分,離れているかが分かる. カッコ閉じが連続して並ぶとき,カッコが正しく対応しているか,常にチェックし,除去できないことも確認すること.

大問2の解説(1)~(5) 解答例 コメント (1)構造体 (2)下線記号 /アンダースコア / アンダライン / _ (3)return / if以外の予約語であれば何でもよい (4)英字の大小を区別する (5)ブロック コメント 「識別子」がテーマであるが,構造体や変数の話題も含めた文章にしている.広く浅く,授業で出たことを確認するとよい.

大問2の解説(6)~(10) 解答例 コメント (6)ストリーム (7)ヌル文字 / '\0' / ナル文字 (8)FILE (9)EOF (10)int コメント 「ファイル処理」がテーマで,文字列や型の話題も含めている.大文字小文字を間違えないように. バイト列を読み出しても,fgetsなどの「ライブラリ関数」は ヌル文字をつけることがある.

大問2の解説(11)~(15) 解答例 コメント (11)交換 (12)値渡し (13)char *x, char *y (14)& (15)ポインタ変数が指し示す値 コメント 「関数の値の受け渡し」がテーマ.参照渡しをするときは,ポインタの知識も不可欠である.

大問1の解答 (1) ② (2) ② (3) ② (4) ① (5) ① (6) ① (7) ② (8) ② (9) ① (10) ②

大問1の解説 (4)式の評価,暗黙の型変換,結合規則(結合の向き)に関する問題に答えられるようにすること. (7)NULLは「無効な値」を表す空ポインタ定数である. (9)クイックソートを再帰呼び出しなしで,単純選択法を再帰呼び出しを使って書くこともできるが,「プログラミングの心がけ」として,「クイックソート⇒再帰」と覚えておく. その他コメント 授業で見聞きしたことを思い出す. おさらい問題の問題文は,本番でも,表現を変えて出題するかもしれない.

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