Итерации в программировании
методическая разработка по информатике и икт (9 класс) на тему
Урок может быть использован при прохождении темы "Циклические алгоритмы". Дается понятие итерации в программировании, рассматриваются общие подходы. Приводятся примеры программ для вычисления факториала, степенной функции и чисел Фиббоначи.
Скачать:
Вложение | Размер |
---|---|
![]() | 115.5 КБ |
![]() | 225.5 КБ |
Предварительный просмотр:
А.А.Альшевская
«Итерации в программировании»,8 класс
Тип урока: Урок изучение и закрепление новых приемов программирования. Основная цель: научить сознательно и рационально использовать возможности ПК для решения поставленных задач. ОБОРУДОВАНИЕ (материалы):
ЦЕЛИ УРОКА:
| |
Ход урока |
Этапы урока | Действия учителя | Действия ученика |
Актуализация опорных знаний | Представляет презентацию опорных знаний. Является координатором фронтального опроса учащихся | Повторение пройденного материала. Фронтальный опрос. |
Новый материал | Представляет демонстрационные слайды, которые концентрируют внимание учащихся на поставленной теме | Работа с конспектом, |
Новый материал. | Представляет демонстрационные слайды, на которых представлены примеры использования итераций. Обсуждение с учениками. | Работа с конспектом, презентацией. |
Закрепление материала | Ставит проблему. Является координатором обсуждений | Ответы на вопросы учителя с использованием знаний, полученных на уроке. Самостоятельное составление программы на компьютере. |
Домашнее задание | Представляет презентацию, включающую задачи для домашнего выполнения | Запись домашнего задания |
Этап 1. Актуализация опорных знаний.
Сегодня мы с вами познакомимся с новыми задачами, которые решаются на основе циклических конструкций. Тема урока «Итерации в программировании».
Но прежде чем приступить к новой теме, мы вспомним изученные ранее операторы цикла.
Вопросы к классу:
- Для чего используются циклические конструкции?
- Вспомните основные операторы цикла и их особенности, с которыми мы уже познакомились. Перечислите все операторы цикла.
- Особенности работы каждого оператора цикла
1.Оператор цикла с параметром.
Вопросы к классу:
- Принцип работы оператора цикла с параметром.
- Что такое параметр цикла?
- Сколько раз повторяется цикл?
- Какие типы данных используются для параметра цикла?
- Что такое тело цикла?
- Что требуется выполнить, если тело цикла состоит не из одного оператора?
- Обозначение на блок схеме.
- Оператор цикла с постусловием.
Вопросы к классу:
- Принцип работы оператора.
- Особенности работы данного оператора.
- От чего зависит, сколько раз будет повторяться цикл?
- Что необходимо, чтобы цикл не был бесконечным?
- Обозначение на блок- схеме.
- Оператор цикла с предусловием.
3.1. Принцип работы.
3.2. Особенности данного оператора
3.3. Чем он похож на цикл с постусловием?
3.4.В чем их разница?
3.3. Обозначение на блок- схеме.
Этап 2. Изучение нового материала. Итерации в программировании.
Работа с конспектом
- Записать определения:
Итерация (лат.iteratio— повторение)— в математике, одно из ряда повторений какой-либо математической операции, использующее результат предыдущей аналогичной операции.
Пример:
Факториал(!)— N! = 1 х 2 х 3 x … x (N-1) x N, где N— любое целое число.
Каждое последовательное умножение носит название «итерация».
Итерация в программировании
Итерация— это организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя.
Когда какое-то действие необходимо повторить большое количество раз, в программировании используются циклы.
Например, нужно вывести 200 раз на экран текст «Hello, World!». Вместо 200-кратного повторения одной и той же команды вывода текста часто создается цикл, который прокручивается 200 раз и 200 раз выполняет то, что написано в теле цикла. Один шаг цикла и называется итерацией.
Математическая модель итерации сводится к повторению некоторого преобразования (отображения) T X→X на множестве переменных программы. Программной реализацией итерации является обычно некоторый цикл, тело которого осуществляет преобразование T.
Пример №1.
В качестве примера можно рассмотреть схему вычисления факториала натурального числа в соответствии с его другим определением:
Факториал N!целого неотрицательного числа N задается следующими соотношениями:
0!=1
N!:=N*(N-1)!, для N>0
N!:=1*2*3*…*N
При написании программы в соответствии с ним нужно работать с двумя величинами целого типа: числом i, которое будет играть роль счетчика и изменяться от 1 до N включительно, и величиной K, в которой будет накапливаться произведение чисел от 1 до i.
Итак для реализации вычисления факториала необходимо организовать цикл:
k:=1;
For i:=1 to n do
k:=k*i;
Пример №2.
Вычисление степени 2. Каждая следующая степень 2, есть результат умножения ей предшествующей степени на 2, т.е. последовательное накопление произведения.
P:=1;
For I:=1 to n do
P:=p*2;
Пример №3
Числами Фибоначчи Fn называют последовательность величин
0, 1, 1, 2, 3, 5, 8, , определяемую равенствами:
F0:=0
F1:=1
F i+1:=Fi+Fi-1
Из выражения видно, что каждое следующее число Фибоначчи есть сумма двух ей предшествующих. Для вычисления 5 чисел Фибоначчи необходимо организовать цикл, в котором последовательно используется результат вычисления предыдущего шага цикла итерации.
F0:=0;
F1:=1;
For I:=1 to 5 do
begin
F2:=F0 + F1;
Writeln(F2);
{подготовка для вычисления следующего числа Фибоначчи}
F0:=F1;
F1:=F2;
End;
Этап 3. Закрепление материала.
Вопрос №1
Запишите фрагмент программы, позволяющий вычислить an
K:=1;
For I:=1 to n do k:=k*a;
Вопрос №2
Запишите фрагмент программы, позволяющий вычислить nn
K:=1;
For I:=1 to n do k:=k*n;
Вопрос №3
Рассмотрим следующий пример. (Слайд)
Необходимо вычислить произведение
p:=a*(a+1)*(a+2)*(a+3)…*(a+n-1)
Вопрос к классу.
Какова закономерность?
Проверка Mi+1:=Mi + 1;
Проверьте правильность написания программы.(Слайд)
Program test1;
var
p,n,a,m,i:integer; { i – порядковый номер элемента
m – текущее значение элемента последовательности
n - количество элементов
p– искомое произведение}
begin
writeln(‘Введите количество элементов’);
readln(n);
writeln(‘Введите значение а’);
m:=a; p:=a;
for i:=2 to n
begin
m:=m+1;
p:=p*m;
end;
writeln(p);
end.
Вопрос №4
Вводится число. Необходимо определить, является ли оно числом Фибоначчи?
Последовательно вычисляем числа Фибоначчи.
Вопрос к классу.
До какого момента будем вычислять? Когда закончим?
Проверьте правильность написания программы.
Program test2;
Var
f0,f1,f2,n:integer;
Begin
Readln(n);
f0:=0; f1:=1;
Repeat
f2:=f0+f1;
f0:=f1;
f1:=f2;
Until f2>=n;
If f2=n writeln(‘yes’)
else writeln(‘no’)
end.
Этап 4. Работа на компьютере.
Напишите и отладьте на компьютере программу, вычисляющую данное выражение.
S:=1/a + 1/a2 + 1/a4 + …+1/a2n
Этап 5. Домашнее задание.
- Вывести все числа Фибоначчи в диапазоне от n до m.
- Найти сумму 5 элементов последовательности общий элемент, которой вычисляется о формуле: A i:=(2*i+5)/2i
Предварительный просмотр:
Подписи к слайдам:
Используются, когда необходимо в программе Многократно повторить одни и те же действия. Для чего используются циклические конструкции?
Перечислите операторы цикла. Цикл с параметром. Цикл с постусловием. Цикл с предусловием.
Цикл с параметром Структура оператора с шагом +1 For параметр цикла := н.з. to к.з. Do < тело цикла > Структура оператора с шагом -1 For параметр цикла := н.з. downto к.з. Do < тело цикла >
Обозначение на блок-схеме цикла с параметром. I:=1, 10 x:=x+2 S:=S +x
Цикл с постусловием. Структура оператора: REPEAT < тело цикла > UNTIL < условие выхода >; истина ложь
Обозначение на блок-схеме цикла с постусловием. I>=10 x:=x+2; i:=i+x; ложь истина
Цикл с предусловием. Структура оператора: WHILE < условие входа > DO < тело цикла >; истина ложь
Обозначение на блок-схеме цикла с предусловием. I<10 x:=x+2; i:=i+x; истина ложь
Определение итерации Итерация ( лат. iteratio — повторение)— в математике , одно из ряда повторений какой-либо математической операции, использующее результат предыдущей аналогичной операции. Пример: Факториал(!)— N! = 1 х 2 х 3 x … x (N-1) x N, где N— любое целое число. Каждое последовательное умножение носит название «итерация».
Итерации в программировании. Итерация— это организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя. Когда какое-то действие необходимо повторить большое количество раз, в программировании используются циклы.
Итерации в программировании. Математическая модель итерации сводится к повторению некоторого преобразования (отображения) T X→X на множестве переменных программы. Программной реализацией итерации является обычно некоторый цикл, тело которого осуществляет преобразование T в теле цикла.
Примеры итерации. Факториал. Факториал N !целого неотрицательного числа N задается следующими соотношениями: 0!=1 N !:= N *( N -1)!, для N >0 N !:=1*2*3*…* N k:=1; For i:=1 to n do k:=k*i;
Примеры итерации. 2 n 2 n =2 n-1 *2 2 n =2 * 2 * … 2 P:=1; For I:=1 to n do P := P *2; n раз
Примеры итерации. Числа Фиббоначи. Числами Фибоначчи Fn называют последовательность величин 0, 1, 1, 2, 3, 5, 8, , определяемую равенствами: F 0:=0 F1:=1 F i+1 :=F i +F i-1
Примеры итерации. Числа Фиббоначи F0:=0; F1:=1; For I:=1 to 5 do begin F2:=F0 + F1; Writeln ( F 2); {подготовка для вычисления следующего числа Фиббоначи} F0:=F1; F1:=F2; End ;
Задание №1 Запишите фрагмент программы, позволяющий вычислить a n K:=1; For I:=1 to n do k:=k*a;
Задание №2 Запишите фрагмент программы, позволяющий вычислить n n K:=1; For I:=1 to n do k:=k*n;
Задание №3 Необходимо вычислить произведение : p:=a*(a+1)*(a+2)*(a+3)…*(a+n-1) Очередной сомножитель вычисляется: Mi +1:= Mi + 1;
Листинг программы . Program test1; var p , n , a , m , i : integer ; { i – порядковый номер элемента m – текущее значение элемента последовательности n - количество элементов p – искомое произведение} begin writeln (‘Введите количество элементов’); readln(n); writeln (‘Введите значение а’); m:=a; p:=a; for i:=2 to n begin m:=m+1; p:=p*m; end; writeln(p); end .
Задание №4 Вводится число. Необходимо определить, является ли оно числом Фиббоначи? Последовательность действий: В ычисляем числа Фиббоначи. Вопрос : До какого мо м ента будем вычислять?
Листинг программы. Program test2; Var f0,f1,f2,n:integer; Begin Readln(n); f0:=0; f1:=1; Repeat f2:=f0+f1; f0:=f1; f1:=f2; Until f2>=n; If f2=n writeln(‘yes’) else writeln(‘no’) ; End.
Работа на компьютере. Написать программу вычисляющую выражение: S:=1/a + 1/a 2 + 1/a 4 + …+1/a 2n
Домашнее задание. Вывести все числа Фиббоначи в диапазоне от n до m . Найти сумму 5 элементов последовательности общий элемент, которой вычисляется о формуле: A i :=(2*i+5)/2 i
По теме: методические разработки, презентации и конспекты

Тематическое планирование по курсу «Основы алгоритмизации и программирования» в среде программирования VBA
Тематическое планирование по курсу «Основы алгоритмизации и программирования» в среде программирования VBA Основы алгоритмизации и программирование1,2(4 час)Повт. Программное об...

Практические задания по МДК "Системное программирование" для специальности "Программирование в компьютерных систем""
ПРАКТИЧЕСКИЕ ЗАДАНИЯ ДЛЯ МДК «Системное программирование» ...

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования» Для специальности 230115 «Программирование в компьютерных системах»
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования»...

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования» Для специальности 230115 «Программирование в компьютерных системах»
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования»...

Основы программирования: ТЕМА 01. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...

Место динамического программирования в подготовке школьников к олимпиадам по программированию
Задачи на применение идей динамического программирования – частое явление на олимпиадах по программированию, поэтому одним из важных шагов подготовки учащихся к успешному выступлению на олимпиаде по п...
Презентация "Метод хорд. Метод касательных. Метод простой итерации"
Содержит теоретический и практический материал по нахождению приближенных корней уравнений численными методами....