program My_Prj_1;
{$APPTYPE CONSOLE}
uses SysUtils;
begin
{ TODO User Console Main : Insert code here }
end.
С этого момента приступайте к вводу своей программы. Компиляция и запуск консольного приложения выполняются клавишей F9.
Русификация консольного приложения
Консольные приложения Delphi работают почти так же, как созданные в Borland (Free) Pascal. Но есть проблема с выводом русского текста на экран (именно на экран, а не в тестовый файл!). Запустив следующую программу, вместо русского приветствия вы увидите «абракадабру».
program My_Prj_1;
{$APPTYPE CONSOLE}
uses SysUtils;
begin
Writeln('Hello, World!');
Writeln('Привет, Мартышка!');
Readln;
end.
Причина – в несоответствии кодировок консольного окна и текстового файла.
Проблема решается вставкой в начале программы вызовов двух системных процедур, вот они:
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Процедуры спрятаны в модуле Windows, поэтому вам придется добавить его в список Uses. Пример такой программы представлен ниже.
program Rus;
{$APPTYPE CONSOLE}
uses SysUtils, Windows;
begin
{
Следующие вызовы процедур переключают консоль на кодовую страницу CP1251 (Win-1251). Если все же русские буквы показываются неверно, откройте системное меню консоли (в левом верхнем углу окна) и выберите: Свойства -> закладка "Шрифт" -> Lucida Console.
}
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Writeln('Привет, Мартышка! (Lucida Console CP1251)');
Readln;
end.
Впрочем, при первом запуске и это не приведет к успеху (рис. 177).
Рис.177 – Вид консольного окна при первом запуске программы
Вам следует настроить шрифт консольного окна, выполнив следующие действия.
Щелкните системное меню консольного окна и выберите пункт «Свойства» (рис. 178).
Рис.178 – Выбор пункта меню «Свойства»
В появившемся окне выберите вкладку «Шрифт», а затем шрифт «Lucida Console» (рис. 179 слева). После нажатия кнопки ОК появится запрос, где можно подтвердить выбор шрифта для всех консольных окон (рис. 179 справа).
Рис.179 – Вкладка «Шрифт» (слева) и окно подтверждения (справа)
Результат настройки не заставит себя ждать (рис. 180).
Рис.180 – Русский текст в консольном окне
Приложение В
Особенности IDE Pascal ABCNet
Интегрированная среда разработки Pascal ABCNet пригодна для решения многих задач из этой книги. Я рекомендую её новичкам, делающим первые шаги в изучении Паскаля. Эта IDE проста в установке, не требует настройки, и отличается удобным русскоязычным оконным интерфейсом. IDE Pascal ABCNet создана в стенах Южного федерального университета, её можно бесплатно скачать с сайта http://pascalabc.net.
Ознакомимся с некоторыми особенностями этой IDE.
При первом вызове IDE появляется пустое окно, в которое можно ввести текст программы и сохранить под нужным именем (рис. 181). Если открыть несколько файлов с программами, каждый из них будет помещен в отдельной вкладке.
Рис. 181 – Окно IDE Pascal ABCNet
Готовая программа запускается клавишей F9 или соответствующей кнопкой на панели инструментов.
Результаты, формируемые программой, выводятся в область консоли в нижней части окна (рис. 182). Здесь же расположено поле для ввода данных пользователем. Для завершения ввода нажимается клавиша Enter или кнопка «Ввести». Кнопкой «Завершить» выполнение программы прекращается досрочно, то же самое случится при нажатии комбинации Ctrl+F2.
Рис.182 – Протокол работы запущенной программы
Запуск программы в пошаговом режиме выполняется кнопками на панели инструментов, либо через меню. В пошаговом режиме доступен просмотр локальных переменных (рис. 183), а также другой информации о программе (на соседних вкладках).
Разработчики IDE Pascal ABCNet стремились, очевидно, к совместимости её со «стандартной» IDE Borland Pascal в той мере, насколько это возможно. Но объектная технология «точка Net» диктует своё, – полной совместимости не получилось.
Рис.183 – Просмотр переменных в пошаговом режиме
Так, например, в данной IDE не существует встроенной функции Assigned. Но вы можете написать её сами.
function Assigned (p: pointer): boolean;
begin
Assigned:= p <> nil
end;
Ниже перечислены другие особенности Pascal ABCNet, которые следует учесть при переделке примеров данной книги.
• Отсутствует процедура FillChar. Записи и массивы нужно заполнять явным образом.
• Нельзя назначать файловым переменным пустое имя, связывая их, таким образом, с экраном и клавиатурой.
• Под символ отводится не один, а два байта (используется UNICODE).
• Строки являются объектами, поэтому доступ к нулевому элементу (байту длины) невозможен.
Приложение Г
Зарезервированные слова
Ключевые слова, которые нельзя применять по иному назначению.
Ключевое слово
Назначение
AND
Операция логического умножения «И»
ARRAY
Объявление массива
ASM
Начало блока инструкций на ассемблере
BEGIN
Начало блока операторов
CASE
Начало оператора множественного выбора
CONST
Начало секции объявления констант
CONSTRUCTOR
Объявление конструктора объекта
DESTRUCTOR
Объявление деструктора объекта
DIV
Операция целочисленного деления
DO
Элемент операторов FOR, WITH, WHILE
DOWNTO
Элемент оператора цикла FOR-DOWNTO-DO
ELSE
Элемент условных операторов IF, CASE
END
Завершение блоков BEGIN-END, CASE-END, ASM-END, RECORD-END
EXPORTS
Объявление списка экспорта для DLL
FALSE
Логическое значение «ЛОЖЬ»
FILE
Тип файловой переменной
FOR
Элемент оператора цикла FOR-TO-DO
FUNCTION
Объявление функции
GOTO
Безусловный переход на метку