演習12.

Slides:



Advertisements
Similar presentations
プログラミング演習( 2 組) 第 6 回
Advertisements

C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
情報処理演習 (秋学期・樋口担当) 2回目 10/1 日本工業大学 コンピュータリテラシーII.
情報理論2 第4回 小林 学 湘南工科大学 2011年11月1日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プログラミング演習(1組) 第7回
解答 1 複素数を構造体として定義し、二つの複素数の積(結果は複素数)を返す 関数 を定義せよ。
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
4章 平行と合同 2 多角形の外角の和.
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
基礎プログラミング演習 第10回.
第4章 組合せ論理回路 (4) Quine McCluskeyの方法.
CGプログラミング論 平成28年6月8日 森田 彦.
動的依存グラフの3-gramを用いた 実行トレースの比較手法
関数の定義.
プログラミング演習(2組) 第8回
第10回関数 Ⅱ (ローカル変数とスコープ).
第11回 宿題 出題日:12月21日 締切日:1月7日(木).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
プログラミング入門 電卓を作ろう・パートIV!!.
プログラミング演習I 2003年5月7日(第4回) 木村巌.
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
知能情報工学演習I 第12回(後半第6回) 課題の回答
前回の練習問題.
第9回関数Ⅰ (簡単な関数の定義と利用) 戻り値.
コンピュータープログラミング(C言語)(4) 1.キーボード入力(復習) 2.条件分岐(if文)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラミング入門2 第11回 共用体、列挙体 情報工学科 篠埜 功.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
高度プログラミング演習 (05).
多角形の外角の和 凹型四角形の角 星形五角形の内角の和
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
整数データと浮動小数データ.
疑似乱数, モンテカルロ法によるシミュレーション
C言語 はじめに 2016年 吉田研究室.
中3数 三平方の定理の計算 三平方の定理の逆 中学校 3年数学 三平方の定理 授業第2時に実施する。
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
プログラミング序論演習.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミングⅡ 第2回.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
プログラミング基礎a 第4回 C言語によるプログラミング入門 条件判断と反復
論理回路 第5回
ウェブデザイン演習 第6回.
~sumii/class/proenb2010/ml2/
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
高度プログラミング演習 (11).
C言語講座 制御(選択) 2006年 計算技術研究会.
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
プログラミング基礎演習 第4回.
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
本時の目標 かっこのついた式の乗法と除法を、分配法則を使って効率よく解くことができる。
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
Cプログラミング演習 ニュートン法による方程式の求解.
第4章 double 小数型の変数;.
プログラミング演習I 数値計算における計算精度と誤差
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
3.1 シューティングゲームの当たり判定 当たったら死亡.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング1 プログラミング演習I 第2回.
プログラミング序論演習.
第2章 数値の入力と変数 scanfと変数をやります.
C言語講座第5回 2017 構造体.
C言語講座 四則演算  if ,  switch 制御文.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング演習I 補講用課題
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

演習12

問題 xy平面上の3点A、B、Cで表される三角形ABCが原点を内部に含むかどうかを判定するプログラムを作りなさい。 原点を含む 原点を含まない

判定方法 原点Zを頂点とする三角形ZAB、ZAC、ZBCの面積の和とABCの面積を比較する 原点を含む場合

判定方法 原点Zを頂点とする三角形ZAB、ZAC、ZBCの面積の和とABCの面積を比較する 原点を含まない場合

判定方法 原点Zを頂点とする三角形ZAB、ZAC、ZBCの面積の和とABCの面積を比較する 面積をSabc、Szab、Szac、Szbcとすると if (Sabc < Szab+Szac+Szbc) printf("原点を含まない\n"); else printf("原点を含む\n");

注意点 Sabc == Szab+Szac+Szbc Sabc != Szab+Szac+Szbc double型の数(浮動小数点数)の比較は大小関係を含んだ形で行う Sabc == Szab+Szac+Szbc Sabc != Szab+Szac+Szbc 等しい→差の絶対値がとても小さな値

三角形の面積(1) Szab、Szac、SzbcについてはCが原点であると考える

三角形の面積(2) Szab、Szac、SzbcについてはCが原点であると考える 結果がdouble型になる Sabc = 0.5*fabs((Xa-Xc)*(Yb-Yc)-(Ya-Yc)*(Xb-Xc)); 1/2 と書くとint型の演算になり0になる Szab = 0.5*fabs(Xa*Yb-Ya*Xb); Szac = 0.5*fabs(Xa*Yc-Ya*Xc); Szbc = 0.5*fabs(Xb*Yc-Yb*Xc); Szab、Szac、SzbcについてはCが原点であると考える

部分をまとめてプログラムにする (1)変数の定義 (2)座標の入力 (3)三角形の面積の計算 (4)原点が内側に含まれるかの判定

テストデータ 原点を含むもの (-1,4) (2,-3) (-4,0) 原点を含まないもの (-1,4) (5,5) (6,-3)

実行例 -1 4 2 -3 -4 0 -1 4 5 5 6 -3 A(-1,4) A(-1,4) B(2,-3) B(5,5) C(-4,0) Sabc 16.5 Szab 2.5 Szbc 6 Szac 8 Szab+Szbc+Szac 16.5 原点は三角形ABCの中に含まれる -1 4 5 5 6 -3 A(-1,4) B(5,5) C(6,-3) Sabc 24.5 Szab 12.5 Szbc 22.5 Szac 10.5 Szab+Szbc+Szac 45.5 原点は三角形ABCの中に含まれない