Знакомство с FreePascal [Автор неизвестен] (pdf) читать постранично, страница - 2

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

такого рода компилятор может заметить и сообщить о них
программисту. Но бывают ошибки смысловые — текст, их содержащий, написан на грамотном русском языке (или
на языке программирования), но содержащееся в этом тексте утверждение неверно. Поскольку смысл программы
компилятору неизвестен (и не может быть известен в принципе), ошибки такого рода компилятор обнаружить не
может.
В итоге, программа успешно компилируется и запускается. Некоторые ошибки такого рода могут быть замечены
в процессе выполнения программы — например, деление на 0. Однако часто такие ошибки так и остаются незамеченными, приводя к тому, что программа молча выдает неверный результат.
Для иллюстрации общей структуры программы на Pascalе, приведем в качестве примера очень простую программу.
Она выводит на экран сообщение «Hello, world!», ждет, пока пользователь нажмет клавишу Enter и затем завершается.
Текст этой программы выглядит следующим образом:
program Hello;

begin
writeln(’Hello, world!’);
readln
end.
Первая строка файла содержит слово program и имя программы. Слово program — ключевое, т. е. особое в том
смысле, что его значение фиксировано в языке Pascal, и его нельзя использовать в программах на Pascal’е для других
целей, например для имен чего-то, созданного программистом. Оно используется для указания имени программы,
которое следует за ним через пробел. Вообще говоря, указание имени программы не является строго обязательным,
но служит признаком хорошего стиля программирования.
На остальных строках располагаются ключевые слова begin и end, за последним стоит символ «.», и между
ними некоторый текст. Это так называемое тело программы. Между begin и end стоят так называемые операторы,
составляющие программу, т. е. указания того, что должна делать программа.
В нашем случае этих операторов — два, и они разделяются символом «;». Первый из них называется оператором
вывода, и в скобках у него указано то, что должно быть напечатано на экране в результате выполнения этого оператора. В данном случае это текст «Hello, world!». Вместо кавычек в Pascal используются апострофы, а вся конструкция
называется «строковая константа». Такие конструкции указывают на то, что используемый между апострофами текст
должен быть напечатан (или использован) как есть, без каких либо преобразований (например, замены имени переменной на ее значение).
Второй оператор — оператор ввода. В данном случае у него нет параметров (нет скобок после readln). В таком виде
он означает просто ожидание до тех пор, пока пользователь не нажмет клавишу Enter. Этот оператор стоит здесь
только для того, чтобы пользователь мог увидеть результат работы программы; в противном случае он промелькнет на
экране очень быстро, и опять будет показано окно редактора с текстом программы. В этом случае увидеть результат,
т. е. вывод программы, можно, выбрав Debug/User screen. Вернуться обратно к редактору можно, нажав Esc.
Задание 1. Поменяйте содержимое строковой константы, запустите программу и убедитесь, что теперь выводится
новая строка. Что будет, если убрать апострофы? А если заменить их на двойные кавычки? А если вместо writeln
написать write? Напишите программу, выводящую строку «Here was I». Напишите программу, выводящую две строки
«First line» и «Second line».

2

Вычисление выражений

В программах на Паскале можно вычислять выражения. Синтаксис выражений, т. е. способ их записи, похож на
принятый в математике. В выражениях можно использовать целые числа (как в математике), а также вещественные
числа в обычном виде, как десятичные дроби, только вместо десятичной запятой используется точка. Например,
запись 2.731 означает «2 целых 731 тысячная». Можно также использовать вещественные числа в так называемом
экспоненциальном или научном формате, когда к числу сзади дописывается буква «e» и за ней целое число (вся
эта запись не должна содержать пробелы), которое означает, что исходное число надо умножить на 10 в указанной
степени. Например, число 1.23e2 означает просто 123, а 1e-6 означает одну миллионную.
В большинстве языков программирования, и Pascal не является исключением, нельзя использовать в выражениях
слишком большие целые или вещественные числа. Более того, диапазон используемых чисел зависит от компьютера,
операционной системы и компилятора. В пределах этого диапазона, т. е. если исходные числа и все промежуточные
результаты попадают в этот диапазон, арифметические действия с целыми числами выполняются точно. Если же
исходные числа или промежуточные результаты выходят за пределы этого диапазона, результат будет неверным,
причем система не всегда сообщает об этом программисту. Чтобы она сообщала, для целых чисел, в начало программы
надо поместить управляющий комментарий {$Q+}. Для вещественных чисел используется специальное значение,
означающее «бесконечно большое число».
Даже если все исходные числа и промежуточные результаты в выражении с вещественными числами лежат в допустимых пределах, все равно