[gem_textbox]

 Консольные приложения, или Меньше — значит лучше!

Во всех предыдущих уроках вы создавали приложения с помощью компонентов, предлагаемых средой Delphi. Но у этих приложений есть существенный минус — они занимают слишком много места на диске и могут не работать на другом компьютере, где нет среды Delphi. Всех этих недостатков лишена одна из разновидностей приложений — консольное приложение.

Консольное приложение — это программа, предназначенная для работы в окне DOS, устройством ввода которой является клавиатура, а устройством вывода — монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).

Консольные приложения удобны для иллюстрации при рассмотрении общих вопросов программирования, когда надо сосредоточиться на сути проблемы, а также для небольших утилит «для внутреннего потребления», где не требуется графического интерфейса. Основные преимущества данных приложений — это малый объем исполняемого файла. Консольные приложения — это всего лишь Windows-программы, не имеющие окон. Они гарантированно работают на любом компьютере с ОС Windows 95, 98, Me, XP, NT.

Задача урока

  • Создание консольных приложений.

Выполнение упражнения

В этом уроке мы создадим простое консольное приложение для расчёта суммы числовой последовательности S = 5/(i+1), где i изменяется от 0 до n (n вводится пользователем с клавиатуры). Окно приложения показано на рисунке 1.

image001
Рисунок 1. Окно приложения

1. Создание проекта консольного приложения

Создайте проект консольного приложения. Для этого из меню File (Файл) выберите команду New ? Other Application (Новый ? Другое) (рисунок 2а). Затем на вкладке New появившегося диалогового окна выберите тип создаваемого приложения —Console Application (Консольное приложение) (рисунок 2б) и нажмите «ОК».

 а)image003 б) image005
Рисунок 2. Создание консольного приложения

В результате на экране появится окно редактора кода с названием Project1.dpr (листинг 1), в котором находится шаблон программы консольного приложения. В этом окне мы будем набирать инструкции программы.

program Project1;

{$APPTYPE CONSOLE}  

Uses			
SysUtils;

begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
Листинг 1. Пустой код консольного приложения

Начинается консольное приложение стандартной инструкцией языка Pascal — program, за которой следует имя программы. Сначала оно совпадает с именем приложения «по умолчанию». В момент сохранения оно будет автоматически заменено на имя, под которым программист сохранит приложение.

После program идёт строка {$APPTYPE CONSOLE}, которая, хотя и похожа на комментарий, таковым не является, т. к. сразу за открывающейся скобкой следует знак денежной единицы. Это так называемая директива компилятора. Эту строку удалять нельзя!

Далее в разделе Uses по умолчанию указан модуль SysUtils. В этом модуле содержатся функции, которые, по мнению разработчиков среды Delphi, могут использоваться при создании консольных приложений. Его лучше оставить.

Последним элементом шаблона является само тело программы, расположенное между операторами begin — end.

2. Запуск приложения

1. Сохраните проект.

2. Запустите программу и посмотрите, что же получилось. При запуске консольного приложения на экране появляется стандартное окно DOS-программы. Но… Оно сразу закрывается.

3. Чтобы окно не закрывалось, в теле программы запишите оператор ожидания нажатия на клавишу ввода — ReadLn:

Begin

  // Сообщаем пользователю, что ему необходимо нажать на клавишу
  Write('Press Enter key');
  // Ожидание нажатия на Enter
  ReadLn;

end.
Листинг 2

4. Запустите программу. Теперь окно программы закроется только тогда, когда пользователь нажмёт на клавишу ввода.

Примечание: Так как текст программы набирается под управлением ОС Windows, а работает программа в консоли DOS, то возникают проблемы при выводе русских букв, вместо которых на экране появляется «абракадабра». Так что лучше кириллицу в консольных приложениях не использовать.

3. Написание программного кода

1. Теперь напишите код (листинг 3). В нём рассчитывается сумма числовой последовательности: S = 5/(i+1), где i изменяется от 0 до n (n вводится пользователем с клавиатуры).

program MyProgram;

{$APPTYPE CONSOLE}

uses SysUtils;

Var S:Real;
    i,n:Integer;

Begin

  // Ввод количества элементов ряда
  Write('n: '); 
  ReadLn(n);
  // Вычисление суммы ряда S = 5/(i+1)
  S:= 0;
  For i:=0 to n do S:= S+5/(i+1);
  // Вывод суммы на экран
  Writeln('Result Sum: ', floattostr(S));
  // Сообщаем пользователю, что ему необходимо нажать на клавишу
  Write('Press Enter key');
  // Ожидание нажатия на Enter
  ReadLn;

end.
Листинг 3

Поясним код:

Сначала описываются используемые программой переменные в разделе var. Это будет переменная суммы S типа Real и переменные для максимального количества элементов ряда n и счетчика цикла i типа Integer (выделено жёлтым).

Далее происходит запрос пользователю ввести n (выделено зелёным), после чего вычисляется сумма ряда S (выделено голубым) и выводится на экран (выделено красным).

2. Программа готова! Запустите приложение. Введите значение n, например, 7 и нажмите клавишу Enter.

Как вы видите, писать консольные приложения намного проще обычных.

 

4. Коротко о главном

  • Консольными называются приложения, предназначенные для работы в окне DOS, для которой устройством ввода является клавиатура, а устройством вывода — монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).
  • Чтобы окно консольного приложения не закрывалось после завершения работы, в конце программы необходимо записать оператор ожидания нажатия на клавишу ввода — ReadLn.
  • Так как текст программы консольного приложения набирается под управлением ОС Windows, а работает программа в консоле Dos, то возникают проблемы при выводе русских букв, вместо которых на экране появляется «абракадабра». Кириллицу в консольных приложениях использовать не следует.
[/gem_textbox]