БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ ЦИКЛЫ

Download Report

Transcript БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ ЦИКЛЫ

Цикл с параметром
(определенный цикл)
Когда известно число повторений одного и
того же действия, удобно использовать
цикл с параметром
1
K= <нач.зн>,
<кон.зн>
Тело цикла
– определенный цикл – частный случай
команды “повторение с предусловием”
2
(цикл «пока»).
Поскольку определенный цикл – наиболее
часто реализуемая циклическая структура,
во всех языках программирования для его
реализации используется
специальная команда.
For k:=<нач.зн.> to <кон.зн.> do
<Тело цикла>;
3
K=<нач.зн>,
<кон.зн>
K= <нач.зн>
K<= <кон.зн>
нет
Тело цикла
да
Тело цикла
K:=K+1
For k:=<нач.зн.> to <кон.зн.> do
<Тело цикла>;
4
Тело цикла выполняется определенное число раз. За
количеством выполнений тела цикла следит
параметр цикла (счетчик).
Вначале при входе в цикл счетчик принимает
начальное
значение,
затем
сравнивается
соответствие счетчика с конечным значением.
В случае если значение счетчика меньше или
равняется конечному значению – выполняются
команды тела цикла,
затем значение счетчика увеличивается на один,
и управление передается в начало цикла
(на блок проверки условия продолжения цикла).
5
K= <нач.зн>
K<= <кон.зн>
да
Тело цикла
K:=K+1
For k:=<нач.зн.> to <кон.зн.> do
<Тело цикла>;
6
Задача. Распечатать целые числа от а до b. (а < b)
Дано: a, b – целые числа (вводятся с клавиатуры).
Получить: распечатать a, a+1, a+2, …, b (столбцом)
Связи: a < b
Ввод a,b
k = a,b
Вывод k
Программа:
Program Chislo;
Var a, b, k: integer;
Begin
Write( ‘Введите 2 целых числа: ’);
Readln(a,b);
For k:= a to b do
Writeln(k);
Writeln
End.
11
Самостоятельная работа
Написать алгоритм и программу
1.
Написать на экране 20 раз свое имя в виде:
1 Федор
2 Федор
…
20 Федор
2. Таблицу умножения на 7. Результат представить в виде:
7 х 2 = 14
7 х 3 = 21
…
7 х 9 = 63
Вопросы для контроля
12
Таблица умножения на N. Результат представить в виде:
7 х 2 = 14
(Например, N = 7)
7 х 3 = 21
…
Программа:
7 х 9 = 63
Ввод N
k = 2, 9
Вывод N*k
Program Tabl_ymn;
Var N, k: integer;
Begin
Write( ‘Введите целое число ’);
Readln(N);
For k:= 2 to 9 do
Writeln( N, ‘ x ‘ , k, ’ = ‘ , N*k);
Readln;
End.
13
Задача. Получить сумму целых чисел от а до в.
а, в – целые числа, (а < в)
S=0
Ввод A,В
K= А,В
S=S + K
Вывод S
Анализ результатов:
Программа:
Program Symma3;
Трассировочная
Var a, b, k, s: integer;
таблица (A=1, B=5)
Begin
K
S
S:=0;
0
Write( ‘Введите1 2 целых1 числа: ’);
1+2
Readln(a,b); 2
3
1+2+3
For k:= a to b do
4
1+2+3+4
s:=s+k;
Writeln( ‘Sum =5 ’ , S:4); 1+2+3+4+5
End.
Введите 2 целых числа: 1 10
14
Предполагаемый результат: Sum = 55
Самостоятельная работа
Написать алгоритм и программу
1. Получить сумму чисел от 1 до N. (S = 1 + 2 + 3 + …+ N )
2. Получить произведение чисел от 1 до N. (N! = 1*2*3*…*N)
3. Просуммировать N чисел, задаваемых пользователем.
4. 12 + 22 + 32 + 42 + …+ 122
5. cos(1) + cos(2) + cos(3) + cos(N)
15
2 + 4 + 6 + 8 + …+ 30
Определим k – переменная цикла, k = 1, 2, 3, … 15
S – переменная ячейка для накопления суммы.
Трассировочная
таблица
S=0
K
K= 1, 15
S=S + 2*k
S
0
1
2
2
2+4
3
2+4+6
4
2+4+6+8
…
…
Вывод S
16
Для возведения натурального числа в квадрат,
используем следующую закономерность:
12 = 1
22 = 1 + 3
32 = 1 + 3 + 5
42 = 1 + 3 + 5 + 7
…..
n2 = 1 + 3 + 5 + 7 + 9 + … + 2n-1
Написать алгоритм и программу.
Проверить алгоритм с помощью трассировочной таблицы
17
Для возведения натурального числа в третью
степень, используем следующую закономерность:
13 = 1
23 = 3 + 5
33 = 7 + 9 + 11
43 = 13 + 15 + 17 + 19
53 = 21 + 23 + 25 + 27 + 29
…..
Написать алгоритм и программу.
Проверить алгоритм с помощью трассировочной таблицы
18
Решение задач
1. 1/12 + 1/32 + 1/52 + … + 1/992
2. √2 + √3 + √4 + … + √10
3. Напечатать таблицу соответствия расстояния
в дюймах расстояниям в сантиметрах для
значений 10, 11, 12,…22 дюйма (1 дюйм = 25,4
мм).
4. Составить алгоритм и программу,
проверяющую, является ли
последовательность из 10 целых чисел,
вводимых с клавиатуры, возрастающей.
19
5. Составить программу-генератор простых чисел. В
основу положить формулу 2х² + 29 при 0≤х≤28.
6. У гусей и кроликов всего 64 лапы. Сколько может
быть кроликов и гусей (указать все сочетания)?
7. Задача Аль-Хорезми (780-850 гг.). Разложить
число 10 на 2 слагаемых, сумма квадратов
которых равна 58.
8. Составить программу-генератор чисел Пифагора,
т.е. чисел, удовлетворяющих условию
α²
+ b² = c². Определить количество различных
троек таких чисел для с < 25.
9. Индийский математик С. Рамануджан обратил
внимание на то, что число 1729 можно
представить в виде кубов двух чисел двумя
20
способами. Найдите эти числа.
Для тех, кому интересно!
10. Вычислить:
1 – 1/2 + 1/3 – 1/4 + … +1/9999 – 1/10000
следующими четырьмя способами:
a) последовательно слева направо;
b) последовательно слева направо вычисляя
1 + 1/3 + … +1/9999 и 1/2 + 1/4 + … 1/10000
затем второе значение вычитается из первого;
c) последовательно справа налево;
d) последовательно справа налево вычисляются суммы,
написанне в пункте b), затем – вычитание.
(результат представить с точностью до 7 знаков после точки)
Почему при вычислениях на вычислительной машине каждым
21
из этих способов получаются различные результаты?