برنامه نویسی کامپیوتر

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

Upload: banyan

Post on 05-Feb-2016

49 views

Category:

Documents


0 download

DESCRIPTION

برنامه نویسی کامپیوتر. بخش ششم مدرس: دکتر خالدیان. 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: برنامه نویسی کامپیوتر

کامپیوتر نویسی برنامه

ششم بخش

خالدیان: دکتر مدرس

Page 2: برنامه نویسی کامپیوتر

x ut a y ut a gt cos , sin / 2 2

V u a V u a gtx y cos , sin

tan / V Vx y

²² VyVxV

Page 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

Page 4: برنامه نویسی کامپیوتر

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

سال از .2000تا 1790سال کند محاسبه

P te t( ) . ( . )

1972730001 0 03134 1913 25

Page 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

Page 6: برنامه نویسی کامپیوتر

حرف • یک گرفت�ن ب�ا ک�ه بنویس�ید ای برنام�هیا هس�ت دار ص�دا حرف آ�ن کن�د تعیی�ن انگلیس�ی

مثال خاص کاراکتر ی�ک گرفت�ن ب�ا و از @ن�هکاراکترها س�ایر گرفت�ن ب�ا و شود خارج برنام�ه

. کند اعالم را مشخص پیام یک. SELECT CASEو IFاز • کنید استفاده

Page 7: برنامه نویسی کامپیوتر

• PROGRAM ALPHABET• CHARACTER CH

• DO• READ*, CH• • IF (CH == '@') EXIT

• IF (CH >= 'A' .and. CH <= 'Z'.or. 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

Page 8: برنامه نویسی کامپیوتر

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

Page 9: برنامه نویسی کامپیوتر

با • آ�ن ذخیره و اکس�ل در فای�ل ی�ک س�اختن ب�ااعداد که بنویس�ید ای برنام�ه متن�ی، فرم�ت

. کند چاپ و خوانده را فایل در موجود

Page 10: برنامه نویسی کامپیوتر

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

Page 11: برنامه نویسی کامپیوتر

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

Page 12: برنامه نویسی کامپیوتر

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

.( کند کسب را نمره

Page 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

Page 14: برنامه نویسی کامپیوتر

مثالبر • عالوه ترم طول در دانشجو ی�ک از کنی�د فرض

کالس�ی . 2نمره اگر شود گرفت�ه نی�ز امتحانبیشتر 2متوس�ط کالس�ی نمره از امتحان نمره

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

. کند اعالم را آنها ردی

Page 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

Page 16: برنامه نویسی کامپیوتر

یک • موجودی گرفتن با که بنویسید ای برنامه ( برابر ( دو برای سال الزم زمان مدت حساب،

سود با موجودی . 10شدن کند حساب را درصد

Page 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

Page 18: برنامه نویسی کامپیوتر

مشروط تکرار ساختار

• DO WHILE (شرط)• دستورات • END DO

Page 19: برنامه نویسی کامپیوتر

از • که را عدد دو جم�ع ک�ه بنویس�ید ای برنام�هبه مجموع زمانیک�ه ت�ا گیرد م�ی 10ورودی

. کند چاپ نرسیده

Page 20: برنامه نویسی کامپیوتر

• PROGRAM TEST• DO WHILE (Y<10)• READ*,A,B• Y=A+B• PRINT*,Y• END DO• END

Page 21: برنامه نویسی کامپیوتر

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

sin! ! !

x x x x x

3 5 7

3 5 7

xk k

2

2 2 1( ).

Page 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

Page 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 ) <= Err) .or. (K > 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