Презентация по информатике на тему "Программирование циклов"(10 класс).
В данная презентация построена на закрепление знаний о циклах с предусловием While... do и с постусловием Repeat... until на языке Pascal на примерах решения задач из ЕГЭ (В5, В8, С1). Овладение методом рекуррентных соотношений при изучении представлений стандартных функций.В данной презентации была поставлена цель закрепить циклы с предусловием While... do и с постусловием Repeat... until на языке Pascal на примере решения задач из ЕГЭ и использование бесконечных рядов для вычисления функций. Овладение методом рекуррентных соотношений при изучении представлений стандартных функций в виде асимптотических рядов позволяет познакомить учащихся с трудной, но интересной областью математики и раскрыть многие секреты программирования.Обсуждение особенностей циклических операторов и расширение знаний по теме.
Программирование
циклов
10 класс
1
Цикл
Определение
Определение
Цикл это многократное повторение
это многократное повторение
некоторой последовательности
некоторой последовательности
действий (команд).
действий
Данная последовательность
Данная последовательность
телом цикла
действий называется телом цикла
действий называется
Повторяющиеся команды тела цикла
Повторяющиеся команды тела цикла
записываются 1 раз
1 раз
записываются
2
Виды циклов :
Цикл с предусловием («ПОКА»)
Цикл с постусловием («ДО»)
Цикл с параметром («ДЛЯ»)
3
Цикл с предусловием цикл, выполнение
которого повторяется пока истинно
условие
НЕТ
условие
ДА
S 1
WHILE условие DO
Тело цикла S 1
4
Цикл с постусловием выполняется
ДО истинности условия
REPEART
Тело цикла S 1
UNTIL условие
НЕТ
S 1
Условие
ДА
5
Условия 1 и 2 противоположны
Цикл «до» выполняется минимум 1 раз, независимо от того ,
выполняется условие или нет
«ДО»
НЕТ
S 1
Условие 2
ДА
«ПОКА»
НЕТ
Условие 1
ДА
S 1
6
Программа
«ПОКА»
WHILE X<= N DO
S1
«ДО»
REPEART
S1
UNTIL X>N
2016 г
© Bolgova N.A.
7
While…do
Особенности цикла While…do
Особенности цикла
Так как условие проверяется на входе в цикл, то
при неверном условии цикл не выполняется ни
разу, т.е. не выполняются операторы, стоящие в теле
цикла.
Операторы, входящие в тело цикла, обязательно
заключаются в операторные скобки, если в теле
цикла более одного оператора. В противном случае
будет выполняться только первое действие, стоящее
под dodo.
В теле цикла должно обязательно выполняться
действие, приводящее к изменению условия,
иначе цикл станет бесконечным. Оператор, в котором
изменяются переменные, входящие в условие, может
стоять не обязательно в конце цикла.
Repeat…until
Особенности цикла Repeat…until
Особенности цикла
Так как условие проверяется на выходе из цикла,
то цикл выполняется хотя бы один раз.
Все операторы, стоящие в теле цикла,
выполняются ДО проверки условия, поэтому
операторные скобки не ставятся.
В теле цикла должно обязательно выполняться
действие, приводящее к изменению условия,
иначе цикл станет бесконечным. Оператор, в
котором изменяются входящие в условие
переменные, может стоять не обязательно в конце
цикла.
Цикл с параметром (счетчиком) цикл,
Цикл с параметром (счетчиком)
выполнение которого определяется значениями
параметра (параметр переменная, например А)
for А:=1 to N do
команда
Где А – параметр, т.е.
переменная целого типа,
1 – начальное значение
параметра,
N конечное значение
параметра
10
Составной оператор:
for A :=1 to N do begin
Оператор 1;
Оператор 2
еnd ;
Если в теле цикла несколько команд
11
Вопросы:
Что такое цикл?
Какие виды циклов содержат условие?
Какие циклы противоположны друг
другу?
В чем отличие цикла с параметром от
цикла с предусловием?
12
Найдите ошибки в программе.
var n,a,s:
begin readln(n);
s:=0
while n>0 do
begin a:=n mod 10;
if a mod 2=0 then s:=s+a
n=n div 10
end;
writeln(s)
end
Найдите ошибки в программе.
var n,a,s: real;
begin readln(n);
s:=0
while n>0 do
begin a:=n mod 10;
if a mod 2=0 then s:=s+a;
n:=n div 10
end;
writeln(s)
End.
Сколько раз программа выведет
слово «привет»?
var n: integer;
begin n:=0;
while n<9 do
begin writeln(‘привет');
n:=n+2
end;
end.
Ответ:5
Результат программы?
var k, s: integer;
begin k:=1; s:=0;
repeat s:=s+k;
k:=k+2;
until k>8;
writeln(s);
end.
Ответ: 16
Результат программы?
var k, s: integer;
begin k:=1; s:=0;
repeat k:=k+2;
s:=s+k;
until k>8;
writeln(s);
end.
Ответ: 24
В языках программирования стандартные функции ex, sin(x),
cos(x), ln(x+1) рассчитывается с помощью бесконечных
сумм, называемые рядами, с заданной точностью .
x
e
1
x
!1
x
sin(
x
)
cos(
x
1)
ln(
x
)1
x
3
x
!3
2
x
!2
2
x
!2
3
x
!3
x
!7
6
7
4
x
!4
9
x
!9
8
5
x
!5
4
x
!4
2
x
2
x
!6
3
x
3
x
!8
4
x
4
n
x
n
!
)1(
....
....
....
)1(
n
...
2
n
x
2(
n
n
2
x
)!2(
n
...
n
1
)!1
...
5
x
5
....
)1(
n
1
n
x
n
...
Вычисление ех с заданной точностью.
x
e
Ввод x,
p:=1
p:=0
i:=0
p:=p*x/i
s:=s+p
i:=i+1
p<
s, i1
1
x
!1
2
x
!2
3
x
!3
4
x
!4
....
n
x
n
!
...
var i: integer; x,s,p,e:real;
begin readln(x,e);p:=1;
s:=0;i:=1;
repeat p:=p*x/i;
s:=s+p;
i:=i+1
until abs(p)
Домашнее задание
Домашнее задание
Задача. Напишите программу вычисления
значения функции ln(x+1) для x=1 с помощью
ряда с заданной точностью и сравните
результат с вычислением стандартной функции
ln(x) при х=2.
ln(
x
x
)1
2
x
2
3
x
3
4
x
4
5
x
5
....
)1(
n
1
n
x
n
...
Ответы
1 группа
1. While … do
2.
3.
4.
5.
6.
1 раза
6 ошибок
4 раза
34
1) 4;
2) while N >0 do
3) writeln(min_digit)
2 группа
1. Repeat … until
2.
3.
4.
5.
6.
2 раз
6 ошибок
5 раз
22
1) 8
2) min_digit := 9;
3) writeln(min_digit)
Дополнительное задание 1
Получив на вход число x, этот алгоритм печатает
два числа a и b. Укажите наибольшее из таких
чисел x, при вводе которых алгоритм печатает
сначала 3, а потом 7.
var x,a,b: integer;
begin readln(x); a:=0; b:=0;
while x>0 do
begin a:=a+1;
b:=b+x mod 10;
x:=x div 10
end;
writeln(a); writeln(b);
end.
Ответ: 700
Дополнительное задание 2
Требовалось написать программу, при выполнении которой с
клавиатуры считывается натуральное число N и выводится
максимальная цифра числа. Программист торопился и написал
программу неправильно.
1. Напишите, что выведет эта программа при вводе числа 542.
2. Найдите все ошибки в этой программе.
var N: longint; d, max: integer;
begin readln(N);
max:= 10;
while N > 9 do
begin
d:= N mod 10;
if d > max then max:= d;
N := N div 10;
end;
writeln(max);
end.
Ответ:1) 10
Дополнительное задание 3
Требовалось написать программу, при выполнении которой с
клавиатуры считывается натуральное число N, и выводится
количество цифр этого числа. Программист торопился и написал
программу неправильно.
1. Напишите, что выведет эта программа при вводе числа 584.
2. Укажите число, для которого программа будет работать верно.
3. Найдите ошибку.
var N: longint; sum: integer;
begin readln(N);
sum := 0;
while N >= 9 do
begin
N := N div 10;
sum := sum + 1;
end;
writeln(sum);
end.
Ответ:1) 2
2) 984