Тем, кто привык управляться с окнами Windows, обращаться с окнами IDE Free Pascal понравится ничуть не меньше. Взгляните на рис. 18, где представлены средства управления окном.

Песни о Паскале _25.jpg

Рис. 18 – Средства управления окном редактора

Иконка

Песни о Паскале _26.jpg
в правом верхнем углу распахивает окно на весь экран или вновь сворачивает его к прежнему размеру.

А что это за звездочка

Песни о Паскале _27.jpg
в левом нижнем углу? Она указывает на то, что файл изменялся и не сохранен; звездочка исчезает после сохранения файла клавишей F2 или командой меню File –> Save.

В левом верхнем углу видна иконка закрытия окна

Песни о Паскале _28.jpg
), то перед закрытием окна IDE запросит подтверждение на сохранение файла (рис. 19).

Песни о Паскале _29.jpg

Рис.19 – Запрос на сохранение файла

Ответ Yes приведет к закрытию окна с сохранением последних изменений, ответ No – без сохранения. При нажатии кнопки Cancel окно не закроется, и вы сможете продолжить редактирование файла.

Повозитесь немного с окном, – это добавит вам уверенности.

Борьба с ошибками

Ошибки, ошибки… – их никому не миновать! Мы тоже не ангелы и будем ошибаться. Но в компьютере все поправимо. Не страшитесь ошибок, – вы всегда сможете найти и поправить их, и в этом IDE Free Pascal вам поможет.

Ошибки ошибкам рознь. В разговоре и письме мы допускаем ошибки разного рода: грамматические, синтаксические и смысловые. Вот школьная тетрадь, что там нацарапано? «МАлАко»? – ужас! – это грамматическая ошибка, такого слова нет. А если видим: «змея даёт зеленое молоко», – это смысловая ошибка, хоть с грамматикой тут все в порядке.

Вернемся к Паскалю. Превращая вашу программу в исполняемый файл, компилятор, подобно учителю, читает её слева направо и сверху вниз, зорко изучая вашу писанину. Обнаружив синтаксическую ошибку, он сообщит об этом и остановится. Исполняемый EXE–файл будет создан только при отсутствии синтаксических ошибок. К чему такая строгость? Мы склонны прощать друг другу мелкие огрехи, если понимаем смысл сказанного. Но компьютер не так умен, чтобы додумывать наши человеческие мысли, – вот почему так строг компилятор.

Обратимся к практике. Откройте файл с нашей первой программой и внесите ошибку в первой строке. Например, уберите первую букву в слове BEGIN.

egin

Writeln(’Привет!’)

end.

Запустите компиляцию этой программы – нажмите F9, – и что же? В окне сообщений вы увидите: «BEGIN expected…». Это значит, что компилятор не нашел обязательного в начале программы ключевого слова BEGIN. Компилятор может обнаружить много разных ошибок, вы найдете их перечень в справке по IDE (Appendix C, Compiler messages), а также в приложении Д.

Исправим эту ошибку и сделаем другую, – уберем закрывающую кавычку в тестовой константе (после восклицательного знака).

begin

Writeln(’Привет!)

end.

Попытавшись скомпилировать, получим сообщение: «String exceeds line». Это значит, что строковая константа превышает допустимый размер. Стало быть, компилятор не всегда точно определяет место ошибки, и тогда не худо самим «шевельнуть извилинами», – здесь полезна тренировка. Поупражняйтесь в поиске ошибок, внося их в программу сознательно. Запускайте компиляцию, и наблюдайте результат. Так накопите бесценный опыт исправления ошибок, и «ужасные» сообщения уже не запугают вас.

А найдет ли компилятор ошибку внутри апострофов? Как он воспримет слова «прЫвет» и «мАлАко»? Ничего не заметил? Это и понятно, ведь слова внутри апострофов компилятор не проверяет. Не его это дело, – он вообще не знает русского языка! В строковых константах он проверяет, как мы уже убедились, только парность апострофов.

Итоги

• В редакторе IDE можно одновременно открывать несколько исходных файлов с программами.

• При запуске IDE Free Pascal автоматически открывает файлы, открытые в предыдущем сеансе (точнее, окна, не закрытые при выходе из сеанса).

• Элементы управления окном редактора изменяют его размеры, перемещают по экрану, распахивают, сворачивают и закрывают окно.

• Компилятор Pascal проверяет текст программы при каждой компиляции. Обнаружив синтаксическую ошибку, он не создает исполняемый файл, а выводит краткое описание ошибки.

Глава 7

Развиваем успех

Песни о Паскале _30.jpg

Теперь усложним задачу, пусть компьютер обратится к вам вот с таким пышным приветствием:

------------------------

Мой повелитель!

Поздравляю тебя с первой программой!

Твой верный слуга Паскаль

------------------------

Здесь в первой и последней строках для красоты печатается горизонтальный прочерк.

Операторы и разделители

Создадим новый файл и сохраним его под именем «P_07_1.PAS». Напомню, что новый файл создается через пункт меню File –> New, а сохраняется нажатием клавиши F2. Покончив с этим, приступим к сочинению программы. Поразмыслив немного, вы наверняка напишите следующие строки.

begin

Writeln(’------------------------’)

Writeln(’Мой повелитель!’)

Writeln(’Поздравляю тебя с первой программой!’)

Writeln(’Твой верный слуга Паскаль’)

Writeln(’------------------------’)

end.

Ход вашей мысли ясен: уж если компилятор читает программу слева направо и сверху вниз, то и компьютер будет выполнять её в том же порядке. Вы угадали, так оно и есть! Ну что ж, пробуем скомпилировать свое детище, жмем F9 и что? Опять видим сообщение об ошибке (рис. 20)!

Песни о Паскале _31.jpg

Рис.20 – Сообщение о синтаксической ошибке

В чем дело? Компилятор утверждает, что где-то пропущена точка с запятой. В скобках указано место ошибки: третья строка, первый символ. Значит, точку с запятой надо ставить здесь? И зачем она нужна?

Познакомьтесь с важным понятием языка – оператором. Оператор – это наименьший смысловой «кусочек» программы. Он заключает в себе либо небольшое действие – шаг программы, либо описание каких-то данных. В Паскале есть много разных операторов, процедура печати – один из них. В целом программа – это последовательность операторов и ключевых слов. Читая программу, компилятор должен уяснить, где кончается один оператор и начинается следующий. И здесь он нуждается в вашей помощи! Ему нужна подсказка – разделитель операторов, которым служит точка с запятой (;).

Вернемся к нашей программе. Хотя процедуры печати расположены в разных строках, этого мало, чтобы компилятор воспринял их как отдельные операторы. Порой длинный оператор не помещается в одной строке и пишется на нескольких. А бывает наоборот – в одной строке пишут несколько операторов. Вот почему нужен разделитель.

Итак, между операторами надо поставить точку с запятой, программисты обычно ставят разделитель после оператора. Теперь наша программа станет такой.