برنامه نویسی کامپیوتر
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 PresentationTRANSCRIPT
کامپیوتر نویسی برنامه
ششم بخش
خالدیان: دکتر مدرس
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
• • 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
می • محاس�به زی�ر فرمول ب�ا آمریک�ا جمع�ی�تهر. را جمعی�ت ک�ه بنویس�ید ای برنام�ه 10شود
سال از .2000تا 1790سال کند محاسبه
P te t( ) . ( . )
1972730001 0 03134 1913 25
• 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
حرف • یک گرفت�ن ب�ا ک�ه بنویس�ید ای برنام�هیا هس�ت دار ص�دا حرف آ�ن کن�د تعیی�ن انگلیس�ی
مثال خاص کاراکتر ی�ک گرفت�ن ب�ا و از @ن�هکاراکترها س�ایر گرفت�ن ب�ا و شود خارج برنام�ه
. کند اعالم را مشخص پیام یک. SELECT CASEو IFاز • کنید استفاده
• 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
فایل یک از اطالعات خواندن
با • آ�ن ذخیره و اکس�ل در فای�ل ی�ک س�اختن ب�ااعداد که بنویس�ید ای برنام�ه متن�ی، فرم�ت
. کند چاپ و خوانده را فایل در موجود
فایل • یک از که بنویسید ای را 3برنامه عددبتوان و .2خوانده برساند
• PROGRAM OP• OPEN( 1, FILE = 'C:\msdev\projects\text2.txt' )• DO I=1,3• READ (1, *) a • PRINT*, A**2• END DO• END
اسامی • �ت�لیس از �ه�ک �ید�بنویس ای �ه�برناماسم و خوانده را نمرات کالس ی�ک دانشجویانرا وی نمره و گرفته را نمره باالتری�ن ک�ه فردیباالترین ( نف�ر ی�ک فق�ط کنی�م م�ی فرض کن�د تعیی�ن
.( کند کسب را نمره
• 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
مثالبر • عالوه ترم طول در دانشجو ی�ک از کنی�د فرض
کالس�ی . 2نمره اگر شود گرفت�ه نی�ز امتحانبیشتر 2متوس�ط کالس�ی نمره از امتحان نمره
در شود اعالم نهایی نمره بعنوان متوس�ط بودنمره و امتحانی نمرات متوس�ط اینص�ورت غی�ر . با ک�ه بنویس�ید ای برنام�ه شود منظور کالس�ییا قبول�ی فای�ل ی�ک از دانشج�و چن�د نام گرفت�ن
. کند اعالم را آنها ردی
• 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
یک • موجودی گرفتن با که بنویسید ای برنامه ( برابر ( دو برای سال الزم زمان مدت حساب،
سود با موجودی . 10شدن کند حساب را درصد
• 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
مشروط تکرار ساختار
• DO WHILE (شرط)• دستورات • END DO
از • که را عدد دو جم�ع ک�ه بنویس�ید ای برنام�هبه مجموع زمانیک�ه ت�ا گیرد م�ی 10ورودی
. کند چاپ نرسیده
• PROGRAM TEST• DO WHILE (Y<10)• READ*,A,B• Y=A+B• PRINT*,Y• END DO• END
تیلور • سری از استفاده با که بنویسید ای برنامه . کند تعیین را زاویه یک سینوس
sin! ! !
x x x x x
3 5 7
3 5 7
xk k
2
2 2 1( ).
• 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
• 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