プログラミングワークショップIV 12回 C言語の振り返り(6) C言語コース C言語の振り返り(6) 関数(2) z 演習内容 z 課題の確認 入力、出力のない関数 プログラム単位としての関数 変数のスコープ(有効範囲) z 課題 z z z 練習問題(3) z 2次方程式 ax 2 + bx + c = 0 の解がいくつある かを判断する判別式 D = b 2 − 4ac を計算する関 数detを作成し、その関数を利用するプログラム (mainプログラム)を作成せよ。 ただし、2次方程式の係数(a,b,c)はすべて整数とす る。 z ちなみにD>0の場合は解が2個、D=0の場合は1個、 D<0の場合は実数解無しとなる 課題 2次方程式の判別式 #include <stdio.h> printf("a:"); scanf("%d", &a); // 入力:整数2個、 結果:整数 printf("b:"); scanf("%d", &b); int det (int a, int b, int c) printf("c:"); scanf("%d", &c); { int z = b*b ‒ 4*a*c ; d = det (1, 2, 0); // 関数呼び出し return (z); } printf("判別式の値は %dです¥n", d); int main (void) return 0; { } int a, b, c, d; 特別な関数。 入力、出力がない z 入力、出力が無い関数も定義できる。 z 入力、出力のデータを void 型 を指定 #include <stdio.h> void func (void) { printf("こんにちは!"); } int main (void) { func ( ) ; //関数呼び出し return (0); } 前回の振り返り z 関数の定義 z 関数の宣言 z z 関数の処理 z z z 関数名、入力の個数(データ型)、出力のデータ型 関数の機能をプログラムで記述 結果は return 文 関数の呼び出し z z z 関数名を正しく 入力の個数、データ型、順番を正しく 結果を正しく格納 プログラムの一部としての関数 例) 1から10までの整数の総和を求めるプログラム #include <stdio.h> int main (void) { int sum, i; 1から10までの総和 を計算する部分 sum = 0; for ( i=1; i <= 10; i++) { sum = sum + i; } printf ("総和は%dです¥n", sum); return (0); } a∼bまでの総和を求める 関数名 summation 関数化 入力 結果 a (整数) 開始値 b (整数) 終了値 整数 プログラムの関数化 #include <stdio.h> int summation (int a, int b) { int sum, i; sum = 0; for( i = a; i <= b; i++) { sum = sum + i; } return (sum); } int main (void) { int sum; sum = summation(1,10); printf("総和は%dです¥n", sum); return 0; } 練習問題1 次のプログラムは2つの整数のうち大きい方を表示するプログラム である。大きい方を選び出す処理を関数化せよ #include <stdio.h> int main (void) { int n1, n2, max; printf("n1:"); scanf("%d", &n1); printf("n2:"); scanf("%d", &n2); if ( n1 <= n2 ) { max = n2;} else { max = n1;} printf("大きい方は%dです¥n",max); return (0); } 関数名 maxof 入力 a (整数) b (整数) 結果 整数 変数のスコープ(有効範囲) 変数の定義はブロックの先頭でおこなう 定義した変数はブロック内でのみ有効 #include <stdio.h> int summation(int a, int b) { int i, sum = 0; for (i =a; i <=b; i++) { sum + = i; } a = 0; b = 0; return (sum); } 変数 a,b,i,sum int main ( void ) { int a, b, sum; a = 1; b = 10 sum = summation(a,b); printf("%dから%dの積和は%dです¥n", a, b, sum); return (0) } 変数 a,b,sum たとえ変数名が同じでも異なる変数 課題 次の関数の入力と出力の定義を書け。またその関数 とそれを利用するプログラムを作成せよ z 1. 2. 3. 4. 底辺w,高さhの三角形の面積を求める関数 triangle 3つの整数から最大値を求める関数 max3of 整数xのy乗を求める関数 power 閏年かどうか調べる関数 uruu 閏年ならば1を、そうでないならば0を結果とする 閏年の条件 4で割り切れる年 100で割り切れない年 400で割り切れる年
© Copyright 2024 ExpyDoc