بخشی از پاورپوینت

--- پاورپوینت شامل تصاویر میباشد ----

اسلاید 1 :

آرایه (Array)

  • آرایه گروهی از متغیرها یا ثابت‌ها هستند که نوع آن‌ها یکی است و با اسم واحدی نامیده می‌شوند.

اسلاید 2 :

نمایش متغیر به صورت آرایه

       Do i = 1, 100

          a(i) = SQRT(a(i))

End do 

جزییات حلقه فوق به صورت زیر است:

a(1) = SQRT(a(1))

a(2) = SQRT(a(2))

¼

a(100) = SQRT(a(100))

اسلاید 3 :

دستور اعلام متغیر اندیسدار

  • Real, Dimension(10) :: X
  • Character(len = 20), Dimension(50) :: & last_name
  • آرایه می‌تواند با یک یا چند بعد معرفی شود. تعداد ابعاد یک آرایه را رتبه (rank) نامند. در مثال فوق رتبه متغیرهای X و last_name برابر یک است.
  • تعداد عناصر یک بعد را extent آن گویند. در متغیر X برابر 10 و در متغیر last_name برابر 50 است.
  • ترکیبی از rank و extent هر آرایه را شکل (shape) آن آرایه نامند. بنابراین دو آرایه دارای یک شکل هستند، اگر رتبه و تعداد عناصر هر بعد آرایه با هم یکسان باشد.
  • به تعداد کل درایه‌های یک آرایه اندازه (size) آن آرایه گویند.

اسلاید 4 :

مثال اعلام متغیر اندیسدار، یک بعد و بیش از یک بعد

  • R‌e‌a‌l, D‌i‌m‌e‌n‌s‌i‌o‌n(100) :: R
  • R‌e‌a‌l, D‌i‌m‌e‌n‌s‌i‌o‌n(10,10) :: S
  • R‌e‌a‌l :: T(10,10)
  • Integer, Dimension :: L(2,3)
  • Integer, Dimension(5) :: A, B(2,3)
  • R‌e‌a‌l, D‌i‌m‌e‌n‌s‌i‌o‌n(15) :: X
  • R‌e‌a‌l, D‌i‌m‌e‌n‌s‌i‌o‌n(3,5) :: Y, Z
  • به دو مثال اخیر توجه کنید. متغیر X دارای رتبه یک و متغیرهای Y,Z دارای رتبه دو هستند.
  • اندازه متغیرهای X و Y,Z با هم برابرند.
  • متغیرهای X و Y,Z دارای شکل یکسان نیستند.
  • extent بعد دوم متغیرهای Y,Z برابر 5 است.

اسلاید 5 :

انواع اندیسها

  • فرم کلی اندیس‌ها به صورت زیر است.
  • Real,Dimension(lower_bound:upper_bound) :: array
  • به شرط آن که
  • lower_bound <= upper_bound
  • به مثال‌های زیر توجه کنید.
  • Real, Dimension(5) :: a1
  • Real, Dimension(-2:2) :: b1
  • Real, Dimension(5:9) :: c1
  • هر سه آرایه دارای شکل (shape) یکسان هستند. زیرا دارای ابعاد و extent برابرند.
  • در حالت کلی تعداد درایه در هر بعد را، می‌توان با استفاده از رابطه ساده زیر بدست آورد.
  • Extent = upper_bound – lower_bound+1
  • Real, Dimension(-2:2, 0:3)
  • همانطور که ملاحظه می‌شود هر بعد گستره مربوط به خود را دارد. گستره بعد اول 5 و گستره بعد دوم 4 است.

اسلاید 6 :

استفاده از عناصر متغیرهای اندیسدار مانند متغیرهای عادی

  • هر درایه از آرایه‌ای را می‌توان به صورت یک متغیر معمولی به کار برد. به مثال زیر توجه کنید.

Integer, Dimension(10) :: index

Real, Dimension(3) :: temp

  • دستورات کاملا درست هستند.

Index(10) = 5

Temp(3) = Real(index(1)) / 4.

Write(*,*) 'index(1) =', index(1)

اسلاید 7 :

مقداردهی اولیه درایههای یک آرایه یک بعد

  • همان‌طور که قبلا هم ذکر شد، خیلی از زمان‌ها لازم است که متغیرها را مقداردهی شوند. به مثال زیر توجه کنید.
  • Real, Dimension(10) :: array1
  • Do i = 1, 10
  • array1(i) = real(i)
  • End do
  • دستورات زیر معادل کدهای فوق است.
  • Real, Dimension(10) :: array1
  • array1 = (/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./)
  • و بالاخره می‌توان عمل مقداردهی را به صورت زیر انجام داد.
  • Real, Dimension(10) :: array1
  • array1 = 0.
  • می‌توان عمل مقداردهی را حتی در دستور اعلام نیز گنجاند.
  • Integer, Dimension(5) :: array2 = (/1,2,3,4,5/)

اسلاید 8 :

ادامه مقداردهی اولیه درایههای یک آرایه یک بعد

  • می توان به‌صورت عبارت هم مقداردهی نمود. به مثال زیر توجه کنید.
  • Integer, parameter :: N = 3, M = 6, P = 12
  • Integer :: arr(1:3) = (/ N, M/N, P/N /)
  • توجه کنید که در مثال بالا، گذاشتن parameter اجباری است. ضمناً نمی‌توان در مقداردهی (/…/) از توابع استفاده نمود. اکنون مثال بالا را کمی تغییر می دهیم.
  • Integer, Dimension(3) :: arr
  • Integer :: N = 3, M = 6, P = 12
  • arr = (/ N, M/N, P/N /)

اسلاید 9 :

خطای مازاد اندیسهای آرایه

  • هر درایه یک آرایه به یک اندیس که عدد صحیح است نسبت داده میشود. محدوده را دستور اعلام مشخص می‌کند.
  • Real, Dimension(5) :: a
  • در این مثال اندیس‌ها، اعداد از 1 تا 5 می‌باشند. اگر در محاسبات درایه a(6) رخ دهد. شما خطای out of bound را دریافت می‌کنید.
  • این خطای را می‌توان جزء خطاهای رایج کار با آرایه‌ها محسوب نمود. یافتن این خطا در پاره‌ای از موارد کار ساده‌ای نیست.

اسلاید 10 :

استفاده از مقدار ثابت در اعلام آرایه

  • همان‌طور که ملاحظه شد در ابعاد آرایه می‌توان اعداد صحیح مختلف را به‌کار برد.
  • همچنین می‌توان از یک پارامتر و یا عبارت ثابت نیز استفاده نمود.
  • مثال 1:

Integer, Parameter :: max_size = 100

Real, Dimension(max_size) :: array1

Real, Dimension(max_size) :: array2

Real, Dimension(max_size) :: array3

  • مثال 2:

Integer, Parameter :: max_size = 100

Integer, Dimension(max_size/4) :: array1

Real, Dimension(int(log(Real(max_size)))) :: & array2

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید