[[http://wiki.likt590.ru/doku.php/metodika_prepodavanija_informatiki._06.12.2008_-_27.04.2009:fedorov_konstantin_pavlovich_gou_97_vyborgskij_rajon|на главную]]\\ ====== Урок 1. Правила организации цикла с параметром ====== ===== Цель урока: ===== * **//Предметная://** Сформировать представление учащихся о цикле с параметром, правилах организации цикла, задачах, решаемых с применением циклов с параметром, методах применения цикла.\\ * **//Общеобразовательная://** Развивать умение осваивать новый материал, умение логически мыслить, применять полученные знания на практике. ===== Ход урока: ===== ===== 1. Организационный момент (2 мин) ===== * //Приветствие класса//\\ * //Объявление нового раздела и темы урока// ===== 2. Изучение нового материала: рассмотрение правил организации цикла с параметром (10 мин). ===== Учащиеся читают теорию (презентация спроецирована на экран или интерактивную доску либо находится в{{:metodika_prepodavanija_informatiki._06.12.2008_-_27.04.2009:cursovic111.ppt|файле}}, имеющемся на каждом компьютере):\\ Цикл с параметром предназначен для повторения некоторого участка программы заданное (известное заранее) число раз. Для организации этого цикла используется оператор цикла с параметром, имеющий вид:\\ **FOR <параметр цикла> := <начальное значение> TO <конечное значение> DO <тело цикла>;** где <параметр цикла> - [[http://www.megabook.ru/Article.asp?AID=619815|скалярная переменная]] целого типа, называемая параметром цикла;\\ <начальное значение> и <конечное значение> - арифметические выражения целого типа, являющиеся начальным и конечным значениями параметра цикла;\\ <тело цикла> - один или несколько операторов, составляющие тело цикла. Если тело цикла содержит более одного оператора, то оно обрамляется операторами **BEGIN** и **END**; Действие оператора цикла с параметром происходит по следующему алгоритму: 1) Вычисляются значения начального и конечного значений параметра цикла;\\ 2) Параметру цикла присваивается начальное значение;\\ 3) Текущее значение параметра цикла сравнивается с конечным значением. Если текущее значение параметра больше конечного, то осуществляется переход к шагу 8). В противном случае осуществляется переход к шагу 4);\\ 4) Выполняется тело цикла;\\ 5) Значение параметра цикла увеличивается на единицу;\\ 6) Управление передается на оператор цикла;\\ 7) Осуществляется переход к шагу 3)\\ 8) Осуществляется выход из цикла, т.е. управление передается оператору, следующему за телом цикла.\\ [[http://school-collection.edu.ru/catalog/search/?text=%E0%EB%E3%EE%F0%E8%F2%EC%FB&context=current&interface=pupil&subject%5B%5D=19|Демонстрация алгоритма]] (коллекция ЦОР)\\ ===== 3. Рассмотрение конкретных примеров (12 мин). ===== === Пример цикла с параметром:=== **FOR i := 0 TO 9 DO**\\ **BEGIN**\\ **x := i * 10;**\\ **y := sin (x * pi / 180);**\\ **writeln ('x = ', x, ', y = ', y);**\\ **END**; **Учащимся предлагается ответить на следующие вопросы:** 1) К какому типу должны относиться переменные, используемые в цикле?\\ 2) Сколько раз будет выполняться тело цикла в данном случае?\\ 3) Что будет напечатано во время выполнения цикла?\\ 4) Верно ли, что всегда цикл с параметром выполняется хотя бы один раз?\\ **(Правильные ответы:**\\ 1) i - целого типа, x и y - вещественного типа;\\ 2) 10 раз;\\ 3) 10 строк, имеющих вид: **x = <аргумент в градусах>, у = <синус аргумента>** ,причем значение аргумента в первой строке равно 0, во второй - 10 и т.д., в десятой строке - 90,\\ т.е. от строки к строке увеличивается на 10.\\ Поскольку в Паскале синус аргумента выражается в радианах, то в качестве аргумента синуса используется арифметическое выражение, переводящее угол из градусной меры в радианную).\\ 4) Нет. Если в операторе цикла конечное значение параметра меньше начального, то цикл не будет выполняться ни разу. Например, цикл **FOR n := 5 TO 2 DO**\\ **z := sqrt (n);** не будет выполнен ни разу). Примечание. В Паскале, в отличие от других языков программирования (Фортрана, C++ и др.) отсутствует цикл с шагом. Единственное исключение из этого правила составляет **цикл с шагом, равным минус единице**, имеющий вид: **FOR <параметр цикла> := <начальное значение> DOWNTO <конечное значение> DO**\\ **<тело цикла>;** например **FOR i := 10 DOWNTO 1 DO**\\ **BEGIN**\\ **n := sqr (i);**\\ **WRITELN ('i = ', i, ', n = ', n);**\\ **END**; Отличие действия цикла **DOWNTO** от действия обычного цикла заключается в следующих особенностях: 1) **На третьем шаге:** Если текущее значение параметра меньше конечного, то осуществляется переход к шагу 8). В противном случае осуществляется переход к шагу 4); \\ 2) **На пятом шаге:** Значение параметра цикла уменьшается на единицу. **Учащимся предлагается ответить на вопросы:**\\ 1) Что будет напечатано в данном цикле? (Правильный ответ: В убывающем порядке числа от 10 до 1 и их квадраты);\\ 2) В каком случае цикл DOWNTO не выполняется ни разу? (Тогда, когда конечное значение параметра больше начального). Как было сказано выше, в общем случае начальное и конечное значения параметра цикла могут быть не постоянными числами, а арифметическими выражениями целого типа. Учащимся предлагается выбрать из списка правильные и неправильные операторы цикла (предполагается, что все переменные, фигурирующие в операторах, имеют целый тип): 1) **FOR n := n0 TO (n1 + 10) div 2 DO**\\ 2) **FOR z := m/2 TO m * 2 DO**\\ 3) **FOR k := 15 DOWNTO sqrt (9.) DO**\\ 4) **FOR v := trunc (ln (1.E+3)) TO 1000 DO**\\ 5) **FOR x0 := x0 div 10 DOWNTO x0 mod 12 DO**\\ 6) **FOR x := .7 TO 7. DO** (Ответ: 1), 4), 5) - правильно, 2), 3), 6) - неправильно) ===== 4. Практическая работа: Составление программы табулирования функции y = sin x. (15 мин) ===== Далее учащиеся выполняют практическую работу под руководством учителя: составляют программу табулирования (составления таблицы) функции y = sin x при x, изменяющемся от 0 до 90 градусов через каждые 10 градусов. Программа имеет вид: **PROGRAM sinusy;**\\ **VAR i: integer;**\\ **x, y: real;**\\ **BEGIN**\\ **FOR i := 0 TO 9 DO**\\ **BEGIN**\\ **x := i * 10;**\\ **y := sin (x * pi / 180);**\\ **writeln ('x = ', x, ', y = ', y);**\\ **END;**\\ **END.** ===== 5. Подведение итогов урока. Закрепление пройденного на уроке. (4 мин) ===== **Учащимся предлагается ответить на контрольные вопросы:** 1) Каким образом организуется цикл с параметром?\\ 2) Каким образом действует оператор цикла?\\ 3) Как определяется количество повторений цикла? ===== 6. Домашнее задание. (2 мин) ===== Составить программу вычисления значения арифметического выражения //с = 5a + b// при различных значениях параметра //a//. Значение //b// вводится с клавиатуры, а параметр //a// изменяется от //a0// до //100//, причем начальное значение //a0// также вводится с клавиатуры. Программа должна иметь вид: **PROGRAM Param;**\\ **VAR a, a0, b, c : integer;**\\ **BEGIN**\\ **readln (a0, b);**\\ **FOR a := a0 TO 100 DO**\\ **BEGIN**\\ **c := 5 * a + b;**\\ **writeln ('a = ', a, ',b = ', b, ',c = ', c);**\\ **END;**\\ **END.** [[http://wiki.likt590.ru/doku.php/metodika_prepodavanija_informatiki._06.12.2008_-_27.04.2009:fedorov_konstantin_pavlovich_gou_97_vyborgskij_rajon|на главную]]\\