授業内容

情報基礎演習B
後半第1回
担当 岩村
TA 谷本君
出欠について

メールアドレス以外は前半と同じ
 新しいメールアドレス:[email protected]
出席:Subject
本文
課題:Subject
本文
質問:Subject
本文
[kisoB]Attend
学籍番号・氏名
[kisoB]Class
学籍番号・氏名・課題の答え
[kisoB]Question
質問の内容
遅刻・欠席について
出席のメールは14:50までに出す
14:50以降は遅刻と見なす
 欠席については特に配慮はしない


遅刻・欠席の多いものは課題のレポートで頑
張ること
後半の予定
1.
2.
3.
4.
5.
6.
関数
ポインタ
メモリの動的確保
ファイルの入出力
構造体など
未定
関数
関数とは何か
 引数や戻り値が無い関数
 return文
 ローカル変数とグローバル変数
 プロトタイプ宣言

関数とは

引数を取り、処理の後、戻り値を返すもの
 数学の関数(”y=f(x)”)のようなもの
 printf()やscanf()は関数
 main()も関数
関数の例(定義)

関数waは、2つの引数xとyを元にzの値を計算し、
戻り値として返す
戻り値の型
関数名
引数の型
int wa(int x, int y) {
int z;
z=x+y;
return z;
戻り値
}
サンプルプログラム
サンプルプログラム
引数や戻り値が無い関数

引数が無い関数
int func(void) {
…
}

戻り値が無い関数
void func(int a) {
…
}
return文の役割

return文があると、関数の処理を打ち切って
呼び出し元に戻る
int waru(int x, int y) {
int z;
if (y==0) {
yが0ならば-999を返して
return -999;
関数の計算は終了
}
z=x/y;
return z;
}
ローカル変数とグローバル変数
#include <stdio.h>
int global;
int func1(int x, int y) {
int local;
…
}
int func2(void) {
int local, global;
…
}
グローバル変数
ローカル変数
ローカル変数とグローバル変数
#include <stdio.h>
int global;
int func1(int x, int y) {
int local;
…
}
int func2(void) {
int local, global;
…
}
変数が有効な範囲
global
local
local
global
優先
プロトタイプ宣言

関数の「定義」を先にできない場合は「宣言」
だけを先に書く
プロトタイプ宣言
プロトタイプ宣言
課題

階乗(1からnまでの自然数の積)を計算する関
数を作り、順列と組み合わせを表示しなさい
 ヒント

順列
n!
n Pr = n (n - 1 )(n - 2 )L (n - r + 1 ) =
(n - r )!

組み合わせ
n Pr
n!
=
nCr =
r !(n - r )!
r Pr