ايران ويج

نسخه‌ی کامل: نوشتن انواع ماتریس به صورت شی گرا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
لطفا در مورد سوالات منو راهنمایی کنید
مرتب سازی ماتریس ( حبابی و انتخابی و درجی )
بزرگترین مقدار ماتریس
ضرب ماتریس
و بالا و پایین مثلثی بودن ماتریس
البته همگی به صورت شی گرایی

ممنون

---------------------------------

عنوان تاپیک ویرایش شد.
پیمان
(۰۴-دى-۱۳۸۸, ۱۷:۰۵:۵۲)bluestorm نوشته است: [ -> ]
(۰۴-دى-۱۳۸۸, ۱۲:۳۱:۴۸)bluestorm نوشته است: [ -> ]با سلام
لطفا در مورد سوالات منو راهنمایی کنید
مرتب سازی ماتریس ( حبابی و انتخابی و درجی )
بزرگترین مقدار ماتریس
ضرب ماتریس
و بالا و پایین مثلثی بودن ماتریس
البته همگی به صورت شی گرایی

ممنون
Help Me

من با شی گرایی میتونم ماتریس رو ایجاد کنم مقدار دهی کنم و در خروجی نمایش دهم اما این کارهارو نمی دونم چه طوری باید انجام بدم
Help Me
دوست عزیز

متاسفانه اینجا محیط اینترنت و کلا دنیای واقعی برنامه نویسی چندان شباهتی به محیط کلاسیک و آکادمیک

کلاس های درس نداره و اکثر دوستان حاضر در این فروم ها بیشتر به موارد مرتبط با کار واقعی و انجام پروژه های

عملی سرو کار دارند و به همین خاطر جواب سوالاتی از این دست رو نمی تونید به راحتی اینجا پیدا کنید.

البته اگه توضیح کاملی در مورد سوالتون بدید و بگید دقیقا کجا مشکل دارید شاید بتونم راهنمائیتون کنم.
مشکل اینه که نمی دونم باید چطوری برنامه رو بنویسم
این سورس کد ماتریس که ایجاد و ورود و نمایش ماتریس هست

Create Class
کد:
[align=center]Option Explicit
Private Row_mtx As Integer
Private Col_mtx As Integer
Private mtx() As Integer

Public Property Let Row(ByVal userrow As Integer)
Row_mtx = userrow
End Property

Public Property Let Col(ByVal usercol As Integer)
Col_mtx = usercol
End Property

Public Property Get outrow() As Integer
outrow = Row_mtx
End Property

Public Property Get outcol() As Integer
outcol = Col_mtx
End Property

Public Sub crmtx(ByVal mtxrow As Integer, ByVal mtxcol As Integer)
ReDim mtx(mtxrow * mtxcol)
End Sub

Public Sub inmtx(ByVal ur As Integer, ByVal uc As Integer, ByVal v As Integer)
Dim loc As Integer
loc = ((ur - 1) * Col_mtx) + uc
mtx(loc) = v
End Sub

Public Function swmtx(ByVal usrow As Integer, ByVal uscol As Integer) As Integer
Dim loc As Integer
loc = ((usrow - 1) * Col_mtx) + uscol
swmtx = mtx(loc)
End Function
البته فقط کلاسه
(۰۴-دى-۱۳۸۸, ۱۲:۳۱:۴۸)bluestorm نوشته است: [ -> ]مرتب سازی ماتریس ( حبابی و انتخابی و درجی )
بزرگترین مقدار ماتریس
ضرب ماتریس
و بالا و پایین مثلثی بودن ماتریس
البته همگی به صورت شی گرایی

دقیقا چی میخوایین ؟؟
چی رو راهنمایی کنیم ؟؟
واسه هر کدوم لطفا یکم توضیح بدید ،
- الگوریتم مرتب سازی ماتریس هم اگه دارید بگید و ....
و اینکه منظور از همگی به صورت شئ گرا باشه ، یعنی چی ؟؟
یه شبه کد برای مرتب سازی به صورت درجی ( انتخابی وحبابی )

( الگوریتم که ندارم ولی باید ماتریس رو به یک بعدی تبدیل کرد )
مثل
کد:
Public Sub crmtx(ByVal mtxrow As Integer, ByVal mtxcol As Integer)
ReDim mtx(mtxrow * mtxcol)
End Sub

Public Sub inmtx(ByVal ur As Integer, ByVal uc As Integer, ByVal v As Integer)
Dim loc As Integer
loc = ((ur - 1) * Col_mtx) + uc
mtx(loc) = v
End Sub
منظور از شی گرایی یعنی ایجاد یک کلاس و استفاده از توابع و فانکشنها
public property Let Matrix ( byval ..... as ...) یا public sub matrix () as ...
سلام

من یه چنین چیزی در آوردم ؛
کاری های زیر رو انجام میده :
ایجاد ماترس
مقدار دهی به ماتریس
تبدیل ماتریس به آرایه یک بعدی
-----------------
اول از همه بگم که اشتباهی نوشتم matrix ! ، بهم نخندینا !! AngryAngry
(با همه هستم)
----------------
اول باید یه متغیر از نوع کلاس ایجاد کنید ، و یک آرایه
کد:
Dim k As New MatrixCls
Dim o() As Integer
بعد باید بعد ماتریس M × N ؛ رو تعیین کنید ،
کد:
Call k.dimensional(4, 4)
اینجا من گفتم ماتریسم 4 * 4 باشه ، (برای تمام کارهای بعدی این قسمت واجبه مقدار دهی بشه)

بعد آرایم رو میفرستم که بشه ماتریس :
کد:
Call k.createMatrix(o())
الا o یه ماتریس 4 *4 هستش

بعدش مقدار میدیم
کد:
Call k.insertValue(o(), 1, 2, 3, 4, 5, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16)
پارامتراش :
- اولیش آرایه (ماتریس) ای هشت که میخوایین این مقادیر رو بهش بدید
- بقیه هم اعداد ؛ توجه شود تعداد این اعداد باید با تعداد عناصرتون مساوی باشه ، یعنی اینجا باید 16 تا باشه !!
--------------------------------------
حالا واسه تبدیل به یک بعدی :
کد:
Dim f() As Integer
f() = k.matrix2line(o())
matrix2line از نوع بازگشتی هستش که یک آرایه دو بعدی با m * n میگیره ؛ و یه آرایه یک بعدی برگشت میده !!!
-----------------------------------
بقیه اش هم که دیگه باید بتونید ، کار ریاضی هستش ؛
بیشتر چیزهایی هم که احتیاح داشتین من استفاده کردم ؛
اگه مشکلتون برنامه نویسیش بود ؛ به نگاه کنید مشکل حله .
در کل نکات آموزشی خوبی داره .
من که چیزی سر درد نمی ارم برای تبدیل به یک بعدی چطور عمل شده
____
مرتب سازی و انواعش و سوالات دیگه چی ؟
سلام

برای تبدیل به یک بعدی ، آرایه های دو بعدی (همون ماتریس) رو دونه دونه میخونه ، میندازه تو به آرایه 1 بعدی !!
مگه شما چطور تبدیل میکنی ؟؟
----------------------------------------
نقل قول: مرتب سازی و انواعش و سوالات دیگه چی ؟
خودتون گفتید
نقل قول: مشکل اینه که نمی دونم باید چطوری برنامه رو بنویسم
خوب این استارتش ، مرتب سازیش که دیگه با 1 آرایه کار دارید !!
دیگه بقیه اش ریاضی هستش دیگه .
الا کجای این کد رو نمیتونین درک کنید ؟؟
برای تبدیل ، سطر و ستون ارایه رو ضرب میکنیم بعدش هم که Loc برابر با اندیس ارایه قرار میدهیم
کد:
Public Sub crmtx(ByVal mtxrow As Integer, ByVal mtxcol As Integer)
[color=#FF0000]ReDim mtx(mtxrow * mtxcol[/color])
End Sub

Public Sub inmtx(ByVal ur As Integer, ByVal uc As Integer, ByVal v As Integer)
Dim loc As Integer
[color=#FF0000]loc = ((ur - 1) * Col_mtx) + uc[/color]
[color=#FF0000]mtx(loc) = v[/color]
End Sub
سلام.
دوست عزیز bluestorm لطفا کدهای خود را در تگ کد قرار بدهید و برای تاپیک خود عنوان مناسب انتخاب کنید.