370 likes | 590 Views
برنامه نویسی کامپیوتر. جلسه اول 12/7/1388 مدرس: دکتر خالدیان. معرفی منابع. Fortran 90 for Scientists and Engineers Brian Hahn فرترن 90 (برنامه نویسی در فرترن 90: دوره مقدماتی برای مهندسین. محقیقین. دانشجویان) ترجمه: دکتر محمود مشعل. * ارزشیابی *. تمرینات و امتحانات کلاسی: 12 نمره
E N D
برنامه نویسی کامپیوتر جلسه اول 12/7/1388 مدرس: دکتر خالدیان
معرفی منابع • Fortran 90 for Scientists and Engineers • Brian Hahn • فرترن 90 (برنامه نویسی در فرترن 90: دوره مقدماتی برای مهندسین. محقیقین. دانشجویان) • ترجمه: دکتر محمود مشعل
* ارزشیابی * • تمرینات و امتحانات کلاسی: 12 نمره • امتحان پایان ترم: 8 نمره • 3 جلسه غیبت=حذف
دهه 50 میلادی • Fortran: FORmula_TRANslation • ax²+bx+c=0 • ROOT=(-B+SQRT(B**2 -4.*A*C))/(2.*A) • مقدار محاسبه عبارت سمت راست را به ازای مقادیر متغیر A, B, C به متغیری بنام ROOT نسبت بده. • سال 1966 میلادی: فرترن 4 یا 66 • سال 1978 میلادی: فرترن 77 • استاندارد جدید: فرترن 90
ax²+bx+c=0 • ROOT=(-B+SQRT(B**2 -4.*A*C))/(2.*A) • A, B, C : متغیر • +،-،SQRT، **،* : معانی جبری معمول • =: به معنی تساوی نیست بلکه به معنی جایگزینی است. • نام متغیر در فرترن 90 از قوانین ثابت مشخصی پیروی می کند.
قوانین نامگذاری • نام بایستی فقط از کاراکترهای زیر باشد : • حروف الفبای انگلیسی: A تا Z • اعداد 0 تا 9 • علامت زیر حرف ”_ “ یا underline • حداکثر تعداد کاراکتر: 31 • اولین کاراکتر بایستی یک حرف باشد. • توصیه می شود از متغیرهای نظیر SQRT برای نامگذاری استفاده نشود. • فاصله کاراکتر مجاز نیست
چند مثال • CHICAGO_BEARS • MANCHESTER_UNITED • HEART_OF_MIDLOTHAN • TRASH • XYZ_123 • Z • 49ERS • MAN.UTD • L A RAMS • A/B
انواع متغیرهای ساده: • نام متغیر می تواند به انواع گوناگون کمیتها نسبت داده شود: • اعداد صحیح (INTEGER) • اعداد اعشاری (REAL) • هر نامی که با یکی از حروف I تا N شروع شود بدون اعلان به یک متغیر صحیح (INTEGER) اشاره می کند و نامهایی که با هر یک از حروف دیگر شروع شود به یک متغیر اعشاری (REAL) اشاره می کند (تعیین نوع ضمنی). • برای رعایت ایمنی تعیین نوع ضمنی را با دستور زیر در ابتدای برنامه خاموش کرد IMPLICIT NONE
ورودی و خروجی ساده • ارتباط برنامه نویس با برنامه از طریق صفحه کلید و مانیتور • Input: READ* • Output: PRINT* PROGRAM NUMBERS REAL A,B,C READ*,A,B,C PRINT*,A,B,C END
توصیه می شود شروع برنامه با دستور PROGRAM باشد. • در انتهای برنامه بایستی دستور END قرار داده شود. • صفحه مانیتور اجازه می دهد که دستورات بر روی خطوط حداکثر تا 132 کاراکتر نوشته شوند (معمولا 80 تا 120).
READ*, A,B,C • این دستور اجازه خواهد داد سه عدد اعشاری یکی پس از دیگری از صفحه کلید تایپ شود و پس از فشار کلید ENTER به متغیرهایی با نامهای A,B,C اختصاص داده شود. • نوشتن اعداد: • فاصله 3 4 5 • 3 ENTER • 4 ENTER • 5 ENTER
دستور تکمیلی زیر اجازه می دهد متغیرها را بر صفحه مانیتور مشاهده کرد: • PRINT*,A,B,C • علامت ستاره در دو دستور فوق ایجاب می کند که خواندن از طریق صفحه کلید یا نوشتن بر صفحه مانیتور باشد.
یک برنامه ساده • ! My first Fortran 90 program! • ! Greetings! • CHARACTER NAME*20 • PRINT*, 'What is your name?' • READ*, NAME • PRINT*, 'Hi, ', NAME • END
روش معمول نگارش برنامه • هر برنامه فرترن از تعدادی خط دستور تشکیل شده که شامل دستورات تعریف متغیر و دستورات اجرایی می باشد. هر برنامه با کلمه END خاتمه می یابد. • PROGRAM FIRST • دستورات مختلف فرترن • END PROGRAM FIRST
کاراکترهای مورد استفاده در فرترن • ارقام 0 تا 9 • حروف انگليسي A تا Z(بزرگ و كوچک) • خط فاصله“_“ • کاراکترهای جدول زير:
یک برنامه دیگر • according to the formula • A(t)=174.6(t-1981.2)3 • PROGRAM AIDS • ! Calculates number of accumulated AIDS cases in USA • INTEGER T ! year • REAL A ! number of cases • READ*, T • A = 174.6 * (T - 1981.2) ** 3 • PRINT*, 'Accumulated AIDS cases in US by year', T, ':', A • END PROGRAM AIDS
اولویت عملگرهای ریاضی • همواره اولویت با آنچه داخل پرانتز هست می باشد. • توان • ضرب • تقسیم • جمع • منها
مثال • 4+3*2-6/2=7 • (4+3)*2-6/2=11 • (4+3*2-6)/2=2 • ((4+3)*2-6)/2=4
INTEGER & REAL • 2+2=4 or 4. • 1/2= 0 • 1./2= 0.5
کاراکترهای ویژه ! & ; • نویسنده می تواند اطلاعاتی راجع به آنچه برنامه سعی در دستیابی به آن دارد ذکر کند. این کار به کمک ”!“ (EXCLAMATION POINT) انجام می شود و توضیحات پس از علامت تعجب می آید. • گاهی دستورات از یک خط بیشتر می شوند در این حالت از & (AMPERSAND) در انتهای خط استفاده می شود. • حداکثر طول یک دستور 2640 کاراکتر یا 40 خط است که شامل جاهای خالی نیز می شود. • با حدود 100 کاراکتر بر روی هر خط برای هر دستور اختصاص تمام یک خط به دستورات کوتاه اتلاف فضاست. بنابراین می توان چند دستور را در یک خط قرار داد و بوسیله نقطه-ویرگول (;) از یکدیگر جدا کرد.
مثال • PROGRAM NUMBERS ! This program read 3 real numbers and ! prints out them • REAL A,B,& • C • READ*,A,B,C;PRINT*,A,B,C • END
مثال PROGRAM very simple ! This program read 6 real numbers in sets ! of 3 and prints out the sets in reserve ! order Real one,two,three,four,five,six READ*,one,two,three; READ*,four,five,six PRINT*,six,five,four,three,two,one END program very simple
مثال • PROGRAM very_simple • ! This program read 6 real numbers in sets • ! of 3 and prints out the sets in reserve • ! order • INTEGER one,two,three,four,five,six • READ*,one,two,three; READ*,four,five,six • PRINT*,six,five,four,three,two,one • STOP • END
قرارداد • تمام دستورات با حروف بزرگ تایپ شوند • تمام عباراتی که دستور اجرایی در فرترن نیستند با حروف کوچک تایپ شوند. • بهتر است به کاربر اعلان شود تا اعداد مناسب را تایپ کند.
مثال • Program very_simple • ! This program read 6 real numbers in sets • ! of 3 and prints out the sets in reserve • ! order • INTEGER one,two,three,four,five,six • PRINT*,"lotfan 2 serie 3 taii adad vared konid" • READ*,one,two,three; Read*,four,five,six • PRINT*,six,five,four,three,two,one • STOP • END
سرمایه: 1000دلارسود: 9 % یا 0.09 • PROGRAM MONEY • ! Calculates balance after interest compounded • REAL BALANCE, INTEREST, RATE • BALANCE = 1000 • RATE = 0.09 • INTEREST = RATE * BALANCE • BALANCE = BALANCE + INTEREST • PRINT*, 'New balance:', BALANCE • END PROGRAM MONEY
PROGRAM Arith • REAL A, B • PRINT*, "Enter A and B:" • READ*, A, B • PRINT*, "Sum: ", A + B • PRINT*, "Difference: ", A - B • PRINT*, "Product: ", A * B • PRINT*, "Quotient: ", A / B • END PROGRAM Arith
تمرین • کدامیک از نامهادر فرترن 90 مجاز نیستند؟ • POLTERGEIST • 7UP • R2D2 • PH.D. • A/B/C • SQRT • BSC • F(X)
در برنامه زیر چه چیز اشتباه است؟ چگونه می توان آنرا تصحیح کرد؟ • PROGRAM TEST • READ*,A,B,C • PRINT*,A,B,C,D • STOP • END
برنامه تصحیح شده • PROGRAM TEST • READ*,A,B,C • PRINT*,A,B,C ! hazf D • STOP • END
مثال • The energy stored on a condenser is, E=CV2/2 where C is the capacitance and V is the potential difference. Write a program to compute the energy for some sample values of C and V.
PROGRAM Energy • REAL C, E, V • READ*, C, V • E = C * V ** 2 / 2 • PRINT*, "Stored energy:", E • END PROGRAM Energy