View Full Version : اشاره گرها
sasan_1364
پنج شنبه 07 دی 1385, 17:34 عصر
می خوام یه برنامه بنویسم که تعدادنا معلومی عدد بگیر و یک سری عملیات روی آنها انجام بده
می خوام چون تعداد اعداد نامعلومه از اشارگر استفاده کنم ولی کار با اشارگر ها را با دلفی بلد نیستم می تونید کمک کنید ....:تشویق:
zman123456
پنج شنبه 07 دی 1385, 17:47 عصر
میشه بیشتر توضیح بدید شاید راه های بهتری برای این کار وجود داشته باشه.
اگر می خوای کار با اشاره گرها رو خیلی خوب یاد بگیرید حتما کتاب برنامه نویسی با c رو بخونید.
sasan_1364
پنج شنبه 07 دی 1385, 18:16 عصر
سلام
من می خوام یه برنامه آماری بنویسم که واریانس و انحراف معیار n داده اماری رو بردست بیارم
که N داده آماری ممکنه 1 و شاید 10000 (نامعلوم) باشه می خوام الزاما از اشرگر ها استفاده کنم
مثلا اول می خواستم از بانک اطلاعاتی استفاده کنم و بعد پشیمون شدم و استاد هم خواست که احتما از اشارگر ها استفاده کنم البته اطلاعاتم هم از اشارگر ها تو سی یه کمی دارم و می خوام با دلفی این برنامه رو بنویسم
OK
با تشکر از دوستان
MNosouhi
پنج شنبه 07 دی 1385, 19:18 عصر
کار با اشارگر ها را با دلفی بلد نیستم
حتما کتاب برنامه نویسی با c رو بخونید.
سی جه ربطی به دلفی داره ، مفاهیم یکیه اما روش های پیاده سازی فرق می کنه.
کار با اشارگر ها را با دلفی بلد نیستم می تونید کمک کنید
رجوع شود به کتاب "مرجه کامل دلفی" نوشته عین ا... جعفرنژاد قمی.
راهنمای دلفی هم کامل توضیح داده.
dkhatibi
پنج شنبه 07 دی 1385, 20:06 عصر
می خوام یه برنامه بنویسم که تعدادنا معلومی عدد بگیر و یک سری عملیات روی آنها انجام بده
می خوام چون تعداد اعداد نامعلومه از اشارگر استفاده کنم ولی کار با اشارگر ها را با دلفی بلد نیستم می تونید کمک کنید ....:تشویق:
دلفی یک نوع آرایه ی پویا هم داره که بعد اون توسط کاربر بعد از اجرای برنامه معلوم می شه!
zman123456
پنج شنبه 07 دی 1385, 20:26 عصر
سی جه ربطی به دلفی داره ، مفاهیم یکیه اما روش های پیاده سازی فرق می کنه.
منم منظورم مفاهیم بود اگر Baseدرست باشه پیاده سازی اونا مثل همه.
به نظر من قوی ترین مفاهیم اشاره گری رو c داره.
sasan_1364
پنج شنبه 07 دی 1385, 20:38 عصر
دلفی یک نوع آرایه ی پویا هم داره که بعد اون توسط کاربر بعد از اجرای برنامه معلوم می شه!
میشه کار ش چطوری . بیشتر توضیح بده . طرز استفادش
با تشکر رات فراوان
dkhatibi
پنج شنبه 07 دی 1385, 21:19 عصر
یک نمونه سادش به شکل زیره
var
a:array of integer;
begin
SetLength(A, 10);
که آرایه ای به طول 10 تعریف می کند.
می تونی اونو به صورت دینامیک هنگامی که برنامه اجرا می شه یا پس از اون بدی!
MNosouhi
جمعه 08 دی 1385, 00:41 صبح
اگر Baseدرست باشه پیاده سازی اونا مثل همه.
:متعجب:
**************
vcldeveloper
جمعه 08 دی 1385, 09:29 صبح
استاد هم خواست که احتما از اشارگر ها استفاده کنم
درباره مفاهیمی مثل لیست های پیوندی یا درخت های دودویی مطالعه کنید.
Mahyaa
جمعه 08 دی 1385, 15:03 عصر
من معمولا برای کارهای مشابه این از TList استفاده میکنم .
sasan_1364
جمعه 08 دی 1385, 20:22 عصر
من معمولا برای کارهای مشابه این از TList استفاده میکنم .
سلام از TList چطوری استفاده می کنید
ممنون
Mahyaa
جمعه 08 دی 1385, 22:17 عصر
این مثال Help خود دلفی هستش :
procedure TForm1.FormButton1Click(Sender: TObject);
type
PMyList = ^AList;
AList = record
I: Integer;
C: Char;
end;
var
MyList: TList;
ARecord: PMyList;
B: Byte;
Y: Word;
begin
MyList := TList.Create;
try
New(ARecord);
ARecord^.I := 100;
ARecord^.C := 'Z';
MyList.Add(ARecord); {Add integer 100 and character Z to list}
New(ARecord);
ARecord^.I := 200;
ARecord^.C := 'X';
MyList.Add(ARecord); {Add integer 200 and character X to list}
{ Now paint the items onto the paintbox}
Y := 10; {Variable used in TextOut function}
for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];
Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I}
Y := Y + 30; {Increment Y Value again}
Canvas.TextOut(10, Y, ARecord^.C); {Display C}
Y := Y + 30; {Increment Y Value}
end;
{ Cleanup: must free the list items as well as the list }
for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];
Dispose(ARecord);
end;
finally
MyList.Free;
end;
end;
عبارت TList رو در هلپ دلفی جستجو کنید ، کاملا توضیح داده . مشکلی بود بپرسید.
البته این تنها راه نیست . راه هایی که دوستان پیشنهاد دادن هم هست.
MNosouhi
جمعه 08 دی 1385, 23:44 عصر
می خوام یه برنامه بنویسم که تعدادنا معلومی عدد بگیر و یک سری عملیات روی آنها انجام بده
من می خوام یه برنامه آماری بنویسم که واریانس و انحراف معیار n داده اماری رو بردست بیارم
الان فورمول انحراف معیار تو ذهنم نیست ، اما تابع زیر میانگین رو حساب میکنه ، کافیه فورمول مورد نظرت رو جایگزین کنید ، همونطوری که میبینید از روشی که آقای خطیبی عزیز فرمودن استفاده شده (آرایه های پویا):
procedure TForm1.Ave(Digits:array of integer);
var i ,LengthOfArray:byte;
Sum:Real;
begin
Sum:=0;
LengthOfArray:=High(Digits)+1;// Define The length of array
if LengthOfArray<>0 then
begin
for i:=1 to LengthOfArray do
begin
Sum:=Sum+Digits[i-1];
end;
Sum:=Sum/LengthOfArray;
ShowMessage('Average='+FloatToStr(sum));
end;
end;
اینطوری هم فراخوانی مشه:
Ave([20,30,50]);
dkhatibi
شنبه 09 دی 1385, 06:45 صبح
الان فورمول انحراف معیار تو ذهنم نیست ، اما تابع زیر میانگین رو حساب میکنه ، کافیه فورمول مورد نظرت رو جایگزین کنید ، همونطوری که میبینید از روشی که آقای خطیبی عزیز فرمودن استفاده شده (آرایه های پویا):
اینطوری هم فراخوانی مشه:
با تشکر
نباید یک جاییی برای آرایه فضا گرفت؟
ضمنا از تگ کد برای کدنویسی استفاده کنید و نه نقل قول.(]code[... ]/code])
MNosouhi
شنبه 09 دی 1385, 15:40 عصر
نباید یک جاییی برای آرایه فضا گرفت؟
نه ، در این مورد لازم نیست.
ضمنا از تگ کد برای کدنویسی استفاده کنید
چشم ، از تذکرتون ممنون.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.