Основы алгоритмизации и программирования. Часть первая. Алгоритмический язык. Операторы. Асламова В.С - 27 стр.

UptoLike

Составители: 

53
Пример 17 Вычисление факториала
Программа 11
Var P,I,n: integer;
Begin P
:
=1;
Writeln('Введите n');
readln(n);
For I
:
=1 to n do
P
:
=P*I;
Writeln('Значение ',n,'! факториала = ',P);
End.
Рисунок 43 Блок-схема программы 11
Пример 18 Нахождение степени
Программа 12
Var X,Y,A: real;
K: integer;
Begin K
:
=0; Y
:
=1;
Writeln(‘Введите число и
степень’);
Read(A,X);
For K
:
=1 to 32000 do begin
Y
:
=Y*X;
If Y<A then begin
writeln(K); exit
end;
end;
writeln('Для k
3200 Xk A');
end.
НАЧАЛО
Экран
"Ввод N
"
Клавиатура
Ввод N
P=1
P=P*I
Экран
"N!=" N
КОНЕЦ
I=1, N
Y:=1
K:=1
to
32000
Y<A
НАЧАЛО
EXIT
Экран
Ввод A,X
д
а
нет
Экран
K
КОНЕЦ
Экран
X
k
A
Y:=Y*X
Рисунок 44 Блок-схема
программы 12
54
Пример 19 Итерационный цикл
Для целого положительного десятичного числа n подсчитать сумму
S цифр числа и их количество K.
Программа 13
Var A,n: longint;
K,S: byte;
begin write('Введите целое
положительное число');
readln(n);
A
:
=n; S
:
=0;
for K:= 1 to 10 do begin
S
:
=S+n mod 10;
n
:
=n div 10;
if n=0 then begin
writeln('В числе ',A,' количество
цифр = ',K,' их сумма = ',S);
exit end;
end.
Как вы уже заметили, на использование управляющей переменной в
операторе цикла с параметром налагаются некоторые ограничения:
В качестве управляющей переменной должна использоваться
простая переменная, описанная в текущем блоке.
Управляющая переменная должна иметь дискретный тип.
Начальные и конечные значения диапазона должны иметь тип,
совместимый с типом управляющей переменной.
В теле цикла запрещае
тся явное изменение значения управляющей
переменной (например, оператором присваивания).
После завершения оператора цикла значение управляющей
переменной может быть неопределенно.
Управляющая переменная всегда инициализируется начальным
значением. В случае использования служебного слова
to значение
управляющей переменной увеличивается при каждом повторении на
единицу. Если начальное значение превышает конечное значение, то
оператор, содержащийся в теле цикла, не выполняется.
A:=n
S:=0
K:=1..1
0
N=0
НАЧАЛО
EXIT
Экран
Ввод n
д
а
нет
Экран
K,S
КОНЕЦ
S:=S+n mod1
0
n:=n div10
Рисунок 45 Блок-схема
программы 13
Пример 17 Вычисление факториала                                                            Пример 19 Итерационный цикл
    НАЧАЛО                              Программа 11
                                                                                                  Для целого положительного десятичного числа n подсчитать сумму
                                        Var P,I,n: integer;                                      НАЧАЛО                      S цифр числа и их количество K.
     Экран
    "ВводN"
                                        Begin P:=1;                                                                          Программа 13
                                                                                                  Экран
   Клавиатура                                                                                     Ввод n
      ВводN                                  Writeln('Введите n');                                                           Var A,n: longint;
                                                                                                   A:=n                             K,S: byte;
      P=1                                    readln(n);                                            S:=0
                                                                                                                             begin write('Введите целое
                                                For I:=1 to n do                                                             положительное число');
      I=1, N                                                                                      K:=1..10                            readln(n);
                                                P:=P*I;                                                             КОНЕЦ
                                                                                                                                        A:=n; S:=0;
                            Экран                                                               S:=S+n mod10
     P=P*I                 "N!=" N      Writeln('Значение ',n,'! факториала = ',P);               n:=n div10                 for K:= 1 to 10 do begin
                       КОНЕЦ                                                                                                            S:=S+n mod 10;
                                        End.                                                        N=0
                                                                                                               да    Экран
                                                                                                                      K,S
Рисунок 43 Блок-схема программы №11                                                                                                     n:=n div 10;
                                                                                                       нет
Пример 18 Нахождение степени                                                                                         EXIT    if n=0 then begin

                                                  Программа 12                                                                writeln('В числе ',A,' количество
       НАЧАЛО
                                                                                           Рисунок 45 Блок-схема             цифр = ',K,' их сумма = ',S);
                                                  Var X,Y,A: real;
        Экран
                                                                                           программы №13                     exit end;
       Ввод A,X                                             K: integer;
                                                                                                                             end.
                                                  Begin       K:=0; Y:=1;
          Y:=1                                                                                   Как вы уже заметили, на использование управляющей переменной в
                                                      Writeln(‘Введите число и             операторе цикла с параметром налагаются некоторые ограничения:
                                                  степень’);                                  ⊕ В качестве управляющей переменной должна использоваться
         K:=1                        Экран
           to                          k
                                                         Read(A,X);                              простая переменная, описанная в текущем блоке.
         32000                        X ≥A                                                    ⊕ Управляющая переменная должна иметь дискретный тип.
                                                  For K:=1 to 32000 do begin
                                                                                              ⊕ Начальные и конечные значения диапазона должны иметь тип,
         Y:=Y*X                  КОНЕЦ
                                                         Y:=Y*X;                                 совместимый с типом управляющей переменной.
                                                           If Y