Инфоурок Информатика Другие методич. материалыУрок информатики с использованием проблемно-модульной технологии "Программирование алгоритмов с использованием условных операторов и операторов цикла."

Урок информатики с использованием проблемно-модульной технологии "Программирование алгоритмов с использованием условных операторов и операторов цикла."

Скачать материал


ГУО «Средняя школа №3 г. Новополоцка»

Программирование алгоритмов с использованием условных операторов и операторов цикла


(урок информатики с использованием проблемно-модульной технологии)


Разработала учитель информатики высшей категории Клыго М. Е.


Программирование алгоритмов с использованием условных операторов и операторов цикла.


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

Задачи:

общеобразовательные:

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

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


развивающие

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

  • развивать логическое мышление, алгоритмическую культуру учащихся;

  • развивать знания и умения составления программ на языке Паскаль.

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

содействовать воспитанию аккуратности, внимания, организованности, сообразительности, находчивости


ХОД УРОКА:

Предлагается следующая задача для решения в классе:

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

На доске записываются несколько троек чисел: 128,540,324

Учащиеся называют максимальное число: 540.

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

Если учащиеся затрудняются ответить на этот вопрос надо помочь дополнительными вопросами, в поисках верного ответа:

- Мы сравнили числа друг с другом.

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

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

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

Машина может сравнивать только два числа!

Обозначим одно число буквой А, второе число буквой B, третье число – буквой С.

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

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

  • Сравнить составленную ими схему с блок - схемой на доске.

  • Сделать анализ блок – схемы

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

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

Решение:

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

Program MAX1;
Var A, B, C,Х: real;
begin
writeln (‘Введите три числа A, B, C’); readln (A, B, С);
if A>B then Х:=A else Х:=b;
if C > Х then Х:=C;
writeln(‘Максимальное значение=’,Х);
end.


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

-А в процессе работы программы?

- Да!

-А как? Ответ обоснуйте.

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

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

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

Program MAX2;
var A, B, C,
Х: real;
begin
Writeln(‘
Введем три числа’); readln(A, B, C);
If (A>B) and (A>C) then
Х:= A;
If (B>A) and (B>C) then
Х:=B;
If (C>A) and (C>B) then
Х:=C;
Writeln(
Х:6:2);
end.


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

Program MAX3;
Var A, B, C,
Х: real;
begin
writeln (‘Введите три числа A, B, C’);
readln (A, B,
С);
If (A>B) and (A>C) then
Х:=A else if B>C then Х:=B else Х :=C;
Writeln(‘
Максимальное значение =’, Х);
End;

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

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

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

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

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

Program MAX4;
Var A, B, C: real;
begin
Writeln(‘
Введите три числа’);
Readln(A, B, C);
If (A>B) and (A>C) and (B>C) then writeln (A, ‘ ‘,B,’ ‘,C);
If (B>C) and (B>A) and (A>C) then writeln (B, ‘ ‘,A,’ ‘,C);
If (C>A) and (C>B) and (A>B) then writeln (C, ‘ ‘,A,’ ‘,B);
If (A>B) and (A>C) and (C>B) then writeln (A, ‘ ‘,C,’ ‘,B);
If (B>C) and (B>A) and (C>A) then writeln (B, ‘ ‘,C,’ ‘,A);
If (C>A) and (C>B) and (B>A) then writeln (C, ‘ ‘,B,’ ‘,A);
End.

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

Program MAX5;
Var A, B, C, Max, Min, Sr : real;
begin
Writeln(‘
Введите три числа’);
Readln(A, B, C);
If A>B Then Max:=A else Max:=B;
If C> Max Then Max:=C;
If AIf C< Min Then Min:=C;
If (A>B) and (AIf (B>A) and (BIf (C>A) and (CIf (B
максимальное=’, Max:6:2);
Writeln (‘
среднее=’, Sr:6:2);
Writeln (‘
минимальное=’, Min:6:2);
End.

Задача 2.

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

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

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

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

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

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

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

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

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

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

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

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

hello_html_m5d49876d.jpg

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

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


Program NOD;;

Var x,y: Integer;

Begin

Write(введите х,у');

Readln(х, y);

While x<>y do

If x>y Then x:=x-y Else y:=yx;

Writeln('НОД=',x);

Readln;

End.



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

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

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

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

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

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

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

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

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

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

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

  • Порядок действий имеет большое значение. Результат выполнения операций 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).

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

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

2) Доказать правильность алгоритма.


8


Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Урок информатики с использованием проблемно-модульной технологии "Программирование алгоритмов с использованием условных операторов и операторов цикла.""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Дефектоскопист

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 662 848 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.02.2016 503
    • DOCX 83.5 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Клыго Мария Евгеньевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Клыго Мария Евгеньевна
    Клыго Мария Евгеньевна
    • На сайте: 8 лет и 2 месяца
    • Подписчики: 0
    • Всего просмотров: 2535
    • Всего материалов: 3

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 618 человек из 77 регионов
  • Этот курс уже прошли 956 человек

Курс повышения квалификации

Применение компьютерных моделей при обучении математике и информатике в рамках ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 28 регионов
  • Этот курс уже прошли 178 человек

Мини-курс

GR-технологии и взаимодействие с СМИ

2 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Налог на прибыль и учет доходов/расходов

2 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Стратегии карьерного роста и развития

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе