Что такое константы и переменные
Константы и переменные в языке Си
Константа — это ограниченная последовательность символов алфавита языка, представляющая собой изображение фиксированного (неизменяемого) объекта.
Константы бывают числовые, символьные и строковые. Числовые константы делятся на целочисленные и вещественные.
Целочисленные константы
Целочисленные данные в языке Си могут быть представлены в одной из следующих систем счисления:
Двоичная система представления данных непосредственно в языке Си не поддерживается. Однако можно воспользоваться файлом binary.h, в котором определены двоичные константы в пределах байта.
Пример использования двоичной системы счисления в языке Си:
Результат выполнения
С помощью суффикса U (или u ) можно представить целую константу в виде беззнакового целого.
Вещественные константы
Любая часть (но не обе сразу) из нижеследующих пар может быть опущена:
Примеры вещественных констант
Символьные константы
Код | Обозначение | Описание |
0x00 | ‘\0’ | Нуль-символ, NULL |
0x07 | ‘\a’ | Звуковой сигнал. |
0x08 | ‘\b’ | Возврат на 1 шаг (Backspace) |
0x09 | ‘\t’ | Горизонтальная табуляция (Tab) |
0x0A | ‘\n’ | Перевод строки (Enter) |
0x0B | ‘\v’ | Вертикальная табуляция (в консоли аналогична переводу строки) |
0x0C | ‘\f’ | Смена страницы |
0x0D | ‘\r’ | Возврат каретки |
Как правило, нажатие клавиши Enter генерирует сразу два управляющих символа — перевод строки ( 0x0A ) и возврат каретки ( 0x0D ).
Все символьные константы имеют тип char и занимают в памяти 1 байт. Значением символьной константы является числовое значение её внутреннего кода.
Строковые константы
Строковая константа — это последовательность символов, заключенная в кавычки, например:
«Это строковая константа»
Кавычки не входят в строку, а лишь ограничивают её. Технически строковая константа представляет собой массив символов, и по этому признаку может быть отнесена к разряду сложных объектов языка Си.
В конце каждой строковой константы компилятор помещает ‘\0’ (нуль-символ), чтобы программе было возможно определить конец строки. Такое представление означает, что размер строковой константы не ограничен каким-либо пределом, но для определения длины строковой константы её нужно полностью просмотреть.
Символьная константа ‘x’ и строка из одного символа «x» — не одно и то же. Символьная константа — это символ, используемый для числового представления буквы x, а строковая константа «x» содержит символ ‘x’ и нуль-символ ‘\0’ и занимает в памяти 2 байта. Если в программе строковые константы записаны одна за другой через разделители, то при выполнении программы они будут размещаться в последовательных ячейках памяти.
Переменные
Переменная — идентификатор, представляющий собой изображение изменяемого объекта. C технической точки зрения, переменная — это область памяти, в которую могут помещаться различные значения.
Любая переменная до ее использования в программе на языке Си должна быть объявлена, то есть для нее должны быть указаны тип и имя (идентификатор).
Объявление переменных в Си осуществляется в форме
ТипПеременной ИмяПеременной;
Каждую переменную можно снабдить комментарием, поясняющим ее смысл. Например,
Если в программе требуется несколько переменных одного типа, то они могут быть объявлены в одной строке через запятую. Например,
При объявлении переменной ей может быть присвоено начальное значение в форме
ТипПеременной ИмяПеременной=значение;
Переменные и константы
Переменные
Любая программа обрабатывает данные (информацию, объекты). Данные, с которыми работает программа, хранятся в памяти компьютера (чаще оперативной). Программа должна знать, где они лежат, каким объемом памяти она располагает, как следует интерпретировать данные (например, как числа или строки). Для обеспечения программе доступа к участкам памяти существует механизм переменных.
Переменные описываются в начале программы и как бы сообщают о том, с какими данными будет работать программа и какой объем памяти они займут. Другими словами, резервируется память. Но это не значит, что в эти ячейки памяти помещаются конкретные значения (данные). На момент резервирования памяти в них может быть что угодно.
В процессе выполнения программы в ячейки памяти будут помещаться конкретные значения, извлекаться оттуда, изменяться, снова записываться. Мы же через программу обращаемся к ним посредством имен переменных, которые были описаны в начале программы.
Имена переменных могут быть почти любым сочетанием английских букв и цифр (без пробелов). Нельзя чтобы имена переменных совпадали со словами, которые являются какими-либо командами самого языка программирования. Нельзя начинать имена переменных с цифры или специального символа. Для того чтобы имена переменных были удобны для восприятия, надо стараться придерживаться пары правил. Если программа не простейший пример, то имена переменных должны быть осмысленными словами или их сокращениями. Желательно, чтобы имена переменных не были слишком длинными.
В Pascal прописные и строчные буквы в именах переменных не различаются.
При описании переменных указывается не только их имя, но и тип. Тип переменных сообщает о том, сколько отвести под них памяти и что за данные там планируется сохранять. Точнее хранится там всегда будут числа в двоичной системе счисления. Но что они значат, может быть чем угодно: целым или дробным числом, символом, строкой, массивом, записью и др. Т.е. тип переменной определяет то, что мы можем сохранить в участке памяти, с которым связана описываемая переменная.
Пример работы программы:
Итак, переменные связаны с участками памяти, содержимое которых может меняется по ходу выполнения программы в определенных пределах.
Длина переменных
Ранние версии компиляторов Паскаля имели ограничение на учитываемую длину имен переменных. В имени учитывались лишь первые восемь символов. Поэтому, например, такие переменные как variable1 и variable2 компилятор воспринимал как одно и тоже, т.к. первые восемь символов совпадали.
В современных версиях компиляторов с языка Pascal таких ограничений нет. Например, в результате работы приведенной ниже программы как в среде Free Pascal, так и Turbo Pascal 7.1 на экран выводятся два разных числа (10 и 20). Это значит, что компиляторы учитывают больше восьми символов в именах переменных (и других идентификаторов: именах констант, процедур и др.).
Константы
Что делать, если в программе требуется постоянно использовать какое-нибудь одно и тоже число. Вроде бы это не проблема. Можно описать переменную, затем присвоить ей значение и не изменять его в программе. Однако это не всегда удобно (можно нечаянно изменить), поэтому в языках программирования для хранения данных помимо переменных существуют константы.
Главное преимущество констант заключается в том, что они описываются в начале программы и им сразу там же присваивается значение, а при выполнении программы константы не изменяются. Но если при правке кода, программист решит поменять значение константы, он впишет в ее описание другое значение, а сам код программы редактировать не придется. Поэтому, если в программе часто планируется использоваться какое-то значение, опишите его в разделе констант, который в программе располагается до раздела переменных:
Значениями констант могут быть данные большинства типов, используемых в языке Паскаль.
Рассмотрим такую программу:
В ней используется константа n со значением 10. Программа считает сумму десяти чисел в диапазоне от 1 до 10. Если нам захочется посчитать сумму чисел до 20, то достаточно будет изменить значение константы в начале программы. Если бы константа не использовалась, то пришлось бы просмотреть весь код программы и исправить значение 10 на 20. Если программа большая, то легко ошибиться: не найти или исправить не то значение.
Типизированные константы
В языке Паскаль помимо обычных констант используются типизированные константы. Можно сказать, что они занимают промежуточное положение между переменными и константами. Они получают значение при описании (как константы), но могут его менять в теле программы (как переменные).
Описываются типизированные константы в разделе констант:
Константы и переменные
Константа и переменная – это объекты программы, служащие для хранения данных и работы с ними. Константа и переменная единовременно могут содержать только одно значение. Во время работы программы значение, хранящееся в переменной, может изменяться, тогда как значение в константе постоянно.
Константа не может быть изменена во время выполнения программы, это контролируется компилятором. Любой константе можно присвоить символьное имя (идентификатор). Таким образом, различаются именованные и неименованные константы.
В программировании существует важное понятие – тип данных. Типы данных различаются способом хранения данных в памяти компьютера. Каждому типу соответствует своя область допустимых значений, способ хранения в памяти ПК, объём памяти, набор операций.
Имеется пять базовых (основных) типов:
— целочисленныеInteger;
— вещественныеReal;
— комплексные Complex;
— логическийLogical;
— символьный Character.
Каждому типу данных соответствуют свои константы и правила их написания.
В операторах объявления типов целое число после символа «*» указывает, сколько байт в памяти занимает значение этого типа.
Операторы объявления типа переменных и констант – неисполняемые операторы, и они должны располагаться в тексте программы до первого исполняемого оператора
Константы в Фортране бывают именованные и неименованные. Именованные константы имеют имя, составленное в соответствии с соглашением об именах. Неименованные константы специального описания не требуют. Это значения, которые используются в операторах программы (числа, строки символов и т.д.)
Типы данных
Целочисленные типы
Целые значения хранятся в памяти компьютера с абсолютной точностью. Они в основном используются в качестве счетчиков, номеров и индексов.
Разновидности целого типа представлены в таблице:
Тип | Количество байтов | Диапазон представления |
Byte или Integer*1 | 1 байт (8 бит) | От –128 до +127 |
Integer*2 | 2 байта | От –32768 до +32767 |
Integer*4 или Integer | 4 байта | От –2147483648 до +2147483647 |
Integer*8 | 8 байт |
По умолчанию Integer соответствует типу Integer*4.
Неименованная целая константа записывается строкой цифр, которой может предшествовать знак «+» или «–». В отличие от вещественной константы эта строка не содержит десятичной точки.
Примеры целых констант: 23 –6 456 +10002
Вещественные типы
В памяти компьютера хранятся не точные значения вещественных чисел, а приближения к ним с ограниченной точностью. Дело в том, что преобразование вещественного десятичного числа в эквивалентную двоичную форму часто дает периодическую последовательность цифр для дробной части. При занесении числа в память вносится ошибка округления.
Разновидности вещественного типа данных:
Тип | Количество байтов | Диапазон представления | Точность, знаков |
Real или Real*4 | ±10 ±38 | ||
Real*8или Double precision | ±10 ±308 | ||
Real*16 | ±10 ± 4932 |
По умолчанию Realсоответствует типу Real*4.
Существует две возможности записи неименованных вещественных констант:
— запись с фиксированной точкой – это последовательность символов, состоящая из знака, целой части, десятичной точки, дробной части; любая из частей, кроме точки, может быть опущена, например:
— в формате с плавающей точкой (в экспоненциальной форме) дополнительно используются символы E, D или Q. Символ E отвечает простой точности (real), символ D – двойной точности (real*8), символ Q – типу real*16. Любой из этих символов обозначает основание 10. После основания следует порядок – степень числа 10, на которую следует умножить число, записанное перед основанием. Например:
5.2D+3 (= 5.2*10 3 = 5200)
Сравните с неправильным Е–2. Эта запись транслируется, как арифметическое выражение, где Е – имя переменной.
Экспоненциальная форма записи используется либо для очень маленьких, либо для очень больших чисел, например:
0.0000034= 3.4Е-6 8800000=8.8Е6.
Комплексные типы
Каждое комплексное число состоит из двух вещественных чисел, соответствующих величине действительной и мнимой частей. Размер памяти, указанный в операторе объявления типа, относится к каждому из этих чисел, т.е. комплексное число занимает в два раза больше байтов, чем указано при объявлении.
Разновидности комплексного типа данных:
Тип | Количество байтов |
Complex или Complex *4 | |
Complex *8или Double complex | |
Complex *16 |
По умолчанию Complex соответствует типу Complex *4.
Неименованная комплексная константа записывается парой вещественных чисел в круглых скобках, например:
(2., –2.) соответствует комплексному числу 2 – 2 i ;
(0., 1.) соответствует мнимой единице i ;
(1., 0.) соответствует вещественной единице 1
(12.5, 1.7E-2) соответствует комплексному числу 12,5 + 0,017 i ;
(12.5D0, 1.7D-2) комплексное число 12,5 + 0,017 i ; (Double complex)
Символьный тип
Переменные и константы символьного типа представляют собой последовательности символов. Они используются в программах для вывода текста. Отметим, что символ пробела является значащим символом в символьной строке.
Переменные символьного типа объявляются оператором Character, например
Character*5 slovo! символьная переменная из 5 символов
Character Symbol! символьная переменная из одного символа
Здесь по умолчанию, то есть длина переменной не указана, имеется в виду один символ.
Неименованная символьная константа представляет собой последовательность символов, заключенную в кавычки. Примеры символьных констант:
‘Площади квадратов равны’ ‘Работу выполнил студент Иван Иванов’
Логический тип
Существуют только два логических значения – «истина» и «ложь». Переменные и константы этого типа используются в логических выражениях, которые также могут принимать значения «истина» и «ложь». Логические выражения применяются в управляющих операторах, когда в зависимости от некоторых условий требуется изменить последовательность выполнения операторов программы.
Переменные логического типа объявляются оператором Logical, например
LogicalPlus, Minus! список логических переменных
Существуют две логические константы. Обратите внимание на точки в их записи. Без точек вместо констант слова true и false воспринимаются компилятором как имена переменных.
Переменные
Перед созданием программы рекомендуется определить, сколько потребуется переменных, и какие данные будет обрабатывать программа.
Переменные можно объявлять списком, разделяя их запятыми. При объявлении переменным можно задавать начальные значения (инициализировать их) с помощью символа «=». При объявлении инициализированных переменных необходимо использование символов «::».
Примеры объявления типов и инициализации переменных:
IntegerN! целая переменная N
IntegerNumber! целая переменная Number – имя выбрано со смыслом
Integer::Number=1, Count=10! заданы начальные значения
Double precisionRadius! вещественная переменная 8 байт памяти
Real*8::Radius=1.7D-2! инициализация вещественной переменной
Complex::comp = (2., 5.)! начальное значение comp = 2+5i
Double complex::comp=(2.5, 1.7)! начальное значение comp = 2,5+1,7i
LogicalYes, No! список логических переменных
Character*5:: Word = ‘слово’! инициализация символьной переменной
Внимание! Инициализация переменных не превращает их в константы. Как и значения любых переменных, значения инициализированных переменных можно изменять.
Переменная не определена в данной точке программы, если ранее в нее не было записано значение. Переменная становится определенной либо в результате инициализации, либо при вводе данных, либо в результате вычислений.
Большинство компиляторов присваивает неинициализированным переменным значение 0 соответствующего типа. Однако полагаться на компилятор не рекомендуется, и использовать любую переменную нужно только после того, как она определена.
В ранних версиях Фортрана было принято соглашение о типах объектов по 1-ой букве имени. Имена объектов, начинающиеся с букв I, J, K, L, M, и N, подразумевали по умолчанию (без объявления типа) принадлежность этих объектов к целому типу. Объекты, имена которых начинались с остальных букв латинского алфавита, по умолчанию считались вещественными. Это соглашение действует и поныне. Отменить его в своей программе можно, написав сразу после заголовка программы оператор
Implicit None
Использование этого оператора заставляет программиста объявлять типы всех объектов программы, не пользуясь умолчанием. Это считается хорошим стилем, т.к. позволяет уже на этапе компиляции обнаружить ошибки, связанные с неправильным использованием типов данных.
Дата добавления: 2017-09-19 ; просмотров: 994 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Урок 1 — Переменные и константы. Первая программа
В этом уроке рассмотрим:
Разделы справочной информации внимательно читать не обязательно, к ним стоит обращаться по мере необходимости.
1 Структура программы на Паскаль
PROGRAM имя программы;
(английскими буквами, одно слово. Хотите глубже? То необходимо воспользоваться правилами написания идентификаторов )
USES подключаемые библиотеки (модули);
(дополнительные возможности, их можно подключать к программе в этой строке)
LABEL список меток;
(из одного места программы «прыгать» в другое)
CONST раздел описания констант;
(постоянные величины, их нельзя изменять)
TYPE описание типов переменных;
VAR определение глобальных переменных;
(описание всех переменных величин, которые в программе могут изменяться)
основной блок программы
Разумеется, что не все приведенные выше блоки обязательны для использования. Сейчас приведем тот минимум, который необходимо использовать.
Данная программа ни чего не делает, так как в ней нет ни одного оператора.
2 Пример программы на Pascal
Результатом данный программы будет вывод на экран строки «Hello, World!».
Запустите Turbo Pascal и перепишите исходный код программы. Теперь запустите программу, это можно сделать зажав сочетание клавиш Ctrl+F9. Результат выполнения программы всегда можно посмотреть зажав сочетание клавиш Alt+F5.
3 Константы и переменные. Примеры
Переменные в Pascal, служат для хранения некоторых величин. Переменные тождественны идентификаторам, т.е. для того, чтобы в программе объявить переменную необходимо назвать ее.
3.1 Константы
Те переменные, которые не изменяются, называются константами. Различают следующие типы констант:
‘Pascal programming language’
Рассмотрим программу «Hello world!» с использованием константы.
В данном случае мы объявили константу hello равную значению ‘Привет, ‘. Далее в программе достаточно в нужном месте подставить эту константу. Теперь если нам вдруг понадобиться вместо программы, которая здоровается, сделать программу, которая прощается, достаточно в начале программы поменять «Привет, » на «До свидания, » и программа будет прощаться с пользователем.
Если Вы обратили внимание, то в примере у константы не указан явно не указан тип, такие константы называются Обычными константами. Тип обычных констант определяется по их значению.
Помимо обычных констант существуют Типизированные константы. Тип таких констант объявляется явно:
Дополнительно хочется обратить внимание на апострафы в константах. Если Вам в константе понадобится использовать апострофы, то просто продублируйте их:
3.2 Переменные в Pascal
Для хранения данных, полученных от пользователя, в программе вводятся переменные. К примеру для того, чтобы передать программе имя какого-то человека нам нужно в коде программы записать строчку:
Хочу обратить Ваше внимание на тот факт, что все идентификаторы(переменные, название программы) в коде Turbo Pascal могут состоять исключительно из символов латинского алфавита (A-Z, a-z), цифр (0-9) и символа нижнего подчеркивания («_»). Также идентификаторы не должны начинаться с цифр.
Теперь попробуем объявить несколько переменных разного типа. Допустим мы хотим знать имя пользователя, его возраст и его рост. Для этого возьмем код программы их первого примера и изменить в соответствии с новыми требованиями.
Хочу обратить ваше внимание на 5 строчку кода. Когда у нас есть несколько переменных одного типа, мы можем объявить их в одной строке, описав их через запятую и после последнего поставить знак двоеточия и написать требуемый тип.
4 Справочная информация по типам данных
Типы данных в Паскале определяют возможные значения переменных, констант, выражений и функций. Они бывают встроенными и пользовательскими. Встроенные типы изначально присутствуют в языке программирования, а пользовательские создаются программистом.
По способу представления и обработки типы данных бывают:
В этой статье будут рассмотрены лишь, наиболее простые типы данных, так как на начальных этапах обучения, вашей программе будет проще обойтись, например, без файлов и записей, чем без целочисленных или строковых переменных.
4.1 Целочисленный тип
Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.
Тип | Диапазон | Размер в байтах |
shortint | -128…127 | 1 |
integer | -32 768…32 767 | 2 |
longint | -2 147 483 648…2 147 483 647 | 4 |
byte | 0…255 | 1 |
word | 0…65 535 | 2 |
Объявить целочисленную переменную можно в разделе Var, например:
Var book: word;
Над переменными этой категории можно выполнять все арифметические и логические операции за исключением деления ( / ), для него нужен вещественный тип. Также могут быть применены некоторые стандартные функции и процедуры.
4.2 Вещественный тип
В Паскале бывают следующие вещественные типы данных:
Тип | Диапазон | Память, байт | Количество цифр |
Real | 2.9e-39 … 1.7e38 | 6 | 11-12 |
Single | 1.5e-45 … 3.4e38 | 4 | 7-8 |
Double | 5.0e-324 …1.7e308 | 8 | 15-16 |
Extended | 3.4e-4932 … 1.1e493 | 10 | 19-20 |
Comp | -9.2e63 … (9.2e63)-1 | 8 | 19-20 |
Над ними может быть выполнено большее количество операций и функций, чем над целыми. Например, эти функции возвращают вещественный результат:
4.3 Логический тип
4.4 Символьный тип
Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):
К величинам символьного типа данных применимы операции отношения и следующие функции:
4.5 Строковый тип
Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми. Пример:
Var A: (Monday, Tuesday);
4.6 Интервальный тип данных
Когда необходимо задать какой то диапазон значений, то в таких ситуациях применяется интервальный тип данных. Для объявления используется конструкция m..n, где m – минимальное (начальное) значение, а n – максимально (конечное); здесь m и n являются константами, которые могут быть целого, символьного, перечисляемого или логического типа. Описываться величины интервального типа могут как в разделе типов, так и в разделе описания переменных.
5 Pascal. Операторы ввода-вывода
5.1 Ввод данных
Процедура ввода данных с клавиатуры – Read (читать). Ее можно представить так:
Для перевода каретки после выполнения оператора Read на новую строку, следует прибавить окончание ln :
Также можно не указывать список ввода:
Программа не перейдет к выполнению следующей части до тез пор, пока не выполниться пустой оператор.
5.2 Вывод данных
Элементами списка вывода являются величины различных типов, в том числе выражения и строки, отделенные друг от друга запятыми, например:
Здесь x и y – параметры, заключенные в круглые скобки. Возможно использование оператора вывода и без параметров:
Недостаточно просто вывести значение на экран, нужно также сделать это как можно корректнее. Допустим нам нужно в одном операторе Write вывести значения нескольких переменных ( a=1, b=2, c=3 ). Пишем:
1) Вписать пробел вручную, например:
2) Воспользоваться возможностью форматированного вывода:
Двоеточие относиться к переменной, после которой оно следует, и говорит программе, что при выводе (переменной) нужно выделить место, заданное целым числом (в нашем случае это 2), т. е. под значения, хранящиеся в переменных b и c отводиться две клетки, сами они выведутся «прижатыми» к правому краю.
Процедура форматированного вывода может применяться и к другим типам данных, но особого внимания заслуживает вещественный тип. Как известно переменные вещественного типа имеют целую и дробную части, поэтому для них предусмотрена такая форма записи с использованием формата:
Результат выполнения: 32.101
Формат 5 означает, что всего под число 32.1012 выделено 5 клеток, а 2 – из этих пяти под дробную часть отводиться 2 клетки.
6 Выражения с тандартные функции
6.1 Стандартные функции Pascal
В программировании, довольно часто приходиться выполнять однотипные действия, причем в задачах разного уровня и класса. И для ускорения процесса написания кода эти действия выносят в специальные подпрограммы – стандартные функции. Обращение к такой подпрограмме происходит по ее имени, а в скобках указывается значение аргумента. В следующей таблице указаны те стандартные функции, которые используются в языке программирования Pascal.
Функция | Назначение |
ABS(x) | Вычисление абсолютного значения x: |х| |
SQR(x) | Вычисление квадрата x: x*x |
SIN(x) | Вычисление синуса x: sin x |
COS(x) | Вычисление косинуса x: cos x |
ARCTAN(x) | Вычисление арктангенса x: arctg x |
EXP(x) | Вычисление экспоненты (числа Е) в степени x |
EXP10(x) | Вычисление 10 в степени x |
LN(x) | Вычисление натурального логарифма x |
LOG(x) | Вычисление десятичного логарифма x |
SQRT(x) | Вычисление квадратного корня из x |
A DIV B | Вычисление частного при делении А на В с отбрасыванием остатка |
A MOD B | Нахождение остатка от делении А на В |
TRUNC(x) | Нахождение целой части x |
RANDOM(x) | Псевдослучайное число в интервале [0, x] |
ROUND(x) | Округление значения x в сторону ближайшего целого |
ODD(x) | Проверяет аргумент на нечетность. Результат TRUE, если аргумент нечетный, FALSE – если четный. |
ORD(x) | Возвращает порядковый номер аргумента и, как следствие, преобразует величину порядкового типа в величину целого типа. |
CHR(x) | Определение символа языка Паскаль по его порядковому номеру |
SUCC(x) | Нахождение элемента, идущего после данного в перечне допустимых элементов |
PRED(x) | Нахождение элемента, идущего перед данным в перечне допустимых элементов |
FRAC(X) | Возвращает дробную часть x |
INT(X) | Возвращает целую часть x |
Pi | Значение математической постоянной π |
EOF(x) | Возвращает TRUE, если файл находится в стоянии “конец файла”, иначе FALSE, если нет конца файла |
6.2 Выражения в Pascal
Выражение состоит из переменных, констант, полей в записях, указателей функций, круглых скобок и знаков операций. Для корректной записи выражений необходимо знать не только как обозначаются те или иные операции, функции и т. п., но также стоит предусмотреть приоритеты их выполнения, математические и логические правила, а также некоторые тонкости самого языка. Для более углубленного изучения выражений, стоит рассмотреть несколько примеров.
Как видите выражения в Pascal, имеют такой же приоритет, как и в математике, а с помощью круглых скобок его можно изменить.
Такое логическое выражение возвращает истину, лишь в том случае, когда истинны оба выражения, т. е. если a входит в диапазон от 1 до 20 включительно. Стоит обратить внимание на скобки, здесь они необходимы для изменения приоритета, так как у операторов сравнения он низший.
3) (a+3>0) and (a+3 1) and (b
Условие вернет истину, тогда когда истинными будут два условия слева или справа от OR, а также если они оба будут истинными.
Логическая операция OR (или) суть дизъюнкция в логики и поэтому имеет следующую таблицу истинности:
X | Y | X or Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Ложь имеет место только когда X и Y ложны (нули). В том случае, чтобы истина возвращалась только тогда, когда одно из условий верно следует применить оператор XOR (исключающее или):
(a+3>0) and (a+3 1) and (b
В Pascal нет функции возведения числа в степень (кроме степени 2), поэтому существует два пути:
1 — умножать число само на себя, какое то количество раз;
2 — воспользоваться функциями экспоненты и натурального логарифма.
В этом примере использованы оба варианта, но если степень, в которую необходимо возвести число, достаточно велика, то предпочтение следует отдать второму способу.