Программирование разветвляющихся вычислительных процессов - IT Новости из мира ПК
Semenalidery.com

IT Новости из мира ПК
83 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

Условный оператор имеет следующие формы записи:

1. if логическое выражение then оператор1 else оператор 2;

2. if логическое выражение then

begin группа операторов 1 end
else

begin группа операторов 2 end;

3. if логическое выражение then оператор;

4. if логическое выражение then

begin группа операторов end.

Если логическое выражение истинно, тогда выполняется опе­ратор 1 или группа операторов 1, иначе выполняется оператор 2, или группа операторов 2, или оператор if пропускается и выполняется следующий за ним оператор.

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

A, X, Y: real; Описание вещественных переменных

begin Начало программы

writeln (‘Введите А, Х’); Вывод на экран фразы “Введите А,Х”

readl (А, X); Ввод значений переменных

Y := А + SQRT (X — А) Вычисление Y по первой формуле

Y := LN (ABS (X+A)) +SIN(X)* SIN(X); Вычисление Y по второй формуле

writeln (‘Y= ‘Y:1Q:2, ‘ X= ‘, X:5:2); ВыводY,X

end. Конец программы

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

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

Виды операторов цикла.

1. Оператор цикла с предварительным условием.

2. Оператор цикла с последующим условием.

3. Оператор цикла с параметром.

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

Форма записи оператора цикла с предусловием:

while логическое выражение do

begin операторы циклической части программы (тело цикла) end;

Если в циклической части оператора стоит всего один оператор, то опе­раторные скобки begin и end можно не указывать.

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

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

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

Пример. Вычислить значения функции Y при изменении X от С до D с шагом Н.

Программа

X, A. Y, C, D, H : real;

writeln (‘Введите С, D, H, A’);

while x A then y:= x*cos(A*x)

Оператор цикла с последующим условием имеет следующую форму записи:

тело цикла (выполняемые операторы)

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

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

Пример. Вычислить значения функции Y при изменении X от С до D с шагом Н.

Программа

X, A. Y, C, D, H : real;

writeln (‘Введите С, D, H, A’);

until x A then y:= x*cos(A*x)

Лабораторная работа 10 (2 часа)

Borland Pasсal.

Одномерные массивы

Массив — это множество однотипных элементов.

При описа­нии массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:

В : array [1..5] of integer;

Из описания массивов следует, что одномерный массив А состоит из 10 вещественных чисел, а одномерный массив В состоит из 5 элементов целого типа.

При работе с массивами выполняются циклические дейст­вия.

Пример. В массиве Р(20) найти количество положительных элементов и сформировать новый массив Р1, каждый элемент которого полу­чается делением соответствующего элемента массива Р на найден­ное количество.

Программа.

Р, Р1 : array [1..20] оf real;
К, I: integer;

writeln (‘Исходный массив Р’);

writeln (‘Количество положительных элементов = ’,k);

writeln (‘Новый массив Р1’);

Двумерные массивы

При описании двумерных массивов (матриц) необходимо указать границы изменения двух индексов и тип элементов матри­цы. Например:

В : array[1. .2,1. .2] of integer;

В данном примере матрица А состоит из трех строк и пяти столбцов. Все элементы матрицы А являются вещественными числами. Матрица В состоит из двух строк и двух столбцов. Все элементы матрицы В являются целыми числами.

Пример. Составить программу, которая в матрице А(4,5) определит сумму элементов каждой строки, выберет среди этих сумм наи­большую и выведет на экран дисплея матрицу А, суммы строк, наибольшую сумму и номер строки с наибольшей суммой.

А : array[1..4,1..5] of real; C, N, I, J : integer; max : real;

writeln (‘Введите матрицу А(4,5)’);

writeln (‘Строка № ‘,i:10, ‘сумма элементов = ‘, C:10:2);

ifi=1 then begin max:= C; n:= i end;

if c > max then begin max:= C; n:= I end

writeln (‘Матрица А’);

writeln (‘Максимальная сумма: ’,S:8:3);

writeln(‘Номер строки: ‘,N:3)

1. Глушаков С. В. Персональный компьютер: Учеб. курс / С. В. Глушаков, И. В. Мельников. – Харьков; Ростов-на-Дону: Фолио: Феникс, 2000. – 520 с.

2. Информатика: Базовый курс, 2-е издание / Под ред. С. В. Симоновича.: Питер, 2007. – 640 с.

3. Кукарникова Т. Э. Информатика: Учеб. пособие. – Воронеж: Изд-во Воронеж. гос. ун-та, 2000. – 317 с.

4. Степаненко О. С. Персональный компьютер: Учеб. курс – 2-е изд. пересмотр. и доп. – М. и др.: Диалектика, 2001. – 383 с.

5. Левин А. Самоучитель Левина. Windows XP и Vista. – Спб.: Питер, 2008. – 624 с.

Груздев Владислав Николаевич

Часть 2. Приложения Word, CorelDraw, MathCad, Pascal

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

Справочная информация

При программировании вычислительных процессов используются математические функции библиотеки компилятора. Для обеспечения возможности обращения к ним в программе должна указываться директива препроцессора #include . Все математические функции результатом своей работы имеют вещественные числа типа double. Описание некоторых функций дано в таблице.

Для организации разветвляющихся процессов используются условный оператор if и оператор-переключатель switch.

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

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

printf(«nПpогpамма счета зависимостей:»

«n2. z=(3.4*ln(x)+8.6)/2.3*y (переменная y больше нуля) «);

printf(«nЗадайте вид зависимостиn»);

case 2: printf(«nЗадайте значения пеpеменных х и yn»);

Читать еще:  Темы курсовых проектов по программированию

printf(«nHевеpно заданo значение пеpеменной z. «);

“nОно должно быть больше нуля”);

default: printf(«nHевеpно задан вид зависимости. «

«nЗадайте вид зависимости заново»);

Задание

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

Лабораторная работа № 7

Программирование циклических
вычислительных процессов

Справочная информация

При усложнении решаемых задач ход выполнения программ становится более неопределенным. Чтобы иметь возможность управлять процессом выполнения программ, его организацией, используются такие структуры, как циклы. Циклы необходимы, когда надо повторить некоторые действия несколько раз, как правило, пока выполняется некоторое условие. В языке С известно три вида операторов цикла: for, while и do-while.

Цикл for

Основная форма цикла for имеет следующий вид:

For (инициализация ; проверка условия ; изменение ) оператор,

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

проверка условия – условное выражение, которое определяет, когда цикл должен быть завершен;

изменение – это приращение параметра цикла каждый раз при повторении цикла.

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

Цикл while

Основная форма оператора while имеет вид

While (условие) оператор,

где оператор может быть простым, составным или пустым оператором. «Условие», как и в других операторах, является просто выражением. Цикл выполняется до тех пор, пока условие принимает значение «истинно». Когда же условие «ложно», программа передает управление следующему оператору программы. В цикле while сначала проверяется условие, а затем выполняется оператор. Этот цикл называют циклом с предусловием.

Цикл do-while

В отличие от предыдущих циклов в цикле do-while условие проверяется в конце оператора цикла. Основная форма оператора do-while следующая:

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

ü освоить методику написания разветвляющихся вычислительных алгоритмов, перевода таких алгоритмов на язык программирования С++ и разработки соответствующего проекта в среде Visual C++ 6.0.

Пример 1. Разработать алгоритм и составить по нему программу для вычисления значений функции y = f(x). Необходимо учитывать область определения функции:

Ход выполнения работы

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

При разработке алгоритма будем рассматривать промежутки числовой оси слева направо. Обозначения в алгоритме: ФНЗ – функция не задана; ФНО – функция не определена.

Записывая основной алгоритм решения задачи, вместо вычислений каждой части функции для упрощения будем писать блок1, блок2 и блок3. Поставим в соответствие каждому блоку алгоритм вычисления конкретной функции с учетом её области определения. Последний этап разработки алгоритма решения исходной задачи – подстановка в основной алгоритм вместо блоков 1,2,3 соответствующих вычислительных алгоритмов.

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

объявление переменных вещ: х, у

Блок2. Требуется вычислить функцию . Здесь никаких ограничений на вычисления нет. Таким образом, получаем:

Блок3. Требуется вычислить функцию . При вычислении учитываем, что подкоренное выражение должно быть больше или равно. Таким образом, получаем:

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

2. Написать программу, соответствующую алгоритму.

3. Создать проект и реализовать данную задачу в среде Visual C++ 6.0.

Примечание. В качестве тестового примера можно ввести следующие значения: х=16 и х=30.

Пример 2. Разработать алгоритм и составить по нему программу для вычисления значений функции z = f(x,y) в зависимости от попадания точки с координатами (х,у) в область D (область D выделена серым цветом):

Ход выполнения работы

1. В задаче требуется вычислить функцию, вид которой зависит от координат точки координатной плоскости. Если точка с координатами (х,у) попадает в область D, то вычисляется первая часть функции (в алгоритме – блок 1), в противном случае – вторая часть (блок 2). Процесс написания алгоритма разобьем на четыре этапа:

написание основного алгоритма решения задачи;

определение условия принадлежности точки области D. Так как одна и та же точка не может принадлежать двум непересекающимся областям одновременно, разобьем область D на две области: D1 (треугольник) и D2 (кольцо);

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

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

Обозначения в алгоритме: ФНО – функция не определена.

Рассмотрим отдельно этапы алгоритма.

1. Запишем основной алгоритм решения задачи:

объявление вещ: x, y, z

если ( ) или ( )

2. Математическое определение условий:

a) . Найдем уравнение прямой, проходящей через точки с координатами (-3;0) и (0;2). Запишем уравнение прямой в общем виде .

Таким образом, уравнение прямой .

.

b) . Определим уравнение окружности с центром в точке (2,0) радиуса R=2: (внешняя окружность). Определим уравнение окружности с центром в точке (2,0) радиуса R=1: (внутренняя окружность). Так как область D2 находится внутри кольца, включая его границы, то условием принадлежности точки (х,у) области D2 будут неравенства: , .

.

3. Вычислительные алгоритмы, соответствующие блокам 1,2:

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

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

5.1. Методические указания

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

Читать еще:  Решить задачу нелинейного программирования онлайн

1 этап – выполнение операторов, общих для всех ветвей программы (блок 1);

2 этап – принятие решений (логический блок 2), проверяется некоторое логическое условие и в зависимости от его значения False (Ложь) или True (Истина) осуществляется выбор одной из ветвей программы;

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

4 этап – независимо от пути решения задачи осуществляется возвращение к общему линейному участку 2 (блок 5).

С учётом названных особенностей алгоритм вычисления действительных корней уравнения ax2 + bx + c = 0 имеет вид (рис. 5.2).

Переходы от одного блока к другому называются условными, если они осуществляются только при выполнении некоторого условия. В рассмотренном алгоритме – это переходы от блока 3 к блокам 4 и 6. После выполнения всех действий в любой из ветвей осуществляется переход к блоку 7. Этот переход называется безусловным. Для реализации различных переходов в программе используются специальные операторы передачи управления: оператор безусловного перехода Goto, условный оператор If и оператор отбора Case.

5.2. Условный оператор If и составной оператор Begin … End

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

в которой If…Then…Else – зарезервированные слова языка, означающие соответственно ЕСЛИ…ТО…ИНАЧЕ, квадратные скобки означают, что часть Else может отсутствовать. Условный оператор может быть записан в одну строку, однако рекомендуется придерживаться требований структурированной записи программы.

Если логическое выражение принимает значение ИСТИНА (True), то выполняется оператор 1, если же оно принимает значение ЛОЖЬ (False), то выполняется оператор 2. В любом случае далее выполняется оператор, стоящий в программе за условием.

Например, оператор, вычисляющий Y = |X|, будет иметь следующий вид:

Условный оператор может не иметь конструкции Else, тогда он называется сокращённым условным оператором. Если логическое выражение принимает значение ЛОЖЬ (False), сразу выполняется оператор, следующий за условием.

Рассмотрим подробнее составные части условного оператора.

Логическим выражением (булевым) называется выражение, имеющее значение типа Boolean, т.е. True или False.

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

В языке PASCAL допустимы следующие операции отношения:

Отношение принимает значение True, если оно справедливо для входящих в него операндов и False в противном случае. Например, 10>7 имеет значение истина, а 5 =5) Or Not (11 b, то значения переменных увеличить на 6. Алгоритм и программа имеют следующий вид:

Program AANOB;

Var

Begin

WriteLn (‘Введите A, B’);

Read (A, B);

End

Else Begin

End;

End.

Результаты выполнения программы

Введите A, B

4 2

В ветви Then внешнего разветвления содержится ещё один оператор. Конструкция Elseво внешнем ветвлении отсутствует. Ветвь Else относится к ближайшему If, не имеющему Else. Структурированный вид программы предполагает написание соответствующих If…Then…Else друг под другом. Операторы, ограниченные операторными скобками Begin … End, записывают также друг под другом и следуют относительно Beginи End.

5.3. Оператор безусловного перехода Goto и оператор

Оператор безусловного перехода Goto используют для изменения последовательности (порядка) выполнения операторов и перехода к выполнению программы, начиная с оператора, имеющего метку. Эта же метка должна быть указана и в операторе Goto. Пример:

1: Write (‘ОПЕРАТОР С МЕТКОЙ’);

Метки, используемые в Turbo Pascal, могут быть двух типов:

· целым числом (в пределах от 0 до 9999);

Все используемые метки должны быть описаны в разделе объявления меток, начинающемся зарезервированным словом Label, пример:

Label 1, 2, 3, A, B, X2;

Для того, чтобы пометить оператор, перед ним пишут метку, двоеточием отделяя её от оператора. Таким образом, можно пометить только один оператор. Следует иметь ввиду, что использовать оператор Goto нужно очень осторожно. Частое его применение приводит к затруднению понимания логики работы программы. При написании блок-схемы этот оператор отображается стрелкой перехода в нужную часть алгоритма.

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

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

End;

В этой структуре: Case … Of … [Else …] End – зарезервированные слова языка PASCAL, которые можно перевести соответственно как ВЫБОР … ИЗ … [ИНАЧЕ …] КОНЕЦ;

C1, C2,…, CN – константы, с которыми сравнивается значение выражения «селектор»;

оператор 1, оператор 2,…, оператор N – операторы, из которых выполняется тот, с константой которого совпадает значение выражения «селектор»;

оператор (N+1) – оператор, который выполняется, если значение выражения «селектор» не совпадает ни с одной из констант C1, …, CN.

Ветвь оператора ELSEявляется необязательной. Если она отсутствует и значение выражения «селектор» не совпадает ни с одной из перечисленных констант, то выполняется оператор, стоящий за End. В отличие от оператора If перед словом Else точку с запятой можно ставить.

Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно), сопроводив их одним оператором. Например:

0, 2, 4, 6, 8: WriteLn (‘Четная цифра’);

1, 3, 5, 7, 9: WriteLn (‘Нечетная цифра’);

10…100: WriteLn (‘Число от 10 до 100’);

WriteLn (‘Отрицательное число или больше 100’)

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

Покупатель в 2002 году, имея 100 рублей, заплатил за покупку 23 рубля. Определить минимальное количество купюр в наборе, которое он получит в качестве сдачи. (Возможные купюры: 5 руб., 10 руб., 50 руб.).

Один из вариантов программы решения этой задачи выглядит так:

В блоке 1 вводим имеющуюся сумму А и сумму за покупку B в рублях. Далее в блоке 2 находим оставшуюся сумму N и обнуляем счётчик купюр K. Затем проверяем в блоке 3 больше ли оставшееся сумма, чем 50 (руб.), если да, то селектору R присваиваем значение 2, и осуществляем переход в блок 10, где оператор выбора передаёт управление блоку 11.

Читать еще:  Выпуклое программирование онлайн

В нём из оставшейся суммы N вычитаем 50 (руб.) и в блоке 14 увеличиваем счётчик купюр на 1. После этого возвращаемся к блоку 3 и сравниваем оставшуюся сумму N с достоинством трёх купюр, т.о. процесс повторяется до тех пор, пока оставшаяся сумма не станет меньше 5 руб. Как результат вычислений печатаем значение счётчика купюр K.

Program MONEY;

Label 1, 7;

Var

A, B, N, K, R: Integer;

Begin

Write (‘Исходная сумма’); ReadLn (A);

Write (‘Потраченная сумма’); ReadLn (B);

1: If N >= 50 Then R := 2 Else

If (N = 10) Then R := 3 Else

If (N = 5) Then R := 4 Else

Begin

WriteLn (‘Минимальное количество купюр = ’, K);

Goto 7

End;

Case R Of

End;

Goto 1;

End.

Результат выполнения программы

Исходная сумма 100

Потраченная сумма 23

Минимальное количество купюр = 4

5.4. Контрольные вопросы

1. Какой процесс называется разветвляющимся?

2. Из каких блоков состоит схема разветвляющегося процесса в общем случае?

3. Какие переходы называются условными, безусловными?

4. Перечислить операторы передачи управления, используемые в языке Turbo Pascal для реализации разветвляющихся процессов.

5. Какую структуру имеет условный оператор IF?

6. Дайте определение логического выражения.

7. Каким образом описывают логические переменные?

8. Какие логические функции вам известны? Приведите примеры логических выражений с ними.

9. Каков порядок вычисления значения логического выражения?

10. Какие побитовые операции реализуются в языке Turbo Pascal?

11. Что такое составной оператор?

12. Существуют ли какие-либо ограничения на количество разветвлений в алгоритмах?

13. Для каких целей используют оператор безусловного перехода GOTO?

14. Каким образом описывают и используют метки в программе?

15. Что позволяет делать оператор отбора CASE? Какова его конструкция?

16. Какой тип должен иметь селектор отбора и метки?

Разветвляющийся вычислительный процесс.

Если вычислительный процесс зависит от определенных условий и реализуется по одному из нескольких заранее предусмотренных направлений, он называется разветвляющимся вычислительным процессом, а каждое из этих направлений – ветвью вычислений. Для выбора ветви вычислений в Паскале используются операторы IF и CASE.

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

Составной оператор.
Составной оператор предписывает выполнение составляющих его операторов в порядке их написания. Зарезервированные слова BEGIN и END являются операторными скобками. Формат оператора:
BEGIN <Начало составного оператора>

END; <Конец составного оператора>
Составной оператор используется в тех конструкциях, где по синтаксису языка должен быть только один оператор, а для решения задачи требуется более одного. В составном операторе все операторы 1, 2. n выполняются последовательно ДРУГ за другом.
Логические выражения.
Одним из нечисловых видов данных является тип BOOLEAN. Булевы (логические) переменные имеют только два значения: FALSE (ложь), TRUE (истина). Существует несколько форм конструирования логического выражения:

  • константа, описанная в разделе CONST;
  • переменная, которой можно присвоить булевы значения (например FLAG:= TRUE);
  • отношение между переменными скалярных и некоторых структурированных типов.

В Паскале допускаются отношения, перечисленные в таблице 16.

Пример 6. Пусть заданы вещественные переменные А, В и логическая переменная FLAG. Требуется построить примеры простых логических выражений, содержащих отношения между А и В.
Если:
VAR
FLAG, FLAG1, FLAG2: BOOLEAN;
А, В: REAL;
тогда допустимы выражения вида:
FLAG := А В;
Значение TRUE ‘истина’ присваивается переменной FLAG1, если А не равно В.
FLAG2 := А = В;
Значение TRUE ‘истина’ присваивается переменной FLAG2, если А равно В.
Помимо указанных выше отношений (таблица 16), логические выражения конструируются с помощью булевых операций, описанных в таблице 17.

Пример 8. Сформулировать логическое условие попадания точки с координатами (х, у) в область S (рисунок 2).


Пусть:
VAR FLAG: BOOLEAN;
Уравнение окружности, которая ограничивает область S в первом и втором квадранте системы координат XOY имеет вид:

Тогда величину FLAG, которая принимает значение TRUE в том случае, когда точка с координатами (х, у) принадлежит области S, можно найти по формуле: FLAG:=(Х>=-A) AND (Х =0)) OR ((Y =B)));
В языке Паскаль логическое выражение просчитывается до тех пор, пока результат не становится очевидным. После чего вычисления прекращаются. Так в нашем случае используется конъюнкция трех условий: X больше -А, X меньше А и ограничение на значение Y. Достаточно любой логической величине принять значение FALSE и остальные величины, стоящие правее в логическом выражении, уже не просчитываются, так как переменная FLAG независимо от значений оставшихся отношений будет равна FALSE. О качественной установке терминалов оплаты можно узнать на сайте http://xn——6kcabbjdz4asrcijhjkculnxhob5v.xn--p1ai/ опытные специалисты сделают все в лучшем виде. В нашем случае это удобно! Потому, что уравнение окружности определено для значений X, удовлетворяющих условию -А —A) AND (X -0))
OR ((Y

B)));
IF FLAG THEN WRITELN(‘Tочкa в области S’)
ELSE WRITELN(‘Toчкa вне области S’)
END.
В стандартном Паскале предусмотрен порядок старшинства операций в булевых выражениях: Высший — (скобки); NOT; AND; (OR, XOR); ( >, =, >-, ) — низший. Однако в различных версиях языка эти требования могут и не соблюдаться, поэтому надежнее использовать скобки для уточнения последовательности вычислений.
Существуют встроенные булевы функции, наиболее известные из которых ODD(X), EOF(F), EOLN(F), описание которых приведено в таблице 10.
Логическое выражение может быть достаточно сложным и включать в себя арифметические и логические функции, например: FLAG := ODD(I*3+K) AND (( SQR(C) > SIN(D/2)) OR ( A = 5 ));
Переменная FLAG принимает значение TRUE, если целочисленное выражение I*3 + К принимает нечетное значение и квадрат С больше, чем синус D, деленной пополам, или А равно 5. В противном случае FLAG принимает значение FALSE.
В приведенных примерах в правой части оператора присваивания расположено логическое выражение, а в левой части – логическая переменная.

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