Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операции, определенные над логическими переменными

1. Операция присваивания

t: =false; p: =t; q: =5< x; flag: =succ(t);

2. Операция вывода.

Write (t); Writeln(q); Write (5> 2)

3. Логические (булевские) операции

And Логическое умножение (конъюнкция)

or Логическое сложение (дизъюнкция)

not Логическое отрицание (не)

xor Логическое деление

 

Отрицание. Если логическая величина С является отрицанием логического выражения А, то С истинно, если А ложно, и ложно, если А истинно.

Логическое умножение. Если А и В истинны, то С также истинно. Если же хотя бы одно из них ложно, то С также ложно.

Логическое сложение. Если А и В ложны, то С также ложно. Если же хотя бы одно из логических выражений А и В истинно, то С также истинно.

Логическое деление (иногда эту операцию еще называют исключающим или). Это логическая операция, устанавливающая соответствие между логическими выражениями А и В и логической величиной С следующим образом: С ложно, если А и В либо одновременно истинны, либо одновременно ложны.

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

Задача. Дополните программу вычисления площади треугольника по

формуле Герона исследованием существования треугольника, если

заданы его три стороны

program tangle;

var a, b, c, p, S, Q: real;

begin

writeln('Вычислите площадь треугольника по трем сторонам');

writeln('и проведите его анализ.');

writeln('Введите стороны треугольника a, b, c: ');

read(a, b, c);

p: =(a+b+c)/2;

S: =sqrt(abs(p*(p-a)*(p-b)*(p-c)));

if (a> =(b+c)) or (b> =(a+c)) or (c> =(a+b))

then writeln('Треугольник не существует.')

else if (a=b) and (b=c)

then writeln('Треугольник равносторонний, его площадь S=', s)

else if (a=b) or (b=c) or (a=c)

then writeln('Треугольник равнобедренный, его площадь S=', s)

else writeln('Треугольник разносторонний, его площадь S=', s);

if (a*a=(b*b+c*c)) or (b*b=(a*a+c*c)) or (c*c=(a*a+b*b))

then writeln('Треугольник прямоугольный.');

writeln('Для выхода из программы введите число 1.');

readln(Q);

end.

Символьный тип (Сhar) — простой тип данных, предназначенный для хранения одного символа в определённой кодировке. Может являться как однобайтовым (для стандартной таблицы символов), так и многобайтовым (к примеру, для Юникода). Основным применением является обращение к отдельным знакам строки.

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

В реализациях языка Pascal для первых микропроцессоров была применена 7-битовая схема, названная ASCII (American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Эта схема и поныне широко распространена, но информация хранится, как правило, в 8-битовых участках памяти. Дополнительный бит удваивает число возможных представлений символов, но реализации расширенного набора символов ASCII часто бывают далеки от стандарта. В данной версии Delphi определен набор 8-битовых символов, известный как расширенный (extended) ANSI (American National Standards Institute — Американский национальный институт стандартов). Как бы то ни было, символьную схему приходится воспринимать так, как ее воспринимает операционная система. Для оконных операционных систем фирмы Microsoft это схема ANSI, включающая ограниченное число предназначенных для вывода международных знаков. В стремлении же применить более обширный набор международных знаков весь компьютерный мир переходит к 16-битовой схеме, именуемой UNICODE, в которой первые 256 знаков совпадают с символами, определенными в схеме ANSI.

Для совместимости со всеми этими представлениями в Object Pascal определены два физических символьных типа и один логический.

Физические типы перечислены ниже.

AnsiChar Однобайтовые символы, упорядоченные в соответствии с расширенным набором символов ANSI

WideChar Символы объемом в слово, упорядоченные в соответствии с международным набором символов UNICODE. Первые 256 символов совпадают с символами ANSI

Символьные типы объемом в двойное слово (32 бит) отсутствуют.

Логический символьный тип именуется char. В классическом языке Pascal char— единственный символьный тип. В Delphi char всегда соответствует физическому типу данных AnsiChar. У американских программистов ассоциация символа с однобайтовой ячейкой памяти укоренилась за долгие годы настолько, что им зачастую просто не приходит в голову, что можно использовать другие схемы кодирования. Однако дискуссии по интернационализации программ в Internet и World Wide Web могут существенно изменить их отношение к проблеме объема символьных данных. Применяя логический тип char, следует делать реализации для других микропроцессоров и операционных систем, в которых char может определяться как WideChar. При написании программ, которые могут обрабатывать строки любого размера, для указания этого размера рекомендуется применять функцию SizeOf, не задавая ее жестко постоянной. Функция Ord (С), где С — любая переменная символьного типа, возвращает целое значение, которым символ С представлен в памяти.

К типу CHAR применимы операции отношения, а также встроенные функции:

CHR(B) — функция типа CHAR; преобразует выражение в типа BYTE в символ, который является значением функции;

UPCASE(CH) — функция типа CHAR; возвращает прописную букву, если oн является строчной латинской буквой, в противном случае возвращает сам символ, например:

var

cl, c2: Char;

begin

cl: = UpCase('s');

c2: = ирСазе('ф');

WriteLn (cl, ' ', c2);

end.

Так как функция UPCASE не обрабатывает кириллицу, в результате прогона этой программы на экран будет выдано

s Ф

С символьным типом связаны следующие функции:

1) функция chr(i) выдает по порядковому номеру символа в кодовой таблице соответствующий символ, следовательно, на месте i может стоять целочисленное выражение, значение которого находится в диапазоне от 0 до 255; если номер является константой, можно использовать также символ " #": #65 означает то же самое, что и chr(65);

2) функция ord(с), наоборот, выдает номер символа с в кодовой таблице, здесь с — или переменная символьного типа, или символьная константа, или функция, результатом выполнения которой является символ (например, chr);

3) функция succ(с) выдает символ, следующий в кодовой таблице за символом “с”. Для последнего символа кодовой таблицы эта функция не определена. То есть с точки зрения данной функции символы не считаются расположенными по кругу, они имеют только линейный порядок; эта функция позволяет обрабатывать символы в циклах;

4) функция pred(с) выдает символ, предшествующий в кодовой таблице символу “с”. Для символа с кодом 0 значение этой функции также не определено;

5) функция upcase(с) переводит символы, обозначающие строчные английские буквы, в прописные, остальные символы (в том числе и соответствующие русским буквам) она оставляет неизменными. Например, upcase('f') есть 'F', а upcase('*') есть '*'. Обратной функции, т.е. функции, переводящей прописные буквы в строчные, в стандартной библиотеке не существует.

<== предыдущая лекция | следующая лекция ==>
 | Билеты надо выбирать так, чтобы прибытие было в первой половине дня.




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.