PDA

View Full Version : مرتب سازی آرایه دوبعدی



Fastdesign
سه شنبه 15 آذر 1390, 19:23 عصر
با عرض سلام خسته نباشید خدمت دوستان
آرایه ای را با این مقادیر تعریف کرده ام :
Edge:array[1..8,1..3] of Integer;
با فرض اینکه این اعداد را در آرایه وارد کرده ایم :


78792

حالا می خوام براساس ستون سوم مرتبش کنم :یعنی به این صورت :

78793

یعنی ستون یک و دو براساس ستون سوم اندیسشون تغییر کنه.

من با این کد فقط تونستم ستون سوم را مرتب کنم : یعنی ستون یک و دو براساس ستون سوم جاشون تغییر نکرد :
var
i,j,temp:Integer;
begin
for I := 1 to 7 do
for j := i+1 to 8 do
if edge[i,3]>edge[j,3] then
begin
temp:=edge[i,3];
edge[i,3]:= edge[j,3];
edge[j,3]:=temp;
end;
for I := 1 to 3 do
for j := 1 to 8 do
StringGrid2.Cells[i-1,j-1]:=inttostr(edge[j,i]);

end;
در ضمن من هم از مرتبه سازی حبابی استفاده کرده ام.

اگه دوستان کسی بلده از ما بی دریغ نکنه
با تشکر

SAASTN
چهارشنبه 16 آذر 1390, 00:01 صبح
صرف اینکه شما برنامتون رو به زبان دلفی یا پاسکال می نویسید به این معنی نیست که سوالاتی که براتون مطرح میشه به بخش مباحث عمومی دلفی و پاسکال مربوط بشه، این سوالاتی که تو کتابها مطرح میشه یا اساتید به عنوان پروژه تعریف می کنن بیشتر با این هدف طراحی شدند شما رو با نحوه عملکرد الگوریتم ها برای حل یک مسئله آشنا کنند.
اگه فکر می کنید برای حل این مسائل به همفکری یا راهنمایی احتیاج دارید، تصور می کنم مناسب ترین بخش برای مطرح کردن موضوع بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها (http://barnamenevis.org/forumdisplay.php?40-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85%D 8%8C-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1%D 8%8C-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%88-%D8%B3%D8%A7%D8%AE%D8%AA%D9%85%D8%A7%D9%86-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7) باشه.

موفق باشید

Fastdesign
چهارشنبه 16 آذر 1390, 04:42 صبح
حرف شما کاملا درست ولی من تو قسمت پیاده شازییش تو دلفی مشکل دارم و نمی دونم چجوری آرایه را براساس ستون سوم مرتب سازی کنم که ستون اول و دوم هم براسا ستون سوم مکانشون تغییر کنه.
تو بخش الگوریتم و کامپایلر فقط در این زمینه راهنمایی می کنند در مورد نحوه پیاده سازی کمتر بحث می کنن.
اگه میشه لطفا راهنمایی کنید.
با تشکر

SAASTN
چهارشنبه 16 آذر 1390, 23:19 عصر
من تو قسمت پیاده شازییش تو دلفی مشکل دارم

نمی دونم چجوری آرایه را براساس ستون سوم مرتب سازی کنم که ستون اول و دوم هم براسا ستون سوم مکانشون تغییر کنه
این دوتا جمله با هم تناقض دارن، این که می گید تو قسمت پیاده سازیش تو دلفی مشکل دارید به این معنی هست که مثلا با پیاده سازیش تو C مشکلی ندارید، یا مثلا شبه کدش رو می تونید بنویسید و trace کنید یا دیگه حداقل فلوچارتش رو رو کاغذ می تونید بکشید، اما جمله دوم کاملا نشون میده که این مسئله هنوز روی کاغذ حل نشده که اصلا بخواد به مرحله پیاده سازی برسه. در واقع پیاده سازی این مسئله توی پاسکال به چیزی غیر از همون مسائلی که توی کد خودتون استفاده کردید احتیاج نداره و نظر شخصی من اینه که دقیقا شما با پیاده سازی این مسئله توی دلفی هیچ مشکلی ندارید و اگر مشکلی هست به پیاده سازی الگوریتم این مسئله بر می گرده.

تو بخش الگوریتم و کامپایلر فقط در این زمینه راهنمایی می کنند در مورد نحوه پیاده سازی کمتر بحث می کنن.
این زمینه یعنی کدوم زمینه؟:بامزه: ببین دوست من، توی اون بخش هم نباید توقع داشته باشی که کسی بیاد مسئله رو برات حل کنه و کدشو شسته و رفته بذاره جلوت، همونطور که تو پست قبل هم گفتم این به تمرینه که برای شما طراحی شده و خود شما هم باید حلش کنی، این که کسی بیاد این جور تمرینات رو برای کسه دیگه حل کنه بر خلاف اهداف این سایته که در قوانین هم منعکس شده.

لطفا راهنمایی کنید.
خوب تو که برای ستون سوم نوشتی یجوری بنویس که بشه برای ستون k ام، بعدم که قراره این کار رو همه ستونا انجام بشه، پس با یه حلقه ای چیزی طرفیم! حالا خودت بگو، یه همچین راهنمایی کجاش به دلفی ربط داره؟!