تبلیغات
وبلاگ مهندسی عمران (مهندسی آب)
وبلاگ مهندسی عمران (مهندسی آب)
زَکاةُ العلم پَخْشُه!! البته‌با‌‌دانش‌‌وبیان‌مناسب‌و‌به‌دور‌از‌هرگونه Copy&Paste!
پاسخ به سؤال فرترن
نوشته‌شده در تاریخ شنبه 9 دی 1391 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 

سلام!

توی نظرات از بنده خواسته شده که دو تا برنامه رو بنویسم که با توجه به مشکلات عدیده‌ای که خودم دارم و یکی باید پیدا شه جواب سؤالای خودمو بده (!!!)، فقط کدهای جواب سؤال اول از این دو تا سؤال رو گذاشتم که سؤال بسیار ساده و البته خوبی هم برای فصل حلقه و شرط هست (برای دست گرمی منظورمه!). سؤال‌ها این‌هاست:
سؤال 1) برنامه‌ای بنویسید که هر سه عدد صحیح که بین 0 تا 100 قرار داشته باشد و مجموع آنها برابر 150 باشد را تعیین و آنها را چاپ کند.
سؤال 2) برنامه‌ای بنویسید که توسط آن شماره دانشجویی، نمرات میان‌ترم و پایان‌ترم دانشجویان دانشکده‌ای را بخواند و میانگین آنها را محاسبه کند. میانگین نمرات را به ‌ترتیب نزولی مرتب کند. تعداد دانشجویان به‌صورت متغیر فرض گردد تا بتوان آن‌را برای 100 دانشجو انجام داد.

جواب سؤال 1:

Integer :: i, j, k, Count = 0
Do i = 1, 99
          Do j = 1, 99
                    Do k = 1, 99
                             Sum = i + j + k
                              If (Sum == 150) Then
                                      Print*, i, j, k
                                      Count = Count + 1
                              End If  
                   
End Do
           End Do
End Do
Print*, "Number of Total Combinations:", Count
End 

دقت کنید که:
1- چه جوری از خود شمارنده حلقه‌ها برای چرخیدن روی تمام حالات ممکن استفاده کردم. این تکنیکی هست که توی کلاس‌های حل تمرین روش تأکید می‌کردم و مثال ازش حل می‌کردیم.
2- با توجه به صورت سؤال، برداشت من این بود که اعداد صفر و 100 قابل قبول نیستن که این موضوع از شمارنده حلقه‌ها معلومه. اگه خود صفر و 100 هم باید باشن لطف بفرمایید در جهت درست کدها را دست‌کاری بفرمایید!!
3- متغیر
Count به عنوان شمارنده، تعداد حالاتی که شرط مسئله رو ارضا می‌کنن می‌شمره و جوابش هم 7351 تاست. ضمناً در جریان هستید که کل حالات ممکن انتخاب سه تا عدد از بین اعداد بین 0 و 100 برابره با ترکیب سه از 99 که مساویست با 156849. لذا 7351 حالت از بین این تعداد انتخاب شدن. البته روی این موضوع فکر کنید که ما سه تا عدد از بین 99 تا عدد انتخاب نکردیم، بلکه با استفاده از سه تا حلقه در واقع از اصل شمارش استفاده کردیم و 99×99×99 تا حالت یعنی 970299 تا حالت رو شمردیم!! در واقع در مسئله ما 7351 حالت مورد نظر از بین 970299 حالت انتخاب شدن. لطفاً به سرعت اجرای برنامه توسط کامپایلرهای فرترن دقت کنید که روی سیستم من کمتر از دو ثانیه‌ست! فوق‌العاده‌ست!
در مورد سؤال 2 دیگه لطف بفرمایید جزوه بنده رو دانلود کنید اگه مراجع خودتون کمکتون نمی‌کنن. شاید سخت‌ترین کار همون مرتب کردن باشه که یه مثال کامل ازش حل کردم. ضمناً صورت سؤال هم اشکال داره! جمله آخر باید این‌طور اصلاح بشه که:
" تعداد دانشجویان به‌صورت متغیر فرض گردد تا بتوان آن‌را برای هر تعداد دلخواه دانشجو انجام داد". این کار رو می‌شه با تعریف یه متغیر Allocatable انجام داد و اصلاً می‌شه با یه متغیر معمولی هم انجام داد! اصلاً کار سختی نیست.
در نهایت لطف بفرمایید اگه سؤال می‌پرسید یه نشونی از خودتون به جا بذارید! به نظرهای خصوصی نمیشه جواب داد و وقتی هیچ نشونی ازتون ندارم مجبورم جواب سؤال رو توی یه پست بذارم.



درباره‌ی وبلاگ

.::بسم الله الرحمن الرحیم::.
در این وبلاگ سعی می‌شه مطالب مختلفی در ارتباط با مهندسی عمران و به طور خاص مهندسی آب قرار داده بشه. تمام سعی بنده اینه که مطالبی رو ارائه بدم که یا حاصل تلاش خودم هست، یا اینکه مشابه اون در وبلاگ‌ها و سایت‌های فارسی پیدا نمی‌شه. بنابراین لطفاً حق کپی رایت فراموش نشه!!!

محمدصادق عباسیان
دانشجوی دکترای مهندسی عمران-آب، دانشگاه صنعتی شریف
پست الکترونیک
تماس با مدیر
RSS
ATOM
جستجو
آخرین مطالب
نوروز 1397 مبارک!
پذیرش مقاله در مجلۀ Theoretical and Applied Climatology
«یکِ عمران»: تخصصی‌ترین کانال مشاورۀ کنکور ارشد و دکتری
گفتگوی 6 از مجموعۀ «گفتگوهای آبی»
گفتگوی 5 از مجموعۀ «گفتگوهای آبی»
گفتگوی 4 از مجموعۀ «گفتگوهای آبی»
گفتگوی 3 از مجموعۀ «گفتگوهای آبی»
گفتگوی 2 از مجموعۀ «گفتگوهای آبی»
گفتگوی 1 از مجموعۀ «گفتگوهای آبی»
انتشار مقاله در مجله علمی-پژوهشی عمران مدرس
خلاصه‌های کنکور دکترای عمران آب
مشاوره رایگان کنکور کارشناسی ارشد
ارتفاع مکش کل خالص (NPSH)
رابطه بین مدت و شدت بارندگی
کلاس آموزش برنامه‌نویسی به زبان FORTRAN 90/95
آرشیو
اسفند 1396
مهر 1395
شهریور 1395
اردیبهشت 1395
فروردین 1395
بهمن 1393
مهر 1393
فروردین 1393
اسفند 1392
موضوعات
تغییر اقلیم
مقاله
«گفتگوهای آبی»
مبانی برنامه‌نویسی (فرترن)
مکانیک سیالات و هیدرولیک
هیدرولوژی
سازه
مقاومت مصالح و استاتیک
ریاضیات
مكانیك خاك
بتن
راه‌سازی و روسازی
نقشه‌برداری
اطلاع رسانی
علمی
نویسندگان
محمدصادق عباسیان
پیوندها
دانشگاه صنعتی شریف
کتاب عمران
وبلاگ فرآیندهای تصفیه‌ی آب و فاضلاب
پیوندهای روزانه
فروشگاه فایل‌های آموزشی جزوه‌ها و پروژه‌های مهندسی دانشگاه صنعتی شریف
صفحات جانبی
درباره‌ مدیر، محمدصادق عباسیان
ابر برچسب‌ها
بتن مکانیک خاک سیالات فرترن مکانیک سیالات و هیدرولیک علمی هیدرولوژی هیدرولیک مقاومت مصالح و استاتیک مبانی برنامه‌نویسی فرترن
آمار سایت
بازدیدهای امروز: نفر
بازدیدهای دیروز: نفر
كل بازدیدها: نفر
بازدید این ماه: نفر
بازدید ماه قبل: نفر
تعداد نویسندگان: عدد
كل مطالب: عدد
آخرین بازدید:
آخرین بروزرسانی:
Blog Skin