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

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

До сих пор Вы использовали линейные алгоритмы, т.е. алгоритмы, в которых все этапы решения задачи выполняются строго последовательно. Сегодня Вы познакомитесь с разветвляющимися алгоритмами.

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

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

Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами), связанных одним из знаков:

= — больше, чем. или равно

Например, простыми отношениями являются следующие:

x-y>10; k 11; ‘мама’<>‘папа’.

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

если х=25, у=3, то отношение x-y>10 будет верным, т.к. 25-3>10

если х=5, у=30, то отношение x-y>10 будет неверным, т.к. 5-30 t

Задача. Вычислить значение модуля и квадратного корня из выражения (х-у).

Для решения этой задачи нужны уже знакомые нам стандартные функции нахождения квадратного корня — Sqr и модуля — Abs. Поэтому Вы уже можете записать следующие операторы присваивания:

В этом случае программа будет иметь вид:

Koren, Modul : real;

write (‘Введите значения переменных х и у через пробел ‘);

write (‘Значение квадратного корня из выражения (х-у) равно ‘);

write (‘Значение модуля выражения (х-у) равно ‘);

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

Поэтому наша программа имеет свою допустимую область исходных данных. Найдем эту область. Для этого запишем неравенство х-у>=0 и решив его получим х>=у. Значит, если пользователем нашей программы будут введены такие числа, что при подстановке значение этого неравенства будет равно True, то квадратный корень из выражения (х-у) извлечь можно. А если значение неравенства будет равно False, то выполнение программы закончится аварийно.

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

а) х=23, у=5; б) х=-5, у=15; в) х=8, у=8.

Каждая программа, насколько это возможно, должна осуществлять контроль за допустимостью величин, участвующих в вычислениях. Здесь мы сталкиваемся с разветвлением нашего алгоритма в зависимости от условия. Для реализации таких условных переходов в языке Паскаль используют операторы If и Else, а также оператор безусловного перехода Goto.

Рассмотрим оператор If.

Для нашей задачи нужно выполить следующий алгоритм:

то вычислить значение квадратного корня,

иначе выдать на экран сообщение об ошибочном введении данных.

Запишем его с помощью оператора If. Это будет выглядеть так.

if x>=y

Then

Else

write (‘Введены недопустимые значения переменных‘);

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

Читайте также:  World of warcraft лицензия

В общем случае полная форма конструкции условного оператора имеет вид:

if

Then

Else

Условный оператор работает по следующему алгоритму.

Сначала вычисляется значение логического выражения, расположенного за служебным словом IF. Если его результат истина, выполняется , расположенный после слова THEN, а действия после ELSE пропускаются; если результат ложь, то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется .

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

Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки begin-end. Конструкция Begin . End называется составным оператором.

if

Then

Begin

End

Else

Begin

end;

Определение. Составной оператор объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end).

С учетом полученных знаний преобразуем нашу программу.

Program Znachenia;

Uses

Var

Koren, Modul : real;

Begin

write (‘Введите значения переменных х и у через пробел ‘);

if x>=y

Then

Begin

write (‘Значение квадратного корня из выражения (х-у) равно ‘);

write (‘Значение модуля выражения (х-у) равно ‘);

End

Else

write (‘Введены недопустимые значения переменных‘);

End.

Составным оператором является и такой оператор

Cимвол “;” в данном случае разделяет оператор присваивания S:=0 и пустой оператор.

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

Например, составной оператор

включает лишь один пустой оператор.

Если Вы обратили внимание, программа на языке Паскаль всегда содержит один составной оператор – раздел операторов программы.

Внимание! Перед служебным словом Else разделитель (точка с запятой) не ставится.

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

1. Каждое описание переменной и определение константы заканчиваются точкой с запятой.

2. Каждый оператор в теле программы завершается точкой с запятой, если сразу за ним не следуют зарезервированные слова End, Else, Until.

3. После определенных зарезервированных слов, таких, как Then, Else, Var, Const, Begin, никогда не ставится точка с запятой.

Рассмотрим еще один пример.

Задача. Вывести на экран большее из двух данных чисел.

Program Example1;

Var

Begin

writeln(‘Введите 2 числа ‘);

if x>y

Then

Else

End.

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

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

if

Then

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

Читайте также:  Visual studio for mac

Задача. Составить программу, которая, если введенное число отрицательное меняет его на противоположное.

Program Chisla;

Var

Begin

if x

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9175 — | 7317 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

2.2. Тестовые задания для контроля знаний студентов

по теме «Алгоритмы разветвляющейся структуры»

S: Алгоритм называется разветвляющимся, если

-: действия выполняются последовательно друг за другом

-: некоторая последовательность действий повторяется многократно

+: существует условие выбора для выполнения действий

-: выполняется ранее разработанный алгоритм

S : Условный оператор организовывает

-: цикл с параметром

-: цикл с условием

S: В полном ветвлении существуют действия

-: только в ветке «Да»

+: в ветке «Да» и ветке «Нет»

-: только в ветке «Нет»

S: В неполном ветвлении существуют действия

+: только в ветке «Да»

-: в ветке «Да» и ветке «Нет»

-: только в ветке «Нет»

S : В случае истинности проверяемого условия в операторе IF выполняются действия

+: только в ветке «Да»

-: в ветке «Да» и ветке «Нет»

-: только в ветке «Нет»

S : В случае ложности проверяемого условия в операторе IF выполняются действия

-: только в ветке «Да»

-: в ветке «Да» и ветке «Нет»

+: только в ветке «Нет»

S: Условный оператор в полной форме имеет формат

S: Условный оператор в неполной форме имеет формат

S: Проверка условия выполняется в геометрической фигуре

S: Логическое условие может иметь значение

-: больше или меньше

S: В условном операторе не используется ключевое слово

S: Ключевое слово THEN означает

S: Ключевое слово ELSE означает

S: Символ ; не ставят после

+: ключевого слова THEN

-: пустого оператора READLN

-: пустого оператора WRITELN

S: Символ ; не ставят перед

-: пустого оператора READLN

S: Простым называется условие составленное из

S: Составное условие состоит из

S: Условный оператор предназначен для

-: перехода в конец программы

-: перехода в начало программы

+: выбора одного из действий в зависимости от условия

-: выбора одного из действий в независимости от условия

S: Выражение, записанное после служебного слова case

S: Оператор case заканчивается служебным словом

Международные дистанционные олимпиады «Эрудит III»

Доступно для всех учеников
1-11 классов и дошкольников

Рекордно низкий оргвзнос

по разным предметам школьной программы (отдельные задания для дошкольников)

Идёт приём заявок

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

Читайте также:  Msi afterburner power limit заблокирован

  • Минциева Аминат АхметовнаНаписать 707 25.04.2018

Номер материала: ДБ-1512105

Устанавливая рекомендуемое программное обеспечение вы соглашаетесь
с лицензионным соглашением Яндекс.Браузера и настольного ПО Яндекса .

    25.04.2018 86
    25.04.2018 49
    25.04.2018 62
    25.04.2018 42
    25.04.2018 127
    25.04.2018 61
    25.04.2018 96
    25.04.2018 67

Не нашли то что искали?

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

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

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

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

УСЛОВНЫЙ ОПЕРАТОР IF

Условный оператор IF обеспечивает выполнение или невыполнение некоторого оператора в зависимости от заданных условий. Формат оператора IF:

ЕСЛИ ТО ВЫПОЛНИТЬ

То же на языке Паскаль:

Обратите внимание: перед ELSE точка с запятой не ставится.

IF Temp > 100 THEN Writeln(‘Вызывайте пожарных!’);

ELSE Writeln(‘Все в порядке.’);

В операторе IF вторая часть может отсутствовать:

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

Оператор IF используется в тех случаях, когда имеется два варианта действий в зависимости от какого-то условия.

ОПЕРАТОР ВЫБОРА CASE

Если надо выбрать более чем из двух альтернатив, используют оператор CASE. Он имеет следующий формат:

В качестве селектора могут служить переменные символьного и целочисленных типов. Данные типа real и string для селектора строго запрещены.

В зависимости от значения селектора выполняется соответствующий этому значению оператор.

Значения селектора могут быть заданы тремя способами:

Оператор CASE чрезвычайно удобен и часто используется программистами.

Примеры его использования на все случаи жизни:

CASE c селектором типа integer: CASE с селектором типа char

CASE X OF CASE Ch OF

1,3,5:Write(‘Нечетное число’); ‘+’,’-‘,’+’,’*’ :Write(‘Операция’);

2,4,6:Write(‘Четное число’); ‘a’..’я’,’a’..’z’:Write(‘с.Буква’);

7..20:Write(‘Диапазон 7-20’); ‘А’..’Я’,’A’..’Z’:Write(‘п.Буква’);

ELSE:Write(‘Вне диапазона 1..20’) ELSE:Write(‘Не операция,не буква’);

Результат: Четное число Результат: с.Буква

Все другие операторы CASE строятся в полной аналогии с представленными.

Str:=’Start’; ОШИБКА: в качестве селектора

CASE Str OF задана строка.

‘Stop’ :writeln(‘Остановить работу!’);

ПРИМЕР 1: Найти максимальную из двух величин а и в

Ссылка на основную публикацию
Adblock detector