kiso2-06.key

Similar documents
kiso2-09.key

kiso2-03.key

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

数値計算

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

C 2 / 21 1 y = x 1.1 lagrange.c 1 / Laglange / 2 #include <stdio.h> 3 #include <math.h> 4 int main() 5 { 6 float x[10], y[10]; 7 float xx, pn, p; 8 in

A 30 A A ( ) 2 C C (, machine language) C (C compiler) ( ) Mac Apple Xcode Clan

gengo1-2

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

fuga scanf("%lf%*c",&fuga); 改行文字を読み捨てる 10 進数の整数 おまじない取り込んだ値を代入する変数 scanf( %d%*c,&hoge); キーボードから取り込め という命令 1: scanf 1 1: int double scanf %d %lf printf

プログラミング基礎

USB ID TA DUET 24:00 DUET XXX -YY.c ( ) XXX -YY.txt() XXX ID 3 YY ID 5 () #define StudentID 231

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

PowerPoint Presentation

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

Microsoft PowerPoint - lec4.ppt

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

PowerPoint プレゼンテーション

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

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf("hello World\n"); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o

Prog1_6th

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

講習No.12

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

PowerPoint プレゼンテーション

新・明解C言語で学ぶアルゴリズムとデータ構造

Microsoft PowerPoint - C_Programming(3).pptx

‚æ4›ñ

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

Microsoft Word - no11.docx

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

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

Microsoft PowerPoint - 14Chap17.ppt

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

Taro-再帰関数Ⅱ(公開版).jtd

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

演習1

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

2 P.S.P.T. P.S.P.T. wiki 26

数値計算

Microsoft PowerPoint - class04.ppt

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

:30 12:00 I. I VI II. III. IV. a d V. VI

Taro-プログラミングの基礎Ⅱ(公

PowerPoint プレゼンテーション

スライド 1

3. 標準入出力

untitled

Microsoft Word - no13.docx

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

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

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

main

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft Word - no12.doc

プログラミング実習I

卒 業 研 究 報 告.PDF

新版明解C言語入門編

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

gengo1-11

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

Microsoft PowerPoint - 4.pptx

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

PowerPoint Presentation

演習課題No12

C言語7

Microsoft PowerPoint - 3.pptx

新・明解C言語 ポインタ完全攻略

Microsoft Word - no202.docx

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

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

P02.ppt

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

プログラミング基礎

Taro-再帰関数Ⅲ(公開版).jtd

printf("5つの整数を入力して下さい \n"); /* データ入力 */ for( /*** 02 ***/ ){ printf("%dつ目の入力 :",i+1); scanf("%d", /*** 03 ***/ ); sum=dat[0]; /* 合計値の初期設定 */ n_max= 0

C言語によるアルゴリズムとデータ構造

プログラミング実習I

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

物質工学科 田中晋

< F2D837C E95CF CF68A4A94C5816A2E6A>

Microsoft PowerPoint - 計算機言語 第7回.ppt

P03.ppt

Taro-数値計算の基礎Ⅱ(公開版)

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

Java講座

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

ポインタ変数

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

講習No.10

PowerPoint プレゼンテーション

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

Microsoft PowerPoint - kougi2.ppt

C言語入門

P05.ppt

Taro-リストⅠ(公開版).jtd

Transcription:

座席指定があります Linux を起動して下さい 第6回 計算機基礎実習II 計算機基礎実習II 2018 のウェブページか ら 以下の課題に自力で取り組んで下さい 第5回の復習課題(rev05) 第6回の基本課題(base06)

第5回課題の回答例

ex05-2.c 1. キーボードから整数値 a を入力すると a*a*a の値を出力することを繰り返すプログラムを作成しなさい 2. ただし 入力された a の値が 0 未満のときは繰り返しを終了し 3. また a の値が3の倍数のときは何も出力しないものとする int a; while (1) { printf("a? "); scanf("%d", &a); int a; while (1) { printf("a? "); scanf("%d", &a); printf("%d\n", a*a*a); if (a<0) if (a%3==0) continue; printf("%d\n", a*a*a);

ex05-3.c キーボードから整数値 n を入力すると 1! から n! までの階乗の 値を出力する int n; printf("n? "); scanf("%d", &n); long a = 1; int i; for (i=1; i<=n; i++) { a *= i; printf("%d! = %ld\n", i, a);

ex05-4.c 1. 2. 3. 4. キーボードから整数値 n を入力すると 1 から n までの値を順に出力するプログラムを作成したい ただし 出力する値が 3 の倍数のときは値の代わりに Fizz を出力し 5 の倍数のときは値の代わりに Buzz を出力する また 出力する値が 3 と 5 の倍数のときは 値の代わりに FizzBuzz と出力する int n; printf("n? "); scanf("%d", &n); int i; for (i=1; i<=n; i++) { printf("%d\n", i);

ex05-4.c 1. 2. 3. 4. キーボードから整数値 n を入力すると 1 から n までの値を順に出力するプログラムを作成したい ただし 出力する値が 3 の倍数のときは値の代わりに Fizz を出力し 5 の倍数のときは値の代わりに Buzz を出力する また 出力する値が 3 と 5 の倍数のときは 値の代わりに FizzBuzz と出力する int n; printf("n? "); scanf("%d", &n); int i; for (i=1; i<=n; i++) { if (i%3 == 0) printf("fizz\n"); else printf("%d\n", i);

ex05-4.c 1. 2. 3. 4. キーボードから整数値 n を入力すると 1 から n までの値を順に出力するプログラムを作成したい ただし 出力する値が 3 の倍数のときは値の代わりに Fizz を出力し 5 の倍数のときは値の代わりに Buzz を出力する また 出力する値が 3 と 5 の倍数のときは 値の代わりに FizzBuzz と出力する int n; printf("n? "); scanf("%d", &n); int i; for (i=1; i<=n; i++) { if (i%3 == 0) printf("fizz\n"); else if (i%5 == 0) printf("buzz\n"); else printf("%d\n", i);

ex05-4.c 1. 2. 3. 4. キーボードから整数値 n を入力すると 1 から n までの値を順に出力するプログラムを作成したい ただし 出力する値が 3 の倍数のときは値の代わりに Fizz を出力し 5 の倍数のときは値の代わりに Buzz を出力する また 出力する値が 3 と 5 の倍数のときは 値の代わりに FizzBuzz と出力する int n; printf("n? "); scanf("%d", &n); 3 5 int i; for (i=1; i<=n; i++) { if (i%3 == 0 && i%5 == 0) printf("fizzbuzz\n"); else if (i%3 == 0) printf("fizz\n"); else if (i%5 == 0) printf("buzz\n"); else printf("%d\n", i);

ex05-5.c int i, n; while (1) { printf("i N? "); scanf("%d%d", &i, &n); if (i <= 0 n <= 0) int k, sum = 0; for (k=i; k<=n; k++) { sum += k*k; printf("%d\n", sum); int sumi = (i-1)*i*(2*(n-1)+1)/6; int sumn = n*(n+1)*(2*n+1)/6; printf("%d\n", sumn - sumi);

ex05-6.c double a, b, c; double tmp; printf("a b c? "); scanf("%lf%lf%lf", &a, &b, &c); if (a tmp if (a tmp < = < = b) a, a = b, b = tmp; c) a, a = c, c = tmp; if (b <= 0 c <= 0 a >= b + c) printf("三角形ではない\n"); else if (a*a == b*b + c*c) printf("直角三角形である\n"); else printf("直角三角形ではない\n");

ex05-7.c #include <math.h> double a, b, c; printf("a b c? "); scanf("%lf%lf%lf", &a, &b, &c); double d = b*b - 4*a*c; if (d > 0) printf("x = %f, %f\n", (-b+sqrt(d))/(2*a), (-b-sqrt(d))/(2*a)); else if (d == 0) printf("x = %f\n", -b/(2*a)); else printf("実数解はありません\n");

ex05-8.c #include <stdlib.h> #include <math.h> double a, b, c; while (1) { while(1) { printf("a b c? "); scanf("%lf%lf%lf", &a, &b, &c); if (a!= 0) else if (b == 0 && c == 0) //goto end; exit(1); double d = b*b - 4*a*c; if (d > 0) { double s = sqrt(d); printf("x = %f, %f\n", (-b+s)/(2*a), (-b-s)/(2*a)); else if (d == 0) { printf("x = %f\n", -b/(2*a)); else { double r = -b/(2*a); double i = sqrt(-d)/(2*a); printf("x = %f + %fi, %f - %fi\n", r, i, r, i); //end:

第6回の内容 switch 文 場合分け exit() 関数 stdlib.h 数学関数 math.h マクロ定義 #define

switch 文 if else 文のような条件分岐を表現する ただし 条件には整数式しか使えない ( ) 内に判定に用いる整数式を与える switch (n) { case 1: printf("1です\n"); case 文で整数式の値の処理 が必要 case 2: printf("2です\n"); case 文の処理は break まで case 3: printf("3です\n"); default: どの case 文にも該当しない default 文 printf("1-3以外です\n");

switch 文 は無くてもよい case は複数でも良い switch (n) { case 1: printf("1か"); // case 2: //printf("2です\n"); // case 3: printf("2か3です\n"); default: printf("1-3以外です\n");

ex06-1.c while (1) { printf("m? "); scanf("%d", &m); switch (m) { case 3: case 4: case 5: printf("春です\n"); case 6: case 7: case 8: printf("夏です\n"); case 9: case 10: case 11: printf("秋です\n"); case 12: case 1: case 2: printf("冬です\n"); default: printf("なんですって \n"); exit(1); exit() 関数は stdlib.h で定義されています #include <stdlib.h> が必要 exit() 関数が呼ばれると プログラムはその時 点で強制的に終了する 与えられた整数値引数 は main() 関数の戻り値となる main() 関 数の return 文に渡される整数と同値となる

math.h 数学関数ライブラリ math.h : C言語標準のさまざまな数学関数が定義されている よく使う math.h の関数 三角関数 逆三角関数 指数関数 対数関数 絶対値 べき乗 sin(x), cos(x), tan(x) asin(x), acos(x), atan(x) exp(x), exp2(x) log(x), log10(x) fabs(x) pow(x, y), sqrt(x), cbrt(x), hypot(x, y) 上記の引数 x, y と返り値は全て double float 版や long double 版もある sinf(x), sinl(x) #include <math.h> cc prog.c -o prog -lm

ex06-2.c #include <math.h> #define PI 3.14159265358979323846 double x; while (1) { printf("x? "); scanf("%lf", &x); if (x == 0.0) sin(x), cos(x) の引数は弧度法 double rad = x/180 * PI; printf("sin(%f) = %f\n", x, sin(rad)); printf("cos(%f) = %f\n", x, cos(rad));

#define 定数マクロ定義 #include <math.h> プログラム上の PI はコンパイル前に全て 3.1415926... という文字に置き換わる #define PI 3.14159265358979323846 じつはπの値は /usr/include/math.h に #define M_PI 3.14159265358979323846 されています #define で意味や役割が分かりづらい数値などの定数を 任意の文 字列で置き換えることができます あとで変更するかもしれない数値なども #define で定数として定 義しておくと プログラムソースのあちらこちらに散らばった数値 をまとめて変更できて便利です

#define 定数マクロ定義 #include <math.h> #define PI 3.14159265358979323846 double rad = x/180 * 3.14159265358979323846; double rad = x/180 * PI; printf("sin(%f) = %f\n", x, sin(rad)); printf("cos(%f) = %f\n", x, cos(x/180*pi)); #include <math.h> #define PI 1+2.14159265358979323846!! double rad = x/180 * 1+2.14159265358979323846; double rad = x/180 * PI; printf("sin(%f) = %f\n", x, sin(rad)); printf("cos(%f) = %f\n", x, cos(x/180*pi));