СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Ветвление и циклы

Категория: Информатика

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа
«Ветвление и циклы»


Муниципальное бюджетное общеобразовательное учреждение

«Средняя общеобразовательная школа № 18»










УРОК

по теме:


Ветвления и циклы

9 класс










учитель информатики

Шикабиева Н.В.




г. Калуга

2018 год

Цель урока:

Обучающие цели:

1. Обобщить и систематизировать знания учащихся по данной теме.

2. Показать взаимосвязь математики и информатики. Научить использовать знания, полученные на уроке математики при решении задач по информатике.

Развивающие цели:

  1. Развивать логическое мышление, умение обобщать, сопоставлять и применять полученные знания на практике, развивать умение анализировать происходящие изменения в решении задач.

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

  1. Развивать познавательный интерес, творческую активность, интеллект.

  2. Развивать интуицию, эрудицию, самостоятельность в суждениях, упорство в достижении цели.

  3. Развивать культуру общения, воспитывать внимание, сообразительность, находчивость, тренировку памяти, умение работать в группе.


Тип урока: Обобщающий.


Метод:


Проблемно – поисковый метод при решении задач по информатике.



Ход урока:


Учитель: Сегодня мы с вами завершаем тему: «Ветвления и циклы». Предлагаю следующую задачу для решения: Найти наибольшее число из трех заданных чисел. На доске записано несколько троек чисел: 568, 742, 390.

Назовите максимальное число: 742.

Вопрос: «Каким образом вы определили, что данное число максимальное?».

Учащиеся: Мы сравнили числа друг с другом.

Посмотрели разряд числа – если единицы разрядов сотен равны, то сравниваем единицы разрядов десятков, если они равны, сравниваем разряд единиц и больше то число, у которого разряд сотен больше.

Вывод: Итак, максимальное число: 742

Проблема: «А как компьютер сравнит три числа?»

Учащиеся: Предлагают такой вариант решения проблемы: Обозначим одно число буквой. А, второе число буквой B, третье число – буквой С.

Надо сравнивать первые два числа, а затем, большее из них с третьим числом.

Учитель: Нарисуйте в тетради блок – схему для сравнения трех чисел.

Учащиеся в тетради рисуют блок – схему, а затем сравнивают составленную ими схему с блок - схемой на доске. Одному из учащихся предлагаю сделать анализ блок – схемы. А теперь в соответствии с блок – схемой составьте – программу.

Учащиеся самостоятельно составляют программу.

Учитель: Проверьте правильность работы программы, введите заданные числа и посмотрите результат.

Проблема: А может ли измениться исходное значение переменной А в процессе работы программы?

Ответ: Да.

Учитель: А как? Ответ обоснуйте.

Решение:

  1. Находим наибольшее из первых двух данных чисел A и B, а затем – максимальное из полученного числа и третьего данного числа С.


Program MAX1;

Var A, B, C, max: real;

begin

writeln (‘Введите три числа A, B, C’);

readln (A, B, С);

if AB then max:=A else max:=b;

if C max then max:=C;

writeln(‘Максимальное значение=’,max);

да нет readln;

end.

Max:=A

Max:=B






да


Max:=C









Учитель: Как вы думаете, можно ли решить задачу другими способами?

Учащиеся получают задание на уроке и продолжают поиск решения задачи.


Предполагаемые решения учащихся:

2 способ. При решении задачи можно проверить, является ли первое число A максимальным и если не является, то сравниваем второе и третье число B и C.


Program MAX2;

Var A, B, C, max: real;

begin

writeln (‘Введите три числа A, B, C’);

readln (A, B, С);

If (AB) and (AC) then max:=A;

if BC then Max:=B else Max :=C;

Writeln(‘Максимальное значение =’, Max);

Readln;

End;


3 способ. Можно решить задачу, сравнивая попарно все числа.


Program MAX3;

var A, B, C, Max: real;

begin

Writeln(‘Введем три числа’);

readln(A, B, C);

If (AB) and (AC) then Max:= A;

If (BA) and (BC) then Max:=B;

If (CA) and (CB) then Max:=C;

Writeln(Max:6:2)

readln;

end.


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

Далее ставится перед учащимися проблема: Как поменять значения двух переменных. Проблема заключается в том, что при присваивании нового значения переменной А старое теряется. Обычно учащиеся сами находят выход, предлагая использовать дополнительную переменную. Но тогда операция обмена значений будет записываться в три действия: С:=А, А:=В, В:=С.

Проблема: А можно написать программу, чтобы она выстраивала числа в порядке возрастания или убывания?

Ученики предлагают свои варианты решения данной проблемы.

Варианты решения задачи:

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


Program MAX41;

Var A, B, C, Max: real;

begin

Writeln(‘Введите три числа’);

Readln(A, B, C);

If (AB) and (AC) and (BC) then writeln (A, ‘ ‘,B,’ ‘,C);

If (BC) and (BA) and (AC) then writeln (B, ‘ ‘,A,’ ‘,C);

If (CA) and (CB) and (AB) then writeln (C, ‘ ‘,A,’ ‘,B);

If (AB) and (AC) and (CB) then writeln (A, ‘ ‘,C,’ ‘,B);

If (BC) and (BA) and (CA) then writeln (B, ‘ ‘,C,’ ‘,A);

If (CA) and (CB) and (BA) then writeln (C, ‘ ‘,B,’ ‘,A);

Readln;

End.


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




Program MAX42;

Var A, B, C, Max: real;

begin

Writeln(‘Введите три числа’);

Readln(A, B, C);

If (AB) and (AC) and (BC) then writeln (С, ‘ ‘,B,’ ‘,A);

If (BC) and (BA) and (AC) then writeln (C, ‘ ‘,A,’ ‘,B);

If (CA) and (CB) and (AB) then writeln (B, ‘ ‘,A,’ ‘,C);

If (AB) and (AC) and (CB) then writeln (B, ‘ ‘,C,’ ‘,A);

If (BC) and (BA) and (CA) then writeln (A, ‘ ‘,C,’ ‘,B);

If (CA) and (CB) and (BA) then writeln (A, ‘ ‘,B,’ ‘,C);

Readln;

End.


Программа печатает максимальное число, минимальное число и среднее число.


Program MAX5;

Var A, B, C, Max, Min, Sr : real;

begin

Writeln(‘Введите три числа’);

Readln(A, B, C);

If AB Then Max:=A else Max:=B;

If C Max Then Max:=C;

If A

If C

If (AB) and (A

If (BA) and (B

If (CA) and (C

If (BC) Then Sr:=B;

If (AC) Then Sr:=A;

If (CB) Then Sr:=C;

Writeln (‘Max=’, Max:6:2);

Writeln (‘Sr=’, Sr:6:2);

Writeln (‘Min=’, Min:6:2);

Readln;

End.




Рассмотрим задачу № 2.


Даны три натуральных числа. Найти их наибольший общий делитель.


Вопрос: Что такое НОД? Как найти НОД нескольких натуральных чисел?

Ответ: Чтобы найти наибольший общий делитель надо:

  1. разложить на простые множители;

  2. из множителей в разложении вычеркнуть те, которые не входят в разложение других чисел;

  3. найти произведение оставшихся множителей.

Если все данные числа делятся на одно из них, то это число и является НОД данных чисел.



Вопрос: Какие существуют методы нахождения НОД?

Ответ: Существуют различные методы нахождения наибольшего общего делителя нескольких натуральных чисел:

  1. разложения на простые сомножители,

  2. алгоритм Евклида,

  3. целочисленное деление.

Найти НОД чисел 48, 36, 24

Разложим на множители числа:

48 = 2 * 2 * 2 * 2 *3

36 = 2 * 2 * 3 * 3

24 = 2 * 2 * 2 * 3

Из множителей вычеркиваем те, которые не входят в разложение второго и третьего числа

  • это числа 2 * 2 * 3 =12

Учитель: Сделайте вывод для тройки чисел x, y, z.

Первый метод решенияразложения на простые сомножители.

1. Разложить число х на простые сомножители.

2. Разложить число у на простые сомножители.

3. Разложить число z на простые сомножители.

4. Выбрать все одинаковые множители чисел х и у.

5. Перемножить выбранные множители – полученное значение и будет НОД.

Проблема: Какие же знания и умения необходимы для построения алгоритма нахождения НОД?

Для того чтобы построить алгоритм, необходимо уметь:

  • определять все простые множители в пределах заранее неизвестных чисел х и у, z;

  • хранить эти простые множители и обращаться к ним;

  • хранить все сомножители для чисел х и у, z;

  • выбирать из трех множеств одинаковые элементы.

Сделайте анализ.

Каждая часть задачи сложна для алгоритмизации. Построение массива простых чисел требует проверки, является ли число простым, т.е. не делится ли оно на все простые числа, меньше данного.


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

НОД (х, у) вычисляется в соответствии со следующим правилом:


НОД (х, у)=

Мы разбирали решение задачи для нахождения НОД двух чисел.

Для решения данной задачи воспользуемся циклом с постусловием.

Третий метод решения – это целочисленное деление.

Пусть х и у – одновременно не равные нулю целые неотрицательные числа, и пусть х у. Если у = 0, то НОД (х, у) = х, а если у 0, то для чисел х, у и r, где r остаток от деления х на у, выполняется равенство НОД (х, у) = НОД (у, r).

В соответствие со следующим правилом:

НОД(48, 18) = НОД(18, 12) = НОД(12, 6) = 6.

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


Запишем алгоритм решения задачи:

1. Ввод натуральных чисел х, у.

2. Найдем r – остаток от деления х нацело на у.

3. Если r = 0, то найдем значение у, иначе х:=у; у:= r.

4. Найдем r – остаток от деления х нацело на у.

  1. Вычислить значение х

  2. Порядок действий имеет большое значение. Результат выполнения операций x:=x; y:=r отличен от результата выполнения операций y: = r; x: =y.

Проблема: А правильно ли мы составили алгоритм?

Задание на дом: Докажите правильность алгоритма.


Решение задачи для нахождения НОД двух чисел.

Program NOD_1;

Var x, y:integer;

Begin

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

Readln (x, y);

Repeat

If x y then x:= x mod y else y:= y mod x;

Until (x = 0) or ( y = 0);

{до тех пор, пока одно из чисел не станет

равно нулю}

Writeln (‘НОД=’, x + y);

{ Вывод НОД. Одно из чисел обязательно равно нулю}

Readln;

End.

Машина может находить НОД двух чисел.

Проблема:

Как составить программу для нахождения НОД трех?

Учащиеся:

Сначала находим НОД двух чисел, а затем находим НОД третьего числа.

НОД (a, b, c) = НОД (НОД(a, b), c).


Я предлагаю ученикам самим решить задачу.

Один из способов решения задачи, предлагаемый учениками приведен ниже.


Программа на Паскале:

Program NOD_2;

Var A, B,C, S:integer;

Begin

Writeln (‘’);

Readln(A, B, C);

Repeat

If AB then A:=A mod B

Else B:=B mod A;

Until (A = 0) or ( B = 0);

Writeln (‘НОД=’, A + B);

S:=A + B;

Repeat

If S C then S:= s mod C else C:= C mod S;

Until (S = 0) or ( C = 0);

Writeln (‘НОД=’, S + C);

{ Вывод НОД. Одно из чисел обязательно равно нулю}

Readln;

End.


Итог урока:

Мы с вами разрешили проблему, которая была поставлена на уроке.

Учащимися были предложены несколько вариантов решения проблемы

(было составлено 5 различных программ первой задачи и 2 варианта 2- ой задачи).


Домашнее задание:

  1. Написать программу вычисления нахождения максимального числа из трех заданных чисел и если возможно расположите числа в порядке убывания или возрастания.

  2. Найти НОД трех чисел любым удобным для вас способом.


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

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

Ставятся проблемные вопросы по нарастающей от легкого к более сложному с применением ранее полученных знаний, умений, навыков (ЗУН).


9



Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!