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

توضیحات:
1. برنامه برای حل معادله یک چندجمله‌ای با حداکثر درجه 3 به روش نصف کردن نوشته شده.
2. برنامه ضرایب چندجمله‌ای (a، b، c و d) و دو تا مقدار که توی قضیه بولتزانو صدق کنن (x1 و x2) رو از ورودی می‌گیره.

3. برنامه توی هر مرحله x3 که مقدار حاصل از نصف کردن فاصله x1 و x2 هست رو حساب می‌کنه و با استفاده از قضیه بولتزانو مقدار x3 رو جایگزین x1 یا x2 می‌کنه.
4. برنامه وقتی متوقف می‌شه که یا فاصله x1 و x2 کمتر از 0.0001 بشه یا اینکه مقدار تابع توی نقطه x3 کمتر از 0.00001 بشه.
5. آخرین مقدار x3 به‌عنوان ریشه معادله توی خروجی چاپ می‌شه.

 

Program Root

Implicit None

 

Real :: a, b, c, d

Real :: x1, x2, x3

Real :: F1, F2, F3

 

Print*, "A Program to calculate the root of a polinomial."

Print*, "This program is presented by Mohammadsadegh Abbasian."

Print*

 

Print*, "Enter a, b, c and d, coefficients of polinomial ax^3 + bx^2 + cx + d:"

Read*, a, b, c, d

Print*

Print*, "Enter x1 and x2, two points which satisfies Bolzano's theorem:"

Read*, x1, x2

 

F1 = a*x1**3 + b*x1**2 + c*x1 + d

F2 = a*x2**3 + b*x2**2 + c*x2 + d

 

If (F1*F2 > 0) Then

          Print*

Print*, "Error! F1*F2 > 0: You have to enter x1 and x2, two points which"

Print*, " satisfies Bolzano's theorem."

Else

 

Do

x3 = (x1+x2) / 2

F3 = a*x3**3 + b*x3**2 + c*x3 + d

  

If (F3*F1 < 0) Then

x2 = x3

Else

x1 = x3

End If

  

If (ABS (x1-x2) < 0.0001 .OR. ABS (F3) < 0.00001) Then

Print*

Print*, "Root =", x3

Exit

                   End If

End Do

 

End If

End      



پاسخ به سؤال فرترن
نوشته‌شده در تاریخ پنجشنبه 2 خرداد 1392 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: فرترن، تابع، انتگرال ذوزنقه ای، حل عددی انتگرال،  

سلام،
سؤالی با این صورت پرسیده شده:
چه‌طور می‌شه با فرترن انتگرال x2+1 رو در بازه (a,b) و با استفاده از Function محاسبه کرد؟
این سؤال دقیقاً سؤال حل شده کتاب دکتر محمود صالح، انتشارات دانشگاه امام حسین هست که من سه صفحه‌ای که پاسخ این سؤال در اونها اومده رو اسکن کردم و می‌تونید دانلود کنید.

Download



پاسخ به سؤال فرترن
نوشته‌شده در تاریخ جمعه 13 اردیبهشت 1392 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: دنباله فیبوناچی، فرترن، کد، مثال، Fibonacci،  

سلام!
توی نظرات پرسیده شده که چه‌طور می‌شه دنباله فیبوناچی رو حتی بدون استفاده از آرایه نوشت. همون‌طوری که قبلاً گفتم دنباله فیبوناچی رو در اصل باید با تابع بازگشتی (Recursive Function) نوشت و در غیر این صورت راحت‌ترین راه استفاده از آرایه هست. اگر از آرایه هم استفاده نکنیم فقط نوشتن برنامه رو سخت‌تر کردیم. به‌ هر حال من کدهای این برنامه رو براتون می‌ذارم.
توضیحات:
1- در هر بار محاسبه حلقه دو جمله از دنباله حساب می‌شه، جمله nام و جمله n+1ام. جمله nام توی متغیر U و جمله n+1ام توی متغیر V ذخیره می‌شه. به همین خاطره که تعداد تکرار حلقه اگر n زوج باشه n/2 هست و اگر n فرد باشه (n-1)/2. برای تشخیص زوج بودن یا نبودن n از تابع Mod() یعنی تابع باقیمانده استفاده کردیم. اگر باقیمانده تقسیم n بر 2 صفر شد عدد زوجه وگرنه عدد فرده.
2- به متغیر A مقدار 0 داده شده که همون جمله صفرم دنباله هست و به متغیر B مقدار 1 داده شده که جمله اول دنباله هست. با اولین ورود به حلقه، مقدار متغیر U برابر با A+B می‌شه که برابره با 1 و جمله دوم دنباله هست. بعد متغیر V برابر B+U می‌شه که برابر 1+1=2 هست و همون جمله سوم دنباله هست. برای محاسبه جملات بعدی مقدار A و B باید تغییر کنن. پس متغیر A مقدارش رو از متغیر U و متغیر B مقدارش رو از متغیر V می‌گیره. دفعه بعدی که حلقه تکرار می‌شه U=A+B=1+2=3 و V=B+U=2+3=5 که جملات چهارم و پنجم دنباله هستن. به همین ترتیب در هر تکرار حلقه دو جمله متوالی محاسبه می‌شن.
3- برای چاپ جمله nام دنباله، اگر n زوج باشه U و اگر n فرد باشه V چاپ می‌شه.

Implicit None
Integer :: A, B, N, M, U, V, I
A = 0
B = 1
Print*, "Please Enter n:"
Read*, N
If (Mod(N,2) == 0) Then
          M = N/2
Else
          M = (N-1)/2
End If
Do I = 1,M
          U = A + B
          V = B + U
          A = U
          B = V
End Do
If (Mod(N,2) == 0) Then
          Print*, "Un =", U
Else
          Print*, "Un =", V
End If
End



پاسخ به سؤال فرترن
نوشته‌شده در تاریخ پنجشنبه 5 اردیبهشت 1392 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: دنباله فیبوناچی، فرترن، کد، برنامه،  

در ریاضی سری فیبوناچی (Fibonacci) دنباله‌ای از اعداد صحیح به‌صورت زیر هست

0,\;1,\;1,\;2,\;3,\;5,\;8,\;13,\;21,\;34,\;55,\;89,\;144,\; \ldots\;

و در واقع هر جمله‌ش از رابطه بازگشتی زیر به‌دست میاد.

 
  F(n):=  
  \begin{cases}
    0             & \mbox{if } n = 0; \\
    1             & \mbox{if } n = 1; \\
    F(n-1)+F(n-2) & \mbox{if } n> 1. \\
   \end{cases}

کدهای زیر برنامه‌ایه که جمله nام سری فیبوناچی رو حساب می‌کنه (n از ورودی دریافت می‌شه). چون جملات این سری از رابطه بازگشتی به‌دست میان، در واقع برای نوشتن این برنامه باید از یک رویه (تابع یا سابروتین) بازگشتی استفاده بشه. اما در این برنامه ساده، فقط از یک آرایه تک‌بعدی استفاده شده.

Program Fibonacci
Implicit None
Integer :: N, I
Integer, Dimension (0:1000) :: U
U(0) = 1; U(1) = 1
Print*, "Please Enter N:"
Read*, N
Do I = 2, N
          U(I) = U(I-2) + U(I-1)
End Do
Print*, U(N)
End



پاسخ به سؤال فرترن
نوشته‌شده در تاریخ یکشنبه 25 فروردین 1392 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: فرترن، حلقه، شرط،  

سلام!
سؤالی به‌ این صورت توی نظرات مطرح شده:
سؤال: برنامه‌ای بنویسید که یک عدد صحیح را از ورودی دریافت کند و تعداد ارقام آن را چاپ نماید.
پاسخ: این سؤال دقیقاً سؤال 12 فصل دوم کتاب فرترن دکتر موسوی‌ندوشنی هست که من هر ترم این سؤال رو سر کلاس حل تمرین برای بچه‌ها حل می‌کردم. برای حل این سؤال هم روش‌های مختلفی وجود داره که همگی شبیه به هم هستن. توی کدهایی که براتون می‌ذارم، روش حل به این صورته که اگر عددی ورودی صفر باشه، در خروجی چاپ می‌شه که عدد ورودی صفر هست و اگر منفی باشه اون رو با تابع قدرمطلق مثبت می‌کنه. بعد اگر عددی بزرگ‌تر یا مساوی یک و کوچکتر از 10 باشه تک‌رقمی تشخیص داده می‌شه، اگر بزرگ‌تر یا مساوی 10 و کوچک‌تر از 100 باشه دورقمی تشخیص داده می‌شه و الی آخر.

Integer :: I, M, N, O
Print*, "Please Enter The Value:"
Read*, I
I = ABS (I)
M = 1
N = 10
O = 0
If (I == 0) Then
          Print*, "The Input Value is Zero."
Else
           Do
                    O = O + 1
                   If (I .GE. M .AND. I .LT. N) Then
                             Print*, "Number of Digits =", O
                             Exit
                   End If
          M = M * 10
          N = N * 10
          End Do
End If
End



پاسخ به سؤال فرترن
نوشته‌شده در تاریخ دوشنبه 28 اسفند 1391 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: فرترن، سوال، محاسبه میانگین هندسی، مرتب کردن داده‌ها،  

سلام!
یکی از بچه‌ها توی نظرات امر فرمودن (چون جمله به حالت امری بوده عرض کردم امر فرمودن!!) که:
برنامه‌ای بنویسید که سه عدد از ورودی خوانده و میانگین حسابی و هندسی آن را محاسبه کند و در صورتی که میانگین حسابی بزرگتر از میانگین هندسی باشد اعداد را به صورت نزولی و در غیر اینصورت به صورت صعودی مرتب کرده و به همراه دو میانگین چاپ کند.
بنده هم از اونجایی که دیدم انگار این مرتب کردن (Sort) داده‌ها خیلی رو اعصاب بچه‌هاست، تصمیم گرفتم یه بار کدهاش رو توی سایت بیارم. گرچه قبلاً هم گفتم که توی فصل چهار جزوه حل تمرینی که روی همین سایت قرار داره، یک برنامه کامل با توضیحات از مرتب کردن داده‌ها آوردم. اول کدهای برنامه برای پاسخ به این سؤال رو در ادامه مطلب ببینید و بعد توضیحات رو بخونید.
توضیحات:
1- برنامه رو خیلی بهینه‌تر از این حالتی که من نوشتم می‌شه نوشت، چون که من کدهای مرتب کردن رو دو بار عیناً ‌و با یک اختلاف جزئی تکرار کردم تا مرتب کردن نزولی به صعودی تبدیل بشه. روی این قضیه فکر کنید. ضمن اینکه سعی کنید مرتب کردن رو داخل سابروتین انجام بدید.
2- دو نحوه معروف مرتب‌ کردن داده‌ها یعنی روش حبابی و روش سریع در ویراست دوم کتاب فرترن 95/90 استاد بزرگوارم دکتر موسوی اومده که می‌تونید ملاحظه کنید.
3- دقت کنید که برنامه برای سه تا عدد کار نمی‌کنه و ابتدا تعداد داده‌ها را از شما می‌پرسه و با هر تعداد داده‌ای که شما بهش بدید کار می‌کنه. لذا اگه تعداد داده‌ها زوج باشه، ضرب اعداد نباید منفی باشه، چون که در این‌صورت در محاسبه میانگین هندسی زیر رادیکال با فرجه زوج منفی می‌شه. اما جدای از این، با هر تعداد داده ورودی، هیچ‌وقت ضرب اعداد نباید منفی بشه، چون در فرترن یک عدد منفی نمی‌تونه به توان یک عدد غیرصحیح برسه. دلیل این موضوع رو می‌تونید توی کتاب دکتر موسوی ببینید.
4- دقت کنید که اگر همه داده‌ها مثبت باشند، همواره میانگین بیشتر از میانگین هندسی هست مگر اینکه همه داده‌ها برابر باشند که در این صورت دو میانگین با هم برابره.



ادامه مطلب - کدهای برنامه
کدهای فرترن روش حداقل مربعات (Least Squares)
نوشته‌شده در تاریخ یکشنبه 22 بهمن 1391 توسط محمدصادق عباسیان | نظرات ()
طبقه‌بندی: مبانی برنامه‌نویسی (فرترن)، 
برچسب‌ها: فرترن، کد، 90 95، روش حداقل مربعات،  

سلام!

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

Download



(تعداد کل صفحات:4)      1   2   3   4  
درباره‌ی وبلاگ

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

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

این فایل شامل چندین نمونه قرارداد بسیار مفید برای شروع به هر کاری در زمینه های مختلف در مورد ساختمان سازی است که این نمونه قراردادها شامل نمونه قرارداد گود برداری , خاک برداری , شناژبندی , خرید بتن , نمونه قرارداد مشارکت در ساخت وغیره میباشد که بسیار کاربردی ومفید میباشد , این فایل به دوستان عزی ...

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

• پایان نامه کارشناسی ارشد مهندسی عمران گرایش سازه با عنوان: مقایسه رفتار لرزه‌ای دیوارهای برشی فولادی نازک با بادبندهای بزرگ مقیاس در سازه‌های بلند فولادی 

دریافت فایل
پروژه متره و برآورد یک ساختمان یک طبقه سازه فولادی

این ساختمان متعلق به بنیاد مسکن انقلاب اسلامی میباشد. بصورت سازه فولادی اجرا شده است. دارای دفترچه محاسباتی متره در قالب اکسل است. 

 

...
دریافت فایل
دانلود پروژه کامل سوله همراه با نقشه ها و فایل اتوکد(word+pdf)

 

 

 

 

 

 

 


فرمت فایل : word+PDF+autocad

تعداد صفحات:112

فهرست مطالب:

بخش اول    4
ساختمان سایبان انبار قطعات    4
فصل اول    5
معرفی کلی ...

دریافت فایل
دانلود خلاصه برداری های کارشناس رسمی دادگستری- آزمون کارشناسان رسمی دادگستری- معماری و عمران

 

خلاصه برداری های کارشناس رسمی دادگستری- آزمون کارشناسان رسمی دادگستری- معماری و عمران

دریافت فایل
تبدیل نقشه کاغذی به فایل AutoCad

مژده       مژده

معماران عزیز و مهندسان گرامی
یک عکس از نقشه پلان یا هر نقشه دیگر بگیرید و توسط این نرم افزار حرفه ای آن را به فایل AutoCad تبدیل کنید
به همین راحتی از دست نقشه های کاغذیتان راحت شوید
سریع و منظم
...
دریافت فایل
جزوه و نمونه سوال تحلیل سازه

این فایل حاوی درسنامه های آموزشگاهی بیرون است.

برای گرفتن نمره طراحی شده است.

...
دریافت فایل
نرم افزار صورت وضعیت راهسازی فهرست بها (متره و برآورد)

نرم افزار صورت وضعیت راهسازی فهرست بها(متره و برآورد) خیلی سریع و راحت صورت وضعیتتان را تهیه کنید شامل تمامی ردیف های فهرست بها

...
دریافت فایل
Blog Skin