Presentation is loading. Please wait.

Presentation is loading. Please wait.

برنامه نویسی کامپیوتر بخش ششم مدرس: دکتر خالدیان.

Similar presentations


Presentation on theme: "برنامه نویسی کامپیوتر بخش ششم مدرس: دکتر خالدیان."— Presentation transcript:

1 برنامه نویسی کامپیوتر بخش ششم مدرس: دکتر خالدیان

2

3 PROGRAM Projectile IMPLICIT NONE REAL, PARAMETER :: g = 9.8 REAL, PARAMETER :: Pi = 3.1415927 REAL A ! launch angle in degrees REAL T ! time of flight REAL Theta ! direction at time T in degrees REAL U ! launch velocity REAL V ! resultant velocity REAL Vx ! horizontal velocity REAL Vy ! vertical velocity REAL X ! horizontal displacement REAL Y ! vertical displacement READ*, A, T, U A = A * Pi / 180 ! convert angle to radians X = U * COS( A ) * T Y = U * SIN( A ) * T - g * T * T / 2. Vx = U * COS( A ) Vy = U * SIN( A ) - g * T V = SQRT( Vx * Vx + Vy * Vy ) Theta = ATAN( Vy / Vx ) * 180 / Pi PRINT*, 'x: ', X, 'y: ', Y PRINT*, 'V: ', V, 'Theta: ', Theta END

4 جمعیت آمریکا با فرمول زیر محاسبه می شود. برنامه ای بنویسید که جمعیت را هر 10 سال از سال 1790 تا 2000 محاسبه کند.

5 PROGRAM USA_POPULATION REAL P INTEGER T DO T = 1790, 2000, 10 P=197273000/(1 + EXP( -0.03134* (T – 1913.25))) PRINT*, T, P END DO END

6 برنامه ای بنویسید که با گرفتن یک حرف انگلیسی تعیین کند آن حرف صدا دار هست یا نه و با گرفتن یک کاراکتر خاص مثلا @ از برنامه خارج شود و با گرفتن سایر کاراکترها یک پیام مشخص را اعلام کند. از IF و SELECT CASE استفاده کنید.

7 PROGRAM ALPHABET CHARACTER CH DO READ*, CH IF (CH == '@') EXIT IF (CH >= 'A'.and. CH = 'a'.and. CH <= 'z') THEN SELECT CASE (CH) CASE ('A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u') PRINT*, 'Vowel' CASE DEFAULT PRINT*, 'Consonant' END SELECT ELSE PRINT*, 'Something else' END IF END DO END

8 خواندن اطلاعات از یک فایل

9 با ساختن یک فایل در اکسل و ذخیره آن با فرمت متنی، برنامه ای بنویسید که اعداد موجود در فایل را خوانده و چاپ کند.

10 برنامه ای بنویسید که از یک فایل 3 عدد را خوانده و بتوان 2 برساند.

11 PROGRAM OP OPEN( 1, FILE = 'C:\msdev\projects\text2.txt' ) DO I=1,3 READ (1, *) a PRINT*, A**2 END DO END

12 برنامه ای بنویسید که از لیست اسامی دانشجویان یک کلاس نمرات را خوانده و اسم فردی که بالاترین نمره را گرفته و نمره وی را تعیین کند (فرض می کنیم فقط یک نفر بالاترین نمره را کسب کند).

13 PROGRAM TOPMARK IMPLICIT NONE INTEGER I REAL Mark CHARACTER Name*90 REAL :: TopMark = 0 CHARACTER TopName*90 OPEN( 1, FILE = 'c:\MSDEV\111.TXT' ) DO I = 1, 4 READ( 1, * ) Name, Mark IF (Mark > TopMark) THEN TopMark = Mark TopName = Name END IF END DO PRINT*, 'Top student: ', TopName PRINT*, 'Top mark: ', TopMark END

14 مثال فرض کنید از یک دانشجو در طول ترم علاوه بر نمره کلاسی 2 امتحان نیز گرفته شود. اگر متوسط 2 نمره امتحان از نمره کلاسی بیشتر بود متوسط بعنوان نمره نهایی اعلام شود در غیر اینصورت متوسط نمرات امتحانی و نمره کلاسی منظور شود. برنامه ای بنویسید که با گرفتن نام چند دانشجو از یک فایل قبولی یا ردی آنها را اعلام کند.

15 program ope character name*4 OPEN( 1, FILE = 'C:\msdev\projects\text3.txt' ) do I=1,3 READ(1, *) name,a,b,CN avg=(a+b)/2.0 PRINT*, name,avg,CN if (CN<avg) then final=avg else final=(a+b+CN )/3 end if print*,'final=',final END DO END

16 برنامه ای بنویسید که با گرفتن موجودی یک حساب، مدت زمان لازم (سال) برای دو برابر شدن موجودی با سود 10 درصد را حساب کند.

17 PROGRAM MONEY IMPLICIT NONE INTEGER Year REAL Interest, New, Old, Rate PRINT*, 'Original balance:' READ*, Old Rate = 0.1 New = Old Year = 0 PRINT*, 'Year Interest Balance' DO Interest = Rate * New New = New + Interest Year = Year + 1 PRINT*, Year, Interest, New IF (New > 2 * Old) EXIT END DO END

18 ساختار تکرار مشروط DO WHILE (شرط) دستورات END DO

19 برنامه ای بنویسید که جمع دو عدد را که از ورودی می گیرد تا زمانیکه مجموع به 10 نرسیده چاپ کند.

20 PROGRAMTEST DO WHILE (Y<10) READ*,A,B Y=A+B PRINT*,Y END DO END

21 برنامه ای بنویسید که با استفاده از سری تیلور سینوس یک زاویه را تعیین کند.

22 PROGRAM Taylor Pi = 3.14159278 INTEGER :: K = 1 INTEGER :: MaxTerms = 10 REAL :: Err= 1e-6 REAL Sine REAL Term REAL X PRINT*, 'Angle in degrees?' READ*, X X = X * Pi / 180 Term = X Sine = Term DO WHILE ((ABS( Term ) > Err).and. (K <= MaxTerms)) Term = - Term * X * X / (2 * K * (2 * K + 1)) K = K + 1 Sine = Sine + Term END DO IF (ABS( Term ) > Err) THEN PRINT*, 'Series did not converge' ELSE PRINT*, 'After', K, 'terms Taylor series gives', Sine PRINT*, 'Fortran 90 intrinsic function: ', SIN( X ) END IF END

23 PROGRAM Taylor Pi = 3.14159278 INTEGER :: K = 1 INTEGER :: MaxTerms = 10 REAL :: Err = 1e-6 REAL Sine REAL Term REAL X PRINT*, 'Angle in degrees?' READ*, X X = X * Pi / 180 Term = X Sine = Term IF ((ABS( Term ) MaxTerms)) EXIT Term = - Term * X * X / (2 * K * (2 * K + 1)) K = K + 1 Sine = Sine + Term END DO IF (ABS( Term ) > Err) THEN PRINT*, 'Series did not converge' ELSE PRINT*, 'After', K, 'terms Taylor series gives', Sine PRINT*, 'Fortran 90 intrinsic function: ', SIN( X ) END IF END


Download ppt "برنامه نویسی کامپیوتر بخش ششم مدرس: دکتر خالدیان."

Similar presentations


Ads by Google