ПЛАН ОТКРЫТОГО УРОКА Учебная дисциплина: «Информатика и ИКТ» Группа: АН-183 Длительность: 90 минут Тема: «Разветвляющиеся алгоритмы» Тип занятия: урок сообщения новых знаний Вид занятия: урок смешанный Цель занятия: обучающая: формирование знаний и умений в области составления разветвляющихся программ с использованием различных видов условий; воспитательная: воспитание интереса к изучаемой дисциплине, бережное отношение к вычислительной технике; развивающая: развитие логического мышления при составлении алгоритмов решения задач; Межпредметные связи: использование знаний учащихся по дисциплине «Математика»; Методическое обеспечение занятия: раздаточный материал, ТСО (ПК), презентация. Содержание занятия: 1 Организационная часть. 2 Проверка теоретических знаний по пройденному материалу. 3 Подготовка учащихся к сознательному усвоению нового материала 4 Изучение нового материала по теме «Разветвляющиеся алгоритмы». 5 Проверка понимания учащимися нового материала. 6 Отработка навыков составления и отладки разветвляющихся программ. 7 Постановка домашнего задания. 8 Подведение итогов занятия. I. Проверка теоретических знаний по пройденному материалу. Вопросы для проверки теоретических знаний пройденного материала: 1 Из каких разделов состоит структура программы языка Паскаль? program <имя программы>; <раздел описаний>; begin < тело программы>; end. 2 Как правильно составить имя программы? (Имя может состоять из любого количества букв или цифр, но должно начинаться с буквы). Для чего используется слово uses? Ответ выберите из предложенных вариантов: а) это логическая операция; б) с его помощью подключают стандартные библиотеки; в) это стандартная константа. 4 Сколько ошибок допущено в разделе описаний программы? (5) Program 1z Uses ctr; a:=20; d = 12; var; a, b : integer; 5 Какие типы переменных вы знаете? (integer – целый, real - вещественный). 6 Что такое оператор, какие операторы на данный момент знаете? (это команда языка программирования высокого уровня, операторы вывода, ввода, присвоения – write, read, :.). 7 Что будет выведено на печать? а) write (‘a=’, a); (a = 50) б) write (a); (a) в) write (‘введите данные’); (введите данные) 8 Что выполняет пустой оператор writeln? (Перемещает курсор в начало следующей строки.) 9 В данном тексте программы найдите ошибки и сформулируйте условие задачи. 3 program z1; var a, b,c: integer begin writeln (‘введите а и в’); readln (a, b); p=a+b+c write (‘p=’, a:4); readln; end. правильный текст программы program z1; uses crt; var a, b, c, p: integer; begin writeln (‘введите а и в’); readln (a, b); p:=a+b+c; write (‘p=’, p:4); readln; end. II. Подготовка учащихся к сознательному усвоению нового материала Что такое разветвляющийся алгоритм, чем он отличается от линейного алгоритма (появляется блок условие), приведите примеры использования ветвлений в жизни (про развилку, светофор, корни квадратного уравнения). III. Изучение нового материала по теме «Разветвляющиеся алгоритмы» УСЛОВНЫЙ ОПЕРАТОР 1 Полная форма условного оператора: if условие then оператор 1 else оператор 2; Работа оператора: сначала проверяется условие, и, если оно верно, выполняется оператор 1, иначе выполняется оператор 2. Задача. Ввести два целых числа и вывести на экран наибольшее из них. program qq; uses crt; var a, b, max: integer; begin writeln('Введите два числа'); read ( a, b ); if a > b then max:=a else max:=b; writeln ('max= ', max:4); readln; end. 2 Неполная форма условного оператора: if условие then оператор; Работа оператора: оператор выполняется, если условие истинно, иначе пропускается. IV. Проверка понимания учащимися нового материала. Изменить текст программы для неполной формы условного оператора (где стоят знаки вопроса) в предыдущей задаче. program qq; uses crt; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); max := a; if ??? then ??? (if b>a then max:=b) writeln ('Наибольшее число ', max); readln; end. V. Отработка навыков составления и отладки разветвляющихся программ. 1) Написать программу для решения квадратного уравнения, используя данную блок-схему и полную форму условного оператора. program kv; uses crt; var a, b, c,d: integer; x1,x2:real; begin writeln('Введите коэффиециенты уравнения’); read ( a, b,c ); d := b*b-4*a*c; if d<0 then writeln ('Корней нет ') else x1,x2:= b b 2 4ac ; 2a writeln ('Корни x1,x2:4:2); readln; end. уравнения ', 2) Изменить текст программы, чтобы она вычисляла корни уравнения только в случае, когда d=0 и d<0. Формула для вычисления корня уравнения при d=0 (он будет в этом случае один): x b 2a VI. Постановка домашнего задания. Задача: найти наибольшее число из трех заданных (в конце 2 урока). Var a,b,c:real; Begin Write('введите три числа'); Readln(a,b,c); If (a>b) and (a>c) then writeln (' max= ',a:0:2); If (b>a) and (b>c) then writeln (' max= ',b:0:2); If (c>a) and (c>b) then writeln (' max= ',c:0:2); Readln End. VII. Подведение итогов урока. Выставление оценок за работу на уроке. Изучение нового алгоритмы» материала по теме «Разветвляющиеся 1. Составной оператор – объединяет несколько операторов в один. if условие then begin оператор 1; оператор 2; …; оператор N; end; Зарезервированные слова begin и end называются операторными скобками. Между ними может быть сколько угодно других операторов, но считается это все одним составным оператором. Задача. Найти y = a / b. Если b = 0, то вывести сообщение об ошибке. program primer1; uses crt; var a, b: integer; y: real; begin writeln (‘введите данные’); readln (a, b); if b < > 0 then begin y:= a / b; writeln (‘y=’, y:3:1); end else writeln (‘ошибка’); end. 2. Сложные условия составляются из простых при помощи логических операций and (и), or (или), not (не). and – логическое «и» (логическое умножение): if (a < b) and (a < > 0) then … or – логическое «или» (логическое сложение): if (a > 10) or (d = 12) then … not – логическое отрицание: if not (a > 0) then … Проверка понимания учащимися нового материала. Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит"). Особенность: надо проверить, выполняются ли два условия одновременно. Вариант 1. program qq1; uses crt; var x: integer; begin writeln('Введите возраст'); read ( x ); if x >= 25 then if x <= 40 then writeln ('Подходит') else writeln ('Не подходит') readln; end. Вариант 2. program qq2; var x: integer; begin writeln('Введите возраст'); read ( x ); if (x >= 25) and (x <= 40) then writeln ('Подходит') else writeln ('Не подходит') readln; end. Отработка навыков составления и отладки разветвляющихся программ Перечень задач для самостоятельной работы на ПК: 1 Даны три действительных числа. Возвести в квадрат те числа, значения которых неотрицательны, сделать так чтобы отрицательные тоже при этом возводились в квадрат. Результат вывести на экран. program qq1;uses crt; var a,b,c:real; begin writeln('Введите 3 действительных числа:'); readln(a,b,c); if a>=0 then a:=a*a else a:=sqr(sqr(a)); if b>=0 then b:=b*b else b:=sqr(sqr(b)); if c>=0 then c:=c*c else c:=sqr(sqr(c)); write('a=',a:0:2,' b=',b:0:2,' c=',c:0:2); readln; end. 2. Даны два действительных числа. Меньшее из двух чисел заменить полусуммой, а большее – их удвоенным произведением. Результат вывести на экран. program qq1;uses crt; var a,b,max,min:real; begin writeln('Введите 3 действительных числа:'); readln(a,b,c); if a>b then begin max:=a; min:=b end else max:=b; min:=a; max:=2*a*b; min:=(a+b)/2; write('max=',max:4:2,); write('min=',min:4:2,); readln; end. 1 Вариант 1 Вычислить z = 10 + y, если 2 x а , если x 10 yx 10 , если x 10 2 Вариант 2 Вычислить y x 5, если x 0 y 2 x , если x 0 1. Var a,x,y,z:real; Begin readln(a,x); if x>10 then y:=2*x*a; if x>10 then y:=x/10; z:=10+y; write('z=',z:2:2,); readln; end. 2. Var a,x,y:real; Begin readln(x); if x>=0 then y:=sqr(x); if x<0 then y:=x+5; write('y=',z:2:2,); readln; end. Подведение итогов урока. Используемая литература: 1 Зелинский В.В. Учебник по TURBO PASCAL 7.