Программирование разветвляющихся алгоритмов условный оператор. Программирование разветвляющихся алгоритмов план-конспект урока по информатике и икт (9 класс)

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

Рис. 3.1 Команды ветвления: а) – в полной форме; б) , в) – в сокращенной– форме

Для программирования ветвлений используется оператор if , а для программирования выбора – операторы switch и break .

3.2 Операторы управления разветвляющимся вычислительным процессом

3.2.1 Логические выражения

Логическое выражение (условие) - выражение, которое содержит знаки операций отношения и/или знаки логических операций . Значением логического выражения может быть только 1, если логическое выражение есть ИСТИНА (true), или 0, если логическое выражение ЛОЖЬ (false).

Операции отношения являются бинарными и обозначаются следующим образом (приведены в порядке уменьшения приоритета):

< (меньше);

<= (меньше или равно);

> (больше);

>= (больше или равно);

== (равно);

!= (не равно).

Примеры: a=8.1, d<>(w-c).

Логические операции – это операции:

&& - логическое И (бинарная операция);

|| - логическое ИЛИ (бинарная операция);

! - логическое НЕ (унарная операция).

Логические операции имеют более низкий приоритет, чем операции отношения. Результаты выполнения логических операций приведены в таблицах 3.1-3.3.

Таблица 3.1 Таблица3.2 Таблица 3.3

Например, логическое выражение a>3 && c<7 при a=5, c=6 будет иметь значение ИСТИНА, а при a=3, c=8 – ЛОЖЬ; логическое выражение a>3 || c<7 при a=5, c=6 будет иметь значение ИСТИНА, при a=2, c=6 – ЛОЖЬ; при a=7 логическое выражение!a>2 будет иметь значение ЛОЖЬ.

При составлении логических выражений следует учитывать приоритет выполнения операций.

Примеры записи логических выражений приведены в таблице 3.4.

Таблица 3.4

Таблица записи логических выражений

Условие

Логическое выражение

x>=a && x<=b

xb

или

x>=a && x<=b || x>=c && x<=d

Хотя бы одно из чисел x, y положительное

x>0 || y>0

Только одно из чисел x, y положительное

(x>0 && !y>0) || (y>0 && !x>0)

Ни одно из чисел x, y не является четным

x % 2 !=0 && y % 2 !=0

Точка (x,y) принадлежит заштрихованной области

x>=0 && x<=a && y>=0 && y<=b/a*x

Методическая разработка урока

Тема урока: Программирование разветвляющихся алгоритмов. Условный оператор

Идея урока:

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

Цель урока:

Ознакомиться с разветвляющимися алгоритмами и условным оператором, реализующим разветвляющийся алгоритм в языке программирования Паскаль

Задачи:

    Обучение самостоятельной практической деятельности.

    Выбор эффективных решений.

    Развитие навыков работы в коллективе.

    Формирование навыков самоанализа и самооценки.

Планируемые результаты:

    Предметные

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

    Метапредметные

    1. Регулятивные:

    самостоятельно формулировать познавательную цель;

    планировать действия в соответствии с выбранной целью;

    прогнозировать результаты своей работы;

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

    оценивать достигнутый результат.

    1. Коммуникативные:

    Осуществлять совместную деятельность в группе;

    Уметь строить речевые высказывания;

    Задавать вопросы с целью получения необходимой информации.

2.3 Познавательные :

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

    выделять значимую для решения задачи и избыточную информацию;

    познакомиться с разветвляющимся алгоритмом;

    изучить запись разветвляющегося алгоритма словесную и с помощью блок-схем;

    ознакомиться с условным оператором, реализующим разветвляющийся алгоритм;

    для закрепления результата учащиеся должны составить алгоритмы и условные операторы по нескольким задачам;

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

    Личностные :

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

    формирование устойчивой мотивации к самообразованию и применению полученных навыков на практике;

    формирование внимания, умения наблюдать и закреплять знания;

    формирование способности сопоставлять, находить отличия и сходства.

Технологии обучения :

На занятии используются элементы проектного обучения, проблемного обучения, ИКТ технологий.

Используемые на уроке средства ИКТ: экран, компьютер.

Информационные ресурсы:

    Учебник для 8 класса «Информатика». Л.Л. Босова, А.Ю. Босова. – М..: Бином, 2014;

    Учебное пособие «Программирование и основы алгоритмизации». /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. - Казань: Изд-во КНИТУ- КАИ, 2013.

    Учебное пособие Фаронова В.В. «Турбо Паскаль 7.0. Начальный курс». – М.: ОМД Групп, 2013;

Технологическая карта занятия

Действия учителя

Деятельность обучающихся

1-ый этап - Смыслообразующий

Сегодня мы познакомимся с разветвляющимися алгоритмами и условным оператором, реализующим разветвляющийся алгоритм.

Что такое алгоритм?

Какими способами записи алгоритмов пользуются чаще всего?

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

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

Какими бывают алгоритмы по типу вычислительного процесса?

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

Разветвляющимся алгоритмом описывается вычислительный процесс, реализуемый по одному из нескольких заранее предусмотренных направлений - ветвей. Выбор конкретной ветви вычисления зависит от результатов проверки выполнения некоторого логического условия. Результатом проверки является: "истина" (да) при выполнении условия, и "ложь" (нет), если не выполняется условие.

Записывают определение разветвляющегося алгоритма

2-ой этап – Операционно-деятельностный

Пример 1. Разработать алгоритм определения функции

F(x) = 2 x при x > 0 и

F(x) = х 2 при x <= 0.

Записывают пример 1 в тетради.

Словесный алгоритм данной задачи будет таким:

Проверяется, переменная Х больше или меньше нуля;

Если переменная Х больше нуля, то значение функции F (x )=2х;

Если переменная Х меньше нуля, то значение функции F (x )=х 2 .

Записывают словесный алгоритм примера 1.

Разветвляющийся алгоритм представляется на блок-схеме блоком «Условие» в виде ромба, имеющего один вход и как минимум 2 выхода: «Да» при выполнении условия в блоке и «Нет» при не выполнении условия в блоке. Но выходов из условного блока может быть и несколько, рассмотрим этот вариант позже.

Записывают условный блок

Нет да

Блок - схему разветвляющегося алгоритма для рассматриваемого примера 1 представляет рисунок 1.

да нет

Рисунок 1 - Разветвляющийся алгоритм

Рисуют в своих тетрадях блок-схему алгоритма примера 1.

В языке Паскаль разветвляющийся алгоритм реализует условный оператор if . Формат записи оператора if следующий:

If <условие> then <оператор>; - это неполная форма алгоритма с ветвлением.

Пример 2:

If x <5 then writeln (x );

Условие (в данном случае x<5) – это любое выражение типа boolean .

Записывают в тетради неполный условный оператор

Рисунок 2 – Блок-схема неполной формы алгоритма с ветвлением (Пример 2)

Зарисовывают Блок-схему неполной формы алгоритма с ветвлением

Программная реализация примера 1:

If x >0 then f :=2* x else f := x * x ;

Изменим немного эту задачу:

Пример 3: Если х<5, то вывести на экран х, иначе вывести текст “ x >=5”. В обоих случаях х нужно увеличить на 1.

Здесь используется расширенный условный оператор – полная форма ветвления:

If … then else …; Переводится так:

Если … то. .. иначе …;

Формат записи оператора:

If <условие> then <оператор-да> else <оператор-нет>;

Запомните: перед оператором else точка с запятой не ставится!

Записывают программную реализацию примера 1.

Записывают измененное условие задачи (пример 3) и расширенный условный оператор.

Записывают расширенный формат условного оператора.

Записывают данное условие, выделенное жирным и!

Блок-схема примера 3:

да нет

Рисунок 3 – Блок-схема примера 3

Зарисовывают блок-схему примера 3

Программная реализация примера 3 по блок-схеме на рис. 3:

If x<5 then writeln(x)
else writeln(‘x>=5’);

x := x +1;

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

Записывают программную реализацию примера 3

Условный оператор может иметь несколько уровней вложенности. Рассмотрим Пример 4:

y (x ) =

Записывают Пример 4 с несколькими уровнями вложенности

да нет да

Нет

Рисунок 4 – Блок-схема примера 4

Зарисовывают блок-схему примера 4

Программная реализация примера 4 на языке Паскаль будет выглядеть так:

If x=0 then y:=1 else if x>0 then y:=x else y:=x*x;

Уровней вложенности может быть и больше.

Записывают программную реализацию примера 4

3-ий этап - Оценочно -рефлексивный

Для закрепления материала нужно самостоятельно составить блок-схемы и программы, c компилировать, запустить их и получить результаты.

Напишем программу для примера 4:

Program Prim 4;

Var x,y: real;

begin

Write(‘ Введите значение х ’);

If x=0 then y:=1
else if x>0 then y:=x
else y:=x*x;

Writeln(‘x=’,x,’ y=’,y);

End .

В программе сначала объявляются переменные х, у, затем вводится значение х, затем условным вложенным оператором проверяется значение х и в зависимости от значения х присваивается значение у. Отметим, что оператор else относится к последнему оператору then .

После определения у печатаются значения х и у. оператор Writeln (‘ x =’, x ,’ y =’, y ); выполняется в любом случае.

Записывают программу Prim 4 в тетради и набирают программу Prim 4 на компьютере.

Записывают также замечания по программе.

Alt - F 9.

В случае успешной компиляции запускается на выполнение Ctrl - F 9 для х=3.

Ответ: х=3 у=3.

Проверяет, правильно ли ученики набирают программу.

Пример 5: Ввести три числа а, b , c . Если ни одно из чисел не равно нулю, то в переменную sr записать среднее арифметическое трех чисел.

Составить блок-схему алгоритма и написать программу для примера 5.

Блок-схема алгоритма:

Нет

Да

Программа на языке Паскаль:

Program Prim5;

var

a, b, c: integer;

sr: real;

begin

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

Read(a, b, c);

If (a<>0)and(b<>0)and(c<>0) then sr:=(a+b+c)/3;

End .

Числа а, b , c вводятся с клавиатуры через пробел.

Учитель проверяет правильность составления блок-схем, набора программ учениками и правильность ответа.

Составляют блок-схему и программу на компьютере по примеру 5

Исправляют ошибки компиляции, если они есть, затем запускают на выполнение для набора чисел: 5 8 11.

Ответ: 8.

Если после выполнения условия, т.е. после оператора then , или после оператора else нужно выполнить несколько операторов, то эти несколько операторов заключаются в составной оператор, образуемый операторами begin и end .

Пример 6:

y (x ) =

Программная реализация примера 6:

If x >0 then begin y := x * x ; x := x +1; end

else y:=x;

Записывают пример 7 и его программную реализацию.

Пример 7: Ввести три числа а, b , c . Определить максимальное из них. Составить блок-схему и написать программу. Блок-схема алгоритма:

да

Нет

нет

Нет да

Программа:

Program Prim 7;

Var a, b, c, m: integer;

begin

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

Read(a, b, c);

M:=a;

If b>m then m:=b;

If c>m then m:=c;

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

End.

Составляют блок-схему и программу на компьютере по примеру 7.

После набора программы запускают компиляцию Alt - F 9, при наличии ошибок исправляют.

После успешной компиляции запускают на выполнение Ctrl - F 9 для набора чисел: 4 7 18.

Ответ: 18.

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

Самоанализ методической разработки

Урок состоит из трех этапов.

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

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

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

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

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

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

Были применены объяснительно-иллюстративный, исследовательский, проблемный методы.

Направленность содержания урока на формирование личностных, метапредметных и предметных планируемых результатов образования. Возможности урока для формирования универсальных учебных действий (УУД).

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

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

Материалы информационных уроков вообще и данного урока в частности ориентированы на становление личностных характеристик выпускника ступени основной школы согласно требованиям ФГОС, в частности умение справиться с такими сложными заданиями как программирование вызывает чувство удовлетворения своим трудом, воспитания достоинства ученика.

    Использование современных методов и технологий организации учебно-воспитательной работы с учениками в процессе урочной и внеурочной деятельности (краткое описание этих методов или ссылка на источники)

Использование современных методов и технологий организации учебно-воспитательной работы с учениками в процессе урочной и внеурочной деятельности (краткое описание этих методов или ссылка на источники).

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

    Включение в структуру и содержание урока современных методов и приемов, стимулирующих познавательную мотивацию учащихся (краткое описание этих методов или ссылка на источники)

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

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

(Современные образовательные технологии: учебное пособие/Под ред. Н.В. Бордовской. – М.: КНОРУС, 2011).

    Включение в структуру и содержание урока современных методических приемов активного целеполагания, групповой/совместной работы, элементов проектной деятельности (описание этих методов или ссылка на источники)

Включение в структуру и содержание урока современных методических приемов активного целеполагания, групповой/совместной работы, элементов проектной деятельности (описание этих методов или ссылка на источники).

На первом этапе урока – смыслообразующем – учащимися на основе включения в активную деятельность сформулирована тема и цель урока. На втором этапе урока – операционно-деятельностном – учащиеся вовлечены в проектную работу, работу в группах.

    Включение в структуру и содержание урока современных методов оценки, позволяющих измерять метапредметные результаты, формировать самооценку у учащихся (описание этих методов или ссылка на источники)

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

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

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

(Современная оценка образовательных достижений учащихся/Под ред. И.В. Муштавинской. – СПб.: КАРО, 2015).

| Планирование уроков на учебный год (ФГОС) | § 3.4. Программирование разветвляющихся алгоритмов

Уроки 27 - 28
§ 3.4. Программирование разветвляющихся алгоритмов

Ключевые слова:

Условный оператор
неполный условный оператор
составной оператор
вложенные ветвления

3.4.1. Условный оператор

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется неполная форма условного оператора:

if <условие> then <оператор>

Слова if - then - else переводятся с английского языка на русский как если - то - иначе , что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

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

Простые - записанные с помощью операций отношения;
сложные - записанные с помощью логических операций.

Пример 1. Запишем на языке Паскаль рассмотренный в п. 2.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [а, b ].

Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с .

Дополните эту программу так, чтобы её выполнение приводило к присваиванию переменной у значения большей из четырёх величин а, b,с и d .

3.4.2. Составной оператор

В условном операторе и после then , и после else можно использовать только один оператор. Если при некотором условий требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

Конструкция вида

begin <последовательность операторов> end называется составным оператором .

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.


3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if <условие1> then

if <условие2> then <оператор1>

else <оператор2>

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

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.

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

Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

if <условие> then <оператор_1> else <оператор_2>

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].

if <условие> then <оператор>

САМОЕ ГЛАВНОЕ

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется неполный условный оператор:

if <условие> then <оператор>

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

begin <последовательность операторов> end

Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if х<у then х:=0 else read (у)
б) if х>=у then х:=0; у:=0 else write (z)
в) if xthen a:=a+l

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Используя составной оператор, упростите следующий фрагмент программы:

if a>b then с:=1;
if a>b then d:=2;
if a<=b then c:=3;
if a<=b then d:=4

6. Дано трёхзначное число. Напишите программу, которая определяет:

а) есть ли среди цифр заданного целого трёхзначного числа одинаковые;


б) является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.

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

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

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

10. Напишите программу, определяющую, лежит ли точка А(ха, уа) на прямой у = kx + l на ней или под ней.

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

12. Дан условный оператор:

if а<5 then с:=1 else

if а>5 then с: =2

else с:=3

Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?

13. Напишите программу, вычисляющую значение функции:

14. Составьте программу для решения задачи № 21 к § 2.4 (определение дня недели).

15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, имеют ли эти поля один цвет.

16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а - случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.

Тема урока : Программирование разветвляющихся алгоритмов. Условный оператор.

Учебник: Босова Л. Л. Информатика: учебник для 8 класса – М. : БИНОМ. Лаборатория знаний, 2014. – 160 с. : ил.

Тип урока: урок изучения нового материала.

Цели урока :

    обучающая : организовать деятельность обучающихся по ознакомлению с синтаксисом условного оператора (оператора if ); создать условия для формирования у обучающихся умения использовать оператор if при написании программ;

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

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

Формируемые универсальные учебные действия (УУД) :

    Личностные УУД :

    1. фантазия и воображение при выполнении учебных действий;

      желание выполнять учебные действия.

    Познавательные УУД :

    1. логические действия и операции;

      создание и преобразование моделей и схем для решения задач.

    Коммуникативные УУД :

    1. формулирование собственного мнения и позиции.

    Регулятивные УУД :

    1. планирование своих действий в соответствии с поставленной задачей и условиями ее реализации.

Оборудование : персональный компьютер (ПК), мультимедийный проектор, экран.

Программные средства : презентация «Программирование разветвляющихся алгоритмов. Условный оператор».

План урока

Ход урока.

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

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

Включаются в деловой ритм урока.

2. Актуализация знаний

Здравствуйте, ребята! Сегодня мы переходим к изучению синтаксиса условного оператора в языке Pascal .

Запишите сегодняшнюю дату и тему сегодняшнего урока: «Программирование разветвляющихся алгоритмов. Условный оператор».

Теперь повторим материал из раздела «Алгоритмизация» и предыдущих занятий:

Какую алгоритмическую конструкцию называют ветвлением;

Какие формы ветвления вы знаете;

Изобразите блок-схемы полной и сокращенной форм ветвления;

Как записываются логические функции И, ИЛИ, НЕ в языке Pascal .

(Отвечают на вопросы)

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

Существуют полная и сокращенная формы ветвления.

Блок-схемы:

AND, OR, NOT соответственно.

3. Изучение нового материала

А теперь рассмотрим, какой синтаксис имеют операторы ветвления в языке Pascal . Для начала я предлагаю вам заготовить таблицу из двух колонок. Колонки таблицы назовите «Полная форма условного оператора» и «Сокращенная форма условного оператора». Теперь в соответствующие колонки занесите блок-схемы полной и сокращенной форм ветвления, которые изображены на доске.

Ниже запишем общий вид полной и сокращенной форм условного оператора.

Полная форма имеет следующий синтаксис:

if <условие>

then <оператор 1>

else <оператор 2>;

if then , после которого записывается оператор, который выполнится в случае истинности условия. Затем записывается служебное слово else , после которого записывается оператор, который выполнится в том случае, если условие окажется ложным.

Отметьте в тетрадях, что перед служебным словом else знак «;» не ставится.

Краткая форма условного оператора имеет следующий синтаксис:

if <условие>

then <оператор 1>;

Сначала записывается служебное слово if , затем – условие, от истинности которого зависит выполнение той или иной ветки условного оператора. После условия записывается служебное слово then , после которого записывается оператор, который выполнится в случае истинности условия.

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

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

(Составляют таблицу)

if <условие>

then <оператор 1>

else <оператор 2>;

if <условие>

then <оператор 1>;

Перед 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 ) закрашенной области, в том числе и границе области:

Записывают условие в тетрадях.

Участвуют в обсуждении задачи, записывают решение в своих тетрадях.

program minimum;

var

a, b, c, min: real;

begin

read(a, b, c);

min:=a;

if b < min then min:=b;

if c < min then min:=c;

writeln (" Min -> ", min );

end .

(Отвечают на вопросы)

a = 8, b = 3. На экран будет выведено число 24.

Самостоятельно оформляют решение задач на компьютере.

Код программы к задаче 1:

program func ;

var

x, y: real;

begin

read(x);

if x <= 5 then

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 <= 3) and (y >= -2) and (y <= 4) then

writeln ("Точка принадлежит области")

else

writeln ("Точка не принадлежит области");

end.

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

Итак, чему вы научились в течение сегодняшнего занятия?

Что представляет собой условие в условном операторе?

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

Простое или сложное логическое выражение.

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

Поля одного цвета

Записывают в дневниках д/з.

Алгоритм называется разветвляющимся, если в зависимости от выполнения некоторого условия он реализуется по одному из нескольких, заранее предусмотренных направлений. Каждое направление называется ветвью алгоритма. За одно выполнение программы, в зависимости от условия, вычисления производятся по одной из ветвей алгоритма. В блок-схемах разветвляющиеся алгоритмы изображаются так, как показано на рис. 4.1.

Рис. 4.1. Фрагмент разветвляющегося алгоритма

Если условие истинно, то выполняется оператор 1, если ложно – оператор 2.

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

Рис. 4.2. Панель инструментов Логический

Операция отношения принимает одно из двух значений: 1 (истина) - если заданное отношение выполняется или 0 (ложь) – в противном случае.

В MathCAD’e можно в одном выражении проверять несколько условий. Результат вычисления операций отношения:

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

В MathCAD используются четыре логические операции: логическое отрицание (Ø), логическое И (Ù), логическое ИЛИ (Ú) и логическое исключающее ИЛИ (Å).

Логическое выражение принимает только одно из значений: 1 (ИСТИНА) или 0 (ЛОЖЬ) и вычисляется с учетом приоритета операций, входящих в выражение. Самый высокий приоритет из логических операций имеет операция логическое отрицание, затем по убыванию: И, ИЛИ и исключающее ИЛИ (имеют одинаковый приоритет).

Операция логическое отрицание дает результат, противоположный значению операнда: отрицание ИСТИНЫ дает ЛОЖЬ и наоборот.

Результатом операции И будет значение ИСТИНА только в том случае, когда значение ИСТИНА имеют оба её операнда.

Операция ИЛИ имеет значение ИСТИНА, когда значение ИСТИНА имеет хотя бы один из операндов.

Операция исключающее ИЛИ имеет значение ИСТИНА, когда значение ИСТИНА имеет только один из операндов.

Для обозначения логических операций И и ИЛИ можно использовать знаки “*” (в тексте это точка) и “+” соответственно:

Определение значений логических выражений:

Для программирования разветвляющихся алгоритмов в Mathcad используется условная функция и условный оператор.

Условная функция if

Эта функция записывается в виде (символы if вводятся с клавиатуры):

if (<логич. выраж.>, <выражение1>, <выражение2>)


Функция принимает значение выражения 1, если логическое выражение равно 1 и значение выражения 2, если логическое выражение равно 0.

Например: X← if (A > B, Y, Z) или if (A > B, X Y, X Z)

Пример 4.1. Вычислить значение переменной y. .

Можно использовать и такой вариант решения примера:

Условный оператор if

Структура условного оператора: <выражение> if <условие>

Действие оператора if начинается с проверки условия. Если оно истинно (равно 1), то возвращается значение выражения слева от оператора if . Это соответствует условной структуре, называемой ЕСЛИ – ТО.

Для вставки условного оператора в программу необходимо (рис. 4.3):

Ввести имя программы-функции со списком формальных параметров и символ “:”;

Щелкнуть кнопку Add line панели Программирование ина ней кнопку условного оператора if ;

Справа от оператора if ввести условие, слева от if выражение, которое будет выполняться, если условие истинно; если в программе предусматриваются дополнительные условия, следует повторно нажать кнопку Add Line и ввести их аналогично, используя оператор if или otherwise .

Рис. 4.3. Вставка условного оператора

Для получения условной структуры ЕСЛИ–ТО–ИНАЧЕ используется оператор otherwise , который выполняется в том случае, если условие оператора if ложное.Для вставки оператора otherwise необходимо выделить поле, стоящее после оператора if , щелкнуть на кнопке otherwise панели Программирование и в поле оператора otherwise ввести соответствующее выражение.

Решим пример 4.1, используя в программе условный оператор if .

Блок-схема алгоритма:

Описание программы-функции и обращение к ней:

Пример 4.2. Вычислить значения полинома M(x) в зависимости от значения переменной y при x = 0,7 .

Описание программы-функции и обращение к ней имеет вид:

При программировании сложных разветвляющихся алгоритмов возникает необходимость выполнить несколько операторов и при выполнении и при невыполнении условия в операторе if . В этом случае для добавления дополнительных строк необходимо выделить поле 1 условного оператора и/или поле слева от оператора otherwise и щелкнуть повторно на кнопке Add line панели Программирование .

Пример 4.3. Даны числа a, b, c .Удвоить эти числа, если a≥b≥c и заменить их абсолютными значениями, если это не так.

Блок-схема алгоритма решения примера:

Описание и вызов программы-функции приведены на рис. 4.4. Входными параметрами являются переменные a, b, и с . Выходным параметром является вектор v , элементы которого содержат новые значения переменных a, b, c .


Рис. 4.4. Реализация алгоритма примера 4.5

Пример 4.4. Даны произвольные числа a, b, c . Если нельзя построить треугольник с такими длинами сторон, то вывести об этом сообщение, иначе вывести сообщение о виде треугольника.

Описание программы-функции и обращение к ней:

Интернет