2. Актуализация знаний Здравствуйте, ребята! Сегодня мы переходим к изучению синтаксиса условного оператора в языке Pascal. Запишите сегодняшнюю дату и тему сегодняшнего урока: «Программирование разветвляющихся алгоритмов. Условный оператор». Теперь повторим материал из раздела «Алгоритмизация» и предыдущих занятий: • какую алгоритмическую конструкцию называют ветвлением; • какие формы ветвления вы знаете; • изобразите блок-схемы полной и сокращенной форм ветвления; • как записываются логические функции И, ИЛИ, НЕ в языке Pascal. |
(Отвечают на вопросы) Ветвление – алгоритмическая конструкция, в которой в зависимости от результата проверки условия («да» или «нет») предусмотрен выбор одной из двух последовательностей действий (ветвей). Существуют полная и сокращенная формы ветвления. Блок-схемы: ![](https://fsd.multiurok.ru/html/2018/02/19/s_5a8afd7b6ad79/837114_1.png) ![](https://fsd.multiurok.ru/html/2018/02/19/s_5a8afd7b6ad79/837114_2.png) AND, OR, NOT соответственно. |
3. Изучение нового материала А теперь рассмотрим, какой синтаксис имеют операторы ветвления в языке Pascal. Для начала я предлагаю вам заготовить таблицу из двух колонок. Колонки таблицы назовите «Полная форма условного оператора» и «Сокращенная форма условного оператора». Теперь в соответствующие колонки занесите блок-схемы полной и сокращенной форм ветвления, которые изображены на доске. Ниже запишем общий вид полной и сокращенной форм условного оператора. Полная форма имеет следующий синтаксис: if then else ; Сначала записывается служебное слово if, затем – условие, от истинности которого зависит выполнение той или иной ветки условного оператора. После условия записывается служебное слово then, после которого записывается оператор, который выполнится в случае истинности условия. Затем записывается служебное слово else, после которого записывается оператор, который выполнится в том случае, если условие окажется ложным. Отметьте в тетрадях, что перед служебным словом else знак «;» не ставится. Краткая форма условного оператора имеет следующий синтаксис: if then ; Сначала записывается служебное слово if, затем – условие, от истинности которого зависит выполнение той или иной ветки условного оператора. После условия записывается служебное слово then, после которого записывается оператор, который выполнится в случае истинности условия. Обратите внимание, что если в результате проверки условие окажется ложным, то условный оператор в краткой форме просто будет пропущен, и программа перейдет к выполнению следующих за ним операторов. Для полной формы условного оператора такое утверждение не верно – он выполнится всегда (будет выполнен оператор одной из веток условного оператора). Также отметьте, что условие в условном операторе – это простое (записанное с помощью операций отношения) или сложное (записанное с помощью логических операций) логическое выражение. |
(Составляют таблицу) Полная форма условного оператора | Сокращенная форма условного оператора | ![](https://fsd.multiurok.ru/html/2018/02/19/s_5a8afd7b6ad79/837114_1.png) | ![](https://fsd.multiurok.ru/html/2018/02/19/s_5a8afd7b6ad79/837114_2.png) | if then else ; | if then ; | Перед else знак «;» не ставится! (Записывают в тетрадях) Условие в условном операторе – это простое (записанное с помощью операций отношения) или сложное (записанное с помощью логических операций) логическое выражение. |
4. Закрепление изученного Рассмотрим с вами следующую задачу (запишите её условие в своих тетрадях): пользователь вводит три различных числа, среди которых необходимо найти минимальное и вывести его на экран. Давайте попробуем изменить прошлый алгоритм для решения этой задачи так, чтобы применить цикл с постусловием. Пока я буду набирать задачу в редакторе, записывайте её решение у себя в тетради. [Совместно с обучающимися решаю задачу на компьютере в IDE, попутно решение проецируется на экран]. Список возможных вопросов обсуждения задачи. 1) Сколько переменных нам необходимо описать? 2) Как последовательно найти минимальный элемент среди известных элементов? Рассмотрим с вами следующий фрагмент кода: a:=11; b:=a div 3; a:=a-b; if a*b mod 2 = 0 then writeln(a*b) else writeln(b-a); Какими будут значения переменных a и b после выполнения этой последовательности операторов? Что будет выведено на экран? А теперь пересаживайтесь за компьютеры и выполните следующие задания самостоятельно. 1) Найти значение функции y(x) и вывести его на экран с точностью до тысячных: . Значение x вводится с клавиатуры. 2) Написать программу, определяющую, принадлежит ли точка A(x, y) закрашенной области, в том числе и границе области: ![](https://fsd.multiurok.ru/html/2018/02/19/s_5a8afd7b6ad79/837114_6.png) | Записывают условие в тетрадях. Участвуют в обсуждении задачи, записывают решение в своих тетрадях. program minimum; var a, b, c, min: real; begin read(a, b, c); min:=a; if b if c writeln('Min - ', min); end. (Отвечают на вопросы) a = 8, b = 3. На экран будет выведено число 24. Самостоятельно оформляют решение задач на компьютере. Код программы к задаче 1: program func; var x, y: real; begin read(x); if x y:=x*x*x+2*x*x-sqrt(5-x) else y:=sqrt((x+1)/(3*x*x*x-x)); writeln('y(', x, ') = ', y:0:3); end. Код программы к задаче 2: program point; var x, y: real; begin readln(x, y); if (x = -1) and (x = -2) and (y writeln('Точка принадлежит области') else writeln('Точка не принадлежит области'); end. |
6. Домашнее задание П. 3.5. Задачи: 1) Даны три отрезка длиной a, b, c. Проверить, существует ли треугольник с такими сторонами. Если да, то вывести на экран сообщение «Треугольник существует!», найти его площадь и вывести её на следующей строке; если нет, то вывести на экран сообщение «Треугольника не существует». 2) Задача № 14 (учебник 2012 г., стр. 205) Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введенным координатам полей (k, p) и (m, n) определяет, являются ли эти поля полями одного цвета. Пример входных данных | Пример выходных данных | 2 2 3 3 | Поля одного цвета | 2 3 3 3 | Поля разного цвета | 2 7 5 4 | Поля одного цвета | |
Записывают в дневниках д/з. |