28.Цикл с переменной
Название предмета Информатика
Класс 10
УМК
Поляков К. Ю, Еремин , Е.А. Информатика и ИКТ. Углубленный уровень: учебник для 10 класса: в 2 частях. Ч. 2 / К.Ю. Поляков, Е.А. Еремин, – Москва: Бином. Лаборатория знаний, 2013, - 304 с.: ил.
Уровень обучения (Углубленный уровень)
Тема урока Цикл с переменной.
Общее количество часов, отведенное на изучение темы 1 час
Место урока в системе уроков по теме 1 урок
Цель урока: сформировать знания и умения учащихся по данной теме.
Задачи урока:
сформировать у учащихся понятия цикл с переменной;
способствовать развитию познавательной деятельности учащихся, алгоритмического мышления, навыков работы на компьютере
воспитывать необходимость связывать изучение нового материала с уже известными фактами, воспитание чувства уверенности в себе и своих знаниях, чувства ответственности за результаты своего труда;
Учащиеся должны знать:
- структуру программ на Паскале
операторы цикла;
Учащиеся должны уметь:
- составлять программы с циклом.
Техническое обеспечение урока: персональный компьютер, проектор, презентация,
Содержание урока
Этапы
Деятельность учителя
Деятельность учащихся
1. Организационный момент
Приветствие. Проверка отсутствующих. Организация внимания всех учащихся.
Подготовка учащихся к работе.
2. Проверка выполнения домашнего задания
Задача № 2 (стр. 140). Напишите программ «Найти сумму всех натуральных чисел от 1 до n»,
цикл WHILE
program zadacha1b;
var i,n,s:integer;
Begin
writeln('введите натуральное n');
readln(n);
s:=0; i: =1;
while i<=n do
begin
s:=s+i;
i:=i+1;
end;
writeln('сумма от 1 до',n,'=',s);
end.
цикл REPEAT
program zadacha1c;
var i,n,s:integer;
Begin
writeln(' введите натуральное n'); readln(n);
s:=0; i:=1;
repeat
begin
s:=s+i;
i:=i+1;
end;
until i>n;
writeln('сумма от 1 до',n,' = ',s);
End.
Эту задачу можно решить другим способом,
выполняют
задание на компьютере.
3. Подготовка к основному этапу занятий
В информатике важную роль играют степени числа 2 (2, 4, 8, 16 и т. д.) Чтобы вывести все степени двойки от 21 до 210, мы уже можем написать такую программу с циклом «пока»:
к: = 1
п:=2
нц пока к<=10
вывод n,нс
n:=n*2
k:=k+1
кц
к: = 1;
п:=2;
while к<= 10 do begin
writeln(n);
n:=n * 2;
к:=к+1
end;
Вы наверняка заметили, что переменная к используется трижды (см. выделенные блоки): в операторе присваивания начального значения, в условии цикла и в теле цикла (увеличение на 1). Чтобы собрать все действия с ней в один оператор, во многие языки программирования введён особый вид цикла — цикл с переменной.
Цикл с параметром - используется целая переменная – счётчик (или параметр цикла), которая автоматически при каждом повторении изменяется на 1 от начального значения до конечного
.
Слушают учителя
составляют свое определение поданному понятию
Записываем тему урока в тетради.
4. Усвоение новых знаний и способов действий
В заголовке этого цикла задаются начальное и конечное значения этой переменной, а шаг её изменения по умолчанию равен 1:
n: =2
нц для к от 1 до 10
вывод n, нc
n:=n*2
кц
n: =2;
for к:=1 tо 10 dо begin
writeln(n);
n:=n*2;
еnd;
Здесь, в отличие от цикла «пока», переменная цикла может быть только целой.
С каждым шагом цикла переменная цикла может не только увеличиваться, но и уменьшаться на 1. Для этого в школьном
алгоритмическом языке добавляется параметр шаг, а в Паскале ключевое слово tо заменяется на downtо («движение вниз до»).
Следующая программа выводит квадраты натуральных чисел от 10 до 1 в порядке убывания:
нц для к от 10 до 1 шаг -1
вывод к*к, нс
кц
for k:=10 downto 1 dо
writeln(k*k);
В школьном алгоритмическом языке шаг изменения переменной цикла может быть любым целым числом, а в Паскале —
только 1 или (-1).
Вложенные циклы
В более сложных задачах часто бывает так, что на каждом шаге цикла нужно выполнять обработку данных, которая также
представляет собой циклический алгоритм. В этом случае получается конструкция «цикл в цикле» или вложенный цикл.
Предположим, что нужно найти все простые числа в диапазоне от 2 до 1000. Простейший (но не самый быстрый) алгоритм
решения такой задачи на псевдокоде выглядит так:
нц для n от 2 до 1000
если число n простое то
вывод n, нc
все
кц
Как же определить, что число простое? Как известно, простое число делится только на 1 и само на себя. Если число п не имеет
делителей в диапазоне от 2 до л-1, то оно простое, а если хотя бы один делитель в этом интервале найден, то составное.
Чтобы проверить делимость числа на некоторое число к, нужно взять остаток от деления n на k. Если этот остаток равен
нулю, то n делится на k. Таким образом, программу можно записать так (здесь n, k и соunt — целочисленные переменные, соunt
обозначает счётчик делителей):
Попробуем немного ускорить работу программы. Делители числа обязательно идут в парах, причём в любой паре меньший из делителей не превосходит √n (так как произведение двух делителей, каждый из которых больше , √n будет больше, чем n). Поэтому внутренний цикл можно выполнять только до значения √n вместо n-1. Для того чтобы работать только с целыми числами (и таким образом избежать вычислительных ошибок), лучше заменить условие к < н√n на равносильное ему условие к2 <=√n. При этом потребуется перейти к внутреннему циклу с условием:
Чтобы ещё ускорить работу цикла, заметим, что когда найден хотя бы один делитель, число уже заведомо составное, и искать другие делители в данной задаче не требуется. Поэтому можно закончить цикл. Для этого в условие работы цикла добавляется условие соunt = 0, связанное с имеющимся условием с помощью
операции «И»:
В любом вложенном цикле переменная внутреннего цикла изменяется быстрее, чем переменная внешнего цикла. Рассмотрим например, такой вложенный цикл:
На первом шаге (при i =1) переменная k принимает единственное значение 1. Далее, при i = 2 переменная к принимает последовательно значения 1 и 2. На следующем шаге при 1 - 3 переменная k проходит значения 1, 2 и 3, и т. д.
Запись в тетрадь
Запись в тетрадь
5. Первичная проверка понимания
№ 2. Домашняя задача 3 вариант
цикл FOR
program zadacha1;
var i, n, s: integer;
Begin
writeln(' введите натуральное n'); readln(n);
s:=0;
for i:=1 to n do
s:=s+i;
writeln('сумма от 1 до',n,' = ',s);
End.
№ 12. Найти сумму пяти введенных с клавиатуры чисел
program zadacha2;
var i, a, S : integer;
begin
for i:=1 to 5 do
begin
writeln('Введите ',i,' -е число');
readln(a);
S:=S+a;
end;
writeln('Сумма равна ', s);
end.
Составляют программу на компьютере
6. Подведение итогов урока.
Делаем анализ полученного материал ( на слайде ответ) и оцениваем нашу работу.
Проверяют результаты
7. Домашнее задание
8.Рефлексия
§59
Задача
Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу N.
Ответьте на вопросы
Сегодня я узнал…
Было понятно…
Было трудно…
Я понял, что…
Теперь я могу…
Автор(ы): Ободова М. В.
Скачать: Информатика 10кл - Конспект.docxАвтор(ы): Ободова М. В.
Скачать: Информатика 10кл - Презентация к уроку.ppt