آموزش برنامه نویسی فرترن از صفر تا صد (و نکات کاربردی)
فرترن یک زبان برنامه نویسی کامپیوتری است که به طور گسترده برای محاسبات عددی و علمی استفاده می شود. با این که از محبوبیت فرترن در سال های اخیر، البته خارج از جامعه علمی کم شده اما هم چنان پایگاه کاربری قوی در انجمن های علمی برنامه نویسان دارد و در سازمان هایی مثل پیش بینی آب و هوا، تجارت مالی و شبیه سازی های مهندسی مورد استفاده قرار می گیرد. برنامه های فرترن را می توان برای اجرا در کامپیوتر هایی که کارایی بالایی دارند بهینه کرد. کلا این زبان برای کد نویسی در جاهایی که عملکرد اولویت دارد، مناسب می باشد.
فرترن یک زبان کامپایل شده، یا به طور خاص تر از قبل کامپایل شده است. به عبارت دیگر، قبل از این که بتوانید آن را روی کامپیوتر اجرا کنید، باید مرحله خاصی به نام کامپایل کردن کدتان را انجام دهید. اینجا همان جایی است که فرترن را از زبان های تفسیر شده مثل پایتون و R که به کمک مفسر اجرا می شوند، جدا می کند. اما یک مزیت فرترن سرعت محاسبه بالاتر نسبت به این زبان ها است.
تاریخچه مختصری در مورد فرترن
فرترن در اصل مختصر شده Formula Translation است، که نشان می دهد فرترن مخصوص محاسبات ریاضی طراحی شده است. فرترن در اوایل دهه 1950 توسعه یافت و اولین برنامه اش در سال 1954 اجرا شد که همین هم؛ این زبان را نسبت به سایر زبان های برنامه نویسی غیرعادی کرد؛ زیرا قبل از کامپیوتر ترانزیستوری مدرن ارائه شد. اولین برنامه فرترن که روی کامپیوتر لوله خلاء IBM 704 اجرا شد! فرترن از زمان پیدایشش بیشتر از زمان حکومت چند کشور عمر کرده است و هنوز هم در حال حاضر در تعدادی از جوامع تخصصی علمی مورد استفاده گسترده قرار می گیرد.
متأسفانه فرترن به عنوان یک زبان برنامه نویسی قدیمی یا بازمانده شناخته می شود. من با این توصیف مخالفم. با این که این زبان سابقه طولانی دارد، اما همچنان به روز می شود، ویژگی های جدیدی به آن اضافه شده و هر روز استانداردش ارتقا پیدا می کند و هنوز هم یک جامعه قوی برنامه نویسی؛ پشتِ فرترن هست. آخرین نسخه استاندارد فرترن در سال 2018 منتشر شد که ویژگی های جدید زیادی به آن اضافه شده بود و همچنان برای چالش های محاسباتی علمی معاصر کارآمد و مناسب بود.
فهمیدن نحوه درست کار با فرترن
شاید قبلا از زبان های برنامه نویسی دیگری مثل R، فرترن یا متلب استفاده کرده باشید که نحو ساده و قابل درکی دارند و سبک برنامه نویسی شان طوری توسعه یافته که سرعت را به عملکرد محاسباتی ترجیح می دهند. فرترن از بسیاری جهات نسبت به این زبان ها متفاوت به نظر می رسد، اما اصول برنامه نویسی اش به طور کلی یکسان است و برخی از دستورات نحوی اش مشترک یا مشابه با سایر زبان های برنامه نویسی است.
ما قصد داریم از یک برنامه بسیار ساده فرترن شروع کنیم. نگران نحو و کلمات کلیدی نباشید، ما فقط قصد داریم ساختار کلی را به شما نشان دهیم.
این برنامه مساحت مثلث را با استفاده از فرمول هرون محاسبه می کند.
! ——————————————————
! Compute the area of a triangle using Heron’s formula
! ——————————————————
PROGRAM HeronFormula
IMPLICIT NONE
REAL :: a, b, c ! three sides
REAL :: s ! half of perimeter
REAL :: Area ! triangle area
LOGICAL :: Cond_1, Cond_2 ! two logical conditions
READ(*,*) a, b, c
WRITE(*,*) “a = “, a
WRITE(*,*) “b = “, b
WRITE(*,*) “c = “, c
WRITE(*,*)
Cond_1 = (a > 0.) .AND. (b > 0.) .AND. (c > 0.0)
Cond_2 = (a + b > c) .AND. (a + c > b) .AND. (b + c > a)
IF (Cond_1 .AND. Cond_2) THEN
s = (a + b + c) / 2.0
Area = SQRT(s * (s – a) * (s – b) * (s – c))
WRITE(*,*) “Triangle area = “, Area
ELSE
WRITE(*,*) “ERROR: this is not a triangle!”
END IF
END PROGRAM HeronFormula
خطوط 1 تا 3:
سه خط اول خطوط توضیح هستند. احتمالا دربرنامه هایی که به شما داده می شود یا آن هایی که خودتان می نویسید، با تعداد زیادی از این فرمول ها سر و کار خواهید داشت. خطوط توضیح فقط یادداشت یا توضیحاتی هستند که به برنامه نویس و کاربر یک سری اطلاعات می دهند. آن ها هیچ وقت توسط کامپیوتر اجرا نمی شوند و شما می توانید هر چه که دوست دارید را در هر خطی بنویسید. در زبان فرترن، این توضیحات با علامت تعجب (!) می آیند. هر خطی که با علامت تعجب شروع می شود؛ هنگام اجرای برنامه توسط کامپیوتر نادیده گرفته می شود. توضیحات به کاربر کمک می کند تا نحوه استفاده از کد و درک قسمت های پیچیده تر برایش آسان تر شود.
خط 5:
شروع برنامه! فرترن زبانی مفصل و زیاده گو است، به عبارت دیگر باید برای هر کاری کلی کد بزنیم تا بفهمد منظورمان چیست. در صورتی که پایتون و R زبان های پویاتر یا قابل درک تری هستند و اغلب می توان معنایی از آن ها استنباط کرد.
بنابراین در اینجا ما فقط به فرترن می گوییم که میخواهیم برنامه مان را شروع کنیم و حتی می توانیم به صورت اختیاری نامی برایش بگذاریم. به خط آخر بروید، می بینید که یک END PROGRAM هم داریم. فرترن دوست دارد همه چیز بالانس باشد و دقیقا بداند بخش های مختلف کد چه زمانی به پایان رسیده اند. عبارت End اغلب برای مشخص کردن بخش هایی از کد مثل حلقه ها، توابع و غیره استفاده می شود.
خطوط 6 تا 17:
بخش بعدی برنامه جایی است که متغیر هایی که در برنامه استفاده می شود را تعریف می کنیم. در برنامه های فرترن متغیر ها بر خلاف زبان های دیگر که می توانید هر جا لازم بود تعریف شان کنید، تقریبا همیشه اول برنامه می آیند. فرترن دوست دارد همان اول بداند که با کدام متغیر ها سر و کار دارد. در بخش بعدی به انواع مختلف متغیر ها خواهیم پرداخت:
قطعه باقیمانده برنامه همان قسمت واقعی است که مساحت مثلث در آن محاسبه می شود. به متغیر های از پیش اعلام شده ی ما؛ با استفاده از عملگر ها و توابع ریاضی رایج (مثل *، /، +، -، SQRT و…) مقدار اختصاص داده می شود و نتیجه با استفاده از تابع Write روی صفحه چاپ می شود.
این برنامه مثل یک فایل متنی ساده ذخیره می شود، اما پسوند آن را طبق قرارداد، .f90 می گذاریم. برای اجرای برنامه، ابتدا باید آن را کامپایل کنیم که در بخش بعدیِ آموزش؛ به آن پرداخته شده است.
مبانی فرترن
فرترن مجموعه ای از قوانین است و برای تعیین این که آیا یک برنامه معتبر است و می تواند توسط کامپیوتر قابل درک و تقریبا شبیه به زبان انسانی باشد، استفاده خواهد شد. ترکیبی از کلمات کلیدی و کاراکتر هایی که برای نوشتن برنامه های فرترن استفاده می شوند، معمولا به عنوان نحو یا سینتکس زبان شناخته می شوند. با استفاده از برنامه مساحت مثلث بالا، نحو ابتدایی زبان فرترن را بررسی خواهیم کرد.
ساختار برنامه
برنامه های فرترن با کلمه کلیدی PROGRAM شروع می شوند و به صورت اختیاری بعد از آن نام برنامه می آید. پایان برنامه هم که با END PROGRAM علامت گذاری می شود.
مثل:
PROGRAM MyProgram
! Do some stuff here
END PROGRAM MyProgram
برنامه فرترن همانند سایر زبان های برنامه نویسی مثل R و پایتون می تواند در داخل دستورات PROGRAM، چندین تابع تعریف و متغیر هایی که در این توابع استفاده می شوند را اعلان کند. در این عبارات است که محاسباتی بر روی داده ها انجام می شود.
تعریف متغیر ها
متغیر ها، داده ها یا مقادیر مورد استفاده در برنامه شما را نشان می دهند. یک متغیر می تواند مقداری واحد مثل عبارت X=3 را نشان دهد یا به ساختار بزرگتری برای نگهداری داده ها مثل جدول یا لیستی از مقادیر اشاره کند. به طور مثال می توان از متغیر ها برای ذخیره مقادیر غیرعددی مثل متن، حروف و کلمات استفاده کرد.
ما در فرترن به متغیر هایی که جز انواع خاصی هستند، اشاره می کنیم. نوع توصیف می کند که انتظار می رود متغیر شامل چه نوع داده هایی باشد. مثلا در عبارتی مثل x=3می توانیم بگوییم که x به عدد 3 اشاره دارد. اگر عبارتی مثل X=”cat” داشته باشیم، می گوییم که X به چند کاراکتر یا حرف اشاره دارد. اینها نمونه هایی هستند از این که چطور می توان متغیر ها را با استفاده از کلمات کلیدی توصیف کرد تا نوع داده هایی که استفاده می کنیم را نگه دارد.
در فرترن باید نوع داده ای متغیرهای مان را مشخص کنیم. این زبان مجموعه ای از کلمات کلیدی دارد که برای تعریف انواع مختلف متغیر ها استفاده می شود. به طور مثال برای تعریف چند متغیر Integer برای استفاده در محاسبات بعدی، در فرترن این گونه می نویسیم:
INTEGER :: n = 3
INTEGER :: m = 6
با این عبارات می گوییم که می خواهیم دو عدد صحیح به نام های nو mایجاد کنیم و به ترتیب مقادیر 3 و 6 را به آن ها اختصاص دهیم (در صورت لزوم میتوانیم تخصیص مقادیر را تا بعدا در برنامه انجام دهیم ).
فرترن برای مقادیر عددی انواع مختلفی دارد. مثلا اگر محاسبات ما به اعداد غیرصحیح مثل 3.141 نیاز داشته باشد، از نوعی به نام Real که یعنی عدد حقیقی، استفاده می کنیم.
REAL :: x = 1.0
REAL :: pi = 3.141
زمانی که متغیر ها را در برنامه فرترن ایجاد کردیم، می توانیم آن ها را دستکاری کنیم و تغییر دهیم.
متغیر ها در فرترن معمولا در چند خط اول برنامه یا یک تابع تعریف می شوند، مثل برنامه ای که ما در بالا مثال زدیم . یک نوع دیگر هم وجود دارد که در مثال معرفی شده است، یعنی Logical. این نوع به متغیر هایی اشاره دارد که به عنوان مقادیر True یا False استفاده می شوند.
LOGICAL :: Cond_1, Cond_2
توجه داشته باشید که می توانیم چندین متغیر را در یک خط تعریف کنیم اما باید با ویرگول از هم جدا شده باشند. این کار باعث صرفه جویی در فضا و تایپ می شود و معادل آن به این صورت خواهد بود:
LOGICAL :: Cond_1
LOGICAL :: Cond_2
ممکن است که نام متغیر ها از حروف الفبای لاتین استاندارد، خط تیره و اعداد تشکیل شده باشد. توجه داشته باشید که فرترن به حروف بزرگ و کوچک حساس نیست . کلمات کلیدی و نام متغیر ها ممکن است با حروف بزرگ یا کوچک نوشته شوند. فرترن تفاوتی بین نام های بزرگ و کوچک قائل نیست یعنی؛ Cond_1 همان cond_1است.
طبق قرارداد، معمولا می بینید که کلمات کلیدی فرترن با حروف بزرگ نوشته شده اند، مثل REAL و… در صورتی که واقعا لازم نیست. شما می توانید از حروف بزرگ یا کوچک استفاده کنید، اما بهتر است برای خوانایی کد یا همیشه بزرگ بنویسید یا همیشه کوچک.
نمایش پیام ها و مقادیر
وقتی که یک برنامه فرترن را اجرا می کنید، ساده ترین راه برای دیدن نتایج محاسبه یا سایر خروجی ها چاپ آن ها در ترمینال، خط فرمان یا کنسول است. (همه این اصطلاحات برای اشاره به پنجره ای که می توان دستورات را در آن وارد کرد تا متن روی صفحه چاپ شود، استفاده می شوند.)
شما همچنین باید به یک طریقی داده ها را وارد برنامه کنید که می توان این کار را با تایپ مستقیم مقادیر در ترمینال از طریق صفحه کلید انجام داد.
فرترن دو تابع کاربردی به نام های Read و Write برای خواندن و نمایش داده ها و پیام ها روی صفحه دارد.
تابع Read به برنامه فرترن می گوید مقادیری که از طریق صفحه کلید وارد می کنید را ثبت و آن ها را در متغیر هایی که در برنامه تان تعریف می کنید ، ذخیره کند. در برنامه مثلث مثال ما به این صورت از Read استفاده می شود:
READ(*,*) a, b, c
در توابع فرترن، هر ورودی تابع در داخل دو پرانتز قرار می گیرد ، مثل:
READ(input1, input2, etc…)
در Read اولین ستاره (*) به این معناست که ورودی صفحه کلید به جای ستاره در عبارت Read قرار می گیرد و در عبارت Write روی صفحه نمایش داده می شود. ستاره دوم (*) به این معناست که کامپیوتر تصمیم میگیرد؛ عناصر ورودی یا خروجی بر اساس نوع داده ها در لیست متغیر های بعدی چطور ظاهر شوند.
مقادیری که تایپ می کنید، تک به تک به لیست متغیر هایی که در ادامه می آیند، اختصاص می یابند. پس ما در برنامه مان سه متغیر (a,b,c) داریم که قبلا آن ها را تعریف کرده بودیم . وقتی که برنامه در حال اجرا است و به عبارت Read می رسد، از شما می خواهد که یک متغیر را وارد کرده و کلید enter را فشار دهید. این گرفتن ورودی سه بار اتفاق می افتد و هر مقداری که تایپ می کنید، به ترتیب به a، b و c اختصاص می یابد.
تابع Write خیلی شبیه است، فقط متغیر ها را به ترتیبِ مشخص شده روی صفحه چاپ می کند:
WRITE(*,*) a, b, c
مقادیر اختصاص داده شده به a، b و c را چاپ می کند.
عملیات ریاضی
فرترن اساسا برای محاسبات عددی طراحی شده است و توابع داخلی زیادی برای عملیات ریاضی دارد. در مثال برنامه مساحت مثلث ، از توابع اصلی +, -, *, / برای جمع ، تفریق، ضرب و تقسیم استفاده می کنیم. یک تابع دیگر به نام Sqrt() در مثال بالا وجود دارد که جذر یک عدد را پیدا می کند.
عبارات منطقی
عبارات منطقی دستوراتی مثل ” If A and B are true, then do C “یا “If value X is less than 10, then divide X by Y” هستند . آن ها روش هایی برای کنترل رفتار یک برنامه بر اساس مقایسه یا تعیین درستی دو یا چند چیز هستند.
قسمت بعدی برنامه مثلث؛ یعنی بعد از دستورات Read و Write، درستی یا نادرستی دو شرط بررسی می شود:
Cond_1 = (a > 0.0) .AND. (b > 0.0) .AND. (c > 0.0)
Cond_2 = (a + b > c) .AND. (a + c > b) .AND. (b + c > a)
همان طور که می دانید؛ Cond_1و Cond_2از نوع منطقی هستند یعنی می توانند یا True باشند یا False.
مقدار درست یا نادرست بودن این دو متغیر به نتیجه ارزیابی عبارت سمت راست علامت تساوی بستگی دارد.
در این مثال از دو عملگر منطقی استفاده شده است: عملگر بزرگ تر از یا > و عملگر .And. یا همان “و”. اولی رفتاری مشابه با همتایش در ریاضی دارد. به طور مثال جواب 1>2 نادرست و False می شود؛ زیرا 1 از 2 بزرگتر نیست.
عملگر .AND.بررسی می کند که آیا هر دو عبارت در هر طرف درست هستند یا نادرست. مثلا (1 < 2) .AND. (3 < 4) درست یا True را بر می گرداند زیرا هر دو عبارت درست هستند. توجه داشته باشید که می توانیم از براکت ها برای بیان ترتیبی که می خواهیم عبارت ارزیابی شود، استفاده کنیم. کامپیوتر قبل از این که به ارزیابی .AND. به عنوان یک عبارت کلی بپردازد، اول عبارت موجود در پرانتز را بررسی می کند.
نتیجه این دو خط در مثال بالا به ورودی هایی بستگی دارد که هنگام اجرا به برنامه می دهید.
تصمیم گیری در یک برنامه
همه برنامه ها باید بسته به نوع داده های ورودی یا نتایج یک محاسبه تصمیم گیری کنند. معمولا به آن جریان یا منطق برنامه می گویند. این اتفاق کمی شبیه تصمیمات منطقی است که ما در زندگی روزمره می گیریم، مثلا:
اگر امروز باران ببارد، چترم را با خودم می برم در غیر این صورت کلاه آفتابی ام را می برم .
کلمات با حروف بزرگ هم همان کلمات کلیدی هستند که فرترن برای کنترل جریان منطقی یک برنامه بسته به شرایط مختلف استفاده می کند.
بیایید به بخش پایانی برنامه مساحت مثلث نگاهی بیندازیم :
IF (Cond_1 .AND. Cond_2) THEN
s = (a + b + c) / 2.0
Area = SQRT(s * (s – a) * (s – b) * (s – c))
WRITE(*,*) “Triangle area = “, Area
ELSE
WRITE(*,*) “ERROR: this is not a triangle!”
END IF
عبارات If و Then
فرترن از این دو کلمه کلیدی برای تصمیم گیری منطقی در یک برنامه استفاده می کند. برای انجام کاری بر اساس یک شرط، از IF [CONDITION(S)…] THEN استفاده می شود . قسمت شرطی که بعد از دستور IF می آید؛ ممکن است متغیری از نوع LOGICAL یا خودش یک عبارت منطقی باشد (مثل مثال ما). کلمه کلید THEN شروع کد را نشان می دهد که در صورت درست بودن شرط اجرا می شود.
عبارت Else
عبارات Else اختیاری است، در صورتی که کاری هست که می خواهید در صورت نادرست بودن شرط انجام شود، به کارتان می آید. اگر این بخش اختیاری در برنامه نیامده باشد، برنامه بدون این که کار دیگری انجام دهد، به بخش بعدی کد میرود. ما در مثال از یک عبارت Else برای چاپ پیام خطا استفاده می کنیم؛ در صورتی که شکل اصلا مثلث هم نباشد.
پایان دادن به بلوک IF
باید یادتان باشد که انتهای بلوک IF…THEN…ELSE را با یک عبارت END IFمشخص کنید.
در نهایت در پایان برنامه مساحت مثلث ما از عبارت END PROGRAM برای پایان برنامه استفاده می شود و به فرترن می گوید که کار تمام شده است.
اما چه طور برنامه را اجرا کنیم؟ در بخش بعدی به این موضوع خواهیم پرداخت.
کامپایل
برنامه های فرترن به گونه ای هستند که قبل از این که بتوانید اجرای شان کنید ، یک مرحله اضافی دارند که باید اجرا شود. وقتی که برنامه به عنوان یک فایل متنی ساده نوشته و ذخیره شد، باید آن را به قالبی تبدیل کنیم که سخت افزار کامپیوتر بتواند آن را درک و پردازش کند. این مرحله کامپایل نامیده می شود. در واقع ما برنامه را به صورت قالبی مناسب برای کامپیوتری کامپایل می کنیم که می خواهیم آن را بر رویش اجرا کنیم.
اگر از قبل با زبان هایی مثل پایتون، متلب یا R کار کرده باشید، شاید با مرحله کامپایل مواجه نشده باشید، زیرا در اجرای برنامه های نوشته شده به این زبان ها، مرحله کامپایل از کاربر پنهان می شود. این نوع زبان ها گاهی اوقات به عنوان زبان های تفسیری توصیف می شوند. یعنی کد از طریق یک برنامه خاص به نام مفسر اجرا می شود و تمام کامپایل ها را به صورت پویا یا در زمان اجرا انجام می دهد.
فرترن که برای محاسبات عددی سریع بهینه شده ، کاربر را ملزم می کند تا مرحله کامپایل را خودش انجام دهد. این قابلیت امکان تنظیم دقیق گزینه های بهینه سازی برنامه و بسیاری از سفارشی سازی های دیگر برنامه نهایی را فراهم می کند.
در این بخش قصد داریم نحوه کامپایل برنامه مثالمان را یاد بگیریم.
کامپایل برنامه مثلث
برای کامپایل کردن برنامه، حتما اول نمونه برنامه مساحت مثلث را به عنوان triangle.f90 ذخیره کنید.
این مثال خاص را باید در ویندوز لینوکس اجرا کنید. ( امکان کامپایل فرترن در ویندوز و MacOS هم وجود دارد، اما نام دستورات ممکن است کمی متفاوت باشد ). اگر از ویندوز استفاده می کنید اما به سرور لینوکس دسترسی دارید، توصیه می شود از آن برای قسمت بعدی استفاده کنید.
1-خط فرمان/ترمینال را باز کنید. در Prompt، با تایپ کردن عبارت gfortran –version بررسی کنید آیا برنامه کامپایل gfortran در دسترس است یا خیر . خوشبختانه اگر ورژن کامپایلر نصب باشد همان را می آورد. اگر هم نه، پیام خاط ظاهر می شود. نمونه ای از کامپایلر فرترن که امکان دارد در نتایج جستجو ظاهر شود ، به این صورت است:
[dvalters@baltic01 Programming-tutorials]$ gfortran –version GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) Copyright (C) 2015 Free Software Foundation, Inc
GNU Fortran گارانتی ندارد و نیاز به مجوز دارد. شما می توانید نسخه هایی از این کامپایلر را تحت لیسانس GNU General Public License تهیه کنید .
1-در همان مسیری که فایل .f90 را ذخیره کردید، دستور زیر را اجرا کنید:
gfortran triangle.f90 -o triangle
این به کامپایلر gfortran که معمولا در سیستم عامل های لینوکس وجود دارد، می گوید که فایل triangle.f90 را بگیرد و برنامهای به نام triangle را جهت اجرا برایمان تولید کند. پرچم –o هم به ما امکان می دهد یک نام خروجی برای برنامه مان تعیین کنیم.
وقتی این دستور را اجرا کردید، حالا باید آیتم دیگری را در آدرسی که فرمان را از آن اجرا میکنید پیدا کنید، یعنی برنامه قابل اجرای Triangle.
2- برنامه را اجرا کنید
برای اجرای این برنامه (در لینوکس)،./triangle را اجرا کنید. اجرای برنامه باید شروع شود. حالا می توانید سه مقدار را وارد کنید و هر بار کلید ENTER را فشار دهید تا مقدار دهی شود. بعد از فشردن enter درست بعد از وارد کردن مقدار سوم، برنامه با استفاده از فرمول هرون مساحت مثلث را محاسبه می کند.
سعی کنید برنامه را چند بار با طول های مختلف اضلاع مثلث اجرا کنید . وقتی مقادیر داده شده مناسب یک مثلث نباشند چه اتفاقی می افتد؟ ببینید آیا پیام خطای مورد انتظار تعریف شده در بالا را دریافت می کنید؟
دروس آموزش ویدیویی فرترن
- برای مشاهده بهتر ویدیوها در موبایل، گوشی را افقی نگه دارید. اگر اروری مشاهده کردید بخاطر روشن بودن وی پی ان است. بعد از پخش هر ویدیو، علامت دانلود روی آن نمایان می شود.
- اگر روی دانلود کلیک کردید و ویدیو باز هم پخش شد، بعد از پخش ردن روی علامت سه نقطه پایینش کلیک و گزینه دانلود یا ذخیره را انتخاب کنید. از اینترنت دانلود منجر هم می توانید استفاده کنید. هر درسی مشکل داشت در نظرات اعلام کنید تا سریعا رفع شود یا به پیج منبع مراجعه کنید. ضمنا هر چند وقت یک بار احتمالا دروس به روز می شوند.
- از پیج حسین آکو:
حتما دانلود کنید: آموزش همه زبان های برنامه نویسی (رایگان)
تمرین
حالا که می دانیم چه طور یک برنامه ساده فرترن را بنویسیم، کامپایل و اجرا کنیم، بد نیست با تغییر و نوشتن نمونه کد ما برنامه را تست کنید.
هر بار که کد را تغییر می دهید، باید مرحله کامپایل را دوباره اجرا کنید.
1-وقتی که برنامه اجرا می شود؛ پیامی به صفحه اضافه کنید تا به کاربران یادآوری کند که چطور داده ها را وارد کنند. (مثلا پیامی مثل : “3 عدد وارد کنید و بعد کلید Enter را فشار دهید.”)
2- یک تست در انتهای کد اضافه کنید تا بررسی کند که آیا مثلث قائم الزاویه است یا خیر. (با استفاده از قضیه فیثاغورث). اگر درست بود، بعد از محاسبه مساحت، با نشان دادن یک پیام آن را تایید کند.
چند مثال
1-برنامه ای بنویسید که تعداد ثانیه ها (وارد شده توسط کاربر) را به ساعت، دقیقه و ثانیه تبدیل کند و بعد آن ها را روی صفحه چاپ کند.
2- برنامه ای بنویسید که عدد صحیح را بخواند و بررسی کنید که آیا کوچکتر، مساوی یا بزرگتر از صفر است یا خیر.
3- برنامه قبلی را گسترش دهید؛ به طوری که پنج عدد صحیح خوانده شود و هر یک از آن ها را بررسی شود.
4- برنامه ای بنویسید که ضلع سوم مثلث را با توجه به دو ضلع دیگر محاسبه کند. می توانید از قانون کسینوس استفاده کنید.
سلام، به کسی که به برنامه فرترن مسلط هست نیاز دارم،که بتونم مشکل برنامه مو به کمکش حل کنم
پاسخسلام تشکر بابت ارائه بی نظیرتون
پاسخممنون میشم که جواب این تمریناتتون را بذارید و مام ببینیم و مشکلاتمون برطرف شه
جواب مثال ۲ .
پاسخprogram CheckNumber
implicit none
integer :: num
print*, Enter an integer number:
read(*,*) num
if (num > 0) then
print*, num, is greater than zero.
else if (num < 0) then
print*, num, is less than zero.
else
print*, num, is equal to zero.
end if
end program CheckNumber