Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика ответы.docx
Скачиваний:
61
Добавлен:
01.05.2015
Размер:
289.93 Кб
Скачать

28.Оператор цикла с параметром. Привести фрагмент программы.

Оператор цикла с параметром организует выполнение одного оператора заранее известное количество раз.

Оператор цикла с параметром for имеет вид:

for i:= a to b do s;

 

При выполнении оператора for сначала вычисляется начальное значение а, которое присваивается переменной i, называемой параметром цикла. Затем вычисляется  конечное значение bи проверяется, имеет ли место равенство i = bЕсли равенства нет, выполняется оператор s, который может быть составным, и переменная i увеличивается на единицу. После этого проверка (не равен ли параметр конечному значению), выполнение оператора s и увеличение переменной i на единицу выполняется циклически до тех пор, пока не наступает равенство i = b. Параметр циклаi, начальное и конечное значения и могут принадлежать любому порядковому типу данных (например, integer ). Если начальное значение превышает или равно конечному значению с самого начала, оператор s не выполняется ни разу.

Использованные здесь зарезервированные слова for, to и do имеют смысл от, до и выполнить, соответственно.

Возможна другая форма оператора цикла с параметром:

for i:= a down to b do s;

 

Здесь, чтобы выполнялся оператор sначальное значение а должно превышать конечное значение bКроме того, в этом случае параметр i с каждым циклом уменьшается на единицу, пока не станет равным значению b.

Оператор цикла for имеет такие особенности:

        в теле цикла запрещается явно изменять значение параметра цикла;

        по завершении работы оператора for значение параметра цикла считается неопределенным.

 

Пример использования оператора цикла for:

program maxi; {программа нахождения наибольшего

               элемента одномерного массива}

var

   x: array [1..100] of real; {исходный массив}

   n: integer; {число элементов массива}

   k: integer; {параметр цикла}

   max: real; {наибольший элемент массива}

begin

   write (’n =’): readln (n);

   for k:= 1 to n do

     begin

       write (’a[’, k:3,’]=’): readln (a[k]);

     end;

   max: = a[1];

   for k:= 2 to n do

     if a[k] > max then max: = a[k];

   writeln (’наибольший элемент =’, max:10:4);

end.

29.Условный оператор перехода. Привести фрагмент программы.

Это управляющий оператор, осуществляющий условное ветвление по результатам проверки заложенного условия. Выражение в условии может принимать истинное или ложное значение.

В языке Паскаль используется два оператора для реализации условных переходов - IF и CASE, а также оператор безусловного перехода GOTO. Они позволяют нарушить последовательный порядок выполнения инструкций программы.

Оператор условного перехода

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

if условие then оператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

Примеры.

if x > 0 then modul := x else modul := -x;

if k > 0 then WriteLn('k - число положительное');

if min > max then begin

t := min;

min := max;

max := t;

end;