Программирование циклов

advertisement
При выполнении заданий 1, 2, 3, 4 используется структура цикла ДЛЯ, поэтому переменная, в
которой хранится число повторений цикла, после каждого повтора по умолчанию
увеличивается на 1, а начальное и конечное значения задаются в условии.
Задание 1*: Определить значение переменной S после выполнения цикла (см. пример 1).
S := 0
нц для i от 1 до 4
S := S + i
кц
Ответ: 10
1)
2)
3)
4)
5)
6)
Решение:
S=0
i = 1, S = 0 + 1 = 1
i = 2, S = 1 + 2 = 3
i = 3, S = 3 + 3 = 6
i = 4, S = 6 + 4 = 10
i = 5, i > 4  конец цикла
Задание 2: определить значение переменной P после выполнения фрагмента программы
a)
P:=128
нц для i от 1 до 4
P:=P/2
кц
Ответ: 8
1)
2)
3)
4)
5)
6)
Решение:
P = 128
i = 1, P = 128 / 2 = 64
начало цикла с i , первый шаг
i = 2, P = 64 / 2 = 32
второй шаг
i = 3, P = 32 / 2 = 16
i = 4, P = 16 / 2 = 8
i = 5, i > 4  конец цикла
b)
нц для i от 1 до 3
P:=0
нц для k от 2 до 3
P:=P+i+k
кц
кц
Ответ: 11
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
Решение 1:
i = 1, P = 0
начало цикла с i , первый шаг
k = 2, P = 0 + 1 + 2 = 3
- начало цикла с k, первый шаг
k = 3, P = 3 + 1 + 3 = 7
- второй шаг, конец цикла с k
i = 2, P = 0
второй шаг цикла с i
k = 2, P = 0 + 2 + 2 = 4
- начало цикла с k, первый шаг
k = 3, P = 3 + 2 + 3 = 8
- второй шаг, конец цикла с k
i = 3, P = 0
третий шаг цикла с i
k = 2, P = 0 + 3 + 2 = 5
- начало цикла с k, первый шаг
k = 3, P = 5 + 3 + 3 = 11
- второй шаг, конец цикла с k
конец цикла с i
Написать программу на алгоритмическом языке Кумир используя тип ДЛЯ :
Задание 3*: Вычислить сумму чисел натурального ряда от 1 до N
алг Числа (арг цел N)
- описание типа и ввод N
нач цел I,S
- описание типа I и S
S:= 0
- первичное значение суммы
нц для I от 1 до N
- условие - пока I <=N выполнять цикл
S:=S+I
- прибавление к сумме очередного числа натурального ряда
кц
вывод "Результат вычислений:", S
- вывод значения переменной S
кон
PS:
N – неизвестная величина на момент написания программы и вводится при выполнении
программы
S – служит для накопления суммы чисел натурального ряда
I – Здесь переменная I выполняет две функции
a. Хранит номер очередного цикла (такая переменная называется счетчиком цикла)
b. Хранит очередное число из натурального ряда
В данном случае это возможно, т.к. и номер цикла и число из натурального ряда совпадают по
значению при входе в очередной круг цикла и увеличиваются на единицу при выходе их него.
Задание 4: Вычислить сумму чисел натурального ряда от K до N
В целом решение как в 3 задании, но здесь:
I – хранит номер очередного цикла (счетчик цикла)
A - хранит очередное число из натурального ряда
алг Числа (арг цел K,N)
- описание типа и ввод K и N
нач цел I,S,A
- описание типа S, I и A
A:=K
- первое число заданного натурального ряда
S:= 0
- первичное значение суммы
нц для I от K до N
- условие - пока I <=N выполнять цикл
S:=S + A
- прибавление к сумме очередного числа натурального ряда
A:=A + 1
- следующее число заданного натурального ряда
кц
вывод "Результат вычислений:", S
- вывод значения переменной S
кон
ПРОДОЛЖЕНИЕ
При выполнении заданий 5, 6, 7, 8 используется структура цикла ПОКА, здесь нет счетчика
повторений цикла. Тело цикла повторяется до тех пор, пока истинно заданное условие. Как
только условие становится ложным, выполнение цикла прерывается.
Задание 5*: определить значение переменной S после выполнения цикла (см. пример 2).
i := 1
S := 0
нц пока i < 5
S := S + i
i := i + 1
кц
Ответ: 15
1)
2)
3)
4)
5)
6)
Решение:
i = 1, S = 0
S = 0 + 1 = 1,
S = 1 + 2 = 3,
S = 3 + 3 = 6,
S = 6 + 4 = 10,
S = 10 + 5 = 15,
i=1+1=2
i=2+1=3
i = 3 + 1 =4
i=4+1=5
i=5+1=6
i<5
i<5
i<5
i<5
i > 5  конец цикла
Задание 6: определить значение переменной P после выполнения фрагмента программы
a)
i := 5
P := 0
нц пока i >1
P := P + i * i
i := i - 1
кц
Ответ: 52
1)
2)
3)
4)
5)
b)
Решение:
i = 5, P = 0
P = 0 + 5*5 = 25,
P = 25 + 4*4 = 39,
P = 39 + 3*3 = 48,
P = 48 + 2*2 = 52,
i := 1
P := 0
нц пока i < >25
P := P + i * 2;
кц
i=5-1=4
i=4-1=3
i=3-1=2
i=2-1=1
i >1
i >1
i >1
i =1  конец цикла
i := i + 6
Ответ: 80
1)
2)
3)
4)
5)
Решение:
i = 1, P = 0
P = 0 + 1*2 = 2,
P = 2 + 7*2 = 16,
P = 16 + 13*2 = 42,
P = 42 + 19*2 = 80,
i=1+6=7
i = 7 + 6 = 13
i = 13 + 6 = 19
i = 19 + 6 = 25
i <>25
i <>25
i <>25
i = 25
 конец цикла
ПРОДОЛЖЕНИЕ
Написать программу на алгоритмическом языке Кумир используя тип ПОКА :
Задание 7*: Вычислить сумму натурального ряда чисел от 1 до N
алг Числа (арг цел N)
нач цел I,S
I:=1
S:= 0
нц пока I <= N
S:=S+I
I:=I+1
кц
вывод "Результат вычислений:", S
кон
Задание 8: Вычислить сумму четных значений чисел натурального ряда от K до N
(подразумевается, что К - некоторое четное число, N – любое большее К)
алг Числа (арг цел K,N)
нач цел I,S
I:=K
S:= 0
нц пока I <= N
S:=S+I
I:=I+1
кц
вывод "Результат вычислений:", S
кон
Download