none
計算asin 角度,可以幫我看看哪裡出錯了嗎?感謝 RRS feed

  • 問題

  •             double angle;
                //int k;
                double X;
                double Y;
                double q;
                string[] soluation1 = new string[100];
                for (int z  = 0; z < y.Length; z++)
                {
                    X = Customer[z].X;
                    Y = Customer[z].Y;
                    for (int k = 0; k < y.Length; k++)
                    {
                        Customer[z].angle = (double)Y/(Math.Pow((Math.Pow(X, 2) + Math.Pow(Y, 2)),0.5));
                    }
                    Customer[z].angle = 30 * (Math.PI / 180);
                    if (X >= 0)
                    {
                        angle = 90 - Math.Asin(Customer[z].angle);
                    }
                    else
                    {
                        angle = 270+ Math.Asin(Customer[z].angle);
                    }
                    soluation1[z] += Customer[z].angle;
                    soluation1 = Math.Sin(Customer[z].angle) + "\t\t";
                   
                }


                richTextBox4.Lines = soluation1;

     

     

    拜託大大幫忙看看哪裡有錯,錯誤訊息為" 無法將型別 'string' 隱含轉換為 'string[]' "。

    感激不盡,謝謝。

    2010年7月13日 上午 08:01

解答

  • 1. 有錯誤訊息應該會說明錯誤在哪一行,是否能明確指出錯誤在哪一行?

    2. 您是這樣改嗎? 假如不是的話,是否能說明您是怎麼改的?

                double X;
                double Y;
                float q;
    改成

                double X;
                double Y;
                float q = 0f;


    歡迎參觀我的Blog.NET菜鳥自救會
    微軟MVP與點部落之友經驗交流見面會
    • 已標示為解答 Lolota Lee 2010年7月20日 上午 06:04
    2010年7月14日 上午 06:49
    版主

所有回覆

  • 不確定你的目的...........

    soluation1[z] += Math.Sin(Customer[z].angle) + "\t\t";

    2010年7月13日 上午 08:08
  • Customer[z].angle 這個型別是什麼,是 string 還是 double? 是否能提供 Customer 宣告部分?

    有錯誤訊息應該會說明錯誤在哪一行,是否能明確指出錯誤在哪一行?


    歡迎參觀我的Blog.NET菜鳥自救會
    微軟MVP與點部落之友經驗交流見面會
    2010年7月13日 上午 08:16
    版主
  • 感謝各位,我已解決了!感激不盡^^

    更正如下:

    double angle;
                //int k;
                double X;
                double Y;
                double q;
                string[] soluation1 = new string[51];
                for (int z  = 0; z < y.Length; z++)
                {
                    X = Customer[z].X;
                    Y = Customer[z].Y;
                    for (int k = 0; k < y.Length; k++)
                    {
                        Customer[z].asin = (double)Y/(Math.Pow((Math.Pow(X, 2) + Math.Pow(Y, 2)),0.5));
                        angle=(Math.PI / 180) / Customer[z].angle;
                        if (X >= 0)
                        {
                            Customer[z].angle = 90 - Math.Asin(Customer[z].asin);
                        }
                        else
                        {
                            Customer[z].angle = 270 + Math.Asin(Customer[z].asin);
                        }
                        //soluation1[z] += Customer[z].angle;
                        //soluation1[z] += Math.Sin(Customer[z].angle) + "\t\t";

                    }
                    soluation1[z] += "顧客" + z + "的角度 = " + Customer[z].angle; 
                   
                   
                }


                richTextBox4.Lines = soluation1;

    2010年7月13日 上午 11:35
  • 看起來在做方位角...

    Public Function AzimuthToAngle(ByVal vAzimuth As Double) As Double
    	' (450 - 方位角) Mod 360 (數學角 <=> 方位角)
    	Return (2.5 * Math.PI - vAzimuth) Mod 2 * Math.PI ' 旋轉角度				
    End Function
    
    

    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年7月13日 下午 01:09
  •             //double angle;
                //int k;
                double X;
                double Y;
                float q;
                string[] soluation1 = new string[51];
                for (int z  = 0; z < y.Length; z++)
                {
                   
                    X = Customer[z].X;
                    Y = Customer[z].Y;
                    for (int k = 0; k < y.Length; k++)
                    {
                       
                        Customer[z].sin = (double)(Y/(Math.Pow((Math.Pow(X, 2) + Math.Pow(Y, 2)),0.5)));//z
                        double angle = Math.Sin(Customer[z].sin);
                        (Customer[z].sin)=Math.Asin(q);
                        //angle = 30 * (Math.PI / 180);
                        //angle = (Math.PI / 180) / Customer[z].sin;//sin

                        if (X >= 0)
                        {
                            Customer[z].sin = 90 - Math.Asin(q);
                        }
                        else
                        {
                            Customer[z].sin = 270 + Math.Asin(q);
                        }
                       

                    }
                    //soluation1[z] += Customer[z].sin;
                    //soluation1[z] += Math.Sin(Customer[z].angle) + "\t\t";
                    soluation1[z] += "顧客" + z + "的角度 = " + Customer[z].sin; 

     


                    錯誤訊息:使用未指定的區域變數"q"

    2010年7月14日 上午 05:23
  •  float q = 0f;
    2010年7月14日 上午 05:34
  • 你好,還是不行耶。

    還是我的語法有寫錯??@@

     

    2010年7月14日 上午 05:43
  • 1. 有錯誤訊息應該會說明錯誤在哪一行,是否能明確指出錯誤在哪一行?

    2. 您是這樣改嗎? 假如不是的話,是否能說明您是怎麼改的?

                double X;
                double Y;
                float q;
    改成

                double X;
                double Y;
                float q = 0f;


    歡迎參觀我的Blog.NET菜鳥自救會
    微軟MVP與點部落之友經驗交流見面會
    • 已標示為解答 Lolota Lee 2010年7月20日 上午 06:04
    2010年7月14日 上午 06:49
    版主
  • 你好,我換個方式寫了如下:

    //計算角度
                double angle;
                double X;
                double Y;
                string[] soluation1 = new string[51];
                for (int z  = 0; z < y.Length; z++)
                {
                    X = Customer[z].X;
                    Y = Customer[z].Y;
                    for (int k = 0; k < y.Length; k++)
                    {
                        Customer[z].asin = (double)Y/(Math.Pow((Math.Pow(X, 2) + Math.Pow(Y, 2)),0.5));//math.sin(angle)
                        //angle=(Math.PI / 180) / Customer[z].asin;
                        if (X >= 0)
                        {
                            Customer[z].angle = 90 - Math.Asin(Customer[z].asin);
                        }
                        else
                        {
                            Customer[z].angle = 270 + Math.Asin(Customer[z].asin);
                        }
                        //soluation1[z] += Customer[z].angle;
                        //soluation1[z] += Math.Sin(Customer[z].angle) + "\t\t";

                    }
                    soluation1[z] += "顧客" + z + "的角度 = " + Customer[z].angle; 

     

     

    我要計算SIN的反函數。

    現在的問題是,答案出來怪怪的,好像不太對!!

    可以麻煩你幫我看看語法對嗎?謝謝

    2010年7月14日 上午 06:58
  • 你好,改過了之後,是可以跑,但沒有資料耶!!@@

    2010年7月14日 上午 07:27