دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۸
  • اردیبهشت

جلسه ۱۲ : آرایه ها در فرترن

  • دسته‌بندی‌ها :
جلسه ۱۲ : آرایه ها در فرترن
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، در این پست آموزشی دوره فرترن به بررسی آرایه ها در فرترن خواهیم پرداخت.آرایه ها در فرترن  مجموعه ای از عناصر هم نوع است. تمام آرایه ها شامل مکان های حافظه مجاور نیز می باشد. پایین ترین آدرس مربوط به اولین عنصر و بالاترین آدرس به آخرین عنصر مربوط است. انتقال آرایه به رویه در فرترن ، فراخوانی آرایه ها در فرترن و توابع ذاتی آرایه در فرترن از جمله مباحثی است که به آن اشاره می شود.

      یک آرایه برای ذخیره مجموعه ای از داده ها استفاده می شود،گاهی وقتها لازم است که یک سری از داده هم نوع را دریافت کرده و بروی آنها عملیات خاصی را مثل مقایسه یا مرتب کردن و … را انجام دهیم.

      لذا باید آنها را بگونه ای خاص در کنار یکدیگر قرار دهیم که این مسئله در برنامه نویسی را با استفاده از آرایه ها حل خواهیم کرد .

      عدد چهارمعدد سومعدد دومعدد اول

      آرایه ها در فرترن می توانند یک بعدی (مثل بردار)، دو بعدی (مثل ماتریس ها) باشند.

      Fortran به شما اجازه می دهد تا آرایه های ۷ بعدی را ایجاد کنید.

      فراخوانی آرایه ها در فرترن

      آرایه ها با ابعاد بعدی شان فراخوانی می شوند.

      برای مثال، برای فراخوانی یک آرایه یک بعدی numbers ، که شامل اعداد حقیقی حاوی ۵ عنصر است، شما می نویسید :

      مثال : 

      دسترسی به هريک از اجزائ آرايه ها با استفاده از انديسهای آن صورت می گيرد.

      البته دستوراتی در فرترن ۹۰ وجود دارد که کار با آرايه ها را سريعتر و کارآمدتر کرده است و در صورتی که چنين دستوراتی وجود داشته باشد، از آنها استفاده کنيد. مخصوصاً اگر برای استفاده از کامپيوترهای چند پردازنده ای برنامه نويسی می کنيد.عناصر فردی آرایه ها با مشخص کردن اندیس های آنها ارجاع داده می شوند.

      اولین عنصر یک آرایه دارای یک اندیس است.

      آرایه numbers شامل پنج متغیر واقعی : اعداد (۱)، اعداد (۲)، اعداد (۳)، اعداد (۴) و اعداد (۵) می باشد.

      برای ایجاد یک آرایه دو بعدی ۵ * ۵ از اعداد صحیح به نام matrix، شما می نویسید :

      مثال : 

      شما همچنین می توانید آرایه را با برخی از محدودیت های صریح اعلان کنید، مثلا :

      مثال : 

      اختصاص مقادیر

      شما می توانید مقادیر را به اعضای فرد اختصاص دهید، مانند :

      مثال : 

      همچنین می توانید از حلقه نیز استفاده کنید :

      مثال : 

      عناصر آرایه ی یک بعدی می توانند به طور مستقیم مقادیر را با استفاده از نماد short hand اختصاص دهند، این عمل سازنده آرایه نامیده می شود، مانند :

      مثال : 

      لطفا توجه داشته باشید که فضاهای خالی بین براکت و بک اسلش وجود نداشته باشد.
      مثال زیر مفاهیم مورد بحث در بالا را نشان می دهد :

      مثال : 

      بهد از کامپایل و اجرای کد بالا،نتیجه زیر حاصل می شود :

      مثال : 

      ارسال آرايه بعنوان يک پارامتر به تابع

      در بیشتر موارد شما می خواهيد که يک آرايه را به يک تابع ارسال کنيد, تنها مشکل عدم اطلاع آرايه از اندازه خودش می باشد. پس بايد آرايه فرستاده شده به تابع دارای اندازه ثابت باشد (array size-fixed)يا بايد اندازه آرايه را هم بعنوان يک پارامتر ديگر به تابع ارسال کنيم تا مبادا از مرزهای آرايه فراتر برويم!

      اگر اندازه آرايه مشخص نباشد می توانيم آن آرايه را با آرگومان * برای آخرين پارامتر آرايه (فقط يک بعد از آرايه را می توان به اين شکل تعريف کرد) به تابع ارسال کنيم.

      در هر حال بخاطر داشته باشيد که مترجم برنامه از طول آرايه اطلاع نخواهد داشت و شما خودتان بايد مطمئن شويد که فراتر از محدوده اعضاء آرايه نرويد.

      برخی از شرایط مرتبط با آرایه

      جدول زیر برخی از شرایط مرتبط با آرایه را می دهد :

      واژه

      معنی

      Rankتعداد ابعاد یک آرایه است. به عنوان مثال، برای آرایه matrix، مقدار Rank برابر۲ است و برای آرایه numbers، رتبه ۱ است.
      Extentتعداد عناصر در امتداد ابعاد است. به عنوان مثال، در آرایه numbers برابر ۵ است و آرایه matrix درهر دو بعد ۳ است.
      Shapeشکل یک آرایه یک آرایه عددی یک بعدی است که حاوی تعداد عناصر (محدوده) در هر ابعاد است. به عنوان مثال، در آرایه matrix، مقدار Shape برابر (۳، ۳) و در آرایه numbers مقدارShape برابر (۵).
      sizeتعداد عناصر یک آرایه است. در آرایه matrixبرابر، ۹ است، و برای آرایه numbers مقدار آن ۵ است.

      انتقال آرایه به رویه در فرترن

      شما می توانید یک آرایه را به یک رویه به عنوان یک استدلال منتقل کنید.

      مثال زیر  مفهوم انتقال آرایه به رویه در فرترن را نشان می دهد :

      مثال : 

      بعد از کامپایل و اجرا خروجی زیرا مشاهده خواهید کرد :

      مثال : 

      در مثال فوق، فرآیند fillArray و printArray زیر را فقط می توان با آرایه هایی با ابعاد ۵ فراخوانی کرد.

      با این حال، برای نوشتن دستورالعمل هایی که می توانند برای آرایه های هر اندازه استفاده شوند، می توانید آن را با استفاده از تکنیک زیر بازنویسی کنید :

      مثال : 

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

      وقتی کد بالا کامپایل و اجرا می شود، نتیجه زیر را تولید می کند :

      مثال : 

      بخش های آرایه

      تا کنون به کل آرایه اشاره شده است، Fortran یک راه آسان برای ارجاع چندین عنصر یا یک بخش از یک آرایه را با استفاده از یک عبارت ساده فراهم می کند.
      برای دسترسی به یک بخش آرایه، شما باید برای تمام ابعاد، قسمت پایین و بالای بخش و همچنین قدم (افزایش) را فراهم کنید.

      این علامت گذاری subscript triplet نامیده می شود:

      مثال : 

      وقتی که در حوزه فراخوانی تان مرزهای پایین و بالا وجود نداشته باشند،به طور پیش فرض مقدار گام برابر با ۱ است.مثال زیر این مفهوم را نشان می دهد :

      مثال : 

      وفتی کد بالا کامپایل و اجرا شود خروجی زیر تولید می شود :

      مثال : 

      توابع ذاتی آرایه در فرترن

      Fortran 90/95 چندین تابع ذاتی را فراهم می کند. به طور کلی توابع ذاتی آرایه در فرترن را می توان به ۷ دسته تقسیم کرد.

      • Vector and matrix multiplication
      • Reduction
      • Inquiry
      • Construction
      • Reshape
      • Manipulation
      • Location

      کلام آخر

      يکی از مهمترين ساختارهای داده در برنامه نويسی مهندسی آرايه ها هستند مخصوصاً وقتی با تعداد زيادی عدد در نقاط مختلف کار میکنيم. ساختار آرايه ها مانند انواع ديگر داده ها می باشد فقط تعداد داده ها مشخص می گردد. البته در شرايطی که می خواهيم که تعداد بصورت پویا اختصاص داده شود، تعداد را مشخص نمی کنيم. آموزش انتقال آرایه به رویه در فرترن و توابع ذاتی آرایه در فرترن به پایان رسید، در جلسه به مبحث آرایه های پویا در فرترن می پردازیم. با ما همراه باشید…

      QR:  جلسه ۱۲ : آرایه ها در فرترن
      به اشتراک بگذارید