سلام دوستای عزیز......
میشه این برنامه ای که قرار دادم برام توضیح بدین که چجوری اجرا میشه دوشنبه باید تحویل استاد بدم ممنون
موضوعات مشابه:
سلام دوستای عزیز......
میشه این برنامه ای که قرار دادم برام توضیح بدین که چجوری اجرا میشه دوشنبه باید تحویل استاد بدم ممنون
موضوعات مشابه:
یعنی چی چطوری اجرا میشه ؟ نحوه کامپایلش ؟ نحوه اجراش ؟ یا توضیحات خط به خط برنامه ؟
برای کامپایل که باید مشخص باشه
برای اجرا هم شما ابتدا مشخص میکنید که چند شهر وجود داره (سوال اول )
بعد ماتریس هزینه رو شروع میکنید به پر کردن (یعنی مثلا از فلان شهر به بهمان شهر چقدر فاصله هست ) .
مثلا به فرم زیر :
m[0][0] = 0;
m[0][1] = 4;
m[0][2] = 12;
m[0][3] = 3;
m[0][4] = 1;
m[1][0] = 10;
m[1][1] = 0;
m[1][2] = 5;
m[1][3] = 999;
m[1][4] = 45;
//الی آخر
و همینطور الی آخر ( مثلا این برای 5 شهر بود )
معمولا هر شهر با خودش فاصله صفر داره یعنی
m[0][0] = 0;
شهرهایی هم که بهم ربطی ندارن یا مسیری بینشون نیست باد عدد 999 مشخص میکنید .
بعد هم انتر میکنید و تابع مربوطه دور با حداقل هزینه رو مشخص میکنه.
توکل بخدا
http://DeepLearning.ir
اولین و تنها مرجع یادگیری عمیق ایران
هرکس از ظن خود شد یار من
از درون من نجست اسرار من
ب نظرم توضیح خط به خط رو میخوان..؟؟!!
.
.
بگید کجا رو متوجه نشدین یا کدوم خط رو، دوستان بهتر کمکتون میکنن...؟!!؟!!؟!!
اگه یکی از موارد سوالی شما درباره scanf ه .... یه نگاهی به مطالب زیر بندازید :
تابع scanf :
تابع scanf تابعی برای گرفتن یک مقدار از صفحه کلید است که انتهای آن را با دکمه Enter مشخص می شود و در صورت بروز خطا EOF توسط تابع برگردانده می شود و این تابع به صورت زیر استفاده می شود :
scanf(<عبارت2>,”<عبارت1>");
<عبارت2>آدرس متغییرهایی است که باید از ورودی خوانده شوند و <عبارت1> مشخص می کند که مقادیر ورودی چگونه باید خوانده شوند و در متغییرهای که آدرس آنها در <عبارت2> مشخص شده است قرار گیرند.<عبارت2> شامل سه نوع کاراکتر است:
الف) کاراکترهای فرمت ( d% و c% و f% و ld% و lf% و ... ) .
ب) کاراکتر فضای خالی که موجب می شود تابع scanf از فضای خالی ابتدای و یا صفر صرف نظر شود و البته کاراکترهای کنترلی نیز به عنوان فضای خالی در نظر گرفته می شود . کاراکتر فضای خالی باعث می شود تا هر تعداد فضای خالی و یا حتی صفر ها را که در ابتدای اولین کاراکتر غیر صفر یا غیر فضای خالی وجود دارد را خوانده ولی از آنها رد شود ( آنها را ذخیره نمی کند )
ج) کاراکتر غیر از فضای خالی و فرمت (%d,%d که باعث می شود یک عدد صحیح از ورودی خوانده سپس یک کاما خوانده و از آن صرف نظر شد عدد بعدی را بخواند).
نکته :
در دستور scanf باید توجه داشت که در صورت لزوم حتما باید از علامت & استفاده کرد زیرا در صورت بروز این خطا کامپایر هیچ گونه خطایی را اعلام نمی کند ولی نتیجه شما هیچ گاه صحیح نیست !!!
نکته:
الگو توابع printf و scanf در فایل سرآید ( heeder ) فایل stdio.h تعریف شده اند .
در مورد توابع scanf لازم به ذکر است که این تابع n\ ته یک مقدار دریافتی را بروی صفحه Echo می کند ولی این کاراکتر را از روی بافر ورودی بر نمی دارد . در زمانی که شما از تابع scanf استفاده می کنید این تابع از n\ های در اول مقادیر ورودی صرف نظر می کند و در انتها نیز یک عدد بر می گرداند که نشانگر تعداد متغییر های مقدار گرفته می باشد .
نکته :
در صورتی که تابع scanf با اشکال برخورد کند ( مثلا به یک حرف برای یک متغییر عددی ) متغییر های قبل از آن اشکال را مقدار دهی کرده و مقدار صفر بر می گرداند
نکته :
سعی کنید تابع scanf را با gets به کار نبرید چون تابع gets با دیدن مقدار n\ آن را به عنوان خروجی بر می گرداند. در صورتی که خیلی نیاز دارید بهتر است تابع gets را دو بار پشت سر هم بنویسید تا n\ قبلی که بر اثر scanf های قبلی به وجود آمده از بین برود.
خطا در scanf :
در صورتی که تابع scanf با خطا رو برو شود از کارکتری که باعث خطا شده به بعد را در بافر ورودی باقی می گذارد تا در دستور ورودی بعدی آن را از روی بافر بردارد . حال اگر دستور بعدی نیز بخواهد متغییری از همان نوع را بخواند دوباره دچار خطا می شود .
برای مثال اگر ما از ورودی یک عدد بخواهیم و کاربر یک رشته وارد کند علاوه بر آنکه متغییر عددی مقدار دهی نمی شود رشته در درون بافر باقی می ماند و از هر چند دستور ( sanf("%d",&i بعدی می گزرد و هیچ کدام از آن متغییر های مقدار دهی نمی شود .
برای جلوگیری از چنین BUG معمولی بهتر از ورودی رشته دریافت کرده ( چون معمولا رشته کمتر دچار اشکال می شود ) و سپس با توابع زیر رشته را به عدد مورد نظر تبدیل کنیم .( در صورتی که بخواهیم یک مقدار کوچک مثلا int از ورودی دریافت کنیم بهتر از توابعی که رشته را تبدیل به عدد long int تبدیل می کند استفاده می کنیم )
.
منبع: ParsX.com :: ParsX.com
ویرایش توسط Tishab : 18th May 2013 در ساعت 11:04 PM
سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )
شما 4 شهر انتخاب کردید پس بین این چهار شهر باید مسیرهاشون رو هم مشخص کنید . مثلا از شهر a به خودش به شهر b به شهر c و به شهر d چقدر فاصله هست . به همین صورت از شهر b به خودش و به شهر a و به شهر c و بعد به شهر d چقدر و همینطور الی اخر تا مسیر همه شهرها رو نسبت به هم وارد کرده باشین .
اگه چهار شهر انتخاب کرده باشید میشه 4 ضربدر 4 = 16 حالت باید وارد کنید.
برای اینکه بهتر متوجه بشید به اینجا نگاه بندازید : تو تصویر و توضیحی که دادم کاملا همه چیز مشخص هست (وارد کردن ماتریس هزینه برای دایجکسترا دقیقا مثل فروشنده دوره گرده و فرقی ندارن )
الگوریتم دایجسترا ( بازگشتی ) c#
توکل بخدا
http://DeepLearning.ir
اولین و تنها مرجع یادگیری عمیق ایران
هرکس از ظن خود شد یار من
از درون من نجست اسرار من
در آخرین خط برنامه main ،کد زیر رو اضافه کنید:
getch();
روش راست کلیک کنید هدر فایلشم نشون میده... هدرفایلشم اضافه کنید:
#include <conio.h>
.
.
یه مورد دیگه هم اینه ک بعده یه بار اجرا گرفتن و از صفحه اجرا امدید بیرون...دوباره اجرا بگیرید، میبینید که اعدادی که برا اجرای قبلی وارد کردید رو نشون میده و پاک نشده و صفحه اجرا شلوغ میشه... اگه به نتایج اجرای قبلی نیاز ندارید کد زیر رو در main اضافه کنید:
clrscr();
ویرایش توسط Tishab : 19th May 2013 در ساعت 05:13 PM
سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )
علاقه مندی ها (Bookmarks)