Сделать это в Pytone 3.2 var n:integer; begin repeat write('n='); readln(n); until (n>99)...

0 голосов
72 просмотров

Сделать это в Pytone 3.2
var
n:integer;
begin
repeat
write('n=');
readln(n);
until (n>99) and (n<1000);<br> writeln(10*(n div 100)+n mod 10+(n mod 100 div 10)*100);
end.


Информатика (72 баллов) | 72 просмотров
Дан 1 ответ
0 голосов

Здравствуйте, дорогие читатели! Вот мы с вами и подошли к изучению циклов. Циклы в Паскаль. Что это такое? Как этим пользоваться? Для чего они нужны? Именно на эти вопросы я сегодня и отвечу.
Если вы читали этот урок, то знаете, что существует три вида алгоритмов: линейный, разветвляющийся и циклический. Мы с вами уже знаем, как реализовывать линейные и разветвляющиеся алгоритмы на Паскале. Приступим к изучению последнего типа алгоритмов.
В языке Pascal, как и в большинстве языков программирования, существует три типа циклических конструкций.

 

Любой цикл состоит из тела и заголовка. Тело цикла — это набор повторяющихся операторов, а условие — это логическое выражение, в зависимости от результата которого и происходит повторное выполнение цикла.

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

Задача 1. Вывести все числа от 1 до числа, введенного с клавиатуры.

While, или цикл с предусловием

Как вы, наверное, уже поняли из названия, while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

While имеет формат:

while < условие> do <оператор 1>;  {Пока … делай ….}

Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки — begin и end; .

Решение задачи.

program example_while;  var i, N: integer; { объявляем переменные } begin i := 1; { Присваиваем i значение 1 } readln(N); { Считываем последнее число } while i <= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) }</span> begin {Открываем операторные скобки} write(i, ' '); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки }end.  Repeat, или цикл с постусловием Repeat  — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается. Repeat имеет формат: repeat { повторяй … }
<оператор 1>;
< оператор 2>;

until {до…} <условие> Begin и end не требуются. Решение задачи. program example_repeat; var i, N: integer;{ объявляем переменные } begin i := 1; { Присваиваем i значение 1 } readln(N); { Считываем последнее число } repeat {после repeat не требуется begin и end } write(i, ' '); {Выводим i} Inc(i); {увеличиваем i на один.} until i = N + 1; {Например,i = 11,а N = 10. Цикл прекратится, так условие стало true.}end. For, или цикл с параметром For — это  цикл, в котором тело выполняется заданное количество раз. Существует две формы записи этого цикла: Первая форма for <счетчик1> := <значение1> to <конечное_значение> do <оператор1>;После каждой итерации значение <счетчик1> будет увеличиваться на 1. <значение1> — это начальное значение счетчика. Это может быть переменная или число.
<конечное_значение> : как только значение <счетчик1> станет больше <конечное_значение>, выполнение цикла прекратится. Если требуется написать несколько операторов в теле цикла, используем begin и end. И <счетчик1>, и <конечное_значение>, и <значение1> —  переменные целого типа. Чаще всего в качестве счетчика используется переменная i. Вторая форма for <счетчик2> := <значение2> downto <конечное_значение> do <оператор1>;После каждой итерации значение <счетчик2> будет уменьшатся на 1. <значение2> — это начальное значение счетчика.
<конечное_значение> : как только значение <счетчик2> станет меньше <конечное_значение>, выполнение цикла прекратится. Два важных примечания: Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].Изменять значение счетчика внутри тела нельзя!  Вот что выводит компилятор: Решение задачи: program example_for; var i, N: integer; begin read(N); {предположим, что мы ввели 10} for i := 1 to N do write(i, ' '); {количество итераций - 10 - 1 + 1 = 10}end.


(84 баллов)