約 13,695 件
https://w.atwiki.jp/kojiro/pages/703.html
論理値 ISBLANK(テストの対象) ISERR(テストの対象) ISERROR(テストの対象) ISLOGICAL(テストの対象) ISNA(テストの対象) ISNONTEXT(テストの対象) ISNUMBER(テストの対象) ISREF(テストの対象) ISTEXT(テストの対象) テストの対象 下表参照。 関数 働き ISBLANK テストの対象 が空白セルを参照するとき TRUE を返します。 ISERR テストの対象 が #N/A を除くエラー値を参照するとき TRUE を返します。 ISERROR テストの対象 が任意のエラー値を参照するとき TRUE を返します。 ISLOGICAL テストの対象 が論理値を参照するとき TRUE を返します。 ISNA テストの対象 がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。 ISNONTEXT テストの対象 が文字列でない項目を参照するとき TRUE を返します (テストの対象 が空白セルを参照するときも TRUE になりますので注意してください)。 ISNUMBER テストの対象 が数値を参照するとき TRUE を返します。 ISREF テストの対象 がセル範囲を参照するとき TRUE を返します。 ISTEXT テストの対象 が文字列を参照するとき TRUE を返します。
https://w.atwiki.jp/kojiro/pages/74.html
指定された条件がTRUE のときは真の条件、FALSE のときは偽の条件を返す。 IF(論理式,真の場合,偽の場合) 論理式 真か偽に評価できる値、式、参照。7つまでネストできる。 真の場合 論理式がTRUE の時に返す値。 偽の場合 論理式がFALSE の時に返す値。 例 "平均点" の値 与える評価 90点以上 A 80点以上90点未満 B 70点以上80点未満 C 60点以上70点未満 D 60点未満 F =if((平均点 89,"A",IF(平均点 79,"B",IF(平均点 69,"C",IF(平均点 59,"D","F")))) Excel にはCASE 関数がないのでこの関数でネストさせていくしかない。
https://w.atwiki.jp/kojiro/pages/25.html
見た目は求める結果でもセルには関数が入ったまま。こんな時に要らないと勘違いして関数の参照しているセルを削除したり、関数の入っているセルを移動したりすると関数がエラーを起こす。それに、いつまでも関数が生きていて、そんなセルがファイル上にいっぱいあるとExcelの処理も重たくなる。また、関数で得られた文字列を直接いじりたくなることもあるかもしれない。 関数で変換して、もう計算させる必要がなかったら、関数のあるセルをコピーして、好きなところで右ボタンをクリック。「形式を選択して貼りつけ」コマンドが選べる(カットでは選べない)。出てきたダイアログで「値」を選べば、関数は残らない。同じセルの上でコピーして、形式を選択して貼りつければ、関数は完全に消える。
https://w.atwiki.jp/cschola/pages/65.html
関数(function) 今回は関数という存在について説明します。 javaでは「メソッド」と呼ばれます 関数といっても数学で使う関数とは別物です。 関数はそんなに難しいものではありません。なぜならすでに、関数を使っているからです。 ライブラリ関数 実は、今まで使っていた main() や printf() も関数なのです。 main() は一番最初に実行される関数です。 printf() は画面に文字を出力する関数です。 関数は事前に「宣言」「定義」して、パソコンに教えてあげないと使うことができません。 main()関数はC言語で必ず使うのでパソコンはもとから覚えています。 printf()関数 や scanf_s()関数 は stdio.h の中で 「宣言」「定義」されています。 #include は の中身をそのままそこに張り付けるような仕事をします。 C言語では # のついた命令はコンパイル(コンピュータが読める状態にする)前に実行されます。 こういったコンパイル前の処理をプリプロセッサなどと呼びます。 今回はその関数を自分で作る方法について説明します。 自作関数 自作関数を作る(書く)ときは main()関数よりも前に書きます。そうしないと main()関数の中で使えません。 #include stdio.h // 合計を返す関数 int Add(int x,int y){ int num = 0; num = x + y; return num; // xとyを足した数を返す } int main() { int a = 0; int b = 0; int sum = 0; printf("整数値を2回入力してください。\n"); scanf_s("%d%d", a, b); sum = Add(a, b); printf("合計は%d\n",sum); return 0; } int Add(int x,int y) これが関数の宣言になります。 int が返り値の型です。(返り値については後で説明します。) Add が関数の名前です。 (int x,int y) この中の x , y を仮引数(かりひきすう)と呼びます。 ここには関数の外から取り入れたいデータを書きます。 今回はint型のデータ二つです。 次に {} があります。関数の定義(内容)は { } で区切られているのです。 int num = 0; は変数の宣言です。 関数の中でも変数を宣言することができます。 num = x + y; は今までの知識で理解できると思います。 わからない人は少し前に戻ってみましょう。 return num; ここで戻り値を返します。戻り値とは関数を呼び出した(使った)ときに帰ってくる(出てくる)値のことです。 今回は int型 で宣言しているので int型 の数値を返すことになります。 main()関数の中にある sum = Add(a,b); でAdd関数を呼び出しています。 呼び出し 関数は「宣言」「定義」されただけでは意味がありません。 呼び出されて初めてその効果を発揮します。 今回は sum の中に Add関数の計算結果(戻り値)を代入しています。 関数はいくつでも作ることができます。 また、関数の中で関数を使うこともできます。 関数の引数として関数を使うこともできます。 上の例をよく見ると int a という変数が二回宣言されています。 違う関数の中でなら同じ名前の変数を宣言することができます。 この二つの変数は全く別のもので、それぞれ宣言された関数の中でしか使えません。 // double型の合計を返す関数 double Add_Double(double x,double y){ return x + y; } // 2つの数値の平均を返す関数 double Average(double x,double y){ return Add_Double(x,y)/2; } int main() { double x = 0; double y = 0; printf("実数値を二回入力してください。\n"); scanf_s("%lf%lf", x, y); printf("平均値は約%.3f\n",Average(x,y)); return 0; } 練習問題 次のようなユーザー関数とプログラムを使って作ってください 第1問 二つの引数をとり、大きいほうだけを返すMax関数と、小さい方だけを返すMin関数。 第2問 二つの引数をとり、大きい方から小さい方を引いた差を返すSub関数。 第3問 第1問、第2問の関数を使い、ユーザーから入力された二つの数値の差を求めるプログラム。
https://w.atwiki.jp/aniwotawiki/pages/11250.html
登録日:2011/05/28(土) 03 37 14 更新日:2024/03/21 Thu 21 19 53NEW! 所要時間:約 5 分で読めます ▽タグ一覧 ブラックボックス 上級者向け 二次関数 変態項目 数学 概念 関数 関数(函数とも)とは、数学全般において使われる非常に重要な概念である。 一般に、集合X,Yが与えられ、さらに任意のx∈Xに対しy∈Yがただ1つ決まるとき、その対応fをXからYへの写像と呼び、xに対応するyをf(x)などと表す。 (fはfunctionの頭文字) 特に、XとYが共に「数の集合」(C,Rやその直積など)のときにその写像を関数と呼ぶことが多い。 なお、XとYが共に「関数の集合」なら作用素、Xが「関数の集合」、Yが「数の集合」なら汎関数などと言ったように、 よく使われる写像にはそれぞれ固有の呼び方が付いているものが多い。 高校数学までに取り扱う関数には多項式関数、三角関数、指数関数、対数関数などがあり、これらをまとめて初等関数と呼ぶ。 こんなことを書いても訳がわからない人がいると思うので、例をあげよう。 (関数の例1) X=Y=R (実数全体)として, x∈X に対し f(x) =2x+1 とするとfはXからYへの関数である。 (関数の例2) X=N^2 (2つの自然数の組全体), y=N (自然数全体) として, (m,n)∈X に対し f(m,n) =(m,nの最大公約数) とするとfはXからYへの関数である。 例1は中学1年で学ぶ1次関数なので、これは問題ないだろう。 一方、例2はf(m,n)は例1のように具体的な数式で表示できてはいないが、(m,n)∈Xが決まればf(m,n)∈Yの値はただ1つに決まるのでこれも関数である。 ちなみにこの関数は式の表現で書くと、f(m,n) =GCD(m,n)とできる。(GCDは「最大公約数」を意味する。) ただし、関数という概念が生まれた当初は例1のように具体的な数式で表されたものだけを関数と呼んでいた。 次に関数でないものの例をあげよう。 (関数でない例1.1) X=Y=R として, x∈X に対し f(x) =(2乗するとxになる実数) とするとfはXからYへの関数ではない。 (関数でない例1.2) X=Y=R として, x∈X に対し f(x) =(2乗するとxになる0以上の実数) とするとfはXからYへの関数ではない。 (関数でない例1.3) X=R, Y=C (複素数全体) として, f(x) =(2乗するとxになる0以上の複素数) とするとfはXからYへの関数ではない。 まず例1.1は関数ではない。例えば、1∈Xに対し2乗すると1になる実数は1と-1の2つあるためである。 冒頭で述べたように、fが関数であるためには、xに対してyは「ただ一つ」に決まる必要がある。 そのため、yが2つとれてしまうこのfは関数ではない。 では、1つに決まるように定義に若干の修正をした例1.2はどうだろうか。これも関数ではない。 例えば、-1∈Xに対し2乗すると-1になる実数は存在しないためである。 冒頭で述べたように、fが関数であるためには、xに対してyは「ただ一つ」に決まる必要がある。 そのためyが1つもとれないこのfは関数ではない。 ならば、複素数を使えば良いのではないか?と思うかもしれないが残念ながら例1.3も関数ではない。 今度は、定義文自体が問題になる。実数の場合と違って複素数では正負の概念がないので、 「2乗するとxになる0以上の複素数」という文章はそもそも意味不明であり、yの決めようがない。 そのためこのfは関数ではない。このような平方根を取る操作は、たとえば次のように定義するときちんと関数となる。 (関数の例3) X=Y=[0,∞) (0以上の実数全体) として, x∈X に対し f(x) =(2乗するとxになる0以上の実数) (数式で表現すると、f(x) =√x。)とするとfはXからYへの関数である。 このように、高校数学までではあまり気にされないが、「そもそも本当にそれが関数か?」というのが問題となることは意外と多い。 その関数が正しく定義できているとき、その関数はwell-definedであるという。 (微妙な例) (関数の例3)では、平方根を取る対象を非負実数に制限し、さらにその値も非負のものを取ることでwell-definedな関数となっていた。 しかし、複素数全体で平方根を考えようとする場合、(関数でない例1.3)のように、yの値のとり方を固定するのに実数の場合と同じ方法を取ることは出来ない。 したがって、次のような複素平方根「関数」を真に「関数」として扱うためには何らかの方法でyの値の選び方を指定する必要がある。 X=Y=C として, f(x) =(2乗するとxになる複素数) (複素変数にはzを使うのが一般的だが、ここでは実数の場合に合わせてxを用いた) …しかし、実はそのようなyの「上手い」決め方は存在しないことが知られている。 粗っぽい言い方をすると、複素数に対してその平方根は本質的に2つあり、一方だけを恣意的に取り出すと性質が良くないのである。 このような理由から、複素解析においては、yが同時に2つの値を取ることを許し、複素平方根を取る「関数もどき」であるfを「多価関数」と呼び、この場合は「2価関数」となる。 (やや難しい内容だが、例えばXを0以外の複素数に拡張した自然対数の関数は複素数Yに対して無数の値を取る為、「無限価関数」になる。) 「関数」でないのにもかかわらず多価「関数」と呼ぶのは歴史的な経緯による。 これらの混同が起きないように、普通の意味での関数であることを明示したい場合にそれを「1価関数」と呼ぶこともある。 ちなみに上記の関数の他にもこんな関数もある。 (関数の例4) X=Y=Rとして、x∈Xに対してf(x)はxが有理数なら1、無理数なら0 とするとfはXからYへの関数である。 パッと見た感じでは「これが関数!?」と思うかもしれないが、全ての実数は有理数か無理数のどちらかになるので任意のxに対して対応する実数の値がただ1つ用意されているので立派な関数である。 この様に全てのxに対応する値をキッチリ決めて、それがwell-definedであれば関数を定義することができる。 (ちなみにこの関数も式で表現できる。) 追記・修正はwell-defined性を確かめてからお願いします。 △メニュー 項目変更 この項目が面白かったなら……\ポチッと/ -アニヲタWiki- ▷ コメント欄 [部分編集] なんか地味にエロい… これをみた人が関数をみて欲情しないことを祈りたい… -- 名無しさん (2014-03-26 09 23 16) プログラミング言語での関数「あたしの項目もほしいなぁ・・・」 -- 名無しさん (2014-03-26 11 13 58) 時代はオブジェクト指向だぜ兄貴ィ -- 名無しさん (2014-08-04 19 18 53) y=-xの時の刺激ってどうなるの? -- 名無しさん (2014-12-16 20 56 57) 写像先輩にも一言インタビューほしい -- 名無しさん (2015-05-05 23 32 19) 考えてみればこれだと数式に書けるものが関数って勘違いする人もいそうだから、せめてxの値が決まればyの -- 名無しさん (2015-05-05 23 34 35) 値も決まるもので、式に表されているかは -- 名無しさん (2015-05-05 23 35 08) 書いた方がよくないいか?(誤爆ごめんなさい) -- 名無しさん (2015-05-05 23 35 54) この項目の最大の問題は建て主が関数の意味すら理解できていないことだと思う -- 名無しさん (2016-05-08 23 35 46) 大幅に修正。一般論にはほとんど触れず例の羅列なので、一般論が足りなi -- 名無しさん (2017-01-14 22 41 22) ↑誤送信。一般論が足りないと思う人は追加してください。例の追加もどうぞ -- 名無しさん (2017-01-14 22 42 21) 初期の頃のデタラメだらけだったのが修正されてるな、あれはネタとしても寒かったし、修正者ナイス -- 名無しさん (2017-05-07 20 08 00) なるほど、よく分からん -- 名無しさん (2018-07-22 22 51 47) みんなのトラウマ -- 名無しさん (2021-03-30 19 29 32) プログラミングの話だと、例えば生年月日(x)を与えて(現在時刻から)年齢(y)を返す処理も関数。メソッドとも言う。wikiのプラグインも関数の一種だな -- 名無しさん (2021-03-30 22 25 01) 名前 コメント
https://w.atwiki.jp/slimelv1024/pages/56.html
関数とは 定められた通りの処理を実行して結果を返す一連の命令群のことです 今までもprintf関数やscanf関数などを使って来ました C言語のプログラムはたくさんの関数が集まって出来ています 今まで使ってきたprintfなどは標準ライブラリ関数に属しています そのほかには関数を自分で作成することが出来、これをユーザ関数と呼びます ライブラリ関数とは C言語では機能ごとにライブラリファイルにまとめて用意してあります これをライブラリ関数と呼びます プリプロセッサ指令とヘッダファイル 今まで入出力関数を扱うとき、#include stdio.h と最初に記述していました includeはプリプロセッサ指令と呼ばれ、プリプロセッサと呼ばれるコンパイル前の処理を行うプログラムに命令を送る処理です stdio.hはヘッダファイルと呼ばれ、stdio.hの中にはprintfなどを使用するために必要な宣言や定義などを行っています 関数を扱うときは必ず#includeでこのソースプログラムで関数を使いますと宣言していたのです 標準ライブラリ関数 標準ライブラリ関数 ヘッダファイル 入出力処理 stdio.h 文字列処理 string.h 文字処理 ctype.h 一般ユーティリティ stdlib.h 数学処理 math.h 時間処理 time.h ジャンプ処理 setjmp.h シグナル処理 signal.h 診断処理 assert.h サークルの講義ではすべてstdio.h(スタンダードインアウトヘッダ)で済む範囲でこなしてしまうため、ライブラリ関数についてはあまり深くは触れません 興味がある方は先輩方に聞くか、各自ネットや書籍などで調べてください ユーザ関数とは ユーザ関数とはプログラマ自身が作成する関数のことです 今まで扱ってきたプログラムは小さく、すぐに問題の場所が見つけられましたが、世の中で動いているプログラムは何千、何万行の大きなものばかりです その処理を小分けにし、何十人、何百人で分担して作成していきます 又、小分けにすることでプログラムの修正をその関数間で行うことが出来、同じような処理の関数をまとめてプログラム間で繰り返し使うことも出来ます ユーザ関数の作り方 関数の返り値の型 関数名(引数宣言){ //ユーザ関数の定義 内部処理 return; } 言葉にするとわかりにくいと思いますが、実はやってることはmain関数と変わりません 関数は必ず返り値の型の記述と引数の記述を行っています ユーザ関数の使い方 int sum(int x, int y){ //sum関数の定義 int wa; wa=x+y; return(wa); //変数waを返す } int main(){ int ans,num1=5,num2=10; ans=sum(num1,num2); //sum関数の呼び出し printf("%d+%d=%d",num1,num2,ans); return(0); } ユーザ関数を使用するときは関数名と対応した引数を渡してあげることで使うことが出来ます この渡す引数のことを実引数といい、関数で受け取ったものを仮引数といいます また、関数内で関数を呼び出すことも可能です printf("%d+%d=%d",num1,num2,sum(num1,num2));//printf関数の中でsum関数を呼び出している void型 関数は必ず返り値の型と引数の記述を行っているといいましたが、main関数は引数の記述を行っていません 実は今までmain関数の引数にはvoidが指定されて居たのです voidとは空、無といった、何も無いことを表します 引数でvoidを指定する場合はvoidを記述するか、今までどおり省略すること出来ます 引数ではvoidの記述を省略することが出来ましたが、返り値のでは省略することが出来ません 返り値で記述を省略するとint型になるので、voidと記述してあげてください また、返り値がない場合はreturn文は省略することが出来ます プロトタイプ宣言 関数の宣言だけを行い処理内容を後述する方法です 必ずmain関数から処理が行われるため、関数の処理が後ろにあると流れとしてプログラムが追いやすくなります しかし、プロトタイプ宣言の分だけ行数が増してしまうので、好みの問題といえるでしょう 返り値の型 関数名(引数) //プロトタイプ宣言 int main(){ 処理内容 } 返り値の型 関数名(引数){ //関数の定義 処理内容 } グローバル変数とローカル変数 関数外で宣言された変数をグローバル変数と呼び 関数の中で宣言された変数をローカル変数と呼びます グローバル変数は初期化する必要が無く、すべての関数で扱うことが出来ます ローカル変数は初期化は手動で、その関数内でしか扱うことが出来ません グローバル変数で宣言した変数名と同名でもローカル変数で宣言することが出来ます この場合、ローカル変数が優先的に使用されます また、ローカル変数は関数が終了するたびに消されてしまいます このことを変数の寿命と呼び、変数の有効範囲や寿命のことをまとめてスコープと呼ばれます 二個以上の返り値が欲しい場合 return文では一つしか返すことが出来ません 二つ以上の返り値が欲しい場合はポインタを使います void comparison(int x,int y,int *small,int *big) { if(x y){ *small=x; *big=y; }else{ *small=y; *big=x; } } int main(){ int num1=10,num2=5,min=0,max=0; comparison(num1,num2, min, max); printf("最小値=%d \n 最大値=%d",min,max); return(0); } 引数に配列を使う 関数に配列を渡す場合もポインタを扱います int max(*array,int x){ int i,max; for(i=0;i 0x;i++){ if(max array[i]){ max=array[i]; } } return(max); } int main(){ int data[5]={6,3,5,1,7}; int x=5; //配列の要素数 printf("最大値=%d",max(data,x)); return(0); } 又、関数定義において*arrayはarray[]と記述してもよい どちらも同じ意味なので、どちらを使うかはプログラマの好みの問題になります 再帰的関数 C言語で自分自身と同じ関数を呼び出すことが可能です int fact(int n){ int x; if(n 0){ x=n*fact(n-1); }else{ x=1; } return(x); } int main(){ int num=3; printf("%dの階乗は%dです",num,fact(num)); return(0); } 上の例は階乗を求めるプログラムです 階乗処理は下記のとおり n!=n*(n-1)! 1!=1*(1-1)! 0!=1 例を見るとfact関数の処理でnが0よりも大きい時にもう一度fact関数を呼び出しています つまりnが0になるまでfact処理を繰り返すことになります ただし普通の繰り返し処理と違うのは、新しい関数を呼び出しても、呼び出される前の関数は処理は処理を中断した状態になります どういうことかわかりにくいと思うので、関数の処理始めと処理終わりにprintfを入れてみるとわかりやすいと思います int fact(int n){ int x=0; printf("fact start n=%d\n",n); if(n 0){ x=n*fact(n-1); }else{ x=1; } printf("fact end n=%d x=%d\n",n,x); return(x); } 実行結果 fact start n=3 fact start n=2 fact start n=1 fact start n=0 fact end n=0 x=1 fact end n=1 x=1 fact end n=2 x=2 fact end n=3 x=6 ---------------------ここまでfact関数の処理 3の階乗は6です if文でfact関数が呼び出されるため、n=3のときの処理は中断され、新たに呼び出されたfact関数の処理を始めます n=2でもn=1でも同じです n=0のときに初めてfact関数が呼び出されないのでreturn文まで到達することが出来ます 返り値は前の関数に引き渡され、中断されていた処理を再開します 再帰的処理はオーバーヘッドなどの問題があったりするため好んでは使われませんが、フラクタル図形など再帰的処理以外では記述が難しいものも存在します
https://w.atwiki.jp/crsavrkouza/pages/28.html
11.関数 1.関数とその使い方 何かしらの意味合いを持った処理のカタマリが何度も出てくることが間間あります. そういう時に便利なのが関数です. 一連の処理の流れを定義してサブルーチン化し,その処理をしたいときは関数名を記述することで使えます. 何度も同じことを書かなくても済んで効率的ですし,関数名を工夫すれば可読性もグンとよくなります. 何らかの複数の変数を受け取り,それらに処理を施し一つの数字を返すという形をとります. 受け取るデータを引数といい,返ってくるデータを返り値といいます. 自分で関数を作ってみましょう.以下の例を見てください. #include stdio.h int main(void) { printnum(5); return 0; } void printnum(int a) { printf("%d\n\r", a); return; } このように、main関数と同じように自分で作る関数を書くことで,関数printnumを作ることが出来ます. いちいちprintf("%d\n\r")と書くよりも簡潔で,また関数名から数字を表示するという処理の意味も分かりやすくなったと思います. しかし,このプログラムはこのままでは動きません. コンパイルは上の行から順番に行われます。 なので、一番最初にprintnumが出てきた時点では、printnumという関数がわからないのです。 これの解決方法は2つ有ります。 解決方法1 #include stdio.h void printnum(int a) { printf("%d\n", a); return; } int main(void) { printnum(5); return 0; } 解決方法2 #include stdio.h void printnum(int a); //関数のプロトタイプ宣言 int main(void){ printnum(5); return 0; } void printnum(int a) { printf("%d\n", a); return; } 解決方法1はmain関数の前で関数を定義してしまうことで解決していますが、 この方法では関数の数が膨大になった時にとっても頭でっかちなプログラムになってしまいます。 そんな時は解決方法2を使います。この方法では関数の存在を前もって定義しています。 このように、予め関数を宣言することを「プロトタイプ宣言」といいます。 解決方法1を使うか2を使うかは宗教ですのでどちらかを進めることはしませんが、 一つのプログラム内では統一すべきです。 2.引数について 以前、関数には引数というものがあると言いましたが、自分で定義した関数はこの引数も自由に設定することが出来ます。 次のプログラムを見てください。 #include stdio.h int max(int a, int b); int main(void){ max(5, 10); return 0; } int max(int a, int b){ if(a b){ printf("%d\n", a); }else{ printf("%d\n", b); } return 0; } 引数の宣言は変数の宣言とよく似ていて,上の例のように引数を複数作ることも出来ます. その場合は,「,(コロン)」で区切ります. では、引数の受け渡しなどはどのように行われているのでしょうか。 main関数内でmax関数が呼び出されると,それぞれ対応する引数に値がコピーされて, max関数内の変数であるa,bに値が代入されます. ここでの話のポイントは「値のコピーである」という点です. つまり、次のようなプログラムは意図しない動作をします。 #include stdio.h int func(int f_a); //プロトタイプ宣言 int main(void) { int a = 0; func(a); return 0; } int func(int f_a) { f_a = 5; return 0; } このプログラムはmain関数で宣言した変数aにfunc関数内で5を代入しようとしています. しかし、このプログラムは意図したとおりには動作しません. 何故ならば、関数funcに渡されたのは変数aの値である0という数字であり,変数aではないからです. このような使い方はコンパイルエラーにならないエラーなので気をつけましょう. 3.返り値 先ほどのように関数での計算結果を返したいときはどうすればよいでしょうか。 そこで出てくるのが「返り値」というものです. 関数は一つだけ値を返すことが出来ます。次のプログラムを見てください. #include stdio.h int max(int a, int b); //プロトタイプ宣言 int main(void) { int c = 0; c = max(5, 10) * 10; printf("%d\n", c); return 0; } /* 大きい方の値を返す関数 */ int max(int a, int b) { if(a b){ return a; }else{ return b; } } 関数の返り値は「return」を用いて設定します。そして、関数名の前に付いている型名がその値の型を示します。 返り値を使うときは、変数のように使うことが出来ます。関数の位置に返り値が代入されると思ってください。 何も返さないときは単に「return;」とのみ記述します. 関数のまとめ 関数の構文をまとめると次のようになります。 返り値の型 関数名(引数の型 引数名, …){ 関数の処理; … return 返り値; }
https://w.atwiki.jp/sevenlives/pages/1559.html
関数 読み:かんすう 英語:function 別名:ファンクション, サブルーチン, プロシージャ 意味: 関数とはプログラミング言語においてある一定の処理をまとめたもののこと。 その関数は一度定義すれば汎用的に使用することができ、部品のような役割を果たします。 ある一定の処理を一度定義すれば何度も書き直さずに済みプログラミングの効率化とメンテナンスを容易にします。 エントリ・ポイントであるmain関数?やプログラミング環境に最初から備わっている標準関数?など特別な関数が存在します。 なおプログラミング言語によってサブルーチンやプロシージャと呼ばれるものもあり、また値を返さない関数(void)と分けるものもあります。 2012年06月07日 引数 返り値? プログラミング言語 サブルーチン プロシージャ? クロージャ? カリー化? コールバック main関数? 標準関数? ライブラリ?
https://w.atwiki.jp/r-intro/pages/36.html
目次 目次 パッケージに格納されている関数を直接指定して使う パッケージに格納されている関数を直接指定して使う Rは柔軟な使用のため、基本的な機能すら予約後ではなく関数として搭載されており、例えば自作の関数は関数名をほぼ自由自在に割り当てる。このようなことは本来は進められないが、「パッケージ名::○○」とすることで、パッケージに含まれている関数を直接呼び出して使うことができる。 以下の例は、正弦関数を計算する標準的なsin関数がある一方で、別の自作関数名にsinを割り当て、そのような状態で標準のsin関数を呼び出した例。 sin(pi) [1] 1.224606e-16 sin - function(d) {return(9)} sin(pi) [1] 9 base sin(pi) [1] 1.224606e-16 名前 コメント
https://w.atwiki.jp/slvip/pages/57.html
関数っていうのはLSLで元から用意されてる物と ユーザが自分で作れる物がある 関数 まずはLSLに元からある関数の使い方の説明 関数を使うことで ある動作を一つにまとめる ←とっても大事 ある値を参照する ってことができるんだ 関数名1(引数); そして関数名の後に続くこの() これはこの関数1にこの引数を使って処理をしてくれ!ってこと ちなみに・・ LSLで始めから用意されてる関数は 全て関数名の先頭にllって書いてある わかりやすいな たとえばllSetPos関数を例にしてみると llSetPos( 5,10,15 ); llSetPos関数っていうのは引数の値にプリムを移動させるという使い方 この関数を動かすことで動かしたプリムは 5,10,15 の座標に移動させられる 引数は関数によって複数要求されることがあるんだけど そういった場合は幾つかの引数を,(カンマ)で区切ってやる必要がある 関数名1(引数1,引数2); また、この引数ってのは関数によって使える型が決まってる 今度はllOwnerSayを例にして何の型を使えって言われてるのか調べてみよう llOwnerSay 上のほうに llOwnerSay(string msg) って書いてあるのがわかると思う どういうことかっていうと llOwnerSayに必要な引数はstring型1つだけ って意味なので引数には文字列型を使わないといけないってこと llOwnerSay("aiueo"); llOwnerSayは自身に引数を表示するって意味なので こうすることで自分の画面にaiueoと表示される ある値を参照する関数っていうのは 関数を実行することによって値を参照することができる vector v = llGetPos(); llGetPos関数は実行することで今ある座標を参照することができる 参照された値は代入演算子で別の変数に代入する必要がある こうやって色々な関数を使って 現在時刻を調べたり風の向きを調べたりすることができるんだ ユーザ関数 ユーザ関数っていうのは 今まで説明してた関数とは逆で 関数を呼び出した時の処理を自分で作ってしまおうという事 myFunction(5); こんな感じで自分で作ったmyFunctionという関数に5という引数を付け加えて実行することができる だけど実行した時に起こす処理を書く必要があるんだ 書く場所はステートの外側&ステートより前に書かないといけない 書き方はこんな感じ 返す型 関数名(受け取る引数){ 処理 return 返す値; } 返す型、返す値ってのは イベント内 myFunction(5); を実行した時にかえって来る型と値の事 ここに書いた型と値が帰って来るので integer myFunction(integer n){ 処理 return 10; } こんなかんじで書いた場合は型をinteger型にしてるので イベント内 integer a = myFunction(5); という感じで実行すれば実行した場所に整数型の値を返すことができる 受け取る引数っていうのは イベント内 myFunction(5); これの場合は整数型の5という引数を送ってるので integer myFunction(integer n){ 処理 return 10; } 関数の中の変数nで5という値を取得することができる このnは関数の中で使うことができる integer myFunction(integer n){ integer m = n * 10; return m; } こういう関数を用意しておいて イベント内 integer new = myFunction(5); こうやって実行させると newの中には5*10の値が入ってることになる 関数の中で処理を実行させたい場合は この関数の中に用意された関数を書いてやればおk integer myFunction(){ llOwnerSay("run function"); return 0; } こういう関数を用意しておいて(引数は必要ないので適当に0を返しておく) イベント内 myFunction(); こう実行させると自身の画面にrun functionと表示される