Тем, кто привык управляться с окнами Windows, обращаться с окнами IDE Free Pascal понравится ничуть не меньше. Взгляните на рис. 18, где представлены средства управления окном.
Рис. 18 – Средства управления окном редактора
Иконка
в правом верхнем углу распахивает окно на весь экран или вновь сворачивает его к прежнему размеру.
А что это за звездочка
в левом нижнем углу? Она указывает на то, что файл изменялся и не сохранен; звездочка исчезает после сохранения файла клавишей F2 или командой меню File –> Save.
В левом верхнем углу видна иконка закрытия окна
), то перед закрытием окна IDE запросит подтверждение на сохранение файла (рис. 19).
Рис.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
Развиваем успех
Теперь усложним задачу, пусть компьютер обратится к вам вот с таким пышным приветствием:
------------------------
Мой повелитель!
Поздравляю тебя с первой программой!
Твой верный слуга Паскаль
------------------------
Здесь в первой и последней строках для красоты печатается горизонтальный прочерк.
Операторы и разделители
Создадим новый файл и сохраним его под именем «P_07_1.PAS». Напомню, что новый файл создается через пункт меню File –> New, а сохраняется нажатием клавиши F2. Покончив с этим, приступим к сочинению программы. Поразмыслив немного, вы наверняка напишите следующие строки.
begin
Writeln(’------------------------’)
Writeln(’Мой повелитель!’)
Writeln(’Поздравляю тебя с первой программой!’)
Writeln(’Твой верный слуга Паскаль’)
Writeln(’------------------------’)
end.
Ход вашей мысли ясен: уж если компилятор читает программу слева направо и сверху вниз, то и компьютер будет выполнять её в том же порядке. Вы угадали, так оно и есть! Ну что ж, пробуем скомпилировать свое детище, жмем F9 и что? Опять видим сообщение об ошибке (рис. 20)!
Рис.20 – Сообщение о синтаксической ошибке
В чем дело? Компилятор утверждает, что где-то пропущена точка с запятой. В скобках указано место ошибки: третья строка, первый символ. Значит, точку с запятой надо ставить здесь? И зачем она нужна?
Познакомьтесь с важным понятием языка – оператором. Оператор – это наименьший смысловой «кусочек» программы. Он заключает в себе либо небольшое действие – шаг программы, либо описание каких-то данных. В Паскале есть много разных операторов, процедура печати – один из них. В целом программа – это последовательность операторов и ключевых слов. Читая программу, компилятор должен уяснить, где кончается один оператор и начинается следующий. И здесь он нуждается в вашей помощи! Ему нужна подсказка – разделитель операторов, которым служит точка с запятой (;).
Вернемся к нашей программе. Хотя процедуры печати расположены в разных строках, этого мало, чтобы компилятор воспринял их как отдельные операторы. Порой длинный оператор не помещается в одной строке и пишется на нескольких. А бывает наоборот – в одной строке пишут несколько операторов. Вот почему нужен разделитель.
Итак, между операторами надо поставить точку с запятой, программисты обычно ставят разделитель после оператора. Теперь наша программа станет такой.