- •Оглавление
- •Предисловие
- •Введение
- •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.1.2. Логический тип
Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Они используются в условных выражениях.
Для них справедливы правила:
ord(False) = 0;
ord(True) = 1;
False < True;
succ(False)= True;
pred(True) = False.
Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счетного типа, например:
var
1 : Boolean;
begin
for 1 := False to True do ....
4.1.3. Символьный тип
Значением символьного типа CHAR является множество всех символов ПК. К символам относятся все буквы алфавита, знаки и числа 0-9. Переменная данного типа – это один символ. Символы могут использоваться по отдельности (а, Z, !, 3) или соединяться друг с другом в строки (например, 'Это только проверка').
Каждому символу приписывается целое число в диапазоне 0...255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD.
К типу CHAR применимы операции отношения, а также встроенные функции: СНR(В) – функция типа CHAR; преобразует выражение В типа BYTE в символ и возвращает его своим значением;
UPCASE(CH) – функция типа CHAR; возвращает прописную букву, если СН – строчная латинская буква, в противном случае возвращает сам символ СН. При отсутствии предыдущего или последующего символов значение соответствующих функций не определено.
4.1.4. Перечисляемый тип
Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:
typе
colors =(red, white, blue);
Применение перечисляемых типов делает программы нагляднее. Если, например, в программе используются данные, связанные с месяцами года, то такой фрагмент программы:
type
TypeMonth=(jan,feb,mar,may,jun,jul,aug,sep,oct,nov,dec);
var
month: TypeMonth;
begin
if month = aug then WriteLn('Хорошо бы поехать к морю!');
end.
Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе – 1 и т.д. Максимальная мощность перечисляемого типа составляет 65536 значений, поэтому фактически перечисляемый тип задает некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями О, 1 и т.д.
Использование перечисляемых типов повышает надежность программ благодаря возможности контроля тех значений, которые получают соответствующие переменные.
Между значениями перечисляемого типа и множеством целых чисел существует однозначное соответствие, задаваемое функцией ORD(X). В Турбо Паскале допускается и обратное преобразование: любое выражение типа WORD можно преобразовать в значение перечисляемого типа. Такое преобразование достигается применением автоматически объявляемой функции с именем перечисляемого типа.
Переменные любого перечисляемого типа можно объявлять без предварительного описания этого типа, например:
var
col: (black, white, green);
4.1.5. Тип-диапазон
Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Здесь <мин.знач. > – минимальное значение типа-диапазона;
<макс.знач.> – максимальное его значение.
Например:
type
digit = '0'..'9';
dig2= 48..57;
Тип-диапазон необязательно описывать в разделе TYPE, а можно указывать непосредственно при объявлении переменной, например:
var date : 1..31;
month: 1. .12;
Ichr : 'A'..'Z';
При определении типа-диапазона нужно руководствоваться следующими правилами:
два символа стоящих рядом, рассматриваются как один символ, если между ними нет пробела;
левая граница диапазона не должна превышать его правую границу. Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с его меньшей мощностью. В частности, если определена переменная:
type
days = (mo,tu,we,th,fr,sa,su);
WeekEnd = sa .. su;
var w : WeekEnd;
begin
w := sa;
end;
то ORD(W) вернет значение 5 , в то время как PRED(W) приведет к ошибке, так как попытка выйти за пределы диапазона.
В стандартную библиотеку Турбо Паскаля включены две функции, поддерживающие работу с типами-диапазонами:
НIGН(Х) – возвращает максимальное значение типа-диапазона, к которому принадлежит переменная X;
LOW(X) – возвращает минимальное значение типа-диапазона.
Следующая короткая программа выведет на экран строку
-32768...32767
var
k: Integer;
begin
WriteLn(Low(k),'..',High(k))
end.
