- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
Пример простейшей программы на языке Pascal
program start;
var s: string;
begin
write('Пожалуйста, введите Ваше имя: ');
readln(s);
writeln('Мы рады Вас приветствовать, ',s,'!');
end.
Во время работы этой программы на экране появится примерно следующее:
Пожалуйста, введите Ваше имя: Иван Иванович
Мы рады Вас приветствовать, Иван Иванович!
3. Типы данных
Турбо Паскаль характеризуется разветвленной структурой типов данных
3.1. Структура типов данных
3.2. Простые типы
К простым типам относятся порядковые и вещественные типы. Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно упорядочить и следовательно сопоставить каждому значению целое число – порядковый номер значения.
Вещественные типы также имеют конечное число значений. Но их количество настолько велико, что каждому из них невозможно сопоставить целое число.
3.2.1. Порядковые типы
К порядковым типам относятся (см. рис)
-
целые,
-
логический,
-
символьный,
-
перечисляемый
-
и тип-диапазон.
К любому из них применима функция ORD(X), которая возвращает порядковый номер значения выражения X. Для целых типов функция ORD(X) возвращает само значение X, т.е. ORD(X) = X для X, принадлежащего любому целому типу. Применение ORD(X) к логическому, символьному и перечисляемому типам дает положительное целое число в диапазоне от 0 до 1 (логический тип), от 0 до 255 (символьный), от 0 до 65535 (перечисляемый). Тип-диапазон сохраняет все свойства базового порядкового типа, поэтому результат применения к нему функции ORD(X) зависит от свойств этого типа.
3.2.1.1 Целые типы.
Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. В табл. 1 приводится название целых типов, длина их внутреннего представления в байтах и диапазон возможных значений
Целые типы Таблица 1
Название |
Длина, байт |
Диапазон значений |
Byte |
1 |
0. . .255 |
ShortInt |
1 |
-128. . .+127 |
Word |
2 |
0. . .65535 |
Integer |
2 |
-32768.. .+32767 |
LongInt |
4 |
-2 147 483 648... +2 147 483 647 |
Над целыми числами определены операции:
-
+ сложение
-
- вычитание
-
умножение
-
Div – целочисленное деление
-
Mod – получение остатка от целочисленного деления.
При использовании разных типов в одном выражении они приводятся к базовому типу – целочисленному минимальной мощности.
Пример
-
2+2 {byte}
-
128*2 {word}
-
-(32000+5000) {longint}
-
32000+5000 {word}
Пример
-
5 mod 2 = 1
-
31 mod 16 = 15
-
18 mod 3 = 0
Пример
11 div 5 = 2
3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
Перечень процедур и функций, применимых к целочисленным типам, приведен в табл. 2. Буквами b, s, w, i, l обозначены выражения соответственно типа BYTE, SHORTINT, WORD, INTEGER и LONGINT, x - выражение любого из этих типов; буквы vb, vs, vw, vi, vl, vx обозначают переменные соответствующих типов. В квадратных скобках указывается необязательный параметр.
Таблица 2
Стандартные процедуры и функции, применимые к целым типам |
||
Обращение |
Тип результата |
Действие |
abs (x) |
x |
Возвращает модуль х |
chr(b) |
Char |
Возвращает символ по его коду |
dec (vx[, i] ) |
процедура |
Уменьшает значение vx на i, а при отсутствии i -на 1 |
inc(vx[, i] ) |
Процедура |
Увеличивает значение vx на i, а при отсутствии i - на 1 |
Hi(i) |
Byte |
Возвращает старший байт аргумента |
Lo(i) |
" |
Возвращает младший байт аргумента |
odd(l) |
Boolean |
Возвращает True, если аргумент - нечетное число |
Random (w) |
Как у параметра |
Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0...(w-l) |
sgr (x) |
X |
Возвращает квадрат аргумента |
swap ( i ) |
Integer |
Меняет местами байты в слове |