第5講 関数(1)
第5話 引数を利用した様々な関数
@引数(は1つ)を2倍にして表示するプログラム
解答例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int x); //社員f()を採用
int main() {
f(10); //社員f()に仕事を命じている
return(0);
}
void f(int x){
cout<< x <<"の2倍は"<< 2 * x <<endl;
}
実行結果
10の2倍は20
A引数を初項・交差・末項にして等差数列の和を計算。ただし、初項3・交差2・末項11とする。
解答例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int s,int k,int m); //s:初項 k:交差 m:末項
int main() {
f(3,2,11); //社員f()に仕事を命じている
return(0);
}
void f(int s,int k,int m){
int i,w=0;
for(i=s;i<=m;i+=k)w+=i;
cout<<"初項"<< s <<",交差"<< k <<",末項"<<
m <<"の等差数列の和="<< w <<endl;
}
実行結果
初項3,交差2,末項11の等差数列の和=35
B引数を初項・交差・末項にして等差数列の和を計算。ただし、引数の各値はmain()においてキーボード上から取得。
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int s,int k,int m); //s:初項 k:交差 m:末項
int main() {
int s,k,m;
cout<<"キーボーから初項、交差、末項を順に入力して下さい。"<<endl;
cout<<"初項=";
scanf("%d",&s);
cout<<"交差=";
scanf("%d",&k);
cout<<"末項=";
scanf("%d",&m);
f(s,k,m); //社員f()に仕事を命じている
}
void f(int s,int k,int m){
int i,w=0;
for(i=s;i<=m;i+=k)w+=i;
cout<<"初項"<< s <<"交差"<< k <<"末項"<<
m <<"の等差数列の和="<< w <<endl;
}
実行結果
キーボーから初項、交差、末項を順に入力して下さい。
初項=5
交差=2
末項=199
初項5,交差2,末項199の等差数列の和=9996
C引数をa,b,cとしてa*b+cを表示させるプログラム。ただし、a,b,cはmain()おいてキーボードから取得。
解答例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int s,int b,int c); //s:初項 k:交差 m:末項
int main() {
int a,b,c;
cout<<"キーボーからa,b,cを順に入力して下さい。"<<endl;
cout<<"a=";
scanf("%d",&a);
cout<<"b=";
scanf("%d",&b);
cout<<"c=";
scanf("%d",&c);
f(a,b,c); //社員f()に仕事を命じている
}
void f(int a,int b,int c){
cout<<"a*b+c="<<a*b+c<<endl;
}
実行画面
キーボーからa,b,cを順に入力して下さい。
a=59
b=67
c=109
a*b+c=4062
さて、なぜ単なる部品にすぎないものを関数というのでしょうか。
その答えは、第6話以降の戻り値を学ぶとわかります。