بالا
 تعرفه تبلیغات




 دانلود نمونه سوالات نیمسال دوم 93-94 پیام نور

 دانلود نمونه سوالات آزمونهای مختلف فراگیر پیام نور

نمایش نتایج: از شماره 1 تا 8 از مجموع 8

موضوع: بررسی زبان برنامه نویسی فورترن ( مقاله )

  1. #1
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    Icon140 بررسی زبان برنامه نویسی فورترن ( مقاله )

    ررسی زبان برنامه نویسی فورترن ( مقاله )
    برنامه های فرعی:

    در اغلب برنامه های طولانی بعضی محاسبات را جداگانه به وسیله ی یک ( یا چند ) برنامه ی مستقل انجام می دهند و از نتیجه ی آن در برنامه اصلی استفاده می کنند. این برنامه ( یا برنامه های مستقل ) به همراه برنامه ی اصلی نوشته و برنامه فرعی نامیده می شود.
    به طور کلی فورترن دو نوع برنامه ی فرعی FUNCTION و SUBROUTINE وجود دارد.
    دو نوع برنامه ی فرعی ساده نیز به نام توابع کتابخانه و تابع یک جمله ای وجود دارد.
    برنامه های فرعی در فورترن 77 نسبت به فورترن 4 بسیار انعطاف پذیرند و دستور ENTRY در فورترن 77 چنین عملی را امکان پذیر خواهد کرد.

    برنامه ی فرعی FUNCTION:
    این برنامه شبیه یک برنامه ی کامل و داراری END است. نام تابع با یک یا چند آرگومان ( متغیر ) مورد استفاده قرار می گیرد که با قرار دادن دستوری به نام RETURN در برنامه ی فرعی ، از این مقدار تابع معرفی شده می توان در برنامه ی اصلی استفاده کرد.
    بعضی توابع آماده در ماشین ( نظیر sin , cos , … ) وجود دارد. این برنامه ها می توانند به عنوان تابع مورد نظر برنامه ی FUNCTION مورد استفاده قرار گیرند. با وجود این ساختن توابع جدید و معرفی آنها و استفاده از آنها در برنامه ی FUNCTION از موارد اصلی برنامه ی فرعی خواهد بود.
    در اینجا شکل کلی برنامه ی FUNCTION را که بعد از برنامه ی اصلی نوشته می شود را بیان می کنیم:

    کد:
    FUNCTION function name ( argument 1 , argument 2 , …)
    Function name = مقدار تابع که باید به برنامه ی اصلی برگردد ...
    RETURN
    END
    داخل پرانتز متغیرهایی هستند که تابع به آنها بستگی دارد و سطر قبلی از دو سطر آخر ، محاسبه ی مقدار تابع بر حسب این متغیرها است.

    برنامه ی فرعی SUBROUTINE :

    برنامه ی فرعی FUNCTION قادر است به محاسبه و انتقال یک کمیت بپردازد. برای انتقال چند کمیت ( شامل مقادیر داده شده به متغیرها یا مقادیر محاسبه شده ) از یک برنامه ی فرعی به برنامه ی اصلی SUBROUTINE استفاده کردیم. شکل کلی چنین است:

    کد:
    SUBROUTINE name ( parameter 1 , parameter 2 , …)
    RETURN
    END
    نتیجه ی این برنامه ی فرعی به وسیله ی دستور CALL که در درون برنامه اصلی گذاشته می شود قابل انتقال به برنامه ی اصلی است. صورت کلی آن چنین است:

    کد:
    CALL name (parameter 1, parameter 2 , …)
    Main Program
    REAL* , A,B,C
    ABC=A+B/C
    CALL SMAL ( 2.7,ABC,1.4,J)
    PRINT* , J
    END


    Subprogram
    SUBROUTINE SMAL (A,B,C,I)
    I=3
    IF (A. LE.B) . AND . (A. LE.C) I=1
    IF(B . LE.A) . AND . (A. LE.C) I=2
    RETURN
    END
    این برنامه مکان کوچکترین عدد از سه عدد A,B,C را چاپ می کند. یعنی با ترتیب قرار گرفتن از A,B,C چپ به راست اگر A کوچکترین عدد باشد مکان آن یعنی 1 را چاپ می کند و اگر B کوچکترین عدد باشد 2 یعنی مکان عدد B را به چاپ می رساند

  2. #2
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    مقایسه ی برنامه های FUNCTION و SUBROUTINE :

    در استفاده از این دو نوع برنامه ی فرعی قاعده ی کلی وجود ندارد و بعضآ اختلاف مختصری در آنها دیده می شود. FUNCTION معمولآ برای انتقال یک مقدار که بر حسب عبارتی محاسبه می شود مناسب است. این عبارت شامل آرگومان است در صورتی که SUBROUTINE دارای آرگومان نیست و در شکل کلی ملاحظه می کنید که متغیرهای نام برنامه را با کلمه ی parameter مشخص کرده ایم. همچنین برنامه های SUBROUTINE در به کارگیری متغیرهای زیر نویس دار ساده تر عمل می کنند.

    توابع کتابخانه و تابع یک جمله ای:

    این دو نوع نیز از برنامه های فرعی محسوب می شوند . به طوری که در فصول اولیه نیز اشاره کردیم بسیاری از توابع معمول ریاضی نظیر SIN , COS , ATAN , … به راحتی می توانند در هر برنامه مورد استفاده قرار گیرند. در واقع هر یک از این توابع برنامه ی محاسباتی مخصوصی دارند که برنامه ی فرعی محسوب و به حافظه ی ماشین داده می شود و در اغلب شکلهای فورترنی که شما استفاده می کنید تعبیه شده است.
    بر حسب نیاز و مورد خاص محاسباتی طولانی و تکراری ، هر برنامه نویس می تواند توابع آماده
    ( کتابخانه ای) جدیدی را بنویسد ، نامگذاری کند و به درون ماشین ببرد.
    تابع یک جملهی ای نیز یک نوع برنامه ی فرعی است که درون برنامه ی اصلی نگاشته می شود و تابعی است چند متغیره ( پارامتر ) که به صورت یک دستور العمل خواهد بود. شکل کلی آن چنین است:

    کد:
    Name ( parameter 1, parameter 2 , …) = E
    که در آن E یک عبارت رساضی است. دو فرض اساسی بین تابع یک جمله ای و FUNCTION وجود دارد: اولآ تابع یک جمله ای برخلاف FUNCTION در درون برنامه ی اصلی قرار داده می شود و جداگانه نوشته نمی شود ، ثانیآ تابع یک جمله ای فقط یک دستور است ( البته ممکن است طولانی باشد و در چند سطر جایگزین شود ولی فقط یک دستور است.)

    توسعه پذیری(Extensibility

    Data Type های جدید ، Operator های جدید و معانی جدیدی برای عملگرهای موجود و تخصیص دادن مسیرهایی برای برنامه نویس جهت توسعه ی فورترن بوجود آمد.
    این تسهیلات به برنامه نویس اجازه می دهد که خلاصه سازی تایپ های داده ای ( Abstract Data Type ) را با معین کردن نوع جدید و عملکردهایی برای اجرا کردن روی برنامه انجام دهد.
    با مرفی ماجول ها ( Modules ) در فورترن مسیری راحت برای دسته بندی Data Type های جدید و عملکرد آنها وجود دارد.
    ماجول ها می توانند استفاده شوند بوسیله ی کاربران متعدد در Application های مختلف یا می توانند توضیع شوند بین تعدادی کاربر بصورت یکسان یا پروژه های مختلف.
    این امکانات آثار پشتیبانی کاربردی را برای برنامه نویسی شیئی گرا دارد بطوریکه به خوبی برای بالا بردن صرفه جویی اقتصادی و بازدهی طراحی شدند.

    ماجول های ذاتی و استاندارد(Intrinsic And Standard Modules

    یک ماجول ( Module) ذاتی منحصر به فرد است و آن داخل یک ماجول استاندارد (Standard Modules ) معنی می شود. در فورترن 90 ما ماجول ذاتی نداریم.
    یک ماجول استاندارد منحصر به فرد است و گاهآ تعاریف جداگانه دارد ولی استاندارد وابسته ( یکسان و متوازی) در طی یک دوره ی زمانی در میان ِ تخصیص ِ استانداردی جدید است.
    اغلب یک دوره 10 یا حتی بیشتر طول می کشد.
    امروزه ماجول استاندارد نداریم اگر چه یک ماجول برای یک نوع داده ای رشته ( String Data Type ) با طول متغیر می توان پیشنهاد کرد.

  3. #3
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    سازمان برنامه ( Program Organization

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

    واحدهای برنامه ( Program Units
    یک واحد برنامه ی فورترن مانند زیر می باشد:

    کد:
    Main program
    External subprogram ( Subroutine Or Function)
    Module
    Block data
    یک برنامه باید شامل یک Main Program یک Subroutine و یک ماجول ( Module ) باشد:

    کد:
    Program MY_TASK

    End program MY_TASK
    SUBROUTINE MY_CALC(X)
    END SUBROUTINE MY_CALC
    MODULE MY_DATA

    END MODULE MY_DATA
    وجود برنامه Main در یک برنامه نیاز است و می تواند تنها واحد برنامه در یک برنامه باشد. اگر در برنامه ای ، واحدهای برنامه ی دیگری هم وجود داشته باشد بدنه تابع Main به عنوان یک کنترل کننده ی برنامه عمل می کند.
    Main می تواند فعال یا شارژ نگه داشتن فعالیت برنامه و کنترل هایش و سفارش آنها در چندین نمایش کنترل کند.
    یک زیر برنامه ی خارجی یا فرعی ( یک FUNCTION یا SUBROUTINE ) ممکن است برای اجرا کردن یا محاسبه در یک موجودیت قابل دسترسی به یک زیر برنامه ی خارجی ، مورد استفاده قرار بگیرد.
    شاید تعریف کردن یک آرگومان ( Argument ) در زیر برنامه آن رو در یک مرجع ( Refrence ) آماده ی تعریف کردن در یک زیر برنامه نسبت دادن دستیابی پذیر با معانی دیگر کند.
    مانند: بلاکهای معمولی که حکم یک فراخوانی مورد استفاده در درخواست یک SUBROUTINE را دارد.
    در یک بیان یک تابع زمانی درخواست می شود که مقادیر آن مورد نیاز باشد. یک پردازش محاسباتی مشخص با یک FUNCTION یا SUBROUTIN زیر برنامه در یک دستور العمل فراخوانی می شود.
    یک زیر برنامه ی خارجی یک دستور العمل را معین می کند.
    یک زیر برنامه ممکن است از سوی واحد های برنامه های دیگر در برنامه ی فورترن درخواست شود. هیچ یک از ماجولها در یک بلاک داده ای واحد برنامه انجام پذیر نیست ، پس آنها در یک رویه مطرح نیستند.
    یک بلاک داده ای واحد برنامه فقط شامل تعاریف داده ای است و مورد استفاده است در تعیین کردن اولین مقادیر برای یک دسته از Data Object های محصور.
    محتویات یک ماجول شامل معانی است که آن را در دسترس واحدهای برنامه های دیگر قرار داده است. این معانی شامل داده ها ، معانی نوع ها ( Type ) ، معانی از پردازه های معروف از ماجول های زیر برنامه ها است و خصوصیاتی از یک پردازنده ی واصل است.
    زیر برنامه های ماجول ( Module ) ممکن است هر یک از SUBROUTINE یا FUNCTION زیر برنامه باشد.
    یک ماجول زیر برنامه ممکن است در خواست شود از طریق ماجول های زیر برنامه های دیگر در اندازه گیری یا با دیگر واحد های برنامه برای دستیابی به ماجول.
    برنامه های داخل Main ، زیر برنامه های خارجی و ماجول های زیر برنامه ممکن است شامل زیر برنامه های داخلی شود ، که ممکن است هر یک از SUBROUTIN ها و FUNCTION ها را شامل شود.
    رویه ها آنها را معین می کنند و موجودیت یک فراخوانی پردازه های داخلی را ، رویه های آنها معین می کنند.
    یک زیر برنامه داخلی نباید خودشان را شامل زیر برنامه های داخلی یابند. برنامه ی Main ، زیر برنامه خارجی یا ماجول برنامه شامل یک برنامه ی داخلی قابل ارجاع است به دسته ای از زیر برنامه های داخلی.
    زیر برنامه های داخلی ممکن است با دسته ی خودشان یا با دیگر زیر برنامه های داخلی در دسته های یکسان در خواست شوند.
    در پردازشهای داخلی ، یک زبان فورترن 90 ممکن است شامل تعدادی عدد از توضیحاتی و ساختن بنا و بدین گونه یک عمومیت دادن از بیان تابع معین فورترن 77 و یک پردازش با یک دستور (Statement) تنها است.
    البته دستور تابع در برنامه های فورترن 90 همچنان مجاز است.
    شکل 1 توضیحات سازمان از یک نمونه برنامه ی فورترن می باشد.
    فورترن دارای نوعی رویه ی حقیقی بوده همانند تابع سینوسی که آن یک منبع واقعی بود ، دقت دو برابر ، یا آرگومانهای مختلط.
    فورترن 90 از مفهوم نوعی رویه ها و اجازه دادن برنامه نویس جهت تعیین کردن یک نوع رویه تمدید شده است ، جهت تعریف کردن رویه ها و نیز منابع جامع می تواند باشد.
    تمام واحدهای برنامه بجز بلاکهای داده ، ممکن است شامل رویه واصل بلاکها باشند. یک رویه ی واصل بلاک برای توصیف کردن واصل از یک رویه ی خارجی ; مورد استفاده است ، از این رو نام رویه و شماره آرگومان ها و نوع آنها ، خواص ، نام و نوع و خواص یک تابع است.
    این اطلاعات در برخی موارد و در انواع دیگر ، اجازه دادن به پردازنده برای چک کردن اعتبار از یک وقفه لازم است. یک بلاک واصل با نوعی واصل ممکن است برای نسبت دادن به مشخصه های جنسی مورد استفاده قرار بگیرد

  4. #4
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    بسته بندی ( Packaging

    فرمت ها برای بکار بردن مفهوم Packaging ( بسته بندی ) دارای محدودیتهایی در فورترن 77 است.
    یک زیر برنامه خارجی ممکن است تصویری از یک Package باشد ، ولی می تواند فقط شامل پردازش ها ( رویه ها ) باشد ، نه داده های فراخوانی شده که ممکن است در دسترس دیگر بخش ها از برنامه باشد.
    یک برنامه ی درست در فورترن 77 می تواند برنامه ی ساختگی Package از واحد های برنامه ی مرکب از یک main program ، SUBROUTINE ، FUNCTION و Program Units ( واحد های برنامه ) و Block Data Program ( بلاک داده ای واحد های برنامه ) باشد.



    پردازنده های داخلی و ماجول ها بسیاری از فرمت ها را برای بسته بندی ( Packaging ) مهیا می کنند.
    آنها بسته بندی هایی از برنامه های متوسط با یک طراحی مناسب تهیه می کنند البته زمانی که یک برنامه ی کاربردی Fortran سازمان یافته است.
    بیشترین فایده ی مهم از عمل بسته بندی ( Packaging ) کاهش اثرات متقابل بین قسمت های یک برنامه است.
    عمل Packaging یا بسته بندی می تواند با Structure های منطقی از تقلید زیاد با مخفی کردن مختلط و پیچیده ی جزئیات در مرحله پایین برنامه بسازد.
    از این نظر برنامه ها ساده تر درک می شوند و ارزانتر بوجود می آیند.

    نوع داده ای ( Data Type

    زبان فورترن 90 ، پنج نوع داده ای ( Data Type ) از قبیل ، Real ، Integer ، Complex ( مختلط ) ، Logical ( منطقی ) و کاراکتری را فراهم کرد و همچنین به کاربران اجازه ی تعریف نوع های اضافی را داد.
    گاهی این برای سازمان دهی داده در بیش از یک ترکیب طبیعی است.
    به عنوان مثال: فرض کنید در یک برنامه ی اجرایی باید اطلاعات هر بیمار بر روی مانیتور چاپ شود. برای هر یک از بیماران اطلاعات درست باید نگهداری شود همچون نام بیمار ، شماره اتاق ، درجه حرارت ، میزان مصرف دارو و نوع بیماری برای بهبود بیمار.
    برای اینکه تمام این اطلاعات برای هر بیمار شرح داده شود برای راحتی فهم معانی داده ها برای اشاره کردن به اجتماعی از داده ها با یک نام در فورترن 90 یک اجتماع از مقادیر داده ای با نوع های مختلف داریم که یک Structure می نامیم.
    برای استفاده از Structure ، یک برنامه نویس ابتدا باید نوع Structure را معین کند. سپس بار دیگر نوع جدید تعریف می شود برای تعداد زیادی از Structure هایی که نوع آنها ممکن است فراخوانی شود.
    این مکانیسم شاید کمی سنگین به نظر می آید اگر فقط یک یک چنین ساختمانی در برنامه نیاز است ، اما معمولآ در یک جمع ، چندین مورد ، نیاز است.
    در اینجا فایده های دیگری برای معین کردن یک نوع مشخص برای یک Structure است.
    یک مثال برای یک نوع مشخص شده توسط کاربر با سه جزء است:

    کد:
    TYPE PATIENT
    INTEGER PULSE_RATE
    REAL TEMPRATURE
    CHARACTER ( LEN = 300 ) PROGNOSIS
    END TYPE PATIENT
    یک مرتبه نوع بیمار تعریف می شود. اجزاء ( ساختمانها ] Structures [ ) از یک نوع ممکن است فراخوانی شوند.
    به عنوان مثال:

    کد:
    TYPE ( PATIENT ) JOHN_JONES , SALLY_SMITH

  5. #5
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    مثالی از برنامه در فورترن 90 :

    با مثال ساده ی زیر از فورترن 90 که مرکب است از یک واحد برنامه ، برنامه ی Main ، سه Data Object ، H و T و U که فراخوانی شده اند.

    کد:
    PROGRAM SUM_OF_CUBES
    !This program prints all 3-digit numbers that
    !equal the sum of the cubes of their digits.
    INTEGER H , T , U
    DO H = 1,9
    DO T = 0 , 9
    DO U=0,9
    IF(100 * H + 10 * T + U == H ** 3 + T ** 3 + U ** 3 ) &
    PRINT “ (3I1)” , H , T , U
    END DO
    END DO
    END DO
    END PROGRAM SUM_OF_CUBES
    این برنامه فورترن 90 مطابق با استاندارد است و قابل اجرا است در هر سیستم استاندارد و برنامه ی استاندارد فورترن 90 و در نهایت خروجی زیر چاپ می شود:

    کد:
    153
    370
    371
    407

  6. #6
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    اعلان ها ( Declarations
    اعلان برای تعیین نوع و دیگر صفت ها از یک برنامه استفاده می شود.
    صفت یک موجودیت را داراست.
    چگونه موجودیت می تواند در یک برنامه استفاده شود.
    هر متغیر و تابع دارای یک نوع است که این در یک صفت بسیار مهم است. هر چند نوع تنها صفتی است که توانایی دارا بودن موجودیت را دارد. هر موجودیت همچون SUBROUTINE ( زیر روال ) و name list group ، نوع ندارد اما امکان دارا بودن صفت را دارد.
    در جمع ، آنها دارند رابطه هایی در میان Object ها ( شیئها ) می توانند مشخص کنند با رابطه های هم ارزی ( EQUVALENCE ) و اشتراکی ( COMMON ) و Name List اعلان ها استفاده می شوند در تعیین کردن این صفت ها و رابطه ها.
    به طور کلی ، واژه های کلیدی فورترن در اعلان صفت ها برای یک موجودیت استفاده می شود.

    کد:
    TYPE INTEGER
    REAL ( and Double Precision )
    COMPLEX
    LOGICAL
    CHARACTER
    TYPE (user – defined name)
    Array Properties DIMENSION
    ALLOCATABLE
    Pointer Properties POINTER
    TARGET
    Setting DATA
    PARAMETER
    PUBLIC
    PRIVATE
    Object Accessibility And Use INTENT
    OPTIONAL
    SAVE
    EXTERNAL
    Procedure Properties INTRINSIC
    صفات شرح دادن و توضیح دادن در استفاده کردن دور هر یک از دو فرم هستند. خصوصیات صفت امکان گرفتن موجودیت جهت دار ( Entity Oriented ) و صفت جهت دار ( Attribute – Oriented ) هستند.
    در فورترن 77 این لازم است در یک بیان متفاوت برای هر یک از متغیرها یا مجموعه ای از متغیرها صفتی بدهیم.
    برای مثال:

    کد:
    INTEGER , SAVE :: A,B,C
    مجموعه ای از صفات داخل یک بیان تنها گاهآ خیلی ساده است برای خوانندگان برنامه ها در آن حذف جستجو در میان بیان های فراخوانی های مختلف برای تعیین کردن تمام صفات از یک موجودیت مخصوص.
    با تاکید می توان در جایگاه یک شیئی و آن صفات ( فراخوانی موجودیت جهت دار ] Entity Oriented Declaration [ ) یا صفت و اشیاء ( Object ها ) آن دارای صفت است
    ( Atribute – Oriented Declaration ). هر کدام از این دو از طریق برنامه نویس ترجیح داده می شوند.
    در هر دوی این ابعاد فرم ها ممکن است تعیین شود از طریق یک صفت یا از طریق یک اتصال به نام شیء. برای مثال:

    کد:
    • Entity – oriented declarations
    Real , DIMENSION (20) , SAVE :: X
    Or
    Real , SAVE :: X(20)
    • Attribute – oriented declaration
    Real X
    DIMENSION X(20)
    SAVE X
    Or
    REAL X(20)
    SAVE X
    فورترن 90 فراهم کرد Dynamic Data Object های جدید که آنها در زمان اجرای برنامه می توانند ساخته شوند.
    این شامل آرایه ها و Object های همراه با صفت Pointer می شود.
    اینها نیز شامل Data Object های اتوماتیک ( هر نوع آرایه و رشته های کاراکتری ) می شود که آن برای ورود به یک رویه ایجاد می شود.
    دیگر فراخوانی ها ( Equivalence , name list و Common ) بر پایه ی رابطه ها در میان data object ها هستند.
    دستور Name List مورد استفاده قرار می گیرد برای نام یک مجموعه از Object ها برای اینکه آنها بتوانند مراجعه کنند بوسیله ی یک نام در یک دستور I/O ( ورودی / خروجی).
    EQUVALENCE در یک مرجع ذخیره سازی بوسیله ی بیشتر از یک نام مورد استفاده قرار می گیرد.
    COMMON برای جدا کردن ذخیره سازی در میان واحد های مختلف یک برنامه مورد استفاده قرار می گیرد.

  7. #7
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    INTEGER ( عدد صحیح ) :

    یک دستور INTEGER نامهایی از موجودیت از یک نوع صحیح فراخوانی می کند.
    یک مثال ساده برای فراخوانی Object ها با این نوع به طریقه ی زیر است:

    کد:
    • Entity – oriented
    INTEGER , DIMENSION (:) , POINTER :: MILES , HOURS
    INTEGER ( SHORT ) , POINTER :: RATE , INDEX
    • Attribute – oriented
    INTEGER MILES , HOURS
    INTEGER ( SHORT ) RATE , INDEX
    DIMENSION MILES (:) , HOURS (:)
    POINTER MILES , HOURS , RATE , INDEX
    REAL )


    یک دستور REAL نامهایی از موجودیت هایی به سمت نوع REAL فراخوانی می کند.
    اگر یک گونه انتخاب کننده آماده است ، آن روش نمایش را مشخص می کند.
    یک فراخوانی ساده Object ها برای این نوع داریم:

    کد:
    REAL [([KIND=] kind – value) ][ , attribute-list :: ] entity-list

    Foe example
    • Entity – oriented
    REAL (KIND = HIGH) , OPTIONAL :: VARIANCE
    REAL , SAVE :: A1(10,10) , A2(100, 10 ,10)
    • Attribute - oriented
    REAL ( KIND = HIGH) VARIANCE
    REAL A1(10,10) , A2(100,10,10)
    OPTIONAL VARIANCE
    SAVE A1, A2
    CHARACTER)

    یک دستور CHARACTER نامهایی برای موجودیت هایی برای انواع کارامتری فراخوانی می کند. یک نمونه ساده و خام از فراخوانی Object ها با این نوع به شرح زیر است:

    کد:
    CHARACTER [Character- selector ] [ , attribute – list :: ] entity – list
    طول یک موجودیت از یک کاراکتر ممکن است تعیین شده باشد بوسیله ی یک تعیین کننده ی کاراکتر.
    به عنوان فرم نمونه داریم:

    کد:
    Length – selector
    (LEN = type – param – value , &
    KIND = kind – value)
    (type – param – value , &
    [KIND = ] kind – value )
    (KIND = kind – value &
    [, LEN = type- param – value])
    هر کجای یک انتخاب کننده ی ( selector ) بلند ( R507 ) مانند فرم زیر است:

    کد:
    )[LEN = ] type – param – value )
    • Character – length [ , ]
    و یک کاراکتر بلند ( R508 ) یک فرم دارد:

    کد:
    (type – param – value )
    Scalar – integer – literal – constant
    هر کجای یک نوع پارامتر مقداری ( R509 ) هست یکی از:

    کد:
    Spexification – expression
    *

  8. #8
    TAHA آواتار ها
    • 9,180
    مدير بازنشسته

    عنوان کاربری
    مدير بازنشسته
    تاریخ عضویت
    Mar 2009
    محل تحصیل
    PNU-CLUB
    شغل , تخصص
    PNU-CLUB
    رشته تحصیلی
    PNU-CLUB
    راه های ارتباطی

    پیش فرض

    بررسی زبان برنامه نویسی فورترن ( مقاله )
    ASSIGNMENT)
    بیشترین استفاده ی مشترک از نتیجه ی یک بیان دادن یک مقدار به یک متغیر است. این با یک دستور assignment انجام می شود.
    برای مثال:

    کد:
    RUG = BROWN + 2.34 / TINT
    یک دستور assignment دارای سه قسمت است:
    • یک متغیر که مقداری را به خود اختصاص داده
    • یک علامت assignment ( = یا <=)
    • محاسبات

    ساختن Assignment ، یک مقدار برای متغیر قرار گرفته در سمت چپ علامت assignment ( = ) در یک دستور assignment.
    اجرای یک دستور assignment علت کلمه بندی برای ارزیابی ( بوسیله ی انجام دخنده برای نشان دادن محاسبات ) و سپس مقداری از کلمه بندی واگذار می شود به متغیر.
    اگر متغیر زیر نویس هایی ، قطعه زیر نویس یا دامنه زیر نویس دارد اجرای دستور assignment باید طوری رفتار کند هنگامیکه اگر آنها قابل ارزیابی هستند بعد از تعدادی قسمت ، مقادیر واگذار هستند.
    4 نوع دستور assignment هست:
    Assignment ذاتی ( Intristic assignment ) , assignment معین ( defined assignment ) , Pointer assignment و masked array assignment
    شکل Intristic assignment , defined assignment , masked array assignment یکسان است.
    برای مثال:

    کد:
    Variable = expression
    یک دستور انتصاب (assignment ) یک انتصاب معین است اگر :
    1. یک زیر روال ِ زیر برنامه ( Subroutin Subprogram ) با یک میانجی انتصاب از فرم assignment ( = ) است.
    2. نوع ها ، پارامترهای گونه های نوع و نظم ( در صورت داشتن نظم ) متغیرها و یکسان بودن کلمه بندی درست آرگومانهای ساختگی از زیرروال با واسط انتصاب.

    مثالهایی برای 4 نوع از انتصاب ها هست:

    کد:
    X = X+1 Intrinsic assignment foe real
    CHAR (1:4) = “A123” Intrinsic assignment for characters
    STUDENT = B – JONES Intrinsic assignment for structures
    STRING = “ BROWN” Defined assignment for varying string structure
    WHERE ( Z/0.0)
    A=B/Z masked array assignment
    END WHERE
    PTR => Pointer assignment
    ساختن DO ) The DO Construct
    ساختن DO شامل صفر یا چندین دستور و ساختن آن تکرار شونده و تحت کنترل ِ قسمت های دیگر از ساختن است.
    مخصوصآ ساختن کنترل DO چندین زمان یک ترتیب از دستورات و ساختن در داخل دامنه ای از یک چرخه ی اجرایی است.
    در اینجا سه مرحله برای اجرای یک ساختمان DO است:
    1. ابتدا ، اگر بجرا از ساختمان DO کنترل می شود با یک متغیر DO ، نمایش دادن کلمه بندی پارامترها در زمان تصمیم گیری تعدادی دفعات دامنه اجرایی قابل ارزیابی است.
    2. بعدی ، یک تصمیم ساخت است درباره ی چه دامنه ای از چرخه اجرائی مربوط است.
    3. در نهایت ، اگر مناسب باشد ، دامنه ای از چرخه ی اجرایی است ؛ متغیر DO اگر مهیا باشد به روز است ؛ و مرحله ی 2 پی در پی است.
    در فورترن 77 ، اجرای یک چرخه ی DO با یک DO متغیر کنترل می شود. افزایش یک شماره ی معین از دفعات تعیین کردن در اولین دستور DO آن است.
    در فورترن 90 این اختیار متغیرهای باقیمانده است ، ولی آنجا دو راه اضافی هست از کنترل چرخه ؛ یکی DO WHILE است و دیگری DO ساده است.
    گاهی DO برای همیشه صدا زده می شود و اجرای دستور ساده ، آن انتقال های کنترل در خارج از دامنه DO است.
    اینجا دو فرم پایه ای از ساختمان DO – block DO و non block DO را داریم.
    در تمرین برنامه نویسی مدرن ، توجه ها به فرم block DO است و از این رو فرم
    block DO ساختمان توسیه شده است.
    در فرم non block DO ، که آن برای سازگاری با فورترن 77 است و block DO شامل توابعی از non block DO است و بلعکس.




    یک مثال از بلاک DO :

    کد:
    DO I = 1 , N
    SUM = SUM + A (I)
    END DO
    یک مثال از ساختن non block DO که برای انجام محاسبات یکنواخت است :

    کد:
    DO 10 I=1 , N
    10 SUM = SUM + A( I )

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •