- •Министерство образования Российской Федерации Южно-Уральский Государственный Университет Кафедра промышленной теплоэнергетики
- •Построение алгоритмов с простейшей структурой
- •1. Исходные понятия
- •Контрольные задания
- •2. Циклы в алгоритмах
- •3.Контрольные задания
- •4. Домашнее задание по лабораторной работе № 1
- •5. Указания к выполнению домашнего задания.
- •Перечень пунктов
- •Построение алгоритмов с разветвляющейся структурой.
- •1. Сущность разветвлений.
- •Элементы разветвлений
- •Построение разветвлённых циклов, управляемых параметром.
- •Контрольные задания
- •4. Программирование разветвленных алгоритмов
- •Print*, ' введите значение X '
- •Print*, ' введите значение X '
- •Домашнее задание по лабораторной работе №2
- •Лабораторная работа № 3 построение алгоритмов с итерационными циклами
- •Итерационные циклы
- •Контрольное задание по лабораторной работе
- •Контрольное задание
- •Домашнее задание по лабораторной работе № 3.
- •Перечень задач.
- •Лабораторная работа № 4 программирование процедур фортрана
- •1. Внутренние функции
- •7 Print*,’ Требуемое условие не выполняется’
- •7 Print*,’ Требуемое условие не выполняется’
- •2. Внешние функции
- •3. Подпрограммы
- •4. Рекомендации по программированию процедур фортраНа
- •Список литературы
1.1 .Записать
инструкцию для задания переменной К
исходного значения 2
и инструкцию для увеличения её текущего
значения на 3.
1.2 .Записать
инструкцию для присвоения переменой
Т
значения,
которое имеет переменная Р.
Сохранится
ли при этом
значение переменной Р?
1.3 .Составить
алгоритм для вычисления скорости
свободно падающего тела через 7, 19 и
43 секунд. после
начала падения. Предусмотреть вывод
результатов вычислений.Контрольные задания
Рис.1.
2. Циклы в алгоритмах
Рассмотрим алгоритм вычисления величины
(1)
при любых заданных Р и N, где N—положительное целое число. Такой алгоритм не может быть линейным, ибо в инструкциях присваивания не допускаются выражения с непостоянным числом слагаемых (многоточия недопустимы), а для постепенного накопления суммы, указанной в (1), путём прибавления по одному слагаемому потребовалось бы непостоянное число инструкций присваивания, что также недопустимо.
Имеется иная возможность. Инструкцией , в которой используется общий вид слагаемого, можно осуществить постепенное накопление суммы, если предварительно выполнено действие С := 0 и если показано, что эта инструкция выполняется многократно — для значений i := l, 2, 3, ..., N—1, N. Это можно изобразить, например, следующими двумя способами.
1. В блок-схеме изображают цикл — замкнутый контур, образуемый блоками и линиями потока. Тем самым и показывается неоднократное выполнение блоков, составляющих цикл.
Для того чтобы при каждом новом выполнении инструкции выражение представляло новое слагаемое, в цикле вслед за этой инструкцией должна выполняться инструкция i := i + l, что и обеспечивает последовательность значений i: 1, 2, 3 и т. д., если до цикла выполнено действие i:=l. Изменяя свое значение в цикле, переменная С представляет сумму постепенно нарастающего числа слагаемых вида .
Инструкции цикла не должны выполняться бесконечно: последним слагаемым должно быть слагаемое (значение N задано). Поэтому в контур цикла включается блок проверки текущего значения i. Если это значение еще не превышает N, то вновь
выполняются инструкции . Когда значение i превысит N, их выполнение должно прекращаться. Поэтому указанный блок, в общем случае называется блоком проверки условия (в данном случае —условия i N). Он изображается с двумя выходами (рис.2): линия потока, изображающая один из выходов, входит в контур цикла, другая линия потока, соответствующая случаю i > N, связывает данный блок с тем блоком, который должен исполняться по окончании цикла. Надписи “да” и “нет”, записываемые возле выходов, соответствуют случаям выполнения и невыполнения условия, в блоке 6. Переменная, значение которой изменяется в цикле (возрастает или убывает) в заданных пределах и определяет момент окончания цикла, называется параметром цикла (в примере - i). Инструкции задания начального значения параметра цикла, его изменения и проверки обеспечивают организацию цикла, являясь вспомогательными действиями (см. на рис. 2 блоки 3, 5, 6).
2. Поскольку случай изменения параметра цикла по закону арифметической прогрессии типичен, используется специальная инструкция цикла – заголовок (третья по счету в записанном ниже алгоритме), позволяющая сократить запись алгоритма:
1 ВВОД N,P
2 C=0
3 ВЫПОЛНИТЬ ДО 4 (включительно) ДЛЯ i=1,N
4 C=C+1/i
5 X=P•C
6 ВЫВОД Х
Рис. 3
.
Данная запись алгоритма полностью эквивалентна блок-схеме рис. 3: запись i := l, N означает, что значение i изменятся от 1 до N с шагом 1. Для каждого из этих значений вновь и вновь выполняются инструкции, написанные ниже заголовка цикла (инструкция 3), вплоть до той, номер которой указан в заголовке цикла (в данном случае повторно выполняется одна 4-я инструкция). Лишь по окончании всех заданных выполнений инструкции 4 выполняется инструкция 5 и последующие.
Если шаг приращения параметра цикла неравен 1, то этот шаг указывается как последний элемент в записи заголовка цикла. Например, запись К:=1, 50, 2 означала бы, что исходное значение параметра цикла К равно 1, затем К увеличивается на 2, пока не достигнет значение 50.
В языке ФОРТРАН рассматриваемая инструкция заголовка цикла записывается в виде DO 4 I=1,N (DO в переводе с английского означает “выполнять”). В последних версиях ФОРТРАНА допускается запись заголовка цикла без указания номера конечной выполняемой в цикле инструкции, например, DO I=1,N. В этом случае за конечной инструкцией цикла (нашем случае за инструкцией 4) записывается строка: END DO.
Полный текст двух вариантов программ вычисления величины Х согласно блок-схемам рис. 2 и рис.3 приводится ниже.
READ*,N,P C
= 0 I
= 1 C=C+1./I
I = I + 1 IF(I.
LE. N) GO TO 4
X=PC
PRINT*,X
STOP END
Read*, N,P C
= 0 DО
i=1,N C = C + 1./i End
DО X
= X * P Print*,
' X = '
, X Stop
End
Инструкцию цикла разрешается использовать и в блок-схемах. Следует, однако, понимать, что она представляет собой известную условность, а фактически выполняемые ЭВМ действия показывают развернутые блок-схемы типа показанной на рис. 2.
Хотя составляющие цикла, обозначенные на рис. 2, могут иметь различное взаимное положение, инструкция цикла предполагает тот их порядок, который показан на рис. 2 и рекомендуется как основной (отступления от него нежелательны).