41-42 урок, 10 класс – практика
Учитель: Брух Т.В.
Дата: ___________
Тема урока: «Цикл с переменной. Вложенные циклы»
Цель урока: сформировать знания и умения учащихся по данной теме.
Задачи урока:
· сформировать у учащихся понятия цикл с переменной;
· способствовать развитию познавательной деятельности учащихся, алгоритмического мышления, навыков работы на компьютере
· воспитывать необходимость связывать изучение нового материала с уже известными фактами, воспитание чувства уверенности в себе и своих знаниях, чувства ответственности за результаты своего труда;
Ход урока
Этапы |
Деятельность учителя |
Деятельность учащихся |
||||||||||||||||||||||||||||||
1. Организационный момент |
Приветствие. Проверка отсутствующих. Организация внимания всех учащихся. |
Подготовка учащихся к работе. |
||||||||||||||||||||||||||||||
2. Проверка выполнения домашнего задания |
Написать программу, которая по введенному значению выводит оценки по математике, физике, информатике. USES Crt; LABEL R1,R2; Тест «Цикл»
|
|
||||||||||||||||||||||||||||||
3. Подготовка к основному этапу занятий |
В информатике важную роль играют степени числа 2 (2, 4, 8, 16 и т. д.) Чтобы вывести все степени двойки от 21 до 210, мы уже можем написать такую программу с циклом «пока»: к:
= 1 вывод 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; Здесь, в отличие от цикла «пока», переменная цикла может быть только целой. С
каждым шагом цикла переменная цикла может не только увеличиваться, но и
уменьшаться на 1. Для этого в школьном алгоритмическом языке добавляется
параметр шаг, а в Паскале ключевое слово tо заменяется на downtо («движение
вниз до»). нц для к от 10 до 1 шаг -1 вывод к*к, нс кц for k:=10 downto 1 dо writeln(k*k); В
школьном алгоритмическом языке шаг изменения переменной цикла может быть
любым целым числом, а в Паскале — Вложенные циклы В более сложных задачах часто бывает так, что на каждом шаге цикла нужно выполнять обработку данных, которая также представляет собой циклический алгоритм. В этом случае получается конструкция «цикл в цикле» или вложенный цикл. Предположим, что нужно найти все простые числа в диапазоне от 2 до 1000. Простейший (но не самый быстрый) алгоритм решения такой задачи на псевдокоде выглядит так: нц
для n от 2 до 1000 кц Как же определить, что число простое? Как известно, простое число делится только на 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. Первичная проверка понимания |
1. Домашняя задача 2. Найти сумму пяти введенных с клавиатуры чисел. 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. 3. Простым называется натуральное число (кроме 1), делителями которого являются только оно само и 1. Например, число 5 — простое, т.к. его можно нацело разделить только на 5 и 1, а число 6 — сложное, т.к. помимо 6 и 1 делится на 2 и 3. var count, i: byte; n, j: word; begin count := 10; for i:=1 to 10 do begin read(n); for j:=2 to trunc(sqrt(n))+1 do if n mod j = 0 then begin count := count - 1; break; end; end; writeln('Простых чисел ', count); end. 4. Вывести на экран таблицу умноженияvar i,j: byte; begin for i:=1 to 9 do begin for j:=1 to 9 do write(i*j:4); writeln; end; end. 5. Вывести на экран «прямоугольник», образованный из двух видов символов. Контур прямоугольника должен состоять из одного символа, а в «заливка» — из другого. var i,j: byte; begin for i:=1 to 10 do begin if (i=1) or (i=10) then for j:=1 to 20 do write('-') else begin write('|'); for j:=2 to 19 do write('0'); write('|'); end; writeln; end; end. 6.
Поиск делителей целого числа N. 7. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления. program while_3; var N, K, count: integer; begin readln(N, K); while (N - K >= 0) do begin N := N - K; count := count + 1; end; writeln('Частное от деления нацело: ', count); writeln('Остаток: ', N); end.
|
Составляют программу на компьютере |
||||||||||||||||||||||||||||||
6. Подведение итогов урока. Домашнее задание |
Задача д/з Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу N. |
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.