русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 975; Нарушение авторских прав


Ветвление

 

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

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

Так выглядит

ветвление на схеме

           
 
   
а так – на Паскале
 
   
 

 


 

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

 

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

 

Пример: Вася собирает древние монеты. Он приобрёл a динариев и b сестерциев разного достоинства и года выпуска. Хватит ли ему места в альбоме, если там всего с ячеек для монет?

 
 
program money; var a,b,c:integer; begin write(’Сколько динариев купил Вася? ’); readln(a); write(’Сколько сестерциев купил Вася? ’); readln(b); write(’Сколько свободных ячеек в альбоме? ’); readln(c); if a + b <= c then writeln(’Места в альбоме хватит’) else writeln(’Места в альбоме не хватит’); end.

 


Условие в ветвлении представляет собой логическое выражение. Оно может содержать арифметические (или другие, например, текстовые) выражения и операции сравнения между ними: < (меньше), > (больше), = (равно), < > (не равно), <= (меньше или равно), >= (больше или равно).

Результат логического выражения – истина (true) или ложь (false). Например, значение выражения 2 > 3 равно false, а выражения 2 <= 3 - true. Для хранения в памяти логических значений существуют логические (булевские) переменные. Их описывают в разделе VAR словом boolean. Например, a:=b>c;



 

Иногда требуется составить сложное логическое выражение, содержащее несколько сравнений. В этом случае каждое сравнение помещают в скобки, а между ними используют логические операции and, or или xor. Операция and (И) обозначает одновременность выполнения двух условий. Операция or (ИЛИ) обозначает достаточность выполнения одного из двух условий. Операция xor (Исключающее ИЛИ) обозначает неодновременность выполнения двух условий (только одно из двух условий верно). Кроме того, существует операция отрицания not. Если она стоит перед истинным выражением, в результате получается ложь, а применённая к ложному, даёт истину. Ниже приведены таблицы истинности логических операций.

 

 

Если в одном выражении используется несколько логических операций, последовательность их выполнения определяется приоритетом: 1) NOT; 2) AND; 3) OR; 4) XOR. Все арифметические операции – более приоритетны, а все операции сравнения – менее приоритетны, чем логические операции. Нужная последовательность операций может быть достигнута применением скобок.

Примеры:

(2=3) or (2< >3) – результат true

((5+5> =10) or (1=2)) and ((2< 3)=(2+2< >5)) – результат true

(2<3) and not (2*2=4) – результат false

 

Пример задачи с составным условием: Ввести температуру морской воды и определить, можно ли купаться. Благоприятная для купания температура – от 19 до 26 градусов.

 
 
program water; var t:real; begin write(’Введите температуру воды у пляжа ’); readln(t); if (t>=19) and (t<=26) then writeln(’Можно купаться’) else writeln(’Купаться нельзя’); end.

 

 


Ещё пример: Так как поворот Земли вокруг своей оси занимает несколько больше, чем 24 часа, то за 4 года накапливается опережение на одни сутки. Поэтому каждый год, кратный 4, является високосным (на 1 день больше). Но эти расчёты тоже неточны: за каждые 100 лет накапливается отставание почти на 1 сутки, поэтому годы, кратные 100 не являются високосными. Но отставание за 100 лет на четверть меньше одних суток, поэтому каждый четырехсотый год увеличивают на день, и годы, кратные 400 являются все же високосными. Программа должна ввести с клавиатуры год и определить, является ли он високосным. Напомню: «a делится на b без остатка» обозначает, что при делении a на b остаток равен 0.

 
 
program year; var y:integer; begin write(’Введите год ’); readln(y); if (y mod 4=0) and ((y mod 100<>0) or (y mod 400=0)) then writeln(’Високосный год’) else writeln(’Не високосный год’); end.

 




<== предыдущая лекция | следующая лекция ==>
Лаб. 3. Диалоговые задачи на несколько действий | Вложенное ветвление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.