- •Министерство образования Российской Федерации Южно-Уральский Государственный Университет Кафедра промышленной теплоэнергетики
- •Построение алгоритмов с простейшей структурой
- •1. Исходные понятия
- •Контрольные задания
- •2. Циклы в алгоритмах
- •3.Контрольные задания
- •4. Домашнее задание по лабораторной работе № 1
- •5. Указания к выполнению домашнего задания.
- •Перечень пунктов
- •Построение алгоритмов с разветвляющейся структурой.
- •1. Сущность разветвлений.
- •Элементы разветвлений
- •Построение разветвлённых циклов, управляемых параметром.
- •Контрольные задания
- •4. Программирование разветвленных алгоритмов
- •Print*, ' введите значение X '
- •Print*, ' введите значение X '
- •Домашнее задание по лабораторной работе №2
- •Лабораторная работа № 3 построение алгоритмов с итерационными циклами
- •Итерационные циклы
- •Контрольное задание по лабораторной работе
- •Контрольное задание
- •Домашнее задание по лабораторной работе № 3.
- •Перечень задач.
- •Лабораторная работа № 4 программирование процедур фортрана
- •1. Внутренние функции
- •7 Print*,’ Требуемое условие не выполняется’
- •7 Print*,’ Требуемое условие не выполняется’
- •2. Внешние функции
- •3. Подпрограммы
- •4. Рекомендации по программированию процедур фортраНа
- •Список литературы
Print*, ' введите значение X '
read*, X
if(X.LT.0) go to 6
K1=K1+1
if(X.GT.0) go to 11
K=K+1
go to 12
S=S+X
print*, ' значение Х= ', X
go to 12
S1=S1+1
i=i+1
if(i.LE.N) go to 4
SA=S1/K1
print*,' K=', K, ' S=', S, ' SA=', SA
stop
end
Другая форма записи логического оператора в общем виде выглядит так:
if(логическое условие) then
<группа операторов>
else
<группа операторов>
end if
В сокращённом виде:
if(логическое условие) then
<группа операторов>
end if
Предыдущая программа с использованием такого оператора запишется:
K=0
K1=0
S=0
S1=0
print*, ' ВВЕДИТЕ ЗНАЧЕНИЕ N '
read*, N
i=1
Print*, ' введите значение X '
read*, X
if (X.LT.0) then
S=S+X
print*, ' значение Х= ', X
else
K1=K1+1
if(X.GT.0) then
S1=S1+1
else
K=K+1
еnd if
end if
i=i+1
if (i.LE.N) then
go to 4
end if
SA=S1/K1
print*,' K=', K, ' S=', S, ' SA=', SA
stop
end
Рассмотренные операторы называются операторами управления.
При размещении представлений блоков в программе следует:
а) начинать представлять блоки от начала блок-схемы, записывать представления блоков в той же последовательности, которая определяется соединяющими блоки линиями потока;
б) при наличии разветвлений расчленять блок-схему на отдельные цепи блоков, к которым применять вышеуказанное правило;
в) заканчивая представление цепи блоков, проверять, не требуется ли дополнить его оператором безусловного перехода;
г) хотя размещение представлений цепей блоков может быть различным, в целях компактного представления циклов не следует разделять представления составляющих их цепей блоков какими-либо другими;
д) в программе цикл оканчивать представлением блока изменения параметра цикла и блока управления циклом, т.е. эти блоки рассматривать последними среди блоков цикла;
е) обязательно снабжать метками те операторы, которые выполняются непосредственно после проверки условия, и операторы, ко входу которых в блок-схеме идет не одна линия потока, ибо эти метки потребуется указывать в операторах управления.
КОНТРОЛЬНЫЕ ЗАДАНИЯ
Ответить на вопросы:
а) Как будет выполняться первый вариант программы для алгоритма, изображённого на рис. 2.3, если изъять оператор GOTO 12 ?
б) Почему начальные операторы всех представляемых цепей блоков, кроме первой, обязательно помечаются ?
ОТВЕТ К КОНТРОЛЬНОМУ ЗАДАНИЮ I.III
Для построения алгоритма с циклом требуется дополнительная переменная - параметр цикла, представляющая номер I рассматриваемого значения, изменяющийся от 1 до 4 (рис.2.4). До цикла этой переменной должно быть задано исходное значение (инструкцией I = 1 ).
Домашнее задание по лабораторной работе №2
Прочесть описание работы, выполнить все содержащиеся в нем конрольные задания, отразив результаты выполнения в отчете по лабораторной работе.
Для указанного преподавателем пункта табл. 1.3 составить блок-схему алгоритма следующей задачи.
Пусть переменная К последовательно принимает N значений: эти исходные значения поочередно вводятся. Требуется подсчитать количество значений, удовлетворяющих условию, указанному в табл.1.3, и отпечатать значения, не удовлетворяющие этому условию. Величины целого типа J, L, M заданы и таковы, что J<L<M, причем J < -1.
III. По аналогии с программами, рассмотренными в п.4 описания данной работы, составить программу по блок-схеме данного алгоритма.
УКАЗАНИЯ К ВЫПОЛНЕНИЮ ДОМАШНЕГО ЗАДАНИЯ
Следует уяснить, что любой пункт табл.1.3 предлагает единственное результирующее значение - количество значений Х, удовлетворяющих заданному сложному условию.
Перед построением алгоритма полезно выполнить схематический чертеж, изображающий числовую ось с некоторыми точками J, L, M, где отмечена область значений, удовлетворяющих заданному условию
В блоках проверки условий составляемой блок-схемы должны быть записаны элементарные равенства или неравенства. Следовательно, проверка сложного условия должна быть сведена к соответствующему соединению нескольких блоков проверки элементарных условий.
Рис. 2.4.
Таблица 1.3.
N Какие значения следует подсчитывать
варианта
Не равные нулю и притом меньше М по абсолютной величине.
Те, абсолютная величина которых равна L или М.
Те, что больше L и притом не равны М.
Отрицательные, но не меньше, чем J.
Меньшие J и те, которые удовлетворяют условию L=¦К¦=M.
Меньшие L и те, что больше М.
Не равны нулю значения, удовлетворяющие условию J<K<L+M.
Равные нулю значения и те, для которых¦К¦>L.
Не равные нулю или L значения и притом не больше, чем М.
Большие, чем М, и те, которые удовлетворяют условию J<K<M-L.
Те, абсолютная величина которых меньше М, но не равна L.
Равные J и те из положительных значений, которые не равны L.
Положительные, но не превышающие суммы L+M.
Равные J и те, которые удовлетворяют условию L=K=M.
Отрицательные, притом большие, чем J-L, но не равные J.
Равные какой-либо из величин J, L, M.
Положительные и притом не равные сумме L+M.
Равные нулю и те из положительных, которые не равны ни L, ни М.
Меньшие, чем L, и притом не равные J или -М.
Те, абсолютная величина которых не равна ни L, ни M-L.
Большие, чем L, но не превышающие суммы L+M.
Отрицательные и те из положительных, которые больше суммы
L+M.
Не равные нулю, но не меньше, чем J.
Меньшие L и те, которые удовлетворяют условию L<K².
Не равны ни J, ни L, ни М.
Меньшие, чем J, а также равные нулю или L.
Те, абсолютная величина которых больше М, но меньше суммы
L+M.
Те, которые, будучи увеличены на 5, имеют абсолютную величину,
находящуюся в пределах от L до М или равны сумме L+M.
Находящиеся в пределах от J до -1 и те, абсолютная величина
которых больше суммы L+M.
Каждое значение, не считая первого и последнего, которое больше
ближайшего предыдущего, но меньше ближайшего последующего.