Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник программирование 7-9 на печать.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
7 Мб
Скачать
☆

§ 15. Решение задач по теме «Цикл с постусловием»

Упр 26.Население города увеличивается на 3% каждый год. В 1983 году население города составляло 65000. Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году вплоть до 1999г.

Упр. 27. Найдите все натуральные числа от 1 до 1000, кратные 3.

Упр. 28 Вывести на печать все трёхзначные натуральные числа, сумма цифр которых равна заданному числу N.

Домашние вопросы и задачи:

    1. Какие из приведенных задач вы бы решили с помощью цикла с предусловием, а какие – циклом с постусловием и почему?

А) Программа должна вычислять произведение двух чисел и спрашивать завершать программу или нет, если нет то продолжать запрашивать данные вычислять произведение и печатать его.

Б) Составить программу запроса пароля пока пароль не будет введен верно.

В) До тех пор, пока папка не пуста, удалять по одному файлу из папки.

Задачи:

№38. Для x= 2700, 900, 300, 100 …. вычислять и печатать y=x/4+20 до тех пор, пока x не станет меньше 1.

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

§ 16. Цикл с параметром (счетчиком)

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

Например, тренер поставил перед вами задачу пробежать ровно 10 кругов.

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

Общая форма записи цикла со счетчиком (параметром)

for P := A to B do for P := A downto B do

begin begin

. . . . . .

end; end;

Здесь переменная P - управляющая переменная (счетчик или параметр),

А - начальное значение управляющей переменной,

В - конечное значение управляющей переменной.

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное значение. Затем в цикле выполняется исполнительный оператор (или составной оператор). каждый раз при выполнении исполнительного оператора управляющая переменная увеличивается на 1 (для for...to) или уменьшается на 1 (для for...downto). Цикл завершается при достижении управляющей переменной своего конечного значения.

Представим всю информацию о цикле в таблице:

Цикл с параметром (счетчиком)

(девиз цикла: «Делай столько, сколько сказано»)

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

Случай 1.

FOR P:=A TO B DO <ОПЕРАТОР>;

Случай 2.

FOR P:=A DOWNTO B DO <ОПЕРАТОР>;

где:

P – параметр(счетчик) цикла - переменная порядкового типа (кроме вещественного), которая ведет подсчет числа выполнений действий, входящих в тело цикла;

A – выражение, задающее начальное значение параметра цикла;

B – выражение, задающее конечное значение параметра цикла.

В первом случае шаг параметра (+1), во втором (-1).

При использовании цикла for компьютер выполняет за программиста черновую работу по заданию начального и конечного значений управляющей переменной и по ее увеличению (уменьшению) при каждом повторении цикла. Ограничение заключается в том, что тип управляющей переменной не должен быть real. Переменная цикла не должна изменяться какими-либо операторами внутри цикла. К ней

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

for i := 1 to 10 do

begin . . . i := i-1; . . .

end;

Управляющая переменная должна описываться, как и любая другая переменная. Обычно переменная цикла имеет тип integer.

Внимание! Следует помнить, что управляющая переменная не может быть типа real.

Исполнительная часть цикла может быть либо простым, либо составным оператором. Если начальное значение цикла for ...to больше конечного значения, то никакие операции не выполнятся. Таким образом, следующий оператор не приведет ни к каким действиям for i:= 1 to 0 do writeln (i);

Однако цикл, представленный в такой форме, распечатает целые числа от единицы до десяти: for i := 1 to 10 do writeln (i);

Как можно догадаться, следующий цикл выполняет счет в обратном порядке for i:= 10 downto 1 do writeln (i);

Упражнение 29. Найти квадраты целых чисел от 1 до 10 и их сумму.

Program Sum3;

Var x,y,s:integer;

Begin

S:=0; {обнулить сумму}

{для всех значений Х от 1 до 10, делать…}

For x:=1 to 10 do

{составной оператор - тело цикла}

begin

Y:=X*X; {найти Y - квадрат X}

Writeln(X,Y); {вывести X и Y}

S:=S+y; {добавить Y к сумме}

end; {конец тела цикла}

Writeln ( ‘Сумма квадратов=’ ,S );

End.

Домашние вопросы и задачи:

  1. Для решения каких задач можно применять цикл со счетчиком? Примеры.

  2. Может ли счетчик цикла принимать следующий ряд значений:

А) 5, 6, 7, 8 Б) 5.1, 5.2, 5.3 В) 8, 7, 6, 5 Г) 5, 7, 9, 11 ?

3. Запишите оператор цикла с параметром и объясните его работу. Изобразите сказанное на блок-схеме.

4. Какие ограничения накладываются на действия со счетчиком цикла и на его тип ?

Задачи:

№ 40. Определить значение переменной S после выполнения фрагмента программы и составить блок-схему:

а) s:=0;

For x:=5 to 11 do

s:=s+1;

б) s:=1;

For x:=2 to 5 do

s:=s*x;

в) s:=0;

For x:=7 downto 1 do

s:=s+x;

г) s:=1;

For x:=6 to 1 do

s:=s*2;

д) s:=0;

For x:=2 to 5 do

Begin y:=x*2; s:=s+y; End;

д) s:=0;

For x:=12 downto 7 do

If x mod 2 =0 then s:=s+x;

№ 41. Каждая бактерия делится на две в течение одной минуты. В начальный момент имеется одна бактерия. Составьте программу, которая рассчитает количество бактерий на заданное Вами целое значение момента времени.

№ 42. Составить программу, в которой среди двухзначных чисел печатаются те числа, которые равны сумме своих цифр.