プログラミング言語論 プログラミング言語論 演習5 解答と解説 演習5 解答と解説 1 1.

Slides:



Advertisements
Similar presentations
アルゴリズムと データ構造 第 3 回 基本的なデータ構造(2) : 配列 1. 前回の復習 アルゴリズムの計算量 最悪(最大)計算量 計算量の漸近的評価 (オーダ)  多項式時間アルゴリズム( polynomial time algorithm )  指数時間アルゴリズム( exponential.
Advertisements

C 言語講座 第 7 回 ポインター. メモリとアドレス(ポインターの前 に) コンピュータのメモリには 1 バイトずつ 0 番地、 1 番地、 2 番地・・・というように 住所が割り当てられている この住所をアドレスという。 メモリはデータをしまうもので それを引き出すためには メモリに番号(アドレス)を振っておけばよいな.
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第5回 関数(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング言語論プログラミング言語論 命令型プログラミング言語 水野嘉明
関数 C 言語では、関数を組み合わせてプログラムを構成する
プログラミング 平成23年10月19日 森田 彦.
プログラミング論 I 関数の再帰呼び出し
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
C言語講座 第4回 ポインタ.
プログラミング言語論 第4回 手続きの引数機構 変数の有効範囲
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
数値解析シラバス C言語環境と数値解析の概要(1回) 方程式の根(1回) 連立一次方程式(2回) 補間と近似(2回) 数値積分(1回)
第4回放送授業.
プログラミング言語論 プログラミング言語論 ガイダンス 水野 嘉明 ガイダンス 1 1.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
関数 関数とスタック.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
構造体 構造体, 構造体とポインタの組み合わせ,.
プログラミング論 関数ポインタ と 応用(qsort)
プログラミング2 関数
プログラミング論 ファイル入出力
関数とポインタ 値呼び出しと参照呼び出し swapのいろいろ 関数引数 数値積分
プログラミング言語論 第9回 Hoare論理の練習問題 手続きの引数機構 変数の有効範囲
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
プログラミング 平成23年12月21日 森田 彦.
プログラミング 3 構造体(2).
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
プログラミング論 ファイル入出力
Java8について 2014/03/07.
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
情報処理Ⅱ 第14回 2006年1月23日(月).
プログラミング言語論 第5回 手続きの引数機構 変数の有効範囲
オブジェクト指向プログラミングと開発環境
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
プログラミング 3 2 次元配列.
3.1 ifステートメント 3.2 if-elseステートメント 3.3 コードのブロック 11月14日(金) 発表者:藤井丈明
補講:アルゴリズムと漸近的評価.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
第5回 プログラミングⅡ 第5回
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 第12回 実行時環境 ― 変数と関数 ― 38号館4階N-411 内線5459
プログラミング 平成24年12月11日 森田 彦.
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
情報処理Ⅱ 小テスト 2005年2月1日(火).
値渡しと参照渡しについて.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
第2章 数値の入力と変数 scanfと変数をやります.
プログラミング言語論 プログラミング言語論 演習7 解答と解説 演習7 解答と解説 1.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

プログラミング言語論 プログラミング言語論 演習5 解答と解説 演習5 解答と解説 1 1

演習5.1 解答 × × 次の式は左辺値を持つか (1) (i) (2) i++ (3) i+j (4) a (5) a[i++] プログラミング言語論 演習5.1 解答 次の式は左辺値を持つか (1) (i) (2) i++ (3) i+j (4) a (5) a[i++] (6) a[i+j] ○ × × ○ 注: 「 i++ 」が左辺値を持つか否かは、微妙な問題。 i++ = 1; という文は、Java およびCでは不可。C++では可。 ○ ○ 2 演習5 解答と解説 2

演習5.2 解答 メインプログラムの実行結果 x = 6 y = 8 3

演習5.2 解説 x = f(2) + f(2); 1回目の関数 f は、u=2, v=1 なので、 v = v+u = 1+2 で vが3となり、3 をreturnする。 2回目の関数 f を実行時、v は再度割当てられ、1に初期化される。 したがって、同じく 3を return。 x は、3+3 = 6 となる。 4

演習5.2 解説 y = g(2) + g(2) 1 回目の g は、f の場合と同じく、v = v+u = 1+2で、3を returnする。 2回目の gでは、vは存続し続けているので、1回目でセットされた 3のまま。従って、v = v+u = 3+2 = 5 をreturnする。 y は、3 + 5 = 8 となる。 5

演習5.3 (1) 解答 (1) 値呼出し i = 、 a[2] = 、 a[3] = 2 3 4 6

演習5.3 (1) 解説 (1) 値呼出し 手続き内で仮引数の値を書き換えても、呼び出し側(実引数)には影響しない 実引数の値はそのまま 7

演習5.3 (2) 解答 (2) 参照呼出し i = 、 a[2] = 、 a[3] = 3 2 4 8

演習5.3 (2) 解説 (2) 参照呼出し 実引数のアドレス(左辺値)を仮引数に割り当てる x ⇔ i 、 y ⇔ a[2] として、これを交換(swap)する ※ y⇔a[2] の割当ては呼び出し時に行う その後 iが変化しても変わらない 9