Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Cách lấy giá trị ngõ ra là mảng của 1 hàm con

  1. #1
    Ngày gia nhập
    04 2011
    Bài viết
    1

    Mặc định Cách lấy giá trị ngõ ra là mảng của 1 hàm con

    Mình đang viết 1 hàm con với ngõ ra là float[] y nhưng không lấy được ngõ ra lần đầu mình viết
    Code:
            public float[] maxmin(float alpha1, float alpha2, float L, float C1, float C2, float R, float[] y)
            {
                y = new float[25];
    	        int i;						// bien x la gia tri truc hoanh cua ham ngo ra
                float x, beta;				// bien i la chi so cua mang luu vao
                if (alpha1 < alpha2)
                    beta = alpha1;
                else
                    beta = alpha2;
                for(x=0;x<=24;x=x+1)			// ngo ra y chay tu 0 toi 24
    	        {
                    i = (int)x;					// chuyen tu gia tri tren truc hoanh thanh chi so vi tri cua mang
       		        if((x<L)||(x>R))
       		        {
                        y[i] = 0;                    
       		        }
       		        if((x>=L)&&(x<C1))
       		        {
          		        if (L==C1)
    	  		        y[i]=beta;
    	  		        else
    	  		        {
          			        y[i]=(x-L)/(C1-L);
          			        if(y[i]> beta)
          			        y[i]=beta;
    	  		        }
       		        }
       		        if((x>=C1)&&(x<=C2))
       		        {
          		        y[i]=beta;
       		        }
       		        if((x>C2)&&(x<=R))
       		        {
                        if (C2 == R)
                            y[i] = beta;
                        else
                        {
                            y[i] = (R - x) / (R - C2);
                            if (y[i] > beta)
                                y[i] = beta;
                        }
       		        }
                    return y[i];
    	        }   
            }
    khi mình viết như vậy thì nó báo Error:Cannot implicitly convert type 'float' to 'float[]'

    còn mình viết hàm con là void như vầy
    Code:
    public void maxmin(float alpha1, float alpha2, float L, float C1, float C2, float R, float[] y)
            {
                y = new float[25];
    	        int i;						// bien x la gia tri truc hoanh cua ham ngo ra
                float x, beta;				// bien i la chi so cua mang luu vao
                if (alpha1 < alpha2)
                    beta = alpha1;
                else
                    beta = alpha2;
                for(x=0;x<=24;x=x+1)			// ngo ra y chay tu 0 toi 24
    	        {
                    i = (int)x;					// chuyen tu gia tri tren truc hoanh thanh chi so vi tri cua mang
       		        if((x<L)||(x>R))
       		        {
                        y[i] = 0;                    
       		        }
       		        if((x>=L)&&(x<C1))
       		        {
          		        if (L==C1)
    	  		        y[i]=beta;
    	  		        else
    	  		        {
          			        y[i]=(x-L)/(C1-L);
          			        if(y[i]> beta)
          			        y[i]=beta;
    	  		        }
       		        }
       		        if((x>=C1)&&(x<=C2))
       		        {
          		        y[i]=beta;
       		        }
       		        if((x>C2)&&(x<=R))
       		        {
                        if (C2 == R)
                            y[i] = beta;
                        else
                        {
                            y[i] = (R - x) / (R - C2);
                            if (y[i] > beta)
                                y[i] = beta;
                        }
       		        }
    	        }   
            }

    thì nó không báo lỗi nhưng gọi trong chương trình chính giá trị mảng VH_y luôn ra bằng 0 (không trả giá trị)

    - Cách mình gọi trong main:
    float[] VH_y = new float[25];
    maxmin(0.33,0.67 , 16, 24, 24, 24, VH_y);


    Mong được sự góp ý của các bạn để có thể lấy được ngõ ra của hàm này theo cách nào cũng được.
    Cám ơn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    05 2010
    Bài viết
    351

    Trích dẫn Nguyên bản được gửi bởi thucmetqua Xem bài viết
    Mình đang viết 1 hàm con với ngõ ra là float[] y nhưng không lấy được ngõ ra lần đầu mình viết
    Code:
            public float[] maxmin(float alpha1, float alpha2, float L, float C1, float C2, float R, float[] y)
            {
                y = new float[25];
    	        int i;						// bien x la gia tri truc hoanh cua ham ngo ra
                float x, beta;				// bien i la chi so cua mang luu vao
                if (alpha1 < alpha2)
                    beta = alpha1;
                else
                    beta = alpha2;
                for(x=0;x<=24;x=x+1)			// ngo ra y chay tu 0 toi 24
    	        {
                    i = (int)x;					// chuyen tu gia tri tren truc hoanh thanh chi so vi tri cua mang
       		        if((x<L)||(x>R))
       		        {
                        y[i] = 0;                    
       		        }
       		        if((x>=L)&&(x<C1))
       		        {
          		        if (L==C1)
    	  		        y[i]=beta;
    	  		        else
    	  		        {
          			        y[i]=(x-L)/(C1-L);
          			        if(y[i]> beta)
          			        y[i]=beta;
    	  		        }
       		        }
       		        if((x>=C1)&&(x<=C2))
       		        {
          		        y[i]=beta;
       		        }
       		        if((x>C2)&&(x<=R))
       		        {
                        if (C2 == R)
                            y[i] = beta;
                        else
                        {
                            y[i] = (R - x) / (R - C2);
                            if (y[i] > beta)
                                y[i] = beta;
                        }
       		        }
                    return y[i];
    	        }   
            }
    khi mình viết như vậy thì nó báo Error:Cannot implicitly convert type 'float' to 'float[]'

    còn mình viết hàm con là void như vầy
    Code:
    public void maxmin(float alpha1, float alpha2, float L, float C1, float C2, float R, float[] y)
            {
                y = new float[25];
    	        int i;						// bien x la gia tri truc hoanh cua ham ngo ra
                float x, beta;				// bien i la chi so cua mang luu vao
                if (alpha1 < alpha2)
                    beta = alpha1;
                else
                    beta = alpha2;
                for(x=0;x<=24;x=x+1)			// ngo ra y chay tu 0 toi 24
    	        {
                    i = (int)x;					// chuyen tu gia tri tren truc hoanh thanh chi so vi tri cua mang
       		        if((x<L)||(x>R))
       		        {
                        y[i] = 0;                    
       		        }
       		        if((x>=L)&&(x<C1))
       		        {
          		        if (L==C1)
    	  		        y[i]=beta;
    	  		        else
    	  		        {
          			        y[i]=(x-L)/(C1-L);
          			        if(y[i]> beta)
          			        y[i]=beta;
    	  		        }
       		        }
       		        if((x>=C1)&&(x<=C2))
       		        {
          		        y[i]=beta;
       		        }
       		        if((x>C2)&&(x<=R))
       		        {
                        if (C2 == R)
                            y[i] = beta;
                        else
                        {
                            y[i] = (R - x) / (R - C2);
                            if (y[i] > beta)
                                y[i] = beta;
                        }
       		        }
    	        }   
            }

    thì nó không báo lỗi nhưng gọi trong chương trình chính giá trị mảng VH_y luôn ra bằng 0 (không trả giá trị)

    - Cách mình gọi trong main:
    float[] VH_y = new float[25];
    maxmin(0.33,0.67 , 16, 24, 24, 24, VH_y);


    Mong được sự góp ý của các bạn để có thể lấy được ngõ ra của hàm này theo cách nào cũng được.
    Cám ơn
    Mình thì không hiểu thuật toán của bạn, nhưng đoạn "return return y[i]" thì bạn sửa thành "return return y"
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Các đề tài tương tự

  1. Bán đất trong ngõ 211 Khương Trung, 36m2, GB 1,7 Tỷ, ngõ 3m
    Gửi bởi phungphuc101010 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-12-2013, 11:11 AM
  2. Bán nhà thổ cư 3,9ty ngõ 105 láng hạ đống đa
    Gửi bởi taikhoan005 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 24-11-2011, 08:09 AM
  3. Chính chủ cần bán nhà khu đống đa,ngõ 105 láng hạ
    Gửi bởi taikhoan005 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 15-11-2011, 03:48 PM
  4. Bán nhà mặt ngõ thái há – đồng đa – hà nội
    Gửi bởi vth.ctv trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 11-10-2011, 08:14 PM
  5. Bán nhà mặt ngõ 3 phố Thái Hà, Đống Đa, Hà Nội
    Gửi bởi vth.ctv trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 02-08-2011, 01:56 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn