第2回課題 配布した通り.氏名・学生番号を忘れないこと.

Slides:



Advertisements
Similar presentations
メモリとポインタ. プログラムの前提 コンピュータは、0と1で計算をし、 0と1でデータを保存している。 メモリを学ぶのに必要な知識である。
Advertisements

プログラミング演習Ⅱ 第 11 回 ポインタ(2) 情報・知能工学系 山本一公
アルゴリズムとデータ構造 第2回 線形リスト(復習).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
プログラムのパタン演習 解説.
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
データ構造とアルゴリズム 第10回 mallocとfree
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プロセッシング入門3 初歩のプログラミング.
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
プログラミング演習(2組) 第12回
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
情報処理Ⅱ 2005年12月9日(金).
C言語講座 第4回 ポインタ.
12: コマンドライン引数 C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第8回 プログラミングⅡ 第8回
システム開発実験No.7        解 説       “論理式の簡略化方法”.
アルゴリズムとデータ構造 第2回 線形リスト(復習その2).
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
C言語講座 第3回 ポインタ、配列.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
精密工学科プログラミング基礎 第10回資料 (12/18実施)
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
第10章 これはかなり大変な事項!! ~ポインタ~
プログラミング入門2 第8回 ポインタ 情報工学科 篠埜 功.
アルゴリズムとデータ構造 補足資料5-2 「サンプルプログラムsetop.c」
プログラミング入門2 第11回 情報工学科 篠埜 功.
第7回 プログラミングⅡ 第7回
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
高度プログラミング演習 (08).
第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.
プログラミング基礎B 文字列の扱い.
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
プログラミング 4 探索と計算量.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
配列変数とポインタ 静的確保と動的確保 ポインタ配列 2次元配列 時間計測 第1回レポートの課題
メモリとメモリアドレス, ポインタ変数,関数へのポインタ渡し
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
情報とコンピュータ 静岡大学工学部 安藤和敏
データ構造とアルゴリズム 第11回 リスト構造(1)
プログラミング入門2 第9回 ポインタ 情報工学科 篠埜 功.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング 3 2 次元配列.
文字列へのポインタの配列 static char *lines[MAXLINES]; lines[0] NULL
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
プログラミング入門 電卓を作ろう・パートI!!.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
アルゴリズムとデータ構造1 2009年6月15日
ネットワーク・プログラミング Cプログラミングの基礎.
第5回 プログラミングⅡ 第5回
確率論・数値解析及び演習 (第7章) 補足資料
精密工学科プログラミング基礎 第7回資料 (11/27実施)
アルゴリズムとデータ構造 2010年6月17日
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
プログラミング入門2 第5回 配列 変数宣言、初期化について
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
Presentation transcript:

第2回課題 配布した通り.氏名・学生番号を忘れないこと. ユーザから入力された100個の点の座標について,もっとも近い2点の間の距離を表示するという問題を扱う. ただし,p[i][0], p[i][1]はそれぞれ i 番目の点の x 座標・y 座標を表す. 関数 dist() は,2点間の距離を求めるもの. 例えば点3と点12の間の距離は,これを使って dist(p[3], p[12]) により求められる.

第2回課題 要するに求めたいのは全ての2点間距離の中で最短の距離 まずはプログラミングを離れて,自分ならどうやるかの手順をいろいろ考え,次にそれを コンピュータに分かるような手順 に直し,最後にC言語に翻訳する.

第2回課題 補足 課題では,NUM 個の点を格納するのに2次元配列を用いている.  double p[NUM][2]; メモリ空間 課題では,NUM 個の点を格納するのに2次元配列を用いている.  double p[NUM][2]; p[i][0],p[i][1] はそれぞれ, i 番目の点の x 座標,y 座標,pix, piy である. メモリ空間上では右図のように配置される. p[0][0] p0x p[0][1] p0y p[1][0] p1x p[1][1] p1y p[2][0] p2x p[2][1] p2y p[3][0] p3x p[3][1] p3y p[4][0] ・ p[4][1] ・

第2回課題 補足 例えば p[3][1] は,3番の点の y 座標を表している. では,p[3] とだけ書いたときは何を表すだろうか? メモリ空間 例えば p[3][1] は,3番の点の y 座標を表している. では,p[3] とだけ書いたときは何を表すだろうか? 実はこれは,3番目の点の座標を示す 1次元配列 (要素数は2) の先頭アドレスを示すポインタである. p[0][0] p0x p[0][1] p0y p[1][0] p1x p[1][1] p1y p[2][0] p2x p[2][1] p2y P[3]=0x28ccf0番地 p[3][0] p3x p[3][1] p3y p[4][0] ・ p[4][1] ・

第2回課題 補足 点 i と点 j の間の距離を求めるために関数 dist() を呼び出す際は,関数に対して「点 i の座標」と「点 j の座標」という2つの情報を渡す必要がある.そしてそれぞれの情報が格納されている場所へのポインタが p[i], p[j] である. そこで,関数呼び出しでは dist(p[i], p[j]) として呼び出し,それぞれの引数でそれぞれの座標の入った配列の先頭アドレスを指し示すポインタを渡してあげているわけである. したがって関数 dist() の引数は「double型へのポインタ」となるのである.

第2回課題 補足 ポインタについては今後この講義できちんと導入をするので,現時点では「なんかそういう感じのものらしい」という程度の理解で良い. 配列とポインタが深く関係していることは,(おそらく) プログラミング演習の講義で教わるはず…. 今回の宿題をやるためにとりあえず必要な理解は, 点 i と点 j との距離を関数 dist() で求めるには, dist(p[i], p[j]) とすればよい ということだけ.