Открытый урок "Оператор цикла с предусловием и алгоритм Евклида"
план-конспект урока по информатике и икт

Сахарова Наталья Евгеньевна

Конспект урока   "Оператор цикла с предусловием и алгоритм Евклида" по дисциплине "Основы программирования"

Скачать:

ВложениеРазмер
Microsoft Office document icon otkruroktsiklspredusl.doc163 КБ

Предварительный просмотр:

                .

Оператор цикла с предусловием и алгоритм Евклида

Раздел программы: программное управление работой компьютера

Тема урока: оператор цикла с предусловием (While) языка Паскаль.

Цель урока: закрепить умения и навыки по работе с циклическими конструкциями и освоить оператор цикла с предусловием (While) языка Паскаль.

Тип урока: комбинированный урок формирования умений и навыков.

Задачи урока:

учебные:

  • закрепление пройденного материала;
  • сформировать знания об операторе цикла с предусловием;
  • сформировать умение применять знания при решении различных задач; 
  • сформировать умение выбирать типовые методы и способы выполнения профессиональных задач;
  • способствовать проявлению индивидуальности учащихся.

развивающие:

  • развитие алгоритмического и логического мышления;
  • развитие умения составлять информационные модели;
  • закрепление навыков владения и применения стандартных алгоритмов с циклическими конструкциями при программировании;
  • умение выделять из класса задач задачи, решаемые с использованием конкретного алгоритма;
  • развитие творческой активности.

воспитательные:

  • повышение мотивации учащихся на занятии при решении практических задач и вовлечения в работу основной части студентов;
  • достижение сознательного усвоения материала учащимися;
  • формирование чувства коллективизма и здорового соперничества;
  • приобщение к сотрудничеству.

Средства обучения:

  1. Наглядные пособия:
  • примеры на доске;
  • презентация «Цикл с предусловием While»;
  • презентация «Алгоритм Евклида».
  1. Технические средства:
  • мультимедиа (ПК, проектор, экран)
  • персональные компьютеры
  1. Раздаточный материал:
  • карточки с заданиями проверочной работы;
  • задания на практическую работу.
  1. Учебно-методическая литература:
  • Шестаков А.П., Семакин И.Г. Основы алгоритмизации и программирования .- 7-е изд., стереотип..- — М. : Издательский центр «Академия», 2013. — 304 с
  • Окулов С.М. Основы программирования .- 6-е изд., перераб. .- М. : Бином. Лаборатория знаний, 2012.- 336c.
  • Попов В.Б. "TURBO PASCAL для школьников". Финансы и статистика, 2008.
  • http://www.intuit.ru/department/se/mbasepr/ - курс по основам программирования.
  • материалы журнала «Образование и информатика»;
  • материалы приложения «Информатика» к газете «1 сентября».

Структура занятия:

Этап урока

Время

Методы, формы, средства

1. Организационный момент (заполнение журнала, сообщение темы, целей, плана урока раздача рабочих материалов)

3 мин.

Мотивация учебной деятельности

2. Повторение (опорные знания)

7 мин.

Индивидуальный, фронтальный опросы

3.Самостоятельная работа

10 мин.

Контроль по индивидуальным карточкам

4. Изложение нового материала

4.1 Цикл с предусловием (While)

15 мин

Объяснительно-иллюстративный

4.2 Рефлексивный этап

10 мин

Первичная проверка усвоения знаний

4.3 Алгоритм Евклида

(историческая справка и математический алгоритм)

7 мин

Объяснительно-иллюстративный

4.4 Алгоритм и программа

13 мин

Проблемное изложение

5. Рефлексивный этап

5 мин.

Первичное закрепление знаний.

Выработка навыков владения стандартным алгоритмом

6. Практический

18 мин

Проблемное изложение. Выработка навыков владения и применения стандартных алгоритмов

Индивидуальная работа на ПК

7. Подведение итогов

2 мин

Оценка работы студентов

выдача домашнего задания

объявление темы следующего занятия


Ход занятия

1.        Постановка цели.

Сегодня мы продолжим изучение циклических конструкций языка Паскаль. Тема  сегодняшнего занятия очень интересная «Оператор цикла с предусловием и алгоритм Евклида».  Но, сначала мы повторим основные вопросы прошлого занятия и постараемся выяснить, кто как усвоил эту тему цикла for (с параметром или арифметического цикла).

У вас на столах имеются пронумерованные бланки с заданиями, которые нам сегодня помогут в работе.

2. Повторение (опорные знания)

2.1 Фронтальный опрос

  1. Какие виды циклических конструкций вам известны?
  2. Назовите особенности цикла с параметром (арифметического) цикла?
  3. В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?
  4. Что такое тело цикла?
  5. Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?
  6. Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?
  7. Может ли тело оператора цикла с параметром не выполниться ни разу?

Повторение-обобщение учителя (на экране дублируются ключевые моменты):

  • for <параметр цикла>:= <начальное значение> to  <конечное значение> do <оператор>;
  • <параметр цикла> переменная порядкового типа;
  • <оператор> любой оператор, в том числе составной, т. е. группа операторов, заключенных в «операторные скобки» begin .. end;
  • начальное и конечное значения могут быть вычисляемыми выражениями;
  • сначала параметру цикла присваивается указанное начальное значение, затем проверяется условие, не превосходит ли параметр цикла указанное конечное значение. Если условие не выполняется, оператор for .. do завершает свою работу, иначе значение параметра цикла увеличивается на единицу, и цикл повторяется;
  • если начальное значение больше конечного, цикл не выполняется ни разу;
  • возможна другая форма оператора for .. do (когда при каждом исполнении цикла параметр цикла уменьшается):

for <параметр цикла> := <нач.знач.> downto  <кон.знач.> do <оператор> - теперь начальное значение должно быть больше конечного или равно ему, иначе цикл выполняться не будет.


3. Самостоятельная работа

Учитель напоминает, что для успешного выполнения самостоятельной работы к уроку надо было повторить стандартные типы данных и форматный вывод данных.

Индивидуальные карточки (четыре варианта):

Что будет на монитор после исполнения программы, фрагмент которой приведен ниже?

  1. A: = 7; c: = ’*’; k: = 7.15;

For i: = 1 to 7 do

Write (c);

Writeln (c);

Writeln (‘*’: 9);

Writeln (a+a: 7, k: 7: 2);

  1. A: = 7; c: = ’*’; k: = 7.15;

Writeln (k*4: 7: 1);

Write (‘*’);

For i: = 1 to 7 do

Writeln (c);

Writeln (c: 7);

Writeln (a);

Writeln (a+a: 4, 3*a: 5);

  1. A: = 7; c: = ’*’; k: = 7.15;

Write (5*a: 4, 3*a: 4);

Write (2*a: 4);

Writeln (a: 4);

For i: = 1 to 7 do

Writeln (‘*’);

Writeln (c: 3, c: 3);

Writeln (k+k: 7: 3);

  1. A: = 7; c: = ’*’; k: = 7.15;

For i: = 1 to 7 do

Write (a);

Writeln (a, c);

Writeln (c: 10);

Writeln (k +k: 7: 2, a*a: 4);

4. Изложение нового материала

4.1 Оператор цикла while  … do

Синтаксис записи оператора:                 while <условие> do <оператор>;

Указанный здесь оператор (в том числе составной – что это означает?) циклически выполняется, пока справедливо указанное условие.

Условие проверяется до выполнения оператора.

Особенности:

  • условие пересчитывается каждый раз при входе в цикл
  • можно использовать сложные условия:

 while (a < b) and (b < c) do <оператор>;

  • в качестве условия можно использовать логическую переменную:

while f do <оператор>; - в этом случае  количество итераций будет зависеть от значения логической переменной f;

  • если условие на входе в цикл ложно, цикл не выполняется ни разу:

a := 4; b := 6;

while a > b do

   a := a – b;

  • если условие никогда не станет ложным, программа зацикливается:

a := 4; b := 6;

while a < b do

   d := a + b;

Замена цикла for на while возможна всегда

for i:=1 to 10 do begin

  {тело цикла}

end;

i := 1;

while i <= 10 do begin

  {тело цикла}

  i := i + 1;

end;

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

На основании выше изложенного можно сделать вывод, что оператор while  … do является универсальной итерационной циклической конструкцией.

  1. Первичная проверка усвоения знаний.

Ученикам предлагаются примеры (на экране все дублируется). Каждая задача обсуждается.

Найти значение переменной S:

  1. a=1; b:=1;

While a+b<8 do begin a:=a+1; b:=b+2 end;

S:=a+b

  1. a=1; b:=1;

While a <=3 do  a:=a+1; b:=b+1 ;

S:=a+b

  1. S:=0; i=0;

While i<5 do inc(i); s:=s+100 div i;

  1. S:=0; i=1;

While i<1 do begin s:=s+100 div i; dec(i) end;

Ответы: 1) 8,         2) 6,         3) 20,         4)  0

Мы с вами будем решать самые различные группы задач с применением оператор цикла с предусловием (While). Это задачи на табулирование функций (эта тема вам уже знакома по курсу алгоритмизации), задачи, связанные с числовыми рядами, целый блок задач из теории чисел и т.д.

Но сегодня я хочу познакомить с древнейшим математическим алгоритмом, знание которого будет являться «золотым ключиком» к рациональному («красивому») решению других задач.

4.3 Историческая справка и математический алгоритм.

Очень часто для нахождения НОД (Наименьшего Общего Делителя) применяют метод, который называется алгоритмом Евклида.

Это один из самых древних алгоритмов, он описан еще в "Началах" Евклида.


Историческая справка

Начала — главный труд Евклида, написанный около 300 г. до н. э. и посвящённый систематическому построению геометрии.

Начала — вершина античной геометрии и античной математики вообще, итог её 300-летнего развития и основа для последующих исследований.

Альберт Эйнштейн так оценивал Начала: «Это удивительнейшее произведение мысли дало человеческому разуму ту уверенность в себе, которая была необходима для его последующей деятельности. Тот не рожден для теоретических исследований, кто в молодости не восхищался этим творением».

Первое издание «Начал» на русском языке произошло в 1739 году; книга вышла в Петербурге под названием «Евклидовы элементы из двенадцати нефтоновых книг выбранныя и в осьмь книг через профессора мафематики Андрея Фархварсона сокращенныя, с латинского на российский язык хирургусом Иваном Сатаровым преложенныя». (Википедия)

Математический алгоритм Евклида

Пусть a и b - отличные от нуля натуральные числа.

НОД обладает следующими свойствами, на которые опирается алгоритм Евклида:

НОД(а, a) = a

НОД(а, 0) = a

Идея алгоритма нахождения НОД: если числа равны, то это и есть искомое число, в противном случае, нужно от большего числа отнимать меньшее до тех пор, пока они не станут равными.

 Пример: НОД(12, 54)

         a        b

        12 < 54

        12 < 42

        12 < 30

        12 < 18

        12 > 6

        6  = 6 = НОД

Давайте вместе нарисуем схему алгоритма, а затем составим программу нахождения НОД.


Алгоритм:

Программа:

Program Prim1;

Var 

x, y, a, b, NOD: Integer;

Begin

Writeln('Введите два числа');

Readln(x,y); {вводим два целых числа}
a:=x;

b:=y;

while a<>b do

if a>b then a:=a-b else b:=b-a;

NOD:= a;

Writeln('NOD(', a, ', ', b,')= ', NOD);

Readln

End.

  1. Рефлексивный этап

Первичное закрепление знаний. Выработка навыков владения стандартным алгоритмом.

Сейчас вам будут предложены четыре блок-схемы алгоритмов. Попробуйте увидеть в них знакомую уже нам схему. Как вам это поможет при решении предложенных задач?.


  1. Определите значение переменной m после выполнения фрагмента алгоритма.

  1. Определите значение переменной x после выполнения фрагмента алгоритма.

  1. Определите значение переменной x после выполнения фрагмента алгоритма.

  1. Определите значение переменной a после выполнения фрагмента алгоритма.

   


6. Практический этап.

Задача. Дана обыкновенная дробь (значения числителя и знаменателя вводятся с клавиатуры). Составить программу (используя алгоритм Евклида), которая выполнит сокращение дроби.

Вариант ответа: 15/20 =3/4

Решение:

Program Prim2;

Var 

x, y, a, b: Integer;

Begin

Writeln('Введите числитель');

Readln(x);

Writeln('Введите знаменательтель');

Readln(у);

a:=x;

b:=y;

while a<>b do

if a>b then a:=a-b else b:=b-a;

Writeln(x,'/', y, '= ', x div a,'/', y div a);

Readln

End.

  1. Домашнее задание. 

   !!!Обратите внимание на тождественность выражений

if a>b then a:=a-b else b:=b-a; и  if a>b then a:=a mod b else b:=b mod a;

Задачи:

  1. Найти НОД трех чисел.

Примечание. НОД(a, b, c)= НОД(НОД(a, b), c)

  1. Найти наименьшее общее кратное (НОК) чисел n и m, если
    НОК(n, m) = n * m / НОД (n, m).

        


По теме: методические разработки, презентации и конспекты

Урок в 9 классе по теме: "Оператор цикла с предусловием WHILE"

Урок разработан для учащихся 9 класса. Цель урока: научить применять полученные знания при составлении программ и творческих заданий. Научить решать задачи с использованием оператором цикла WHILE. Зак...

Конспект урока информатики "Цикл с предусловием"

Урок четко структурирован по содержанию, регламентирован во времени. Все виды деятельности мотивированы и направлены на реализацию целей и задач, поставленных педагогом.Учащиеся показали хороший урове...

Открытый урок по информатике "В царстве условного алгоритма"

Конспект открытого урока по информатике на изучение условного оператора....

Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT.

Разработка урока по теме "Алгоритмы с повторениями. Цикл  с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT" (расчитан на 3 часа)...

Язык программирования Python. Конспект урока №3. Цикл с предусловием WHILE

Конспект урока по программированию на языке Python для учащихся 8-11 классов. Урок №3. Цикл с предусловием WHILE...

Операторы цикла на Паскале. Цикл с предусловием

Конспект урока "Операторы цикла на Паскале. Цикл с предусловием"....

Открытый урок в 6 классе на тему: "Алгоритм"

Разработка открытого урока...