کامپیوتر و IT و اینترنتعلوم مهندسی

متغیرهای اندیس‌دار یا زیرنویس‌دار

صفحه 1:
متغیرهای اندیس‌دار با زیرنویس‌دار

صفحه 2:
(Array) 4,7 | * آرايه كروهى از متغيرها يا ثابتها هستند كه نوع آنها يكى ‎gulls col‏ ا دی ناه مشب ‎Array a ‎a(1) ‎a(2) ‎a(3) ‎a(4) ‎a(5) ‎ ‎ ‏حافظه رایانه ‎ ‎ ‎ ‎ ‎ ‎

صفحه 3:
نمایش متغیر به صورت آرایه ‎Do i = 1, 100‏ ‎a(i) = SQRT(a(i))‏ ‎End do‏ :جزییات حلقه فوق به صورت زیر است ‎a(1) = SQRT(a(1))‏ ‎a(2) = SQRT(a(2))‏ 1 ‎a(100) = SQRT(a(100) )‏

صفحه 4:
دسنور اعلام متغیر اندیس‌دار ‎Real, Dimension(10) :: X‏ = ‎Character(len = 20), Dimension(50) :: &‏ = 1256 آرایه مي‌تواند با یک یا چند بعد معرفی شود. تعداد ابعاد یک آرایه را ‎(TANK) 45,‏ نامند. در مثال فوق رتبه متغیرهای 2۶ و 6 185 برابر یک است. تعداد عناصر یک بعد را 626610 آن گویند. در متغیر 2 برابر ۱۰ در متغیر 118106 186 برابر ۵۰ است. ترکیبی از ۲8016 و 621610 هر آرایه را شکل (606) آن آرايه نامند. ‎au‏ دیراد دارای بت شکل منت اكر رنه مداد ع اي كاد 2 به تعداد کل درایه‌های یک آرایه اندازه (5126) آن آرایه گویند. 4

صفحه 5:
| مثال اعلام متغیر اندیس‌دار» یک بعد و بیش از یک بعد ‎Real, Dimension(100) :: R‏ Real, Dimension(10,10) :: S Real :: T(10,10) Integer, Dimension :: L(2,3) Integer, Dimension(5) :: A, B(2,3) Real, Dimension(15) :: X Real, Dimension(3,5) :: Y, Z ‎go 4‏ مثال اخیر توجه کنید. متغیر 6 دارای رتبه یک.و متغیرهای .۷,2 را رت وه ‎ ‎ ‏* اندازه متغیرهای ‎YZ 9X‏ با هم برابرند. * متغیرهای ۶و را دارای شکل یکنان نیستند. ‏* 6261:6110 بعد دوم متغیرهای2 رل برلبر ۵ لست ‎5 ‎

صفحه 6:
انواع اندبس‌ها فرم کلی اندیس‌ها به صورت زیر است. ‎Real, Dimension(Lower_bound:upper_bound) :: array‏ به شرط آن كه ‎lower_bound <= upper_bound‏ به مثالهاى زير توجه کنید. 21 = Real, Dimension(5) = Real, Dimension(-2:2) 891 = Real, Dimension(5:9) :: cl Syl, EXtent 4 ole! ‏يكسان هستند. زيرا داراى‎ Shape) ‏هر سه آرلیه دارای شکل‎ ‏دراحالت کلی تعداد درایه در هر بعد را. می‌توان با استفاده از رابطه ساده زیر پدست آورد.‎ = Extent = upper_bound — lower_bound+1 = Real, Dimension(-2:2, 0:3) همانطور که ملاحظه می‌شود هر بعد گستره مربوط به خود را دارد. گستره بعد اول ۵ و گستره بعد دوم #است.

صفحه 7:
| استفاده از عناصر متغیرهای اندیس‌دار مانند متغیرهای عادی | * هر درایه از آرایه‌ای را می‌توان به صورت یک متغیر معمولی به کار برد. به مثال زیر توجه کنید. ‎Integer, Dimension(10) :: index‏ ‎Real, Dimension(3) :: temp‏ ۳ دستورات کاملا درست هستند. ‎Index(10) = 5‏ ‎Temp(3) = Real(index(1)) / 4.‏ ‎Write(*,*) ‘index(1) =', index(1)‏

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

صفحه 9:
| ادامه مقداردهی اولیه درایه‌های یک آرایه یک بعد " می توان به‌صورت عبارت هم مقداردهی نمود. به مثال زیر توجه کنید. ‎Integer, parameter :: N = 3, M = 6, P = 12‏ = ‎Integer :: arr(1:3) = (/ N, M/N, P/N /)‏ " * توجه کنید که در مثال بالاء گذاشتن 0810111616۳ اجباری است. صمنا نمی‌توان در مقداردهى ‎Geni)‏ از توابع استفاده نمود: اکنون مثال بالا را کمی تغییر می دهیم. ‎Integer, Dimension(3) :: arr‏ = ‎Integer :: N= 3, M=6, P = 12‏ = ‎arr = (/ N, M/N, P/N /)‏ "

صفحه 10:
خطاى مازاد اندي سهاى آرايه هر درایه یک آرایه به یک اندیس که عدد صحیح است نسبت داده ميشود. محدوده را دستور اعلام مشخص می‌کند. " Real, Dimension(5) :: a ‏در‎ seek ۵ ‏در اين مثال انديس ها اعداد از | نا‎ Out Of ‏محاسبات درايه (3)6 رخ دهد. شما خطای‎ ‏را دريافت مىكنيد.‎ 0 ‏اين خطاى را مىتوان جزء خظاهاى رايج كار با آرايهها‎ ‏محسوب نمود. يافتن اين خطا در يارهاى از موارد كار سادهاى‎ نيست. 10

صفحه 11:
استفاده از مقدار ثابت در اعلام آرایه * همان‌طور که ملاحظه شد در ابعاد آرایه می‌توان اعداد صحیح محتلف را Sp ya ‏همچنین می‌توان از یک پارامتر و یا عبارت ثابت نیز استفاده نمود.‎ * ‏متا‎ ‎Integer, Parameter :: max_size = 100 Real, Dimension(max_size) :: arrayl Real, Dimension(max_size) :: array2 Real, Dimension(max_size) :: array3 Anges! Integer, Parameter :: max_size = 100 Integer, Dimension(max_size/4) :: arrayl Real, Dimension(int(log(Real(max_size)))) :: & array2 11

صفحه 12:
12 کر مثال | برای تخصیص حداکثر ‎Program REVERSE‏ = ‎"Integer :: i, n‏ ‎Real, Dimension(1000)‏ "= ‎"Read*, n, (X(i), i=1, n)‏ 1- ر1 2 1 ۰0۵ ۰۳۲10] *, ۱)1( "End do " End program REVERSE

صفحه 13:
منال ۲ برای تخصیص حداکنر 3 PSS . اعلان‌های زیر مفروض است. ‎Integer, parameter :: L_BOUND = 3, U_BOUND = 10‏ = ‎Integer, Dinemsion(L_BOUND:U_BOUND) :: x‏ = ol eouNe, Do i = L BOUND, U_BOUND U_BOUND : ‘i ‏دنه‎ if (MODG,2) == 0) Then ۳ :)( < 0 array x() has 3,4,5, Else we 10 x(@) =1 End if End do 277۲۵۲ ۲0 1 0 1 0 1 0 13

صفحه 14:
عملیات آرایه‌ای (۱) Implicit none Integer :: I Real, Dimension(4) :: a = (/1.,2.,3.,4./) Real, Dimension(4) :: b = (/5.,6.,7.,8./) Real, Dimension(4) :: c, d ! Element by Element addition Doi=1, 4 c(i) = a(i) + b(i) End do 14

صفحه 15:
عملیات آرایه‌ای (۲) ! Whole array addition d=a+b ! Write out results Write(*,100) 'c', c Write(*,100) ۰۵0۳, 0 100 format(' ', A, '=', 4(F6.1,1X)) End ‏در این مثال آرایه‌ها حتما باید دارای شکل (5118060) یکسان باشند.‎ 15

صفحه 16:
| عملیات آرابه‌ای (۳) ؟ به مثال زیر توجه کنیب که یک ضرت عدد در آرانه است. ‎Real, Dimension(4) :: a= &‏ "= ‎G23 Fela Che‏ ‎Real :: b = 10‏ * = a*b ۰ a 1 =" Real,Dimension(4) :: a=(/-1.,2.,-3.,4./) = write(*,*) ABS(a) 16

صفحه 17:
ورودی و خروجی در آرایه‌ها (۳) ‎Write(*,1000) (i, 2*i, 3*i, i = 1, 3)‏ ‎format(1X, 916)‏ 1000 پاسخ در یک سطر به صورت زیر چاپ می‌شود. 9 6 3 6 4 2 3 2 1 حلقه 00 ضمنى مىتواند تودرتو باشد. به مثال زير توجه كنيد. (1:<2- 2 1 ,(3 ,1 < ژ ر,ژ ,ذ6) (۱۷۳1۲6)*,160 ‎format(1X, I5, 1X, 15)‏ 100 ياضخ بفرهورت رآ مو مو يو رم زم زم سو رم ين تررم بن 17

صفحه 18:
| قفاوت بين حلقه 00 عادی و حلقه 00 ضمنی * همان‌طور که ملاحظه ‎gb ce‏ دو نوع حلقه 00 وجود دارد که اکنون با مثال زیر می‌توان تفاوت ‎On‏ آن‌ها را مشاهده نمود. ‎Integer, Dimension(5) :: arr = (/1,2,3,4,5/)‏ = ‎Do i=1,5‏ " ‎Write(*,1000) arr(i), 2*arr(i), 3*arr(i)‏ ° ‎format(1X, 616)‏ 1000 ۰ ‎End do‏ = * اکنون به همین مثال به شکل دیگر توجه کنید. ‎Write(*,1000) (arr(i), 2*arr(i), 3*arr(i), i =‏ * )1,5 ‎format(1X,616)‏ 1000 = 18

صفحه 19:
19 10 5 5 12 * پاسخ 00 ضمنی 15 10 * پاسخ 00 عادی | قفاوت بين حلقه 10 عادی و حلقه 00 N ‏جح هت فق اص‎ N tT ‏فى‎ © > 6 بم س 8 وه ۱ oo

صفحه 20:
| نحوه تخصیص حافظه در آرایه دو بعدی به ماتریس زير توجه کنید. A(1,1) A(2,1) A(3,1) A(1,2) A(2,2) A(3,2) =p نحوه قرار گرفتن در حافظه 20 A(1,2 A(2,2 A(3,2 A(L,1 A(2,1 A(3,1 oe ‏دو‎ al)

صفحه 21:
| _ نحوه تخصیص حافظه در آرایه سه بعدی * آرایه سه بعدی 2< 22 21 Roy beh Sond S121 5 Soll ۳ ‏یرت‎ ‎wat 2,2 ae 910 3 0111 1,252 2,2,2 2 1,1,2 ۲,۱,۱

صفحه 22:
* به مثال زیر توجه کنید. ‎Integer, Dimension(4,3) ::‏ = مقداردهی آرایه‌های دو بعدی (۱) مقداردهی با استفاده از نسبت دادن 22 istat 3 => *"Doi=1, 4 °Do j =1, Jistat(i, j) =j ° End do = End do

صفحه 23:
مقداردهی آرایه‌های دو بعدی (۲) * مقداردهی با استفاده از دستور ۲680 به مثال زیر توجه کنید. * فرض کنید که داده‌ها از روی فایلی به نام ‎initial.dat‏ ‏خوانده شود که دارای ساختار زیر است. 3 3 3 ۵ (4 * کدهای برنامه به صورت زیر است. :: 153+ 23 ‘initial.dat') Integer, Dimension(4,3) Open(7, file = Read(7,*) istat

صفحه 24:
| مقداردهی آرایه‌های دو بعدی (۴) * اما اگر ساختار فایل ورودی به شکل زیر بود. ۳۱1 2 9:12 ‏و‎ 12 3-4123 ‏کدهای برنامه به صورت زیر است.‎ * "Integer :: i, j " Integer, Dimension(4,3) :: istat " Open(7, file = ‘initial.dat') " Read(7,*) ((istat(i,j), j = 1, 3), 1 2 1 4( 24

صفحه 25:
زیر آرایه‌ها © تاکنون عهلیات روی کل ذرايدها یک آرابه انجام شد. اما می‌توان عملیات را روی زیرمجموعه‌ای از درایه‌های یک آرایه متمرکز نمود. فرم کلی آن به صورت زیر است. ‎subscript _1 : subscript 2 [: stride]‏ " * 1 51105011۳0 ن_شان‌هنده اولینندیسلست ‎٩110501101 2 *‏ ن_شا‌هندم آخریرلندیسلست * 511106 ن شان‌هندم گام‌هایلفزلیشلست * در واقع این رویه مانند یک حلقه 00 عمل می‌کند. 25

صفحه 26:
مثال زير آرایه در یک بعد ‎Integer ::i=3,j=7‏ Real, Dimension(10) :: a = (/1.,-2.,3.,-4.,5.,- 6.,7.,-8.,9.,-10./) اکنون به پاسخ زیر ارایه‌های زیر توجه کنید. 2-0 ,111-49-0 200 a(ijj:j) 03. a(i:) 0 3.,-4.,5.,-6.,7.,-8.,9.,-10 a(:j). 0 1.,-2.,3.,-4.,5.,-6.,7. a(::i) 0 1.,-4.,7.,-10. 26

صفحه 27:
مثال زير آرایه در یک بعد ‎Integer ::i=3,j=7‏ Real, Dimension(10) :: a = (/1.,-2.,3.,-4.,5.,- 6.,7.,-8.,9.,-10./) اکنون به پاسخ زیر ارایه‌های زیر توجه کنید. 2-0 ,111-49-0 200 a(ijj:j) 03. a(i:) 0 3.,-4.,5.,-6.,7.,-8.,9.,-10 a(:j). 0 1.,-2.,3.,-4.,5.,-6.,7. a(::i) 0 1.,-4.,7.,-10. 27

صفحه 28:
28 ساق گنک نگاو ‎ll‏ a ~— x 222 oS AA ‏ه‎ 58 8 8 2۵ ۲ 8 2 3 4 5 * به مثال زیر توجه کنید. مثال زیر آرایه در دو بعد

صفحه 29:
29 Saree oS AA ‏ه‎ 5 8 8 2 ۲ 8 ‏سل سه ارقا‎ 1 لا Ath) = 2 234 ot 2 دنباله مثال قبل

صفحه 30:
۸۸)1 : 31: 5 : 2( i ‏ها‎ 8 2 3 ه > 8 28 5 ه م 8 5 ع حسام dovedosudly | ۳ دنباله مثال ة

صفحه 31:
| تناظر در آیه به د رآیه دو ماتربس در تساوی کلی Real, Dimension(1:3,1:2) :: matrice1 Real, Dimension(-1:1,0:1) :: matrice2 matricel = matrice2 ‏اکنون اگر بخواهید در عملگر انتساب تفکیک درایه به درایه دو‎ * ‏ماتريس بالا را ملاحظه کنید. به بسط زیر توجه نمایید.‎ matrice1(1,1) = matrice2(-1,0) matrice1(2,1) = matrice2(0,0) matrice1(3,1) = matrice2(1,0) matrice1(1,2) = matrice2(-1,1) matrice1(2,2) = matrice2(0,1) matrice1(3,2) = matrice2(1,1) 31

صفحه 32:
| ساز کاری زير آرایه‌ها 2۱ ‏مفال‎ ۳ REAL :: A(1:6, 1:8), B(0:3, -5:5), C(0:10) A(2:5, 1:7) = B(:, -3:3) ! both have shape (4, 7) A(4, 2:5) = B(:, 0) + C(7:) ! all have shape (4) C(:) = B(2, :) ! both have shape (11) يمنال ‎INTEGER :: arr1(1:100), arr2(1:50), arr3(1:50)‏ ‎arr1(1:100:2) = arr2 ! Sets every odd element‏ arr1(100:1:-2) = arr3 ! Even elements, reversed arrl = arr1(100:1:-1) ! Reverses the order of arrl 32

صفحه 33:
توایع کتابخانه‌ای آرابه‌ها 3 ا تب و سس ی تا ۱ ها بك شيك زدر SHAPE(x) ! The shape of x RESHAPE(x, shapel, pad][, order]) SIZE(x [, Dim ]) ! The size of x LBOUND(« [, Dim]) ! The nth lower bound of x UBOUND(x [, Dim]) ! The nth upper bound of x MINVAL(x) ! The minimum of all elements of x MINLOC(x) ! The index of the minimum MAXVAL(x) ! The maximum of all elements of x MAXLOC(x) ! The index of the maximum SUM(x [, Dim]) ! The sum of all elements of x PRODUCT(x [, Dim]) ! The product of all elements of x TRANSPOSE(x) ! The transposition of x DOT PRODUCT(x, y) ! The dot product of x and y MATMUL(x, y) ! Matrix multiplication 33

صفحه 34:
shape ‏تابع‎ 0 اين تابع شکل آرایه (بعد و گستره) را نشان می‌دهد. شکل عمومى به صورت زير است. ‎shape(source)‏ = Jue" * Integer, Dimension(-2:27,0:49) :: t " print*, shape(t) * خروجی عبارتست از: 50 #00 34

صفحه 35:
| تابع ‎Reshape‏ ‏0 این تابع شکل یک آرایه را عوض می‌کند. شکل عمومی به صورت زیر است. ‎Reshape(source, shapel[, pad][,‏ " ‎order])‏ : ‏تال‎ ‎* Integer, Dimension(2,2) :: A " A= Reshape((/1,2,3,4/), (/2,2/)) ١| ‏.انه‎ Sp ۳ ۴ 35

صفحه 36:
| دنباله تابع 65۳۵06 :۲ ‏مثال‎ * = Integer, Dimension(2,2) :: A " A= Reshape((/ 1,2,3,4/), (/2,2/), order=(/2,1/) ١ 5 ١ GOS Se ۳ ۴ ۲ ‏هنال‎ " " B = Reshape((/ 1,2,3,4,5,6/), (/2,4/), (/0/), [ء]07:70[7]0 36

صفحه 37:
Size wt ‏در این تابع می‌توان تعداد کل عناصر یک آرایه و یا یکی از‎ * ‏ابعاد آن را به دست آورد. نحوه آن عبارتست از:‎ * Size(source[, Dim]) Jue" * Real A(2, 3, 5) ° Size(A, 1) 12 * Size(A) 0 30 37

صفحه 38:
تابع 111 در یک بعد * در این تابع می‌توان مجموع عناصر یک آرایه و یا یکی از ابعاد آن زابه دست اورد. تجوه آن عبار تست از: ‎Sum(source[, dim] [, mask])‏ = ‎Integer :: w(1:11) = (/7,9,-‏ ¢ )/2,4,8,10,2,7,10,2,1 ° Print*, sum(w) Oe) eEnd ۱9 ‏و | | ه|‎ | 4۵۱ 6 | ۱۵۱6 9 38

صفحه 39:
تابع 911170 در دو بعد = Integer w(2,11) " w = reshape((/7, 9, -2, 4, 8, 10, 2, 7 10,2, 10; ood & * 10,-2, -2, 7, 2, 9, -2/), (/2,11/), order = (/2,1/)) 5 print*_sum(w,dim=]) _,) * End i ‏|ه- |9 ام‎ © | 8 ۱ ©| 0 3 1o| @| ela ۵۵۵۱۱۵] ‏"مه‎ 6 4649 9 8 9 © 06 08 00 4 39

صفحه 40:
Product wt * در این تابع می‌توان حاصل‌ضرب عناصر یک آرایه و یا یکی از ابعاد آن را به دست آورد. نحوه آن عبارتست از: eae * Product(source[, dim][, mask]) = Print*, Product(A, dim=1) 2 12 30 = Print*, Product(A, dim=2) 15 48 1 ‏و‎ | A= Bs 40

صفحه 41:
All | So 13 5 8 3 | 2 4 6 ۳۱ 4+ 8 * تابع کتابخانه‌ای ۸11 به صورت زیر است. ‎All(mask[, dim])‏ = ۰ * مقایسه روی ستون * Print*, All(A/=B,dim=1) IT F F © مقایسه روی سطر ‎Print*, All(A/=B,dim=2) 0 F F‏ " 41

صفحه 42:
Any ‏دو ماتریس ۸و 3 به صورت زیر هستند.‎ 1 ‏سي‎ (025 8 4 7 6 4 2 * تابع کتابخانه‌ای ۸۸1137 به صورت زیر است. ‎Any(mask[, dim])‏ = " مقایسه روی ستون ‎Print*, Any(A/=B, dim=1) 1 T F T‏ " " مقایسه روی سطر ‎Print*, Any(A/=B, dim=2) 1 T T‏ = 42

صفحه 43:
| ترانهاده یک ماتریس * تابع ذاتی ۳01050096 یک ماتریس را ترانهاده می‌نماید. ‎TRANSPOSE(X) mead P X,‏ * * در این تابع. آرایه دو بعدی (ماتریس) است ولی لزومی ندارد که ماتریس مربع باشد. 43

صفحه 44:
۲ 10[ ‎pete eRe a ae .‏ ‎Dot _Product(X, Y) meg@nxX, Y,P Z‏ " * این دستور فقط در بردارها (آرایه یک بعدی با طول و نوع یکسان) عمل می‌کند. به مثال زیر نگاه کنید. ‎Integer :: A1(1:6)=[1,3,5,2,4,6]‏ * ‎Integer :: B1(1:6)=[0,3,5,7,4,8]‏ " ‎C=Dot Product(A1, B1)‏ " ‎Print’; ©‏ * 44

صفحه 45:
MatMul * در اینجا دستور ضرب ماتریس‌ها به همان روش که در ریاضیات مرسوم است. انجام می‌شود. به عبارت دیگر اگر یک ماتریس (ر) در یک ماتریس ([,16) ضرب شود. ماتریسي ‎wales (J) Sole‏ " MatMul(X, Y) mear@ X,, ‏رح م۲‎ * ‏اکنون به مثال زیر توجه کنید.‎ * Integer, Dimension(2,3) :: A Integer, Dimension(3,2) :: B Integer, Dimension(2,2) :: C A=Reshape( (/1,2,3,4,5,6/), (/2,3/) ) B=Reshape( (/0,7,3,4,5,8/), (/3,2/) ) C = MatMul(A, B) Print*, C 45

صفحه 46:
Where construct | ‏*_فرض کنید می‌خواهید لگاریتم پاره‌ای از عناصر یک ماتریس را بگیرید.‎ Do and if construct 090 1 2 1, « Doj=i1,n If(value(i, j) > @.) Then Logval(i, j) = log(value(i, j)) Else Logval(i, j) = -99999 End if End do End do WHERE construct Where(value > 0.) Logval = log(value) Elsewhere logval = -99999 End where 46

صفحه 47:
Forall construct Do and if construct Doi=1, m Do j =1,n If(work(i, j) /= 0.) Then work(i, j) = 1./ work(i, j) End if End do End do Forall construct Forall(i = 1:m, j = 1:n, work(i, j) /= 0.) work(i, j) = 1./ work(i, j) End Forall 47

صفحه 48:
* تخصیص ایستای ‎static MEMOTY) as‏ ‎allocation‏ ‏ای انذاره هی هام تشن دار دای هر سیر دشر استاق نامه معین می‌شد. به این نحوه تخصیص, که از ابتدا تا انتهای برنامه مدا ار ی ی ی ها با * تخصيص يوياى ‎dynamic memory) abil>‏ ‎allocation‏ ‏را رس با حافطة بد متثير اختطاض دنه مر بنابراین حافظه تخصیص یافته به هر متغیر اندیس‌دار می‌تواند در طول برنامه تغییر کند. که به آن تخصیص پویا گویند. 48

صفحه 49:
نحوه اعلان تخصیص شناور يا بويا "Real, Allocatable, Dimension(:) :: arr1 ‏در اینجا یک آرایه یک بعدی اعلان شده است که اندازه بعد آن معین نشده است.‎ "Real, Allocatable, Dimension(:,:) :: arr2 ‏در اینجا یک آرایه دو بعدی اعلان شده است که اندازهابعاد آن معین نشده است.‎ Jeet Integer, Allocatable, Dimension(:) :: nums Integer :: temp, i, k, n_to_sort Print'(A\)', ‘How many numbers to sort:* Read*, n_to_sort allocate( nums(1:n_to_sort) ) DO i = 1, n_to_sort Read*, nums(i) End DO IF(Allocated(nums)) Deallocate(nums) 49

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
29,000 تومان