- •Содержание
- •Часть 1. Основные понятия программирования §1.1. Этапы разработки программного обеспечения
- •§1.2. Основные сведения об алгоритмах Понятие алгоритма
- •Свойства алгоритма
- •Формы записи алгоритмов
- •Блок-схемы алгоритмов
- •§1.3. Языки программирования
- •§1.4. Паскаль и Object Pascal, Турбо-Паскаль и Delphi
- •Контрольные вопросы
- •Язык, оболочка и интегрированная среда разработки
- •Часть 2. Общие сведения о языке Паскаль §2.1. Алфавит и служебные слова
- •Описание общих конструкций языка
- •§2.2. Структура программы
- •§2.3. Разделы описаний Описание меток
- •Определение констант
- •Определение типов
- •Описание переменных
- •Контрольные вопросы
- •Часть 3. Простые типы данных Иерархия типов
- •§3.1. Целые типы
- •§3.2. Вещественные типы
- •§3.3. Логический тип
- •§3.4. Литерный тип
- •§3.5. Перечисляемый тип
- •§3.6. Диапазоны (интервальный тип)
- •Дополнительные типы в Delphi
- •Контрольные вопросы
- •Глава 4. Операторы языка Паскаль Выражения
- •§4.1. Оператор присваивания
- •§4.2. Ввод-вывод данных
- •§4.3. Составной оператор
- •§4.4. Пустой оператор
- •§4.5. Безусловный оператор перехода
- •§4.6. Условный оператор
- •§4.7. Оператор цикла с параметром for
- •§4.8. Оператор цикла с предусловием while
- •§4.9. Оператор цикла с постусловием repeat
- •§4.10. Оператор выбора case
- •Контрольные вопросы
- •Глава 5. Процедурное программирование §5.1. Функции
- •Параметры – значения
- •Параметры – переменные
- •Бестиповые параметры
- •§5.2. Процедуры
- •Правила использования подпрограмм
- •Рекурсия
- •Директивы
- •Процедурные типы
- •Пример использования подпрограмм
- •Контрольные вопросы
- •Глава 6. Структурированные типы данных
- •§6.1. Массивы
- •§6.2. Строки
- •§6.3. Записи
- •§6.4. Множества
- •Пример использования множеств
- •§6.5. Файлы
- •Установочные и завершающие операции
- •Операции ввода-вывода
- •Перемещения по файлу
- •Пример работы с файлом
- •Обработка ошибок ввода-вывода
- •Специальные операции
- •Пример объединения двух файлов
- •Текстовые файлы
- •Стандартные текстовые файлы
- •Файлы без типа
- •Контрольные вопросы
- •Глава 7. Динамические структуры данных §7.1. Динамические переменные
- •§7.2. Указатели
- •Работа с динамическими переменными
- •Пример двухсвязанного циклического списка
- •Указатели без типа
- •Контрольные вопросы
- •Глава 8. Низкоуровневые возможности Паскаля §8.1. Язык Ассемблер
- •§8.2. Доступ к аппаратуре Доступ к памяти
- •Доступ к портам ввода-вывода
- •Работа по прерываниям
- •Контрольные вопросы
- •Глава 9. Модули §9.1. Основные понятия
- •§9.2. Использование модулей
- •§9.3. Стандартные модули
- •§9.4. Модуль Crt
- •Работа с экраном в текстовом режиме
- •Работа с клавиатурой
- •Работа со звуком
- •§9.5. Модуль dos
- •§9.6. Графический режим монитора
- •Контрольные вопросы
- •Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования
- •Понятие объекта
- •§10.2. Свойства объектов
- •Раннее и позднее связывание
- •§10.3. Виртуальные методы
- •Конструкторы и деструкторы
- •§10.4. Динамические объекты
- •Скрытые поля и методы
- •Контрольные вопросы
- •Литература
§4.2. Ввод-вывод данных
Для ввода информации с клавиатуры и вывода ее на экран (стандартные устройства ввода-вывода) используются 4 оператора обращения к процедурам. Для ввода используются:
Read (<список параметров ввода>);
ReadLn (<список параметров ввода>);
В списке параметров указываются вводимые переменные. Во втором случае после ввода указанного количества параметров происходит переход на новую строку. Но, так как ввод с клавиатуры всегда должен заканчиваться переходом на новую строку, то именно для устройства ввода – клавиатуры, – эти операторы можно считать равнозначными. При вводе числовых значений их необходимо разделять хотя бы одним пробелом или переходом на новую строку.
Например, если в программе встретится оператор
Read (x,y,z);
то выполнение программы приостановится (будет индицироваться экран данных, стандартно черного цвета), пока не будет введена строка
0.28 32.5 1.0 <Enter>
Для вывода так же используются два оператора
Write (<список параметров вывода>);
WriteLn (<список параметров вывода>);
В списке параметров указываются выражения, в частности переменные и константы, например строковые:
WriteLn ('Сумма=',S,' Произведение=',a*b);
Аналогично с вводом, после выполнения второго оператора осуществляется переход на новую строку. Оператор Write обычно используется при необходимости формирования одной строки с помощью нескольких операторов.
При выводе вещественные числа имеют 15 цифр мантиссы и 4 цифры порядка, а целые занимают место, равное количеству значащих цифр. Так, при выполнении операторов
Read (i,j,k,x);
Writeln (i,j,k);
Writeln (x);
на экране данных появится информация:
35 128 15 0.75
3512815
7.50000000000000Е-0001
Первая строка – это введенные с клавиатуры данные. Гораздо нагляднее использовать форматированный вывод. Здесь параметр выглядит следующим образом:
<выражение>:<количество выделяемых позиций>
При этом данное прижимается к правому краю. Вещественные числа в таком формате все равно будут выводится в экспоненциальной форме (с плавающей точкой). Только для вещественных чисел, чтобы использовать формат с фиксированной точкой, используется следующий общий вид:
< выражение>:<общее количество выделяемых позиций>:<количество позиций дробной части>
Внимание! Не путать общее количество выделяемых позиций с количеством позиций целой части вещественного числа!
Аналогично предыдущему примеру:
Read (i,j,k,x);
Writeln (i:4,j:4,k:4);
Writeln (x:7:3);
на экран будет выведена информация в более удобном для восприятия виде:
35 128 15 0.75
35 128 15
0.750
Необходимо обратить внимание: первая цифра при задании формата числа является общим количеством выделяемых позиций, в которых необходимо учитывать место под знак числа и десятичную точку.
Формат с двумя числами предназначен только для вещественных чисел в форме с фиксированной точкой.
§4.3. Составной оператор
Все операторы Паскаля условно можно разбить на простые и структурные. Структурные включают в свой состав другие операторы. В частности, в условном операторе, операторе выбора и двух операторах цикла может быть записан только один внутренний оператор. Это ограничение можно обойти, если использовать операторные скобки или составной оператор. Он имеет следующий вид:
Begin
<оператор1>;
<оператор2>;
...
<операторn>
end
Пример: вся программа состоит из одного составного оператора.
