PDA

View Full Version : سوال: ارسال آرایه به تابع



mohsenaria
جمعه 18 دی 1388, 14:33 عصر
سلام دوستان ، من یه تابع دارم که یک آرایه یه بعدی رو به صورت پارامتر دریافت می کنه و در برنامه اصلی یه آرایه 2 بعدی 3 در 3 دارم حالا اگه بخوام یکی از بعدهای آرایم رو به تابع بفرستم باید چیکار کنم.مرسی.



Private V(3, 3) As Single
Private A(3, 3) As Single
Private ZaribTavan(3, 3) As Single
Private TavanActive(3, 3) As Single
Private SabetKontor(3, 3) As Single
Private T(3, 3) As Single
Private N(3, 3) As Single




Protected Function CalcDarsad(ByVal T() As Single, ByVal TavanActive() As Single, ByVal SabetKontor() As Single) As Single
T(2) = IIf(T(2), T(2), T(1))
T(3) = IIf(T(3), T(3), T(1))
TavanActive(2) = IIf(TavanActive(2), TavanActive(2), TavanActive(1))
TavanActive(3) = IIf(TavanActive(3), TavanActive(3), TavanActive(1))
SabetKontor(2) = IIf(SabetKontor(2), SabetKontor(2), SabetKontor(1))
SabetKontor(3) = IIf(SabetKontor(2), SabetKontor(2), SabetKontor(1))
Dim MotevaseteZaman As Single = (T(1) + T(2) + T(3)) / 3
Dim MotavaseteTavan As Single = (TavanActive(1) + TavanActive(2) + TavanActive(3)) / 3
Dim MotevaseteSabet As Single = (SabetKontor(1) + SabetKontor(2) + SabetKontor(3)) / 3
Try
Return ((((360000 / 375) / MotevaseteZaman) - MotevaseteSabet) / MotavaseteTavan) * 100
Catch ex As Exception
Throw New ApplicationException(ex.Message + "خطا در محاسبات کنتور تک فاز")
End Try
End Function

sari-1369
جمعه 18 دی 1388, 17:15 عصر
الان VS ندارم که تست کنم ، ولی فرک کنم باید اینطوری بنویسی :


CalcDarsad(New Single() {Value1,Value2,Value3,...} , New Single() {} )

mohsenaria
جمعه 18 دی 1388, 17:46 عصر
الان VS ندارم که تست کنم ، ولی فرک کنم باید اینطوری بنویسی :


CalcDarsad(New Single() {Value1,Value2,Value3,...} , New Single() {} )

خوب اگه بخام مقدار بدم دیگه چه کاریه آرایه تعریف کنم ! میشه بیشتر توضیح بدی؟

mohsenaria
جمعه 18 دی 1388, 18:56 عصر
خوب اگه بخام مقدار بدم دیگه چه کاریه آرایه تعریف کنم ! میشه بیشتر توضیح بدی؟


با متغيير هم كارم مي شه ولي مي خام بدونم آخه اینجوری کد قشنگ تر می شه!:لبخندساده:

gh-reza
جمعه 18 دی 1388, 20:16 عصر
فکر نکنم امکان خاصی برای این کار تعبیه شده باشه (یا من نمیدونم). یه آرایه یه بعدی بساز. با یه حلقه for مقادیر اون بعد مورد نظر رو توی آزایه جدید کپی کن. آرایه جدید رو ارسال کن (اینم یه روشه دیگه :لبخندساده:)
توی Matlab بزرگ میشد این کار رو کرد


test(param(i,:))

sari-1369
جمعه 18 دی 1388, 23:22 عصر
یه آرایه یه بعدی تعریف میکنی ، اون بعدی از آرایه 3در3 رو که میخوای میریزی تو آرایه یه بعدی و اون رو به عنوان ورودی تابع میدی .