Позволяет настроить среду Турбо-Паскаля для удобства работы конкретного пользователя. У этой опции есть свое дополнительное меню:
По мнению экспертов, около 90% рабочего времени программиста затрачивается на отладку программы, и только 10% - на ее разработку и написание, поэтому лучшим средством облегчить неизбежную отладку является профилактика ошибок еще на этапе разработки программы и написания ее текста. Правильно написанная программа содержит меньше ошибок и значительно облегчает их поиск.
Существует ряд простых правил, которых желательно придерживаться при составлении программы:
1. Писать текст программы и отлаживать ее следует небольшими частями. Перед тем, как использовать результаты работы одной части программы в другой ее части, следует добиться правильной работы первого блока.
2. Желательно разбивать текст программы на процедуры и функции. Не следует писать большие процедуры (содержащие более 20-30 строк). Если процедура получается большой, лучше разбить ее на несколько подпрограмм меньших размеров.
3. Следует по возможности передавать информацию в процедуры через параметры, избегая ссылок на глобальные переменные. Это позволит избежать побочные эффекты и облегчит отладку программы, поскольку будет проще отслеживать всю входную и выходную информацию подпрограммы.
4. Следует стремиться к простоте алгоритма программы. Главное- чтобы программа начала работать правильно, а уже потом можно украсить ее эффектными средствами ввода-вывода, добиться скорости работы и более рационального использования памяти.
5. Текст программы должен быть "рыхлым", не следует писать операторы компактно, вплотную друг к другу. Желательно, чтобы на строке было не более одного оператора. Поскольку отладчик Турбо-Паскаля работает построчно, такой подход облегчит локализацию ошибки. На одной строке в виде списка можно писать лишь те операторы, которые надежны в отношении отладки и в проверке не нуждаются: A:=10; B:=3.14; Str:='Строка символов'; C:=True;.
6. Выполняемые в программе действия надо как можно чаще сопровождать комментариями { }, (* *). Известные программисты Керниган и Плоджер в своей книге "Элементы стиля программирования" рекомендуют, чтобы комментарием сопровождался каждый оператор программы.
В ходе отладки программы приходится сталкиваться с тремя видами ошибок:
1. Синтаксические ошибки - текст программы не отвечает требованиям языка Паскаль. Такие ошибки выявляются сразу при попытке компиляции и запуска программы.
2. Ошибки периода выполнения программы (RUNTIME ERROR) - ошибки, возникающие при выполнении программы, когда текст программы формально записан правильно, но при выполнении программы в результате неблагоприятного стечения обстоятельств возникает ошибочная ситуация и компьютер не может продолжить работу (например, в случае деления на ноль).
3. Ошибки в алгоритме (семантические ошибки) - программа работает без сбоев, но результаты получаются неверные.
Ошибки 1 и 2 видов помогает отыскать сам компьютер, приостанавливая работу и выводя на первой строке сообщение о характере ошибки. Более того, при компиляции неправильной программы Турбо-Паскаль автоматически загружает в окно редактора сбойный участок текста программы и помещает курсор вблизи обнаруженной ошибки.
Перечислим ошибки, наиболее часто допускаемые начинающими программистами, и разъясним сообщения Турбо-Паскаля, выдаваемые им при выявлении этих ошибок в процессе компиляции текста программы:
1. Identifier expected - в этом месте программы должен находиться идентификатор (имя программного объекта). Возможно, программист пытался использовать в качестве идентификатора слово, зарезервированное Паскалем для других целей.
2. Unknown identifier - идентификатор (имя переменной, константы, процедуры и т.п.) не был упомянут в разделе описаний программы.
3. Duplicate identifier - попытка дважды описать один и тот же идентификатор.
4. Syntax error - синтаксическая ошибка, например строка символов не была заключена в кавычки.
5. Line too long - компилятор не может обрабатывать текст программы со строками длиннее 126 символов. Скорее всего, программист забыл поставить апостроф, закрывающий текстовую строку, записываемую в переменную или выводимую на экран.
6. Type identifier expected - не указан тип идентификатора.
7. Variable identifier expected - на этом месте в программе должна стоять переменная.
8. Error in type - объявление типа данных не может начинаться с этого символа.
9. Type mismatch - а)тип переменной, стоящей слева от знака присваивания, отличается от значения выражения, стоящего справа; б)при обращении к процедуре типы формального и фактического параметров не совпадают; в)переменная данного типа не может служить индексом массива.
10. Begin expected - нужен begin.
11. End expected - нужен end.
12. Integer expression expected - требуется выражение типа integer.
13. Boolean expression expected - требуется выражение типа boolean.
14. Do expected - пропущено слово "Do".
15. Of expected - пропущено слово "of".
16. Then expected - пропущено слово "then".
17. To expected - пропущено слово "to".
18. String variable expected - требуется строковая переменная.
19. Error in expression - данный символ не может участвовать в выражении таким образом.
20. Division by zero - деление на ноль.
21. Constant and case types do not math - тип меток и тип селектора в операторе CASE не соответствуют друг другу.
22. Label not within current block - оператор GOTO не может ссылаться на метку, находящуюся вне текущего модуля.
23. Label already defined - такая метка уже есть.
24. Floating point overflow operation - величина вещественного числа вышла за пределы диапазона, допускаемого Паскалем (обычно при делении на ноль).
25. Invalid procedure or function reference - неправильный вызов подпрограммы.