- •Определение алгоритма, значения основных символов и правила оформления блок-схем алгоритмов по гост 19.701-90
- •Алфавит языка Паскаль и значения основных символов и знаков препинания в языке Паскаль.
- •Правила записи комментариев в языке Паскаль.
- •Стандартные типы данных в языке Паскаль. Создание пользовательских типов данных в языке Паскаль.
- •Операторы ввода-вывода, форматный вывод и оператор присваивания на схеме алгоритма и в языке Паскаль.
- •Операторы условного и безусловного перехода на схеме алгоритма и в языке Паскаль.
- •Правила записи математических выражений, порядок действий и стандартные математические функции языка Паскаль.
- •Циклы языка Паскаль, их виды, отображение на схеме алгоритма и их программирование в языке Паскаль.
- •Работа с массивами в языке Паскаль.
- •18) Операторы ввода-вывода информации в языке Фортран.
- •Оператор безусловного перехода в языке Фортран.
- •16)Виды циклов в языке Фортран: отражение на схеме алгоритма и программирование.
- •15) Виды оператора ifязыка Фортран: отражение на схеме алгоритма и запись в программе.
- •13)Типы данных в языке Фортран и способы их описания. Правила записи комментариев в языке Фортран.
- •14)Порядок действий и стандартные математические функции в языке Фортран.
- •Работа с текстовыми файлами в языке Фортран.
- •Работа с комплексными числами в языке Фортран.
16)Виды циклов в языке Фортран: отражение на схеме алгоритма и программирование.
Часто в программе необходимо "циклить", т.е. многократно повторять блок одних и тех же операторов. Использование повторяющегося блока можно организовать с помощью операторов управления. Однако во всех современных языках программирования для организации подобных циклических процедур используются специальные конструкции, называемые циклами.
Операторы цикла предназначены для многократного выполнения операторов (тело цикла), находящихся между заголовком оператора DOи оператором CONTINUEс меткой или оператором ENDDO.
Оператор CONTINUEне порождает каких-либо команд и используется для завершения оператора цикла или для ссылок в программе. В качестве оператора, завершающего тело цикла, можно использовать оператор ENDDO. В этом случае в заголовке цикла не указывается метка, а вместо оператора CONTINUEзаписывается ENDDO.
Конструкция цикла DOс шагом имеет вид:
DОn i=ml,m2,m3 DОi=ml,m2,m3
Тело цикла Тело цикла
nCONTINUE ENDDO
Здесь n- метка последнего оператора тела цикла (оператора CONTINUE); i- переменная целого, вещественного или вещественного двойной точности типа, которая называется параметром цикла, ml, m2, m3 - константы, переменные или арифметические выражения целого, вещественного или вещественного двойной точности типов. После метки nможет стоять необязательная запятая. Величина mlопределяет начальное значение параметра цикла, m2 — конечное
значение параметра цикла, а m3 — шаг или приращение.
Правило выполнения: Оператор DOавтоматически исполняет все операторы до оператора CONTINUEс меткой nдля значений iот mlдо m2 с шагом m3. Таким образом, вначале параметр iустанавливается равным ml, и с этим значением выполняются все операторы тела цикла; затем iизменяется до величины m1+m3, и с этим значением также выполняются все операторы тела цикла. Этот процесс продолжается до тех пор, пока параметр цикла не перейдет границу значения m2, т.е. при положительном шаге m3 цикл повторяется при всех значениях i<m2, а при отрицательном шаге m3 цикл повторяется при всех значениях i>m2. Если в записи цикла значение шага m3 отсутствует, то оно принимается равным единице. После окончания цикла выполняется оператор, следующий за оператором CONTINUE. Примеры заголовка цикла: D0 10 I=1,N-1 DO5, A=K,X*Y+5,H
При записи заголовка цикла необходимо следить за тем, чтобы шаг не оказался равным нулю (иначе цикл будет бесконечным).
Пример использования оператора цикла. Пусть задана функцияf(x)в виде ряда по степеням х
f(x)=x+ X2/2+ X3/3+..+Xn/N
где N - параметр.
Программа, которая для любых Х и N вычисляет соответствующее значение функции F, может иметь следующий вид READ(*,*)X,NF=0
D0 5 I=1,N! илиDO 1=1,N F=F+(X**I)/I 5 CONTINUE !илиEND DO WRITE (*,*)F STOP END
Конструкция цикла с условием DOWHILEимеет вид
DO n WHILE(L)DOWHILE(L)
Телоцикла Телоцикла
nCONTINUE ENDDO
Здесь n- метка последнего оператора тела цикла (оператора CONTINUE); L- логическое выражение. После метки nможет стоять необязательная запятая. Правило выполнения: Вычисляется логическое выражение L. Если оно принимает значение .TRUE., то выполняются все операторы тела цикла до оператора CONTINUEс меткой n. Этот процесс продолжается до тех пор, пока логическое выражение не примет значение .FALSE. Тогда ни один оператор тела цикла не исполняется и выполняется оператор следующий за CONTINUE.
Примеры заголовка цикла
DO25 WHILE(X**2+Y**2.LE.R**2) DO 10,WHILE(Y.GE.A.OR.X.GE.B) Пример использования оператора DOWHILE. Пусть задана функцияf(x)в виде ряда по степеням х.
f(x)=1-x+ X2/2-X3/3+...+(-1)n(ХN/N)...
Суммирование членов ряда в программе будем производить до тех пор, пока модуль члена ряда не станет меньше заданной величины Е. Программа, реализующая данный алгоритм, может иметь следующий вид READ(*,*)X,EF=1.0 А=-Х
DO 10 WHILE(ABS(A).GE.E) F=F+A
I=I+1
A=-X*A/I
10 CONTINUE
WRITE(*,*)F
STOP
END
В приведенной программе присутствует обращение к библиотечной функции Фортрана ABS, которая вычисляет абсолютное значение вещественной величины.
Правила использования операторов цикла:
При использовании операторов цикла необходимо придерживаться следующих правил:
Если оператор цикла указан внутри другого DO-цикла, его тело должно полностью содержаться внутри тела внешнего DO-цикла (вложенность циклов).
Если оператор DOуказан внутри блоков IFTHENили IFTHENELSE, то тело цикла должно полностью содержаться внутри блока.
Если блочный оператор IFуказывается внутри цикла, то связанный с ним оператор ENDIFдолжен находится внутри тела цикла.
Переход в тело DO-цикла извне цикла не разрешен.
Два или более циклов DOили DOWHILEмогут оканчиваться одним терминальным оператором CONTINUE. Однако оператор ENDDOможет быть концом только одного цикла.
При выходе из цикла сохраняется текущее значение параметра цикла iдля DO-цикла или значение логического выражения Lдля DOWHILEцикла. Для выхода из цикла может быть использован оператор безусловного перехода GOTOи специальный оператор Exit(в Фортране 90).
Примечание. Цикл DOWHILEсчитается устаревшей конструкцией; планируется замена его "глухим" циклом do
If<логическое выражение>exitenddo
с возможной перестановкой условного оператора и блока [Рыжиков].