Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Информатике.doc
Скачиваний:
4
Добавлен:
26.09.2019
Размер:
3.12 Mб
Скачать

Контрольные задания

    1. 1.1 .Записать инструкцию для задания переменной К исходного значения 2 и инструкцию для увеличения её текущего значения на 3.

    2. 1.2 .Записать инструкцию для присвоения переменой Т значения, которое имеет переменная Р. Сохранится ли при этом значение переменной Р?

    3. 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 ВЫВОД Х

7 ОСТАНОВ

Рис. 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

  1. C=C+1./I

I = I + 1

IF(I. LE. N) GO TO 4

X=PC

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 и рекомендуется как основной (отступления от него нежелательны).