Invest-currency.ru

Как обезопасить себя в кризис?
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование разветвленных алгоритмов

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

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

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

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

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

if then else

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

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 then

if then

else

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

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

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

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

if then else

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

if then

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

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

if then else

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

if then

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

begin end

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

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

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

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

а) if х =у then х:=0; у:=0 else write (z)
в) if x b then с:=1;
if a>b then d:=2;
if a 5 then с: =2

else с:=3

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

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

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

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

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

Программирование разветвляющихся алгоритмов

Условная инструкция

Условная инструкция – это инструкция управления реализующая алгоритмическую структуру “ветвление”. Синтаксически условная инструкция (далее – инструкция if ) записывается следующим образом:

Выше описана полная форма условной инструкции if . В неполной форме блок на else отсутствует. Выражение-условие следует после служебного слова if и всегда заключается в круглые скобки.
Выражение-условие – это логическое выражение или выражение скалярного типа. Если выражение принимает значение true или любое ненулевое значение, то будут выполняться инструкции, находящиеся в блоке if . Если выражение принимает значение false или 0 , то будут выполняться инструкции, находящиеся в блоке else . Если в блоке более одной инструкции, то эта группа инструкций называется составной и должна обязательно заключаться в фигурные скобки.
Фигурные скобки в C++ определяют область видимости данных. Те данные, которые определяются внутри фигурных скобок будут недоступными вне этих скобок. Например:
Программа 8.4.1

Такая программа содержит одну ошибку (попытка использования неопределенного объекта) и одно предупреждение (переменная x не используется). Иными словами, переменная x , объявленная в блоке if , не видна вне этого блока.
Для более компактного оформления программного кода мы будем использовать следующий стиль написания инструкции if (стиль Java):

Читать еще:  Язык программирования хтмл

Неполная форма инструкции if

Неполная форма ветвления используется столь же часто, как и полная. Приведем примеры нескольких задач.
Программа 8.4.2 На вход программе подаются 4 числа определить количество положительных чисел в исходном наборе. Если таких чисел нет, то сообщить об этом.

Обсуждение. Если счетчик i не изменит своего значения после прохождения каскада инструкций if , то его значение так и останется нулевым. Результат операции !i – true , если значение i == 0 (логическое отрицание).
Программа 8.4.3 Даны три числа. Определить максимальное из этого набора.

Обсуждение. Предположим, что max – это первое введенное число, тогда сверим с max и остальные два. Если какое-то из двух значений больше max , переприсвоим значение max .

Задачи с использованием полной формы инструкции if

Решим простую задачу. Даны две переменные целого типа. Присвоить переменной с меньшим значением большее. Вывести новые значения переменных.
Программа 8.4.4

Даны два действительных числа a и b . Возвести в третью степень большее из них и в четвертую степень меньшее. Вывести новые значения a и b .
Программа 8.4.5

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

Поскольку ветвление предполагает максимум два пути решения, то часто приходится вставлять одно ветвление внутрь другого, то есть применять вложенные ветвления (частный случай – это инструкция switch , с которой мы познакомимся позднее).
Глубина вложенности, впринципе, не ограничена, но на практике следует избегать инструкций слишком глубокой вложенности. Это может привести к нечитаемости алгоритма и трудно выявляемым ошибкам. Подумайте как упростить задачу.
Пример задачи. Дана точка A с координатами x и y . Определить, какой координатной четверти принадлежит A .
Программа 8.4.6

Обратите внимание, что при написании кода вложенные инструкции if оформляются с дополнительным отступом.

Программа 8.4.7 Даны коэффициенты a, b и c. Найдите вещественные корни квадратного уравнения, если вещественных корней нет – сообщите об этом.

ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример 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. Если нельзя построить треугольник с такими длинами сторон, то вывести об этом сообщение, иначе вывести сообщение о виде треугольника.

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

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

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Название программы, УМК

«Информатика и ИКТ», Босова Л. Л.

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

Класс или возраст учащихся:

Беглякова Ольга Анесовна

МБОУ СОШ № 29 р. п. Чунский

Разрабатывать программы, содержащие оператор/операторы ветвления (решение линейного неравенства, решение квадратного уравнения и пр.).

Тема урока. Программирование разветвляющихся алгоритмов. Условный оператор. Практическая работа № 20 «Написание программ, реализующих разветвляющийся алгоритм на языке Паскаль»

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

Место урока в теме : 1 урок.

Цель урока: сформировать представление об условном операторе в языке программирования Pascal. Научить составлять разветвляющиеся программы на языке Pascal.

— рассмотреть правила записи условного оператора;

— рассмотреть формат и назначение условного оператора

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

Pascal ABC короткие алгоритмы с ветвлением.

Основные понятия, рассматриваемые на уроке:

неполная форма условного оператора.

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

ПК учителя, мультимедийный проектор, экран;

Операционная система Windows ХР;

Пакет Pascal ABC .

Электронное приложение к учебнику:

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

Учебно-методическое обеспечение урока:

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

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

Л.Л. Босова, А.Ю. Босова. Информатика: методическое пособие для 7-9 классов. — М. : БИНОМ. Лаборатория знаний, 2015.

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

Проверка домашней работы № 178(а)

var a,b,c,d: integer;

-Давайте вспомним алгоритм решения квадратного уравнения. Как можно дополнить домашнюю программу, чтобы она вычисляла не только дискриминант КВУР, но и его корни?

(Учащиеся вспоминают условия для дискриминанта: D 0 – 2 корня и формулу вычисления корней КВУР, рассуждают, высказываются).

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

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

Изучение нового материала. Объяснение учителя:

Итак, сегодня наша цель разобраться с записью и использованием команды ветвления на языке Pascal для решения задач.

Ветвле ние — ор ганизация действий, при которой осуществляется выполнение той или иной последовательности команд в зависимости от результата проверки условий. Т.е. возникает необходимость выполнять различные команды в зависимости от выполнения какого-то условия. Для таких целей в ЯП Pascal введен условный оператор:

Почему условный? Просто потому, что после оператора следует условие, которое может выполняться, а может и не выполняться — заранее это неизвестно.

Условный оператор If позволяет выполнить одну из двух последовательностей команд в зависимости от некоторого условия. В языке Pascal имеется 2 формы условного оператора: полная и неполная.

Полная форма условного оператора: (учащиеся записывают в тетрадь)

если условие после команды I f верно, то выполняется после команды THEN , иначе после команды ELSE .

Неполная форма условного оператора: (учащиеся записывают в тетрадь)

если условие после команды I f верно, то выполняется после команды THEN .

Если после THEN или ELSE используется более одной команды, то они заключаются в операторные скобки begin … end . (учащиеся записывают в тетрадь)

Читать еще:  Понятие и сущность информационной безопасности

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

Напомню, что условие — это некоторое утверждение, относительно которого можно сказать: истинно оно или ложно.

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

простые записываются с помощью операций отношения;

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

Выполни задание: РТ № 182 (работают вместе с учителем)

Выполни самостоятельно РТ № 181.

Выполни задание: РТ № 184 (работают вместе с учителем). Прокомментируйте каждую строку программы. Строим блок-схему.

— перечислите целые типы Pascal;

— перечислите операторы ввода;

— для чего служит оператор присваивания;

— перечислите операторы вывода;

— какие переменные будут входными, какие выходными.

Выполнение практического задания. Компьютерный эксперимент (тестирование программы) РТ № 184.

2) Определите результат выполнения программы при следующих входных данных.

Анализ результатов компьютерного эксперимента оформите в тетради.

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

Подведение итогов урока и задание на дом. §3.4.1 РТ № 183,186

Оценивание работы учащихся на уроке, оценивание практической работы.

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

Список вопросов для обсуждения:

Какие операторы на данный момент вы знаете?

Какие правила пунктуации в Паскале вам известны?

Какие конструкции ветвления вы знаете?

Ребята, скажите, что нового мы узнали сегодня на уроке?

Какие виды задач нам позволяют решить условные операторы?

В каких случаях в программе используется оператор I F ?

§ 4.5. Программирование разветвляющихся алгоритмов

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

  • условный оператор
  • сокращённая форма условного оператора
  • составной оператор
  • вложенные ветвления

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

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

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

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

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

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

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

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

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

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

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

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

называется составным оператором.

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

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

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

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

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

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

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

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

Самое главное

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

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

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

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

  1. Как на языке Паскаль записывается полное и неполное ветвление?
  2. Является ли условным оператором последовательность символов?
      а) if х =у then х:=0; у:=0 else write (z)
      в) if х b then с:=1;
      if a>b then d:=2;
      if a 2 + у 2 = r 2 , над ней или под ней. Примеры входных данных и соответствующих им выходных данных разработайте самостоятельно.
  3. Напишите программу, которая производит обмен значений переменных х и y, если х больше y.


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

Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?
Напишите программу, вычисляющую значение функции:

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

  • Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.
  • Ссылка на основную публикацию
    ВсеИнструменты 220 Вольт
    Adblock
    detector
    ×
    ×