
- •Введение
- •1. Общая схема решения задачи на персональном компьютере
- •2. Свойства алгоритмов. Основные алгоритмические структуры
- •Линейные алгоритмы
- •Развилка
- •3. Консольные приложения в Delphi. Введение в язык Object Pascal. Общая структура программы. Идентификаторы, комментарии, пробелы. Раздел описаний и раздел операторов
- •4. Арифметические типы данных. Числовые константы и переменные. Оператор присваивания. Выражения
- •5. Ввод-вывод данных в Паскале
- •6. Арифметические операции. Стандартные математические функции
- •7. Пример выполнения задания
- •8. Символьный тип данных
- •9. Логический тип данных. Операции сравнения. Логические операции. Битовые операции
- •10. Условный оператор. Блок. Оператор выбора
- •11. Операторы цикла
- •12. Метки. Оператор goto. Процедура Halt
- •13. Интервальные типы данных. Оператор type. Массивы
- •14. Защита от ошибок и отладка программ. Стандартная техника отладки
- •15. Процедуры и функции. Сфера действия описаний
- •16. Множества
- •Include ( множество , выражение );
- •18. Погрешности при вычислениях
- •19. Файлы. Работа с текстовыми файлами
- •Задания для лабораторных работ Лабораторная работа №1. Вычисление простейших арифметических выражений
- •Лабораторная работа №2. Разветвления
- •Лабораторная работа №3. Простейшие циклы
- •Лабораторная работа №4. Итерационные циклы. Вычисление суммы ряда
- •Лабораторная работа №5. Целые числа
- •Лабораторная работа №6. Вычисления с хранением последовательностей
- •Лабораторная работа №7. Двумерные массивы.
- •Лабораторная работа №8. Обработка последовательностей символов
- •Лабораторная работа №9. Использование подпрограмм
5. Ввод-вывод данных в Паскале
Для ввода-вывода данных в Паскале используются стандартные процедуры ввода-вывода, которые иногда не совсем верно называют операторами ввода-вывода. Понятие процедур и функции будет рассмотрено позднее, пока же мы просто познакомимся с особенностями их организации.
Простейшая процедура ввода в Паскале - процедура READ, она записывается в виде:
read(имя_1,имя_2,...);
где имя - имена переменных или типизированных констант. Вводимые значения задаются в виде допустимых в Паскале констант и разделяются любым количеством пробелов. Для окончания ввода следует нажать клавишу Enter. Процедуру ввода можно записать и как READLN, при вводе числовых переменных они эквивалентны. Кроме того, READLN без списка в скобках можно использовать для организации задержки в работе программы - программа будет переходить в режим ожидания нажатия любой клавиши.
Простейшая процедура вывода записывается в виде:
write(выражение_1, выражение_2, ...);
или
writeln(выражение_1, выражение_2, ...);
Вывести можно любое выражение, если необходимо вывести текст, он заключается в апострофы. Процедура WRITELN отличается от процедуры WRITE тем, что после вывода происходит переход на новую строку. Можно использовать процедуру WRITELN без списка вывода для пропуска строки. Запишем пример программы, осуществляющей ввод и вывод:
var i : integer;
w : word;
r : single;
begin
writeln; { ------------- ввод ------------- }
write('Введите целое число ');
read(i);
writeln;
write('Введите натуральное число ');
read(w);
writeln;
write('Введите вещественное число ');
read(r);
writeln; { ------------- вывод ------------- }
writeln('Вы ввели : ',i,' ',w,' ',r,' их сумма=',i+w+r); writeln('Нажмите Enter для выхода');
readln;
readln;
end.
Впервые записав осмысленную программу, остановимся и обсудим ее внешний вид. Даже на таком тривиальном примере мы можем понять некоторые основные правила оформления программы.
1. Организация диалога с пользователем. Прежде чем записать оператор READ, вы обязаны записать хотя бы один WRITE, который выведет на экран приглашение "Введите ...", причем из этого приглашения пользователь должен понять, какие именно данные ему следует ввести. Так, в нашем примере операторы write('Введите i '); read(i); были бы неуместны, так как пользователю неизвестно, что такое i, и он мог бы ввести, например, вещественное число, что привело бы к аварийному завершению программы.
2. Оформление текста программы. Хорошо оформленная программа легко читается и быстрее отлаживается, следует стремиться к "прозрачности" текста, но не к некоторой, вполне субъективной, "красоте". Так, скажем, операторы, выполняющиеся последовательно, следует и записывать строго друг под другом, но не "елочкой" или какой-либо другой фигурой. Средства, используемые для оформления текста, крайне просты и доступны всякому - это пробелы, пустые строки и комментарии.
3. При выводе чисел можно их форматировать, т.е. управлять формой их представления. Для этого в списке вывода после выводимого выражения можно указывать модификаторы: “:L:d“ - для вещественных значений и “:L” для вещественных и целых. L и d - целочисленные выражения, первое из них определяет, сколько всего позиций отводится для выводимого числа на экране, а второе - сколько выводится цифр после десятичной точки. Если при выводе вещественного числа задан модификатор “:L:d“, то оно выводится с фиксированной точкой, если же задан модификатор “:L” или он отсутствует - то с плавающей точкой. Пусть значение переменной X равно 123.45678, тогда оператор
write(x); выведет " 1.2345678000E+02"
write(x:8:2); выведет " 123.46"
write(x:10:5); выведет " 1.235E+02"
write(x:10); выведет " 1.235E+02"
write(x:8); выведет " 1.2E+02"
write(x:1); выведет " 1.2E+02"
По умолчанию вещественные числа всегда разделяются при выводе пробелами, но если вы выводите подряд несколько целых чисел, не форматируя их и не выводя между ними пробелов, они будут выводиться подряд и сольются в одно число.