関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

Similar documents
プログラミング実習I

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て

Microsoft Word - no11.docx

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の

プログラミング入門1

gengo1-11

概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要.

講習No.12

情報処理Ⅰ演習

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

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

スライド 1

gengo1-10

Microsoft PowerPoint - prog07.ppt

講習No.10

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

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

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

プログラミング入門1

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

基礎プログラミング2015

講習No.12

PowerPoint Presentation

Prog1_6th

02: 変数と標準入出力

PowerPoint プレゼンテーション

Microsoft Word - no202.docx

kiso2-09.key

Microsoft PowerPoint - 09.pptx

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

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

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

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

02: 変数と標準入出力

プログラミング基礎I(再)

02: 変数と標準入出力

Microsoft PowerPoint L07-Imperative Programming Languages-4-students ( )

プログラミング実習I

PowerPoint プレゼンテーション

Microsoft Word - 03

Microsoft PowerPoint ppt

1 return main() { main main C 1 戻り値の型 関数名 引数 関数ブロックをあらわす中括弧 main() 関数の定義 int main(void){ printf("hello World!!\n"); return 0; 戻り値 1: main() 2.2 C main

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

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

Javaプログラムの実行手順

< F2D837C E95CF CF68A4A94C5816A2E6A>

Microsoft PowerPoint - 11.pptx

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

C言語講座 後半

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

メソッドのまとめ

02: 変数と標準入出力

#include<math.h> 数学関係の関数群で sin() cos() tan() などの三角関数や累乗の pow() 平方根を求める sqrt() 対数 log() などがあります #include<string.h> 文字列を扱う関数群 コイツもまた後日に 4. 自作関数 実は 関数は自分

Cプログラミング1(再) 第2回

プログラミング及び演習 第1回 講義概容・実行制御

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

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 )

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

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

GEC-Java

演算増幅器

Microsoft PowerPoint pptx[読み取り専用]

PowerPoint Presentation

講習No.1

02: 変数と標準入出力

Microsoft PowerPoint - kougi7.ppt

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Prog1_10th

Microsoft Word - CHAP2.DOC

memo

プログラミング基礎

ファイル入出力

配列, 関数, 構造体

Microsoft Word - no15.docx

memo

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Prog1_15th

main

プログラミング及び演習 第1回 講義概容・実行制御

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

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

スライド 1

PowerPoint プレゼンテーション

Microsoft Word - VBA基礎(6).docx

PowerPoint プレゼンテーション

ファイル入出力

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - prog06.ppt

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - prog08.ppt

program7app.ppt

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Transcription:

概要 プログラミング 関数 http://www.ns.kogakuin.ac.jp/~ct40/progc/ A- 関数の作り方を学ぶ 関数名, 引数, 戻り値 プログラミング で最も重要な事項 関数 プログラミング で最も重要な事項 制御 (for, if) プログラミング で最も重要な事項 ポインタ A- 関数名 引数 戻り値 E- E-4 関数の概要 0/ 関数とは, 複数の処理をひとまとめにしたもの. 同じ処理 / 似た処理を何度も記述するような場合に便利. 関数は 引数 を受け取り, 戻り値 を返すことができる. 実は,printf() も main() も関数. E-5 関数の概要 / printf("hello,"); 4 printf("world"); 5 printf("!!!! n"); 6 printf("------------ n"); 7 printf("hello,"); printf("world"); 9 printf("!!!! n"); 0 printf("############ n"); printf("hello,"); printf("world"); printf("!!!! n"); 4 この 行まとめて, 個のグループにしたい. ------------ ############ E-6 関数の概要 / 7 プログラムは main() から始まる. 9 0 printhw(); printf("------------ n"); printhw(); printf("############ n"); 4 printhw(); 5 関数を 呼び出す と言う. この 行が 個のグループになった. グループ名は printhw printhw(); で, printhw グループを一括して実行できる. 正しくは, グループではなく 関数 と呼ぶ E-7 関数の動作 0/ 4 7 9 5 0 printhw(); 6 printf("------------ n"); printhw(); printf("############ n"); 4 printhw(); 5 E-

関数の動作 / 9 7 9 0 0 printhw(); 7 printf("------------ n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 ( 後述 ) printhw である. 7 main() の書き方と同じである.main() も関数である. 引数 ( 後述 ) 空である. 関数の中身 理解すべきは 点. 関数名, 引数, 戻り値 void sankaku(){ printf(" n"); 4 printf(" n"); 5 printf(" n"); 6 printf(" n"); 7 void gyaku_sankaku(){ 9 printf(" n"); 0 printf(" n"); printf(" n"); printf(" n"); 4 5 sankaku(); 6 gyaku_sankaku(); 7 sankaku(); sankaku(); 9 gyaku_sankaku(); 0 関数の作り方 関数の作り方 ( 例 ) この 行で, sankaku() の全てが一括して実行される. E-9 E- E- 関数の作り方 ( 例 ) void printhw(){ printf("hello,"); printf("world"); printf("!!!! n"); void phw0(){ int i; for(i=0; i<0; i++){ printf("hello,world! n"); printhw(); phw0(); 練習 ( い ) printf("hello, n"); printf("world! n"); 関数名に数字も使用可. ただし, 数字から始まる関数名は NG. 例 : 0pHW は NG E-0 関数の中で変数を使うことも可能. この変数は phw0 の中でしか使えない. これはローカル変数. ( 後述 ) を行う関数を作成し, それを main 関数から呼び出すプログラムを記述せよ. 関数名は pr_hl_wld とせよ. 戻り値の欄は void, 引数の欄は () とせよ. E- E-4 関数の作り方 ( 引数 ) この部分に, 引数について記述する. この例では引数はなし ( 空,void). 7 E-6 E-7

引数とは, 関数に与える情報. 関数に情報を与えることが可能. 関数では, 与えられた情報を使用して処理することが可能. 情報 とは,int 型の値,double 型の値などである. 引数は, 何個でも用意できる. 関数に行くときに値を持っていく E- 引数を受け取る関数. 戻り値 ( 後述 ) void である. 関数名. print_int. 引数. int 型変数 個. それを i とする. 厳密には仮引数と言う. E-9 関数に引数を渡す. print_int(); 変数 i が宣言されており, i を使用可能. i = として関数が 引数が int 型 個なので, int 型 個 ( この例では ) を与えて関数呼び出し. 始まる. i= void printhw_n(int n){ int i; printf("hello,world"); for(i=0; i<n; i++){ printf("!"); / n 個の! を表示 / printf(" n"); printhw_n(4); printhw_n(7); for 文を使う例!!! E-0 E- 呼び出される関数と, 呼出し処理をまとめると, print_int() を呼び出すには, 呼び出すよりも前に print_int() が宣言 ( 記述 ) されていなくてはならない. ( あるいは, 宣言されていることが推奨される. C 言語では推奨. C++ では必須.) ただし, プロトタイプ宣言を行えばこの限りでない. print_int(); プログラムは, 必ず main() から始まる. 引数 個の例引数 個の例.,( カンマ ) で区切る void print_sum(int a, int b){ printf("%d + %d = %d n", a, b, (a+b)); 実引数に, 変数を使った例. int x=, y=7; print_sum(x,y); + 7 = 0 E- E- void print_nchar(char c, int n){ int i=0; for(i=0; i<n; i++){ printf("%c", c); printf(" n"); char 型と int 型を受け取った例. char 型は 文字 型. 文字 個を表す. 引数は,char 型と,int 型なので, char 型の値と,int 型の値を入れて呼び出す char ch = ''; int x = 7; print_nchar(ch,x); E-4 関数の作り方 ( 戻り値 ) E-5

この部分に, 戻り値について記述する. この例では引数はなし ( 空,void). 7 E-6 戻り値とは, 関数が呼び出しもとに返す情報. 関数から, 関数の呼び出しもとに情報を返すことが可能. 戻り値は, 関数の終了時に返される. 情報 とは,int 型の値,double 型の値などである. 戻り値は, 最大でも 個. void なら,0 個. 関数から戻るときに値を持って帰る E-7 戻り値を返す関数. 戻り値. int である. 関数名. square. 引数. int square(int n){ int sq; int 型変数 個. sq = nn; printf("%d^ = %d n", n, sq); E- 戻り値を返す関数. 引数 5 n=5 int square(int n){ int sq; sq = nn; sq=5 printf("%d^ = %d n", n, sq); int s; s = square(5); printf("square=%d n", s); 4 戻り値 5 戻り値が "5" なので, square(5) が 5 となる. よって, s = 5; E-9 int square(int n){ int sq; 4 sq = nn; 5 printf("%d^ = %d n", n, sq); 7 9 0 int s; s = square(5); printf("square=%d n", s); 5^ = 5 square=5 E-0 double double_square(double d){ 引数がdouble 型 個なら, double sq; double 型の値 個を 4 sq = dd; 入れて, 呼び出す. 5 printf("%lf^ = %lf n", d, sq); 7 9.500000^ =.50000 0 double s; square=.50000 s = double_square(.5); printf("square=%lf n", s); E- double double_square(double d){ 戻り値がdouble 型なら, double sq; double 型の値を 4 sq = dd; return する. 5 printf("%lf^ = %lf n", d, sq); 7 9.500000^ =.50000 0 double s; square=.50000 s = double_square(.5); printf("square=%lf n", s); E- int one(){ return ; 4 5 int two(){ 6 return ; 7 int three(){ 9 return ; 0 i=, j=, k= int i, j, k; i = one(); 4 j = two(); 5 k = three(); 6 printf("i=%d, j=%d, k=%d n", i, j, k); 7 E-

int one(){ return ; 4 5 int two(){ 6 return ; 7 int three(){ 9 return ; 0 i=, j=, k= printf("i=%d, j=%d, k=%d n", one(), two(), three()); printf() の中に直接記述しても OK. one() が "",two() が "" と思えば良い. 関数の作り方 ( まとめ ) E-4 関数の作り方 ( 戻り値がない例 ) void one(){ printf(" n"); 4 5 void two(){ 6 printf(" n"); 7 void three(){ 9 printf(" n"); 0 int i, j, k; one(); 4 two(); 5 three(); 6 関数 : 戻り値を捨てる E-5 戻り値の型関数名 ( 引数の型変数名, ){ 関数の中身... ( 変数の宣言なども可能 ) return ; ( 戻り値が void なら, 省略可 ) E-6 double d_sq(double d){ double sq = dd; printf("%lf^ = %lf n", d, sq); double x; x = d_sq(.); d_sq(.4);.00000^ =.440000.400000^ =.560000 戻り値を受け止めて,x に代入. 戻り値を受け止めずに, 捨てる. 特に問題ない. 戻り値情報は失われるが, 関数は正しく実行される. E-7 関数内に return が 関数 : 複数の return 何個あってもよい. x= x = x=-4 x =4 int zettaichi(int n){ if( n<0 ){ 4 return (-n); 5 else { 6 return n; 7 9 0 int x, z; x = ; z = zettaichi(x); printf("x=%d x =%d n", x, z); 4 x = -4; 5 z = zettaichi(x); 6 printf("x=%d x =%d n", x, z); 7 関数 : ローカル変数 void funct(){ int x; x = ; 4 abcd = 4; 5 6 7 int abcd; abcd = 5; 9 funct(); ブロックの外で使おうとしている. これは,NG. コンパイルエラーとなる. 0 ブロックの範囲 E- int abcd は, このブロック内で宣言されているため, このブロックの中でしか使用できない. ブロック内の変数をローカル変数という. E-40 return により, 関数は強制的に終了する. AAAA BBBB 戻り値が無いときは, 単に return; と記述 関数 :return void funct(){ 4 printf("aaaa n"); 5 printf("bbbb n"); 6 return; 7 printf("cccc n"); 9 0 funct(); E-9 関数 : 仮引数と実引数 void func0(int x){ x = ; xが仮引数 4 void func(int i){ 5 i = ; 6 7 int i = 5; 9 0 func0(i); func(i); iが実引数 4 main の i と,func0 の x は別の変数. main の i の値が,func0 の x に代入 ( コピー ) される. func0 の x を変更しても, main の i には影響なし. main の i と,func の i は別の変数. 名前が同じ別の変数. main の i の値が,func の i に代入 ( コピー ) される. func の i を変更しても, main の i には影響なし. E-4