Язык программирования PASCAL
Блок 4.
План.
I.
Алгоритмы цикла..
1.
Цикл с параметром.
а) Решение задач
2.
Оператор цикла с
предусловием.
б) Решение задач.
3.
Задание на самостоятельную
работу.
При решении многих
задач требуется многократно выполнять одни и те же
действия . Например,
при нахождении суммы, произведения конечных и бесконечных рядов, нахождения
значения факториала, расчета полета траектории различного вида летательных
аппаратов. В этом случае в программировании предусмотрены алгоритмы, называемые
циклическими.
Алгоритмы цикла
подразделяются на алгоритмы цикла с предусловием, постусловием. Дадим
характеристику данных видов алгоритмов. В общем виде блок-схема с оператором
цикла выглядит так.
Нет
Да
Оператор цикла с
параметром применяют тогда, когда известно число повторений одного и тог же
действия. Начальные и конечные значения параметра цикла могут быть представлены
константами, переменными или арифметическими выражениями. Рассмотрим, как
выполняется оператор цикла с параметром вида for
<параметр>:=A to B do <тело цикла>/.
Сначала вычисляются
значения выражений A и B. Если A<=B, то <параметр>
последовательно принимает значения, равные A, A+1,…,
B-1, B и
для каждого из этих значений выполняется <тело цикла>. Если A>B,
то тело цикла не будет выполнен ни разу и выполнение цикла с параметром сразу
же закончится.
Оператор цикла с
параметром с заданным шагом. For
<параметр>:= A to B
Step h do <тело цикла>. Если
тело цикла нужно организовать, начиная с последнего значения B до
начального значения A с шагом -1, то нужно использовать
следующую конструкцию.
For <параметр цикла>:=A down to B
<параметр> изменяются с
шагом, равным -1.
Решение задач.
Пример 1. Составить
блок-схему и программу нахождения значения выражения.
Y=1+1/2+1/3
+…+1/15
Для выполнения
данного задания организуем цикл с параметром, изменяющимся от 1 до 15 с шагом
1.
Нет
Да
Запишем программу.
Program pr1;
Uses CRT;
Var n: integer;
y: real;
Begin
Clrscr;
y:=0;
For n: =1 to 15 do begin
y:=y+1/n;
Writeln ('y=', y: 5:5);
End;
Readln;
End.
Задача 2. Составить алгоритм и программу, которая из
чисел о 10 до 99 выводит те, сумма которых равна S(
0<S<12)
Для решения введем
следующие обозначения: k- просматриваемое число,
P1-первая цифра числа k, P2- вторая
цифра числа k/ S – это сумма цифр данного числа k. Чиcло k будем
записывать только в том случае, когда сумма P1и P2 равна
S.
Выделение последней
цифры числа
P1:=k div 10
|
|
Нет
Да
Да
Согласно блок-схеме
записываем программу.
Program pr2;
Uses CRT;
Var k, n, P1, P2, S:
integer;
Begin
Clrscr;
Writeln ('Wwedite celoe
chislo N=');
Readln (N);
S: =0;
For k: =10 to 99 do begin
P1:=k div 10;
P2:=k mod 10;
S: =P1+P2;
If S=N then writeln ('k=',
k);
end;
Readln(k);
end.
Цикл с предусловием
используется для программирования процессов, в которых число повторений
оператора цикла неизвестно, а задается некоторое условие его окончания.
Выполнение оператора
цикла с предусловием начинается с проверки условия, записанного после слова while.
Если оно соблюдается, то выполняется <тело цикла>, а затем вновь
проверяется условие и т. д. Как только на очередном шаге окажется, что условие
не соблюдается, то выполнение <тела цикла> прекратится.
Задача 3.
Последовательность чисел задана законом
Найти номер N члена
последовательности, с которого выполняется неравенство An < 1E-3.
Решение.
В данном случае мы
не знаем, сколько нужно выполнить шагов цикла для выполнения данного условия.
Другими словами нужно найти границу, после которой выполняется условие.
Блок – схема «Граница»
Запишем программу.
Program Pr3;
Uses CRT;
Var n: integer;
Begin
Clrscr;
For n:=1 to 1000 do Begin
if 1/(N+7)<1E-3 then
writeln('N=',N);
end;
Readln(N);
end.
Задача 4. Дано
натуральное число N. Посчитать количество цифр в числе.
Запишем алгоритм в
виде пошагового исполнения.
1.
Имя алгоритма.
2.
Описание вводимых
переменных.
3.
Ввод целого числа N.
4.
Запоминаем вводимое число
и счетчику цифр присваиваем значение равное нулю. M:=n/ k=0/
5.
Выполнение условия цикла пока
m< >0
6.
Уменьшаем число на
последнюю цифру, т.е. в 10 раз
7.
Вывод количества цифр.
Составляем программу, используя данный алгоритм.
Program
pr4;
Uses
crt;
Var
n, m: longint;
K:
integer;
Begin
Clrscr;
Writeln
('Wwedite chislo N='); readln (N);
M:=N;
k:=0;
While
M<>0 do Begin
K:=k+1;
M:=M div 10;
End;
Writeln
('W chisle ', N,'- ', k,' cifr');
Readln;
End.
Задания для
самостоятельной работы.
1.
В задаче 1.
изменить цикл с 20 до 1.
2.
Определить значение
переменной S после выполнения следующих операторов:
S:=0; n:=5 for i:=2 to n do S:=S+100 div 10
Какие из приведенных операторов правильные и почему?
For i:=12 to 15 do S:=S+I;
For a:=30 to 20 do
If a mod 3=0 then d:=d+1;
3.
Дан ряд чисел от 5
до 125. Найти сумму чисел, кратных 3. Составит алгоритм и программу.
4.
Вычислить значение
суммы. Составить алгоритм в виде пошагового исполнения. Записать программу.
5.
Определить номер N
члена последовательности,
An=1/ k3
начиная с которого выполняется условие An < 0,01.
Составить блок-схему и записать программу.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.