محبوبترینها
آشنایی با سایت قو ایران بهترین سایت آگهی و تبلیغات در کشور
بهترین شرکتهای مهندسی در آلمان
صفر تا صد حق بیمه 1403! فرمول محاسبه حق بیمه
نقش هدایای سازمانی در افزایش انگیزه و تعهد کارکنان
کلینیک پروتز و ساخت اندام مصنوعی دکتر اجرائی
چگونه میتوانیم با ترانسفر وایز پول جابجا کنیم؟
بهترین مدلهای [صندلی گیمینگ] براساس نقد و بررسی کاربران
مشاوره حقوقی تلفنی با کمترین هزینه
مشاوره حقوقی تلفنی با کمترین هزینه
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1803305861
نیاز فوری(الگریتم و فلوچارت) -
واضح آرشیو وب فارسی:سایت ریسک: نیاز فوری(الگریتم و فلوچارت) pilevar 29 تير 1386, 10:18سلام کسی میتونه توی جواب این سوال کمکم کنه؟ اگر امان داره شبه کد(الگریتم) اونو برای نوشتنش بهم کمک کنید. البته من در نهایت باید فلوچارتشو رسم کنم. سوال اینه: الگریتمی بنویسید که n عدد را بگیرد آنها را به صورت سعودی مرتب کند. اگر این چور چیزی رو کد visualbasic یا ++C اش رو دارین بزارین متشکر میشم. از روی همون کد ،فلوشچارتشو در میارم. ممنون :cry::cry::cry::cry::cry::cry::cry::cry::cry::cry: :cry: hossein_salehi 29 تير 1386, 14:03سلام. اول یه توضیح در مورد مرتب سازی به روش merge یا ادغام: اصول کار : اگر مجموعه ای از اعداد داشته باشیم و آن را به 2 بخش تقسیم کنیم و هر بخش را جداگانه مرتب کنیم و حاصل را به گونه ای ادغام کنیم که این ترتیب در آن مجموعه حاصله هنوز مرتب باشد در این حالت کل مجموعه مرتب شده به حساب می آید. یه سوال که مطرح میشه اینه که خوب حالا به فرض اونو به 2 بخش تقسیم کردیم - هر بخش به چه صورت مرتب شوند؟ جواب : مشخص است هر بخش نیز به همان صورت مرتب میشود ( 2 تیکه شدن ). یعنی هر بخش کوچکتر هم باید کوچکتر شود و مرتب الی آخر. یه سوال دیگر : این تیکه تیکه کردن داده های خانه آرایه مثلا تا کجا ادامه پیدا کنه ؟ خوب مسلمه که اگر به عنصر تک عضوی رسیدیم دیگه نمیشه اونو 2 تیکه کرد. پس کار خرد شدن ادامه پیدا میکنه تا به یه عنصر ( مثلا یک عدد در خانه ای از خانه های حافظه ) برسیم. ببینید سعی میکنیم این 2 تیکه کردن ها مساوی باشند ( در هر طرف تقسیم تعداد مساوی خانه حافظه یا آرایه قرار گرفته شده باشد ) - دلیلی نداره مساوی تقسیمشون نکنه وقتی .... مراحل کار رو به صورت زیر ادامه میدهیم: - اگر تعداد داده ها یک یا کمتر شد دیگر نیازی به مرتب سازی نیست و برگرد. - وسط داده ها را پیدا کن. - نیمه اول داده ها را به روش Merge Sort مرتب کن. - نیمه دوم داده ها را به روش Merge Sort مرتب کن. - دو نیمه مرتب شده را به گونه ای ادغام کن که حاصل مرتب باشد! کد الگوریتم merge sort : void mergesort (int low,int high) { int mid; if(low<high){ mid=(low+high)/2; mergesort(low,mid) mergesort(mid+1,high); merge(low,mid,high); } زیر الگوریتم merge که در خط آخر الگوریتم بالا میبینید استفاده شده کارش اینه که دو بخش مرتب شده آرایه را با هم ادغام کند به گونه ای که حاصل هم مرتب باشد. فرض کنید شما به تعداد N تا عدد از کاربر با یه حلقه for دریافت کردین و اونو تو یه آرایه گذاشتین که اسم آرایه هم A هست. mergesort(low,mid) این کد بالا شامل بخش اول آرایه A از محل Low تا Mid و بخش دوم آن از Mid+1 تا high را شامل میشود. نکته : چون همل ادغام را نمیشود به صورت درجا انجام داد ( نمیشود همون آرایه که داریم روی آن کار میکنیم بدون خانه حافظه کمکی هم از آن بخ.انیم هم آن را ادغام کنیم ) بنابراین نیاز به یک آرایه کمکی هست به نام B از نوع A و با همان اندازه A. یه مثال میزنم : آرایه ای 10 عنصری به نام A دارم که عناصر 0 تا 4 آن مرتب و عناصر 5 تا 9 هم مرتب هستند. میخواهیم این دوبخش را ادغام کرده و در آرایه B قرار دهیم. A={350,365,390,500,700,340,400,450,490,495} در این وضعیت low=0 , mid=4 , mid+1=5 , high=9 میباشند. برای ادامه کار سه متغییر به نامهای h , i , j تعریف میکنم و نقش های زیر را به آنها میدهیم : h=low محلی از اولین بخش آرایه A که داده آن باید بررسی گردد. j=mid+1 محلی از دومین بخش آرایه A که داده آن باید بررسی گردد. i=low محلی از آرایه B که داده جدید باید در آن ریخته شود. کار : کافی است که داده محل h و داده محل j آرایه A را با هم مقایسه کنیم و آن را که کوچکتر است در محل i آرایه B قرار دهیم. سپس اگر داده محل h کوچکتر بوده است به h یکی اضافه شود و اگر داده محل j کوچکتر بوده است به j یکی اضافه شود. اگر 2 داده مساوی بودند فرقی ندارد که کدامیک انتخاب شود. وچون در آرایه B هم عددی درج شده باید به i یک واحد اضافه شود.عملیات را با h,i,j جدید ادامه میدهیم تا یکی از 2 بخش آرایه A تمام شود. مشخص است که بقیه داده های بخش نا تمام آرایه A باید به همان ترتیب به آرایه B منتقل شوند. ادامه مثال بالا : LEFT]A={350,365,390,500,700,340,400,450,490,495}[/LEFT] h=0 --- j=5 LEFT]B={ , , , , , , , , , }[/LEFT] i=0 پس از انجام اولین مقایسه نتیجه این گونه خواهد بود : LEFT]A={350,365,390,500,700,340,400,450,490,495}[/LEFT] h=0 --- j=6 LEFT]B={340, , , , , , , , , }[/LEFT] i=1 پس از انجام دومین مقایسه نتیجه این گونه خواهد بود : LEFT]A={350,365,390,500,700,340,400,450,490,495}[/LEFT] h=1 --- j=6 LEFT]B={340,350, , , , , , , , }[/LEFT] i=2 اگر این عملیات را برای 6 بار انجام دهید نتیجه زیر بدست می آید: LEFT]A={350,365,390,500,700,340,400,450,490,495}[/LEFT] h=3 --- j=10 LEFT]B={340,350,365,390,400,450,490,496, , }[/LEFT] i=8 در این مرحله بخش دوم آرایه تمام شده است و اعداد باقیمانده بخش اول که 500 و 700 میباشد باید به B منتقل شوند و حاصل به صورت زیر خواهد بود : LEFT]B={340,350,365,390,400,450,490,496,500,700}[/LEFT] حال کافی است که داده های آرایه B را به همان ترتیب به مکان A منتقل کنیم ! حالا الگوریتم merge رو مینویسیم : void mege(int low, int mid, int high) { int h,i,j,k; int B[]; h=low; i=low; j=mid+1; while(h<=mid && j<=high){ if(A[h]<=A[j]){ B[i]=A[h]; h++; } else{ B[i]=A[j]; j++; } i++; } if(h>mid) for (k=j;k<=high;k++){ B[i]=A[k]; i++; } else for(k=h;k<=mid;k++){ B[i]=A[k]; i++; } for(k=low;k<=high,k++) A[k]=B[k]; } برای استفاده از mergesort پس از دریافت داده ها و ذخیره سازی آنها در A الگوریتم را به صورت زیر اجرا کنید : mergesort(0,n-1) شاد باشید. یا علی pilevar 29 تير 1386, 19:00حسین جان ممنون از لطفتون ولی من اینو چطوری به فلوچارت در بیارم. کمی مساله پیچیده شد. درسته گفتم کد c++ بدید ولی نه تا این حد :) ممنون میشم که به زبان الگریتم و شبه کد اینو بنویسی و بهم بدی. جبران میکنم. ممنون hossein_salehi 29 تير 1386, 19:07مراحل کار رو به صورت زیر ادامه میدهیم: - اگر تعداد داده ها یک یا کمتر شد دیگر نیازی به مرتب سازی نیست و برگرد. - وسط داده ها را پیدا کن. - نیمه اول داده ها را به روش Merge Sort مرتب کن. - نیمه دوم داده ها را به روش Merge Sort مرتب کن. - دو نیمه مرتب شده را به گونه ای ادغام کن که حاصل مرتب باشد! خواهش میکنم - الگورینتمش این بالایی بود. البته سطج کاریتون رو نگفتید - منم در سطح کارشناسی دانشگاهی یا کاردانی توضیح دادم! عزیز باید اینو درش بیارین دیگه ! البته به روش ساده تری هم میشه برنامه اش رو نوشت! مثلا استفاده از 2 حلقه FOR تو در تو ... - اینو میخواید ؟ اما خوب روش استاندارد بالایی بود تقریبا ! ( البته روش Quick sort هم بود که سخت تر بود ) pilevar 29 تير 1386, 19:30خواهش میکنم - الگورینتمش این بالایی بود. مثلا استفاده از 2 حلقه FOR تو در تو ... - اینو میخواید ؟ آخ حسین جان زدی تو خال. من اینو میخام. توی فلوچارت که Merge Sort نداریم. ممنون میشم که تا امشب کمکم کنی. hossein_salehi 29 تير 1386, 19:51void bubblesort(int a[], constint n) { int i,j,t; int switched=1; for(i=n-1;i>0 && switched;i--) { switched=0; for(j=0;j<i;j++) if(a[j]>a[j+1]) { switched=1; t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } hossein_salehi 29 تير 1386, 20:28#include <stdlib.h> #include <stdio.h> #include <time.h> #define ARRAY_SIZE 20 void print_array(int *array) { int x; for(x = 0; x < ARRAY_SIZE; x++) { if(x != ARRAY_SIZE-1) fprintf(stdout, "%d, ", array[x]); else fprintf(stdout, "%d ", array[x]); } } int main() { int iarray[ARRAY_SIZE]; int x, y, holder; // Seed rand() srand((unsigned int)time(NULL)); for(x = 0; x < ARRAY_SIZE; x++) iarray[x] = (int)(rand() % 100); fprintf(stdout, "Before Sort --------------- "); print_array(iarray); // Bubble sort method. for(x = 0; x < ARRAY_SIZE; x++) for(y = 0; y < ARRAY_SIZE-1; y++) if(iarray[y] > iarray[y+1]) { holder = iarray[y+1]; iarray[y+1] = iarray[y]; iarray[y] = holder; } fprintf(stdout, " After Sort --------------- "); print_array(iarray); } pilevar 29 تير 1386, 20:37:sad: این جور چیزی رو نمیخاستم. بیخیال. hossein_salehi 29 تير 1386, 21:12از روی همون کد ،فلوشچارتشو در میارم. یا علی کدتونم = یه چیز ساده ای هست - چرا اینقدر میپیچونیدش عزیز ؟ pilevar 31 تير 1386, 16:11عزیز منظور من این بود که n عدد رو از کاربر بگیره. یعنی خود کاربر اول بزنه 5. 5 تا از اون عدد بگیره و اونا رو مرتب بچینه پشت سر هم(به صورت سعودی) برنامه شما خودش عددی رو انتخاب میکرد. ولی ممنون چیز باحالی بود. اون قضیش اصلا به کلی بیخیالش شدم.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 501]
صفحات پیشنهادی
نیاز فوری(الگریتم و فلوچارت) -
نیاز فوری(الگریتم و فلوچارت) pilevar 29 تير 1386, 10:18سلام کسی میتونه توی ... زیر الگوریتم merge که در خط آخر الگوریتم بالا میبینید استفاده شده کارش ...
نیاز فوری(الگریتم و فلوچارت) pilevar 29 تير 1386, 10:18سلام کسی میتونه توی ... زیر الگوریتم merge که در خط آخر الگوریتم بالا میبینید استفاده شده کارش ...
رسم فلوچارت -
رسم فلوچارت --t=38861 >رسم فلوچارت videoparda 02 مهر 1384, 10:35كسي در استفاده از برنامه هاي ترسيم فلوچارت براي برنامه نويسي تجربه اي ... سوال در مورد شيوه ي گرفتن الگوريتم و فلوچارت در ويژوال بيسيك --t=10494 . ... نیاز به کمک فوری - ...
رسم فلوچارت --t=38861 >رسم فلوچارت videoparda 02 مهر 1384, 10:35كسي در استفاده از برنامه هاي ترسيم فلوچارت براي برنامه نويسي تجربه اي ... سوال در مورد شيوه ي گرفتن الگوريتم و فلوچارت در ويژوال بيسيك --t=10494 . ... نیاز به کمک فوری - ...
الگوریتم حریصانه خرد کردن اسکناس -
الگوریتم حریصانه خرد کردن اسکناس --الگوریتم حریصانه خرد کردن اسکناس Barton 19 تير 1386, 08:34با سلام خدمت شما دوستان عزیز یه الگوریتم یا فلوچارت می خوام که مسئله زیر رو حل کنه ممنون ( برنامه رو خودم دارم فلوچارتش رو می خوام ) ... کمک فوری در مورد خوروجی گرفتن در پریمیر پرو 2 - · سرمایه مورد نیاز برای یک استدیو کوچولو - ...
الگوریتم حریصانه خرد کردن اسکناس --الگوریتم حریصانه خرد کردن اسکناس Barton 19 تير 1386, 08:34با سلام خدمت شما دوستان عزیز یه الگوریتم یا فلوچارت می خوام که مسئله زیر رو حل کنه ممنون ( برنامه رو خودم دارم فلوچارتش رو می خوام ) ... کمک فوری در مورد خوروجی گرفتن در پریمیر پرو 2 - · سرمایه مورد نیاز برای یک استدیو کوچولو - ...
درخواست راهنمایی از اساتید برای شرو ع کار برنامه نویسی
البته فكر كنم از الگوريتم و فلوچارت و اينا جلوتر باشي. ... دستشو بر میاد بکنند چون نیاز مبرم دارم اگر میشه بگید چطور میتونم سی رو یاد بگیرم robert25-08-2007, ..... ((کمـــــــــک فوري ))درخواست درايور مودم اکسترنال Acorp مدل A 56EMS External ...
البته فكر كنم از الگوريتم و فلوچارت و اينا جلوتر باشي. ... دستشو بر میاد بکنند چون نیاز مبرم دارم اگر میشه بگید چطور میتونم سی رو یاد بگیرم robert25-08-2007, ..... ((کمـــــــــک فوري ))درخواست درايور مودم اکسترنال Acorp مدل A 56EMS External ...
برنامهنويسی به زبان اسمبلی
برای رسم خط از الگوریتم برزنهام و برای رسم مستطیل از خط استفاده شود. ... نیاز فوری دارم اگه میشه کمک کنید:confused::(( gumus11th December 2009, 10:56 ...
برای رسم خط از الگوریتم برزنهام و برای رسم مستطیل از خط استفاده شود. ... نیاز فوری دارم اگه میشه کمک کنید:confused::(( gumus11th December 2009, 10:56 ...
فهرست تاپيكهای انجمن بــــــرق ← بــازنــویــســی شــد !! 89/1/11
... جواب میخوام (360185) آموزش الگوریتم و فلوچارت (360181) تقويت كنندههاي ابزار دقيق موجود ... (357027) درخواست - کمک برای شبیه ساز matlab (356921) کمک فوری (356570) ... (325630) درخواست مقاله برق (الگوریتم ژنتیک) (326783) كمك براي انتقال ... تو بازار (308468) حداقل جریان مورد نیاز پایه بیس ترانزیستور c945 چقدره ؟
... جواب میخوام (360185) آموزش الگوریتم و فلوچارت (360181) تقويت كنندههاي ابزار دقيق موجود ... (357027) درخواست - کمک برای شبیه ساز matlab (356921) کمک فوری (356570) ... (325630) درخواست مقاله برق (الگوریتم ژنتیک) (326783) كمك براي انتقال ... تو بازار (308468) حداقل جریان مورد نیاز پایه بیس ترانزیستور c945 چقدره ؟
آموزش 200 نرم افزار و مبحث کامپیوتری در یک پک عالی
14 مه 2010 – ... آموزش ارتباط با چند کامپوتر بدون نیاز به تجهیزات جانبی آموزش فیلم برداری ... دوستان آموزش کار با دفترچه تلفن و ارسال ایمیل آموزش کار با پیغام فوری در ... آموزش الگوریتم و فلوچارت آموزش محیط پاسکال جهت برنامه نویسی آموزش ...
14 مه 2010 – ... آموزش ارتباط با چند کامپوتر بدون نیاز به تجهیزات جانبی آموزش فیلم برداری ... دوستان آموزش کار با دفترچه تلفن و ارسال ایمیل آموزش کار با پیغام فوری در ... آموزش الگوریتم و فلوچارت آموزش محیط پاسکال جهت برنامه نویسی آموزش ...
-
گوناگون
پربازدیدترینها