電卓 改造中
//計算用のメソッド
private double calc(double x, double y, char formula)
{
double answer = 0.0; //数値0.0を入力
switch(formula)
{
case '+': formula = Convert.ToChar(x + y);
break;
case '-': formula = Convert.ToChar(x - y);
break;
case '*': formula = Convert.ToChar(x * y);
break;
case '/': formula = Convert.ToChar(x / y);
break;
}
return answer;
Cast の関係で 暗黙的に変換してくれないよぉ
型変換のやり方もあるみたいですが
long l = 100; //long型をint型に変換する int i = (int)l;
ある型の値を別の型に変換(キャスト)する: .NET Tips: C#, VB.NET
結局 Convert.Tochar()
じゃないとうまくいかなかったんだよなぁ
なぜでしょう?
JavaScriptとかは型変換とか必要なかったんですけどねぇ
^^;
オブジェクト指向だからでしょうか
メソッドとは、数学の関数からとった代物
いい加減メソッドを詰めようと思います
原型
戻り値の型 関数名(引数一覧)
{
関数(処理内容)
}
「関数」について
関数という名前は数学用語です。
数学での関数とは
「ある値を入力すると、一定のルールに従った出力が得られます」
(じゃあ数学ってネットのプログラムにぶちこめばいいのでは(๑•̀ㅁ•́๑)✧)
また入力できる値の範囲、出力できる範囲は決まっている。
C#の関数も同様。
入力できる値 と 出力される値に型をあらかじめ定める必要がある。
// sin x を求める関数。 // テイラー展開を利用。 // かなり適当に作ってるので、この方法ではそんなに精度はよくない。 double Sin(double x) { double xx = -x * x; double fact = 1; double sin = x; for(int i=1; i<100;) { fact *= i; ++i; fact *= i; ++i; x *= xx; sin += x / fact; } return sin; }
の場合
double Sin(double x)
の先頭の[double]が
double x は入力するためのデータをいれておく場所。
→これを「引数」と呼ぶ
んでもって、{}で処理をやる
ここはよく分かるよねー
でだ、 これそのまま放置するとプログラムって上から下に処理をされるとながれちゃうから
return (戻り値)で
return sin
んでもらった値を、 double の値で返す。と
下のサンプルだと
double y = Sin(x)
のdouble yに答えが入るわけね
using System;
class SinSample
{
static void Main()
{
for(int i=0; i<10; ++i)
{
double x = 0.01 * i;
double y = Sin(x); // 関数呼び出し
Console.Write("sin({0:f2}) = {1:f6}\n", x, y);
}
}
/// <summary>
/// sin(x) の値を求める。
/// 実装は割りと適当。
/// </summary>
static double Sin(double x) // 関数定義
{
double xx = -x * x;
double fact = 1;
double sin = x;
for(int i=1; i<100;)
{
fact *= i; ++i; fact *= i; ++i;
x *= xx;
sin += x / fact;
}
return sin;
}
}
・メソッドは要するに、計算を纏めて分離したもの
・static double Sin(double x)
{
return sin
}
でstatic にしてインスタンスで共有できるように
double y = Sin(x); // 関数呼び出し
呼び出し方はこう。
double は省略するのね
要するに メソッドSinの変数xを持ってくると
・なぜメソッドって後ろに書くんだろう?
でも、めっちゃ項目多いよぉwww
ちくちょう 楽しいじゃねぇかwwww