http://www.phys.ynu.ac.jp/labs/cosmic/shibata/jisshu/ 物理情報処理基礎実習II 第4回 組込関数の使い方 ~scanf関数・数学関数~ 柴田 [email protected] 原 [email protected] §scanf関数 scanf関数 標準入力=キーボード 標準出力=ディスプレイ 与えられた書式に従って、 変数の値を標準入力から読込む。 文法 scanf(“書式”, &変数の並び) 書式の書き方 整数型(int): %d 単精度実数型(float): %f、%e、%g 倍精度実数型(double): %lf、%le、%lg キーボードから入力した整数をnに代入する。 int n; scanf(“%d”, &n); ex.) §scanf関数 -例 I書式は変数の型に合わせること。 int i ; float a ; double x ; scanf(“%d”, &i); scanf(“%f”, &a); scanf(“%lf”, &x); 2個目以降の引数にも&を付けるのを忘れずに。 printf(“Input i, a and x : ”); scanf(“%d %f %lf”, &i, &a, &x); ※scanfでは何も画面出力はないのでprintfで書いている。 §関数一般について 関数の引数(argument)は、 変数の型が決まっている。 引数には 2種類があり、 変数の値だけが渡されるものと、 メモリアドレス(ポインタ)が渡されるものがある。 scanf関数の第2引数は、後者であり、 &変数名と記述する必要がある。 詳細は、後の関数の章で説明する。 §scanf関数 -例 II 整数iを入力するためのメッセージ「i=」を出力し、 scanf関数によりiの値をキーボードから入力し、 その結果を出力するプログラム。 1. 2. 3. 4. 5. 6. 7. 8. #include <stdio.h> main() { int i; printf(“i = “); scanf(“%d”, &i); printf(“Input Data : i = %d \n”, i); } §数学組込関数 -I数学関数 関数名(引数の型のリスト) 冪関数 pow(double, double) 平方根 sqrt(double) 絶対値 fabs(double) 三角関数 sin(double)、cos(double)、tan(double) 逆三角関数 asin(double)、acos(double)、atan(double) 双曲線関数 sinh(double)、cosh(double)、tanh(double) 逆双曲線関数 asinh(double)、acosh(double)、atanh(double) 指数関数 exp(double) 自然対数関数 log(double) 常用対数関数 log10(double) §数学組込関数 -II数学関数を使った場合の注意 プログラム作成時 math.hのincludeが必要。 #include <math.h> コンパイル時 スイッチ -lm を付ける必要がある cc ファイル名.c -o プログラム名 -lm §数学組込関数 -III- 例 プログラム例 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. #include <stdio.h> #include <math.h> ※数学関数用ヘッダ main() { double x=1.5,y=2.0,z1,z2,z3; printf(“x=%lf, y=%lf\n”,x,y); z1=pow(x,y); ※ z1 = xy z2=sqrt(y); ※ z2 = √y z3=sin(x); ※xは、弧度法(radian)にすること printf(“z1=%lf, z2=%lf, z3=%lf\n”,z1,z2,z3); } 課題4 三角形の面積 三角形の2辺の長さa,bとその2辺がなす 角 x (度単位)をキー入力して三角形の 面積を少数点以下10桁で求めるプログラム を作成し、実行せよ。 (三角関数の引数はラジアンに変換する 必要がある。a=1, b=1, x=90 のときの答え が0.5となることを確かめよ。) 小数点以下10桁で出力する方法 printf(“%15.10lf”,y); ※書式について268ページ
© Copyright 2024 ExpyDoc