PDA

View Full Version : سوال: آرایه ای از اشاره گرها



mehran5
جمعه 17 آبان 1387, 16:04 عصر
سلام کسی میدونه برای تعریف آرایه ای از اشاره گرها چه کدی باید بنویسم بطوریکه هر اشاره گر به یک آرایه یک بعدی اشاره کنه؟با تشکر

mostafaaa
جمعه 17 آبان 1387, 20:42 عصر
سلام
سوالتون کمی نامفهومه . اگه قرار بر اینه که یک آرایه تعریف کنیم دیگه اشاره گر معنایی نداره چون هر خانه از آرایه با یه اندیس مشخص میشه . ولی اگه منظورت لیست های پیوندی هستش که کلاسش به صورت آماده توی دات نت موجوده.

Dim LS As New LinkedList(Of String)

mehran5
جمعه 17 آبان 1387, 22:34 عصر
ببینید یک آرایه می خوایم که هر عنصرش یک اشاره گره به یک آرایه یک بعدی.برای مثال از این خاصیت در ماتریس مجاورت گرافها استفاده میشه بطوریه هر خانه از این آرایه مذکوربطور متناظربا عناصر یا گرههای ماتریس مجاورت گراف در ارتباط هستند.بعبارتی دیگر در این آرایه هر عنصر آرایه با تعداد گرههایی که در ماتریس در ارتباط هستند ارتباط داده میشوند.

mostafaaa
شنبه 18 آبان 1387, 09:53 صبح
ببین یه مثال ساده برات میزنم از ساختن اشاره گر توی VB.net ببین میتونی ایده بگیری یا بر اساس اون سوالت رو تکمیل کنی یا نه.
در مورد ماتریس مجاورت و گرافها هم باید بگم که من خیلی وقت پیش Structure رو پاس کردم و چیز زیادی از مباحث مربوط به اون یادم نمونده. ولی چون درس شیرینی بود و خیلی دوسش داشتم . خوشهال میشم دوباره با شما یه یادآوری ازشون داشته باشم.

Public Class List
Private Start As List = Nothing
Private Pointer As List = Nothing
Private [Next] As List = Nothing
Private Value As String = Nothing
Private Index As Integer = 0
Sub New()
Start = Me
Pointer = Start
End Sub
Public Sub Add(ByVal str As String)
Pointer.Value = str
Pointer.Next = New List
Pointer.Next.Index = Pointer.Index + 1
Pointer = Pointer.Next
End Sub
Public Function GetValue(ByVal Index As Integer) As String
Dim TempPointer As List = Start
If TempPointer.Index = Index Then
Return TempPointer.Value
Else
Do
TempPointer = TempPointer.Next
If TempPointer.Index = Index Then Return TempPointer.Value
Loop While Not TempPointer.Next Is Nothing
End If
Return Nothing
End Function
End Class

mehran5
یک شنبه 19 آبان 1387, 08:32 صبح
از راهنماییتون ممنون ولی من نمونش رو توی سی پلاس پلای اینجوری پیدا کردم


Dim * suit [4]={“heart”,”diamond”,”clubs”,”dpades }

حالا میخوام کد بالارو در ویبی تعریف کنم و هر کرکتر از کلمات رو ربا یک حلقه for چاپ کنم.؟

mostafaaa
یک شنبه 19 آبان 1387, 09:47 صبح
والا من درک نمیکنم این چه ربطی به اشاره گر داره . تا اونجایی که میدونم این فقط یع آرایه معمولی هستش.
که توی دات نت به این شکل تعریف میشه.

Dim suit() As String={"heart","Diamond","clubs","dbades"}

mehran5
یک شنبه 19 آبان 1387, 13:07 عصر
خوب حالا چطوری میشه هر یک از حروف یک کلمه مثل heart رو جدا جدا توی هر خط یک لیست باکس ریخت؟

mostafaaa
یک شنبه 19 آبان 1387, 17:09 عصر
Dim suit() As String = {"heart", "Diamond", "clubs", "dbades"}
For Each Str As String In suit
For Each Ch As Char In Str
Me.ListBox1.Items.Add(Ch)
Next
Next

mehran5
دوشنبه 20 آبان 1387, 20:16 عصر
ممنون منظورم همین بود ولی برای دسترسی به هر حرف و کلمه از ایندکس توی حلقه می خواستم استفاده کنم مثل:for i=1 to n
next i

mostafaaa
دوشنبه 20 آبان 1387, 20:31 عصر
Dim suit() As String = {"heart", "Diamond", "clubs", "dbades"}
For i As Integer = 0 To suit.Length - 1
For j As Integer = 0 To suit(i).Length - 1
Me.ListBox1.Items.Add(suit(i).Chars(j))
Next
Next
End Sub

mehran5
دوشنبه 20 آبان 1387, 22:21 عصر
آها حالا فهمیدم ممنون .به این میگن آرایه ای از اشاره گر ها.

mehran5
سه شنبه 21 آبان 1387, 01:56 صبح
یک سوال دیگه اون اینکه اگه بخوایم به آخر هر کلمه یه کرکتر اضافه کنیم از چه متدی استفاده میکنیم؟مثلا ایندکس هر حلقه forرو تبدیل به رشته کنم و در آخر هر کلمه اضافه کنم؟!!!ممنونم

mostafaaa
سه شنبه 21 آبان 1387, 09:33 صبح
آها حالا فهمیدم ممنون .به این میگن آرایه ای از اشاره گر ها.ببین دوست من روی اشتباهت توی سوال کردن تاکید نکن. این چیزی که شما میخواستی صرفا یه آرایه ساده در ساده ترین شکل تعریفشه. ولی اگه دوست داری بدونی که واقعا یه اشاره گر چیه بهتره به بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها (http://barnamenevis.org/forum/forumdisplay.php?f=40) بری و اونجا در مورد اشاره گر ها مطالعه کنی.
در مورد سوال پرسیدن هم اگه واقعا مطعن نیستی چیزی رو که داری میپرسی همون چیزیه که میخوای ، راحت ترین کار این که تصوری رو که از خروجی داری رو توی سوالت بنویسی. مثل همون کاری که توی پست 7 انجام دادید

خوب حالا چطوری میشه هر یک از حروف یک کلمه مثل heart رو جدا جدا توی هر خط یک لیست باکس ریخت؟در واقع سوال شما از اول هم همین بوده!!
امیدوارم از تذکراتم ناراحت نشده باشی
و در آخر موفق باشی

sarakh
یک شنبه 25 اردیبهشت 1390, 23:47 عصر
سلام یه برنامه با tc نوشتم که موقع کامپایل این پیغام خطا رو می ده.
pointer to structure required on left side of -> or->*1


if (strcmp(list[i]->getfn,fn)==0)

fn یه پارامتر از نوع charو به این operation فرستاده می شه.list[i]1 یک آرایه از نوع اشاره گرهست که هر خانه ی اون به مقادیر مختلف از یک نمونه از یک شی اشاره می کنه.فرض کنین هر خانه آرایه به جایی اشاره می کنه که نام و تلفن و شماره شناسنامه ذخیره شده.حالا می خوام نام رو در خانه ی مورد نظر از این آرایه با یه رفتار (operation)به اسم getfn که در یک کلاس دیگه نوشتمش به دست بیارم و با fn مقایسه کنم.که آیا مساوی هستن یا نه.
لطفا راهنماییم کنین که چجوری این خطا برطرف می شه.

این 1 هایی که گذاشتم رو بهشون دقت نکنین.

sarakh
یک شنبه 25 اردیبهشت 1390, 23:54 عصر
اگر بخوام بدونم کدوم یکی از خانه های آرایهlist[] به جایی اشاره نمی کنه و خالی هست چه کدی باید بنویسم؟؟؟؟؟؟؟؟؟؟
پیشاپیش ممنون

sarakh
دوشنبه 26 اردیبهشت 1390, 15:23 عصر
لطفا من رو در مورد این دو تا سوالی که پرسیدم راهنمایی کنین.