Какие операторы не могут быть выполнены в теле цикла с указанным заголовком for i 1 to n do
Перейти к содержимому

Какие операторы не могут быть выполнены в теле цикла с указанным заголовком for i 1 to n do

Операторы цикла. Цикл for в Паскаль

В большинстве программ встречается необходимость многократного выполнения некоторого оператора (или блока операторов). Для организации подобного рода конструкций могут использоваться операторы цикла. В языке программирования Паскаль используются следующие виды операторов цикла: for, while, repeat (в PascalABC.NET используется также оператор цикла foreach ).

Блок операторов, который необходимо выполнить многократно называется телом цикла.

Оператор for в Паскаль

Если число повторений тела цикла заранее известно, то используется оператор цикла for , который также часто называют оператором цикла с параметром.

Оператор for состоит из двух частей: тела цикла и заголовка, который предназначен для описания начального и конечного значений параметра цикла, а также варианта его изменения.

В зависимости от направления изменения параметра цикла (возрастание — to или убывание — downto ) в языке Паскаль оператор цикла for может быть записан в одной из двух форм:

  • for параметр := нач_знач to кон_знач do
  • оператор;
  • for параметр := нач_знач downto кон_знач do
  • оператор;

Переменная-параметр цикла может принимать любой порядковый тип. При этом начальное и конечное значения должны иметь тип совместимый с типом переменной-параметром.

Рассмотрим работу цикла for .

Перед началом выполнения оператора цикла вычисляются начальное значение, присваиваемое переменной-параметру, и конечное значение. Затем, циклически выполняются следующие операции:

  1. Сравнивается текущее значение параметра с конечным значением.
  2. Если условие параметр кон_знач истинно, то выполняется тело цикла, в противном случае оператор for завершает работу и управление передается оператору, следующему за циклом.

Внимание: в языке Паскаль параметр цикла, вне зависимости от возрастания или убывания, всякий раз изменяется на единицу.

Задача. Вывести на экран список квадратов целых чисел от 10 до 1.

Решение. В поставленной задаче параметр цикла убывает.

  • for i := 10 downto 1 do
  • writeln(i:2, ‘ ‘, i * i);

Внимание: если в теле цикла необходимо использовать более одного оператора, то применяется составной оператор (операторные скобки begin и end ).

Пример 2. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.

Задача. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.

Решение. Будем использовать в программе оператор цикла с параметрами, так как известно количество повторений выполняемых действий (абитуриент получил ровно четыре отметки)

Циклы в Паскале

При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.

В языке программирования Паскаль существует три вида циклических конструкций.

Блок схемы циклов

Цикл for

Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).

В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.

Цикл for существует в двух формах:

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.

Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

Помогите пожалуйста с информатикой. Я совсем чайник)

Вопрос: (4 балла)
Какие из приведённых циклов предназначены для возведения числа k в степень
n?
Выберите несколько из 4 вариантов ответа:
1) for i:=1 to n do 2) r:=1;
k:=k*k; for i:=1 to n do
r:=r*k;
3) for i:=n downto 1 do 4) r:=1;
k:=k*k; for i:=n downto 1 do
r:=r*k;

Вопрос: (4 балла)
Чему будет равно значение переменной после выполнения данной
последовательности команд?
t:=0;
for i:=1 to 20 do
for j:=1 to 30 do
t:=t+1;
Запишите число:

Задание 5
Вопрос: ( 3 балла)
Сколько байтов памяти занимает признак конца строки в текстовом файле?
Запишите число:
___________________________
Задание 6
Вопрос: ( 4 балла)
В каком виде хранятся данные на устройствах внешней памяти?
Выберите один из 4 вариантов ответа:
1) В виде информационных структур 2) В виде программ
3) В виде файлов 4) В виде текста
Задание 7
Вопрос: ( 4 балла)
Без пробелов запишите условие описанного цикла для считывания массива
чисел из файла?
while . do
read (f, a[i]);
Запишите ответ:
__________________________________________
Задание 8
Вопрос: ( 4 балла)
Без пробелов запишите условие принадлежности элемента квадратной матрицы
NxN элементов к её побочной диагонали, если i — номер строки, a j — номер
столбца.
Запишите ответ:
__________________________________________
Задание 9
Вопрос: ( 3 балла)
Как называется изменение порядка следования элементов массива в
соответствии с некоторыми правилами?
Выберите один из 4 вариантов ответа:
1) Сортировка 2) Тасовка 3) Парад 4) Поиск
Задание 10
Вопрос: ( 3 балла)
Для поиска элемента с заданным значением в не отсортированном массиве
используется.
Выберите один из 4 вариантов ответа:
1) Случайный поиск 2) Метод пузырька
3) Линейный поиск 4) Метод деления отрезка пополам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *