<<追記20190530
昨日はオブジェクト指向の話を考えたがまだ早いと思った。
しばらくプログラムの事を書かなければいけないと思った。
とりあえず今日は関数と繰り返し文とif文と再起関数にチャレンジしようと思う。
絶対値を求める関数を書くとりあえずintで読み取ってintで返す関数を書く
int abs_func(int value) {
if(value <0) {
return value*-1;
} else {
return value;
}
}
関数の使い方はこうである。
int i = -55;
i = abs_func(i);
とか
int i = abs_func(-55);
基本的に関数は宣言出来る変数は何でも指定して返せる。
関数の頭にある宣言名でreturnで返せば関数は終了する。
valueがマイナスならvalueに-1かけて戻り値にする。
そうでなければそのままvalueを戻り値にする。
階乗の関数を書いてみると絶対値の関数も使って
int factorial_func(int value, int UpperLimit) {
value = abs_func(value);//絶対値で階乗計算
int answer=1;
while(value > 0) {
if (answer > (UpperLimit/value)) {
return -1;//オーバーフローでエラー
}
answer=answer*vlaue;
value--;
}
return answer;
}
これをfor文で書くと
int factorial_func(int value, int UpperLimit) {
value = abs_func(value);//絶対値で階乗計算
int answer=1;
for(int i = value;i >0;i--)
if (answer > (UpperLimit/i)) {
return -1;//オーバーフローでエラー
}
answer=answer*i;
}
return answer;
}
使い方は
int a = factorial_func(10,2147483647);
繰り返し文で
1*10*9*8*7*6*5*4*3*2*1のような計算をする。
今日はこの辺にしとく
今日の小言は再帰関数にする。
明日はまた作戦を練りたい。
明日もよろしく。
<<追記20190530end
0 件のコメント:
コメントを投稿