ゲームエンジンの構成要素

Similar documents
cp-7. 配列

Microsoft PowerPoint - kougi4.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - guidance.ppt

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - prog05.ppt

Microsoft PowerPoint - lec4.ppt

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Microsoft PowerPoint - kougi6.ppt

ファイル入出力

ファイル入出力

PowerPoint Presentation

講習No.12

Microsoft PowerPoint - 3.ppt [互換モード]

情報処理演習 B8クラス

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

スライド 1

Taro-ファイル処理(公開版).jtd

PowerPoint Presentation

Microsoft Word - Cプログラミング演習(1)_2012

Microsoft Word - 18環設演付録0508.doc

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

PowerPoint Presentation

memo

解答編 第 7 章実数型の計算と標準数学関数 演習問題 7.1 文法事項 1 ) 暗黙の型変換とは何か答えなさい 代入演算子 (=) や算術演算子 (+,-,*,/,%) では 2 つの演算項のデータ型が揃っている事が必要です 2 つの演算項のデータ型が異なる場合 可能ならば 演算項のデータ型を変換

Microsoft PowerPoint - prog04.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - 4.ppt [互換モード]

ポインタ変数

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

プログラミング実習I

PowerPoint Presentation

Microsoft PowerPoint - lec10.ppt

Microsoft Word - Cプログラミング演習(9)

Microsoft Word - 3new.doc

スライド 1

Microsoft Word - Cプログラミング演習(10)

プログラミング基礎

Microsoft Word - Cプログラミング演習(3)

gengo1-2

Microsoft PowerPoint - prog06.ppt

Microsoft PowerPoint - program.ppt [互換モード]

PowerPoint プレゼンテーション

Microsoft PowerPoint - 3.pptx

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

Microsoft Word - no103.docx

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

演算増幅器

プログラミング基礎

Prog1_15th

V

Microsoft PowerPoint - 第3回目.ppt [互換モード]

講習No.10

Cプログラミング1(再) 第2回

PowerPoint プレゼンテーション

Microsoft PowerPoint - while.ppt

Microsoft PowerPoint - kougi8.ppt

C言語講座 ~ファイル入出力編~

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

kiso2-06.key

Microsoft PowerPoint - 11.ppt [互換モード]

ポインタ変数

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

#include<math.h> 数学関係の関数群で sin() cos() tan() などの三角関数や累乗の pow() 平方根を求める sqrt() 対数 log() などがあります #include<string.h> 文字列を扱う関数群 コイツもまた後日に 4. 自作関数 実は 関数は自分

Microsoft PowerPoint - class04.ppt

Microsoft PowerPoint - CproNt11.ppt [互換モード]

プログラミング演習3 - Cプログラミング -

02: 変数と標準入出力

Microsoft Word - no11.docx

Microsoft PowerPoint - 12.ppt [互換モード]

プログラミング演習3 - Cプログラミング -

Microsoft PowerPoint - 13.ppt [互換モード]

Prog1_12th

第2回講義:まとめ

2006年10月5日(木)実施

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - C1(演算と変数).ppt

gengo1-12

数値計算

02: 変数と標準入出力

3-4 switch 文 switch 文は 単一の式の値によって実行する内容を決める ( 変える ) 時に用いる 例えば if 文を使って次のようなプログラムを作ったとする /* 3 で割った余りを求める */ #include <stdio.h> main() { int a, b; } pri

02: 変数と標準入出力

mstrcpy char *mstrcpy(const char *src); mstrcpy malloc (main free ) stdio.h fgets char *fgets(char *s, int size, FILE *stream); s size ( )

Microsoft Word - Cプログラミング演習(8)

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

slide4.pptx

Microsoft Word - java a.doc

Microsoft PowerPoint pptx

ex14.dvi

kiso2-09.key

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

計算機プログラミング

※ ポイント ※

プログラミングI 第2回 数理物理,総合理学等向け

A/B (2018/10/19) Ver kurino/2018/soft/soft.html A/B

ワープロソフトウェア

Transcription:

cp-3. 計算 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1

本日の内容 例題 1. 自由落下距離四則演算例題 2. 三角形の面積浮動小数の変数, 入力文, 出力文, 代入文例題 3. sin 関数による三角形の面積ライブラリ関数 2

今日の到達目標 プログラムを使って, 自分の思い通りの計算ができるようになる 四則演算 ライブラリ関数 ( 三角関数, 対数 指数関数など ) 見やすいプログラムを書くために, ブロック単位での字下げを行う 3

例題 1. 自由落下距離 自由落下距離を求めるプログラムを作る 地上で物を落とし始めた後の自由落下距離を求める 重力加速度 g は 9.8 とする 自由落下距離を求めるために, プログラム中に, 計算式 y = ( 9.8 / 2.0 ) * x * x を書く 4

#include <stdio.h> #include <math.h> #pragma warning(disable:4996) int main() { double x; double y; char buf[256]; int i; double start_x; double step_x; FILE* fp; printf( "start_x =" ); fgets( buf, 256, stdin ); sscanf_s( buf, "%lf n", &start_x ); printf( "step_x =" ); fgets( buf, 256, stdin ); sscanf_s( buf, "%lf n", &step_x ); fp = fopen( "z: data.csv", "w" ); for( i = 0; i < 20; i++ ) { x = start_x + ( i * step_x ); y = ( 9.8 / 2.0 ) * x * x; printf( "x= %f, y= %f n", x, y ); fprintf( fp, "x=, %f, y=, %f n", x, y ); } fprintf( stderr, "file created n" ); fclose( fp ); return 0; } 自由落下距離の計算を行っている部分 5

実行結果例 start_x =0 step_x = 0.1 x= 0.000000, y= 0.000000 x= 0.100000, y= 0.049000 x= 0.200000, y= 0.196000 x= 0.300000, y= 0.441000 x= 0.400000, y= 0.784000 x= 0.500000, y= 1.225000 x= 0.600000, y= 1.764000 x= 0.700000, y= 2.401000 x= 0.800000, y= 3.136000 x= 0.900000, y= 3.969000 x= 1.000000, y= 4.900000 x= 1.100000, y= 5.929000 x= 1.200000, y= 7.056000 x= 1.300000, y= 8.281000 x= 1.400000, y= 9.604000 ( 以下続く ) 6

四則演算のための演算子 + 和 - 差 * 積 / 商 7

例題 2. 三角形の面積 底辺と高さを読み込んで, 面積を計算するプログラムを作る 例 ) 底辺が 2.5, 高さが 5 のとき, 面積 : 6.25 底辺, 高さ, 面積を扱うために, 浮動小数の変数を 3 つ使う 8

#include <stdio.h> #pragma warning(disable:4996) int main() { double teihen; double takasa; double menseki; printf("teihen="); scanf("%lf", &teihen); printf("takasa="); scanf("%lf", &takasa); menseki = teihen*takasa*0.5; printf("menseki=%f n", menseki); return 0; } 入力部分 計算部分出力部分 9

実行結果例 x=2.5 y=5 z = 6.250000 10

プログラム実行順 printf("teihen="); メッセージ teihen= を表示 scanf("%lf", &teihen); 浮動小数データを読み込み printf("takasa="); メッセージ takasa= を表示 scanf("%lf", &takasa); 浮動小数データを読み込み menseki = teihen * takasa * 0.5; 計算 printf("menseki = %f n", menseki); 計算結果を表示 return 0; 終わり 11

プログラムとデータ メモリ teihen 3 takasa menseki = tekhen * takasa * 0.5; 計算 menseki 1 scanf("%lf", &teihen); 浮動小数データを読み込み 2 scanf("%lf", &takasa); 浮動小数データを読み込み 4 printf("menseki = %f n", menseki); 3 つの変数 計算結果を表示 12

変数宣言 変数は, データを入れるための容器 変数宣言とは, 変数を使うために, 名前と型を書いて, 変数の使用をコンピュータに伝えること double teihen; double takasa; double menseki; 浮動小数データで, 変数名は teihen 浮動小数データで, 変数名は takasa 浮動小数データで, 変数名は menseki double とは, 浮動小数データという意味. 13

代入文 menseki = teihen*takasa*0.5; 計算結果 (teihen*takasa*0.5) を, 変数 menseki に格納する ( このことを, 代入という ) = は, 変数に計算結果等を格納するという意味. 両辺が等しい という意味ではない 14

入力, 出力とは 入力 データの読み込み ( 読み込まれたデータは変数に格納される ) 出力 メッセージの表示 データの表示 ( 変数に格納されたデータが表示される ) 15

入力文 scanf("%lf", &teihen); 書式 & 読み込むべき変数名 入力文とは, データを読み込むための文 書式と読み込むべき変数名を書く 書式 : 浮動小数データを読み込む場合, 書式は %lf と書くことになっている 変数名 : 変数名の前には & を付けること 16

いろいろな入力 double x; scanf( "%lf n", &x ); 浮動小数の変数 x への入力 double a; double b; scanf( "%lf n", &a ); scanf( "%lf n", &b ); 浮動小数の変数 a と b への入力 17

出力文 printf("menseki=%f n", menseki); 書式 表示すべき変数名 出力文とは, データとメッセージを表示するための文 書式と表示すべき変数名を書く 書式 : 浮動小数データを表示する場合, 書式は %f と書くことになっている 変数名 : は違う ) 変数名の前には & を付けない (scanf と 18

いろいろな出力 printf( "x=?" ); メッセージ x=? の表示 printf( "x= %f" ); printf( "y= %f" ); x= 10.0000 y= 20.0000 のように, メッセージと変数の中身を並べて表示 19

n 次の行に進め ( 改行 ) という指示 printf 文などの中で用いる ( 例 ) printf("menseki=%f n", menseki); 20

浮動小数データの使い方 変数宣言 : double teihen; double takasa; double menseki; 書式 : %lf - scanf( 入力 ) での書式 %f - printf ( 出力 ) での書式 21

例題 3.sin 関数による三角形の面積 三角形の2 辺の長さ a, b とその挟角 thetaを読み込んで, 面積 S を計算するプログラムを作る 面積を求めるために,sin 関数を使う 円周率 π=3.14159 とする 1 S ab sin 2 22

#include <stdio.h> #include <math.h> #pragma warning(disable:4996) int main() { double a; double b; double theta; double S; printf("a="); scanf("%lf", &a); printf("b="); scanf("%lf", &b); printf("theta="); scanf("%lf", &theta); S = 0.5 * a * b * sin( theta * 3.14159 / 180.0 ); printf("s = %f n ", S ); return 0; } 入力部分 計算部分 出力部分 23

ライブラリ関数 指数, 対数, 平方根 exp 指数関数 (eを底とする指数 zの累乗,eのz 乗 ) log 対数関数 ( 底をeとする自然対数の計算 ) sqrt 平方根 三角関数 acos 逆コサイン asin 逆サイン atan 逆タンジェント cos コサイン sin サイン tan タンジェント その他 fabs 絶対値 fmod(x,y) 浮動小数データの剰余 pow(x,y) べき乗 (xのy 乗 ) 24

いろいろな計算 y = sin( x ); sin x を計算し,y に格納 y = sqrt( x ); x を計算し,y に格納 d = sqrt( ( x * x ) + ( y * y ) ); x 2 + y 2 を計算し,d に格納 25

ライブラリ関数の利用 計算に関するライブラリ関数を利用するには, を, プログラムの先頭部分に書くこと #include <math.h> 26

三角関数では ラジアン を使う #include <stdio.h> #include <math.h> #pragma warning(disable:4996) int main() { 度 から ラジアン への変換 double degree; double s; printf("degree="); scanf("%lf", &degree); s = sin( degree * 3.14159 / 180.0 ); printf("sin(%f) = %f n ", degree, s ); return 0; } 180.0 の.0 には意味がある( 浮動小数での計算を行うべきであることをコンピュータに教えている ) 27

課題 1.Heron の公式 三角形の 3 辺の長さ a, b, c を読み込んで, 面 積 S を計算するプログラムを作りなさい. Heron の公式を用いること S s( s a)( s b)( s c) 但し s ( a b c)/2 28

課題 2. 四則演算 2 つの数を読み込んで, 和, 差, 積, 商, 剰余を計算するプログラムを作りなさい 29