- •Оглавление
- •Предисловие
- •Введение
- •1. Общие сведения о языках программирования
- •1.1. Краткая история эвм и языков программирования
- •1.2. Трансляторы
- •1.3. Основные понятия алгоритмических языков
- •2. Интегрированная среда borland pascal
- •2.1. Краткая характеристика. Запуск программы
- •2.2. Основы работы в редакторе
- •2.3. Система меню
- •2.3.1. Меню опции file
- •2.3.2. Меню опции edit
- •2.3.3. Меню опции search
- •2.3.4. Меню опции run
- •2.3.5. Меню опции compile
- •2.3.6. Меню опции debug
- •2.3.7. Меню опции tools
- •2.3.8. Меню опции options
- •2.3.9. Меню опции window
- •2.3.10. Меню опции help
- •3. Синтаксис языка borland pascal
- •3.1. Элементы языка
- •3.2. Служебные (зарезервированные слова), директивы и идентификаторы
- •3.3. Основные элементы программирования
- •3.4. Структура программы
- •4. Типы данных
- •4.1. Простые типы
- •4.1.1. Целые типы.
- •4.1.2. Логический тип
- •4.1.3. Символьный тип
- •4.1.4. Перечисляемый тип
- •4.1.6. Вещественные типы
- •4.2. Структурированные типы
- •4.2.1. Массивы
- •4.2.2. Записи
- •4.2.3. Множества
- •4.2.4. Файловый тип
- •Процедуры и функции ввода-вывода
- •4.3. Указатели
- •4.4. Строки
- •4.5. Совместимость и преобразование типов
- •4.6. Константы и константные выражения
- •5. Операторы и процедуры языка
- •5.1. Поразрядные оператоpы. Логические оператоpы. Опеpатоpы отношения
- •5.2. Оператор присваивания
- •5.3. Процедуры ввода и вывода
- •5.4. Условные операторы
- •5.4.1. Оператор If
- •5.4.2. Оператор case
- •5.5. Операторы цикла
- •5.5.1. Оператор while (цикл с предусловием )
- •5.5.2. Оператор repeat..Until (Цикл с постусловием)
- •5.5.3. Оператор цикла For (цикл с заданным количеством повторений)
- •5.6. Оператор безусловного перехода
- •5.7. Функции и процедуры для работы со строковыми и символьными данными
- •5.8. Комментарии в программе
- •6. Процедуры и функции
- •6.1. Параметры подпрограмм
- •7. Использование графики в borland pascal
- •7.1. Константы модуля Graph
- •7.1.1. Константы цвета
- •7.1.2. Константы типов и толщины линий
- •7.1.3. Константы шаблона штриховки
- •Заключение
- •Библиографический список
- •Решение задач на языке программирования Паскаль
- •Пример 9. Определить, имеются ли в массиве а[5,4] столбцы, состоящие из одних и тех же элементов, если такие есть, выдавать номера одинаковых столбцов, если нет – выдать сообщение.
- •Варианты заданий для самостоятельной работы Вычисление значений выражений
- •Вычислить значение функции с использованием условных операторов
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Программирование алгоритмов обработки одномерных массивов
- •Программирование алгоритмов обработки двумерных массивов
- •Программирование с использованием функций
- •Программирование с использованием процедур
- •Обработка символьных и строковых данных
- •Графика
- •Оператор
4.6. Константы и константные выражения
Константа – это идентификатор, отмечающий значение, которое не может изменяться.
В качестве расширения стандарта языка, в BP допускается использовать константные выражения. Константным называется такое выражение, которое может быть вычислено при компиляции и не зависит от исполняемого кода. Следующие стандартные функции можно также использовать в определении констант:
Abs |
Length |
Ord |
Sizeof |
Chr |
Lo |
Pred |
Succ |
Hi |
Low |
Ptr |
Swap |
high |
Odd |
Round |
Trunc |
Примеры определений констант:
const
Min = 0;
Max = 100;
Center = (Max - Min) div 2;
Beta = Chr(255);
NumChars = Ord('Z') - Ord('A') + 1;
Message = 'Out of memory';
ErrStr = 'Error:' + Message + '.';
Ln10 = 2.302585092994095684;
Numeric = ['0'..'9'];
Alpha = ['A'..'Z','a'..'z'];
Вопросы:
Что называется именами (идентификаторами) в языке Паскаль? Каковы правила их использования?
В чем разница между переменными и константами? Что делает компилятор, встретив описание переменной или константы в тексте программы?
Какие типы данных существуют в языке Паскаль. В каком случае два типа являются эквивалентными?
В каком случае типы данных являются совместимыми? Как можно обойти в BP ограничения на совместимость типов? Приведите примеры приведения типов.
Использование каких типов зависит от наличия математического сопроцессора? С какими ключами необходимо компилировать программу при наличии и отсутствии сопроцессора?
5. Операторы и процедуры языка
Оператор – это законченная фраза языка, определяющая некоторый этап обработки данных. Операторы в программе отделяются друг от друга «;».
Простой оператор – это оператор, в который не входят другие операторы, например, x:=0;
Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки Begin – End.
5.1. Поразрядные оператоpы. Логические оператоpы. Опеpатоpы отношения
Для действий над битами Паскаль имеет следующие поразрядные операторы:
shl(сдвиг влево) – сдвигает биты влево на указанное количество разрядов, заполняя остающиеся справа разряды нулями.
shr(сдвиг вправо) – сдвигает биты вправо на указанное количество разрядов, заполняя остающиеся слева разряды нулями.
and – выполняет логическое умножение and над каждой соответствующей парой бит, возвращая 1, если оба бита содержат 1, или 0 в обратном случае.
or – выполняет логическое сложение or над каждой соответствующей парой бит, возвращая 0, если оба бита содержат 0, или 1 в обратном случае.
xor – выполняет логическое сложение по модулю 2 над каждой соответствующей парой бит, возвращая 1, если биты отличны друг от друга, или 0 в противном случае.
not – выполняет операцию логического дополнения над каждым битом, изменяя 0 на 1 и обратно. Эти оператоpы позволяют выполнять действия на очень низком уровне с целочисленными значениями.
Program ExBit;
Var A,B : Byte;
Begin
A:=15;B:=5;
Writeln(A And B);Writeln(A Or B);
Writeln(B shl 1);Writeln(A shr (B-2));
Writeln(A xor B);Writeln(Not A); Readln;
End.
Приведенная программа выдаст на экран числа: 5, 15, 10, 1, 10 и 240.
Имеется четыре логических оператоpа – and, xor, or и not, которые, хотя они и аналогичны поразрядным оператоpам, но не тождественны им. Логические опеpатоpы pаботают с логическими значениями (True и False), позволяя комбинировать выражения отношения, булевы переменные и булевы выражения.
Они отличаются от соответствующих поразрядных оператоpов следующим образом:
Логические оператоpы всегда в качестве результата дают значение True или False (то есть булево значение), в то время как поразрядные оператоpы выполняют побитовые действия над целочисленными значениями.
Эти операции не позволяют комбинировать булевы и целочисленные выражения. Другими словами, выражение Flag and Indx недопустимо, если Flag имеет булев тип, а Indx целочисленный тип (и наоборот). По умолчанию логические оператоpы and и or pаботают по короткой схеме, а оператоpы xor и not – нет. Допустим, имеется выражение exp1 and exp2. Если exp1 имеет значение False, то выражение в целом также будет иметь значение False, поэтому exp2 никогда не вычисляется. Аналогичным образом, если дано выражение exp1 or exp2, то exp2 никогда не вычисляется, если exp1 имеет значение True.
Оператоpы отношения позволяют сравнивать два значения, возвращая в результате булево значение Тrue или False.
Пример:
program TestGreater;
var A,B : integer;
Test : boolean;
begin
Write('Введите два числа: ');
Readln(A,B);
Test := A > B;
Writeln('A больше B', Test);
end.
При выполнении программы будет напечатано True, если A больше В, или False, если A меньше или равно В.
