پاورپوینت عمليات تکرار (pptx) 23 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 23 اسلاید
قسمتی از متن PowerPoint (.pptx) :
بنام خدا
1
2
عمليات تکرار Repetition
از مهمترين ويژگيهای هر زبان برنامه نويسی است که اجازه می دهد تا يک بلوک از دستورات مکرراً اجرا گردد.
ساختار DO (DO Construct) در فرترن
جهت تکرار بلوک هايي از دستورات مختلف
فرم کلی
[name:] DO [Control Clause شرط کنترل ]
block
END DO [name]
3
انواع حلقه های DO
حلقه با تکرار نامحدود
[name:] DO
block of statements
END DO [name]
باعث تکرار بلوک تا بی نهايت می گردد
مثال:
e=1.0; k=1; j=1
DO
e=e+1.0/REAL(j)
k=k+1
j=j*k
END DO
در اين نوع حلقه برنامه به وضوح متوقف نمی شود
برنامه تا انجا ادامه می دهد تا j از برد پردازنده بيشتر شود
4
کنترل حلقه DO بی نهايت
دستور EXIT ( همراه با دستور IF)
کنترل به اولين دستور بعد از END DO می رود
مثال:
INTEGER::ifib(100)
Ifib(1)=1; ifib(2)=1; i=3
DO
ifib (i)=ifib(i-1)+ifib(i-2)
i=i+1
IF(i>100)EXIT
END DO
5
دستور STOP
دستوری ساده ولی قوی (شبيه تابع exit در C)
اين دستور اجرای برنامه را در هر جا که باشد (ازجمله داخل حلقه تکرار) متوقف می کند
اين دستور با يد همراه با نوعی از دستور IF باشد
IF (condition) STOP
يا
IF (condition) THEN
block of statements
STOP
END IF
6
حلقه DO WHILE
فرم کلی
DO WHILE (condition)
block of statements
END DO
ماداميکه condition به صورت TRUE باشد حلقه تکرار خواهد شد در غير اينصورت کنترل به دستور بعد از END DO می رود
اين حلقه معادل حالت زير است:
DO
IF (.NOT. condition) EXIT
block of statements
END DO
7
مثال
x=1.0; y=1.0; z=1.0; count=0
Sample:DO WHILE ((x**2+y**2+z**2)<1000000.0)
xplus=10.0*(y-x)
yplus=x*z+28.0*x-y
zplus =x*y-8.0*z/3.0
Test=ABS(xplus)+ABS(yplus)+ABS(zplus)
IF (test<=0.000001)EXIT
Count=count+1
END DO sample
8
دستور CYCLE در حلقه های DO
برای جهش به پايين بلوک و برگشت به ابتدای آن ولی با اين دستور کنترل از حلقه خارج نمی شود
معادل continue در C
Do
WRITE(*,*) “type the password”
READ(*,*)yourword
IF (yourword/=password)CYCLE
WRITE(*,*)”that’s right, now type a new password”
READ(*,*) password
WRITE(*,*) “the new password is”,password
EXIT
END DO
اگر کلمه رمز درست تايپ نشود کاربر هرگز نمی تواند از حلقه خارج شود
9
حلقه های متداخل و دستور های EXIT و CYCLE
به منظور جلوگيری از اغتشاش بهتر است حتماً حلقه ها دارای اسم باشند (به مثال زير توجه شود)
PROGRAM averscore
REAL :: mark, average
INTEGER:: stid, loop ,n
WRITE(*,*)”type in the number of students”
mainloop: DO
WRITE(*,*) 'Please give student id'
READ(*,*) stid
IF (stid==0) EXIT mainloop
average=0
innerloop: DO loop=1,n
WRITE(*,*) 'Please enter mark'
READ(*,*) mark
IF (mark==0) CYCLE innerloop
negs: IF (mark<0) THEN
WRITE(*,*) 'Wrong mark. Start again'
CYCLE mainloop
END IF negs
average=(average+mark)
END DO innerloop
average=(average)/n
WRITE(*,*) 'Average of student',stid,' is = ',average
END DO mainloop
END PROGRAM averscore
اگر در دستور CYCLE نام حلقه مشخص نشود تکرار در داخلی ترين حلقه مد نظر قرار می گيرد