русс | укр

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

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

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

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


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

ЛОГИЧЕСКИЕ ФУНКЦИИ


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


Функция одного аргумента НЕ (NOT) истинна тогда, когда ложен ее аргумент (значение функции обратно аргументу). Поведение функции полнос­тью описывает таблица. Например, следующие два оператора идентичны

if x<10 then y=5 if not (x>=10) then y=5

Функций двух аргументов. Функция И (AND) истинна ко­гда истинны все ее аргументы. Функция ИЛИ (OR) истинна, если истинен хотя бы один из аргументов. Если нет скобок, функции вычисляются в следующей последова­тель­ности: НЕ, И, ИЛИ. Значениям Истина и Ложь в Паскале соответствуют значенияTrue и False.

 

аргу- мент функция НЕ   1-й аргумент 2-й аргумент функция И функция ИЛИ
ложь истина   ложь ложь ложь ложь
истина ложь   ложь истина ложь истина
      истина ложь ложь истина
      истина истина истина истина

Логические операции имеют приоритет перед операция­ми отношения, поэ­тому, если таких условий несколько, последние берутся в скобки. Для иллюст­рации снова рассмотрим пример 3-2. Решение будет очень компактным (вспомогательные операторы опущены):

readln(a,b,c);

if (a+b>=c) and (b>a) then writeln('верно') else writeln('неверно');

Пример. Для чисел А, В, С выяснить, правда ли что первое число самое большое, а последнее – самое маленькое.

if (a>b) and (a>c) and (c<a) and (c<b)

then writeln('верно') else writeln('неверно');



Еще. Верно ли, что среди чисел есть отрицательные.

if (a<0) or (b<0) or (c<0) then ...

Еще. Верно ли, что среди чисел ровно одно меньше нуля.

if (a<0)and(b>0)and(c>0) or (a>0)and(b<0)and(c>0) or (a>0)and(b>0)and(c<0)

then writeln('верно') else writeln('неверно');



В этом решении перебираются все возмож­ные, интересующие нас, ком­бинации перемен­ных. Иногда проще (см. справа) воспользоваться косвенным способом, например, уве­личивать вспомогательную переменную Х, каждый раз, когда встречается число мень­ше нуля. Если в конце окажется, что Х=1 значит, имеется ровно одно число меньшее нуля.

Оператор выбора (селектор).При необходимости сделать выбор из многих альтернатив конструкция с вложе­нием if становится очень громозд­кой. В этом случае полезным оказывается оператор case. Здесь выражение может быть целого или символьного типа. Если его значение равно одной из констант, выполняется соответствующий оператор. Если ни одна из констант не подходит, выполняется оператор, следующий после слова else(если есть). Любая из констант может быть диапазоном (через две точки) и/или множеством констант (через запятую). Любой оператор может быть блоком begin и содержать свои операторы case и if.

Пример 4-1. Пусть требуется по числу прожитых лет Т отнести человека к какой-то возрастной группе. Решение оче­вид­но, но нуждается в одном пояснении. Поскольку женщины и мужчины уходят на пенсию в разное время (55 и 60 лет), кроме возраста нужно учитывать и пол Р.

 
 


Пример 4-2. Положим, введен какой-то знак в переменную S и его нужно отнести к соот­ветствующей группе. Следует сказать, что латинские символы в символьной таблице ПК находятся не вместе. Подряд идут буквы с А по Z, затем идут не буквы, затем буквы с а по z. В виду этого пришлось указать два диапазона констант ('A'..'Z','a'..'z'). Символы русского алфавита состоят из еще большего числа диапазонов (см. раздел ‘Символьные данные’).

@ Здания для самостоятельного решения

Задание 4.1.Имеются числа a, b, c. Выяснить, правда ли, что они располо­жены в порядке возрастания.

Задание 4.2.Выяснить, правда ли, что среди чисел a,b,c имеется хотя бы одно отрицательное и одно положительное (ответ Да/Нет)

Задание 4.3.Имеются числа a, b, c. Вывести их в порядке возрастания.

Задание 4.4.Выяснить, правда ли, что среди a,b,c имеется точно один 0.

Задание 4.5.На рис. 4.1 изображены две пересекающиеся линии Y1=X2и Y2=1–X/2. По произвольным значениям координат некоторой точки X и Y найти область ,‚, ƒ,„, в которой находится эта точка. Ответ должен быть выдан в виде числа 1, 2, 3, 4. Если точка находится вне этих областей, ответом должно быть выражение – “Вне областей”.

Сейчас определим только принадлежно­сть точки к области 2. Сначала выясним диапазон изменения Х в области. Оче­видно, он простирается от Х=0 до координаты Х, где пересекаются прямая и парабола (белая точка на рисунке). Чтобы ее найти, надо приравнять выраже­ния для обеих функций X2=1–X/2 и, пре­обра­зовав его в квадратное уравнение 2X2+X–2=0, вычислить левый корень Х=–1,28. Отсюда можно записать –1,28<X<0. Для Y можно сказать, что он лежит под прямой Y<1-X/2 и над параболой Y>X2. Таким образом, должны выполняться условия –1,28<X<0 и Y<1–X/2 и Y>X2. Отсюда можно записать оператор IF:

IF (–1,28<X)and(X<0)and(Y<1–X/2)and(Y>X*X) then ?”Это область 2”

Завершите решение для остальных областей.

Задание 4.6.Используя оператор CASE, написать программу, в которой вводятся два числа-операнда Х и Y и знак операции Z (+,–,/,*). Вычислить резуль­тат S в зависимости от знака. Предусмотреть реакции на возможный неверный знак операции, а также на ввод Y=0 при попытке выполнить деление ('Деление на ноль не возможно')

 



<== предыдущая лекция | следующая лекция ==>
ELSE WRITELN('число отрицательно') | 


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


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

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

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


 


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

 
 

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

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