Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Консольные приложения
15 апреля 2009

В первой главе, при ознакомлении с графическим интерфейсом пользователя, для
демонстрации примеров использовались приложения типа VCL Form Application. Одна-
ко для изучения языка Delphi значительно удобнее использовать приложения типа
Console Application (консольное приложение). Здесь не надо думать о графическом ин-
терфейсе, а ввод и вывод на экран информации происходит значительно проще. По-
этому не надо отвлекаться на посторонние вещи, думайте только об особенностях
языка. К графическому интерфейсу и приложениям типа VCL Form Application мы обя-
зательно вернемся в следующих главах, так как они используются в подавляющем
большинстве программ, написанных на Delphi.
Итак, создадим консольное приложение, что делается так же, как и для всех других
приложений, которые можно создать несколькими способами. Можно щелкнуть на
пиктограмме New Items на панели Standard, можно использовать команды меню File1*
New=>Other или последовательно нажать клавиши <AltoFc>Ni=>0>. Затем в открывшемся
окне New Item необходимо выбрать папку Delphi for .NET, чтобы дважды щелкнуть на пик-
тограмме Console Application. При этом будет создан новый проект с одной вкладкой редак-
тора кодов со стандартным кодом по умолчанию (см. предыдущий раздел). Вкладки
с формой создаваться не будет, так как вывод будет происходить в окно DOS.
Для того чтобы лучше понять работу консольного приложения, создадим простей-
шую программу. Для этого дополните стандартный код, созданный по умолчанию,
несколькими выражениями, как показано в приведенном ниже листинге.
program Project2;
{$АРРТУРЕ CONSOLE}
u s e s S y s U t i l s ;
v a r
a : C a r d i n a l ;
b: Cardinal;
begin
{ TODO -oUser -cConsole Main : Insert code here }
a := 3;
b := 4;
W r i t e d n t T o S t r ( a ) + ' + ' + I n t T o S t r ( b ) + ' = ' ) ;
Write(a+b);
Readln;
end.
Здесь добавилось ключевое слово var, затем идут объявления переменных а и Ь,
которые объявлены как целочисленные значения без знака (натуральные числа),
о чем говорит слово Cardinal, которое определяет тип переменной. Тип любой пе-
ременной всегда объявляется только таким образом, т.е. после имени переменной ста-
вится двоеточие, а затем идет тип, который может быть как стандартным типом, так
и созданным самим пользователем.
Когда говорится об объявлении переменной, то имеется в виду, что, встретив код
объявления переменной, компилятор создает эту переменную, выделяя место в па-
мяти в соответствии с присвоенным ей типом. Во многих случаях на это место запи-
сывается нулевое значение, но лучше всегда самому присвоить вновь созданной пе-
ременной необходимое значение. Подобным образом следует описать все переменные, используемые в программе,
иначе компилятор не сможет разобраться в программе и выдаст сообщение об ошиб-
ке. Далее этим переменным присваиваются значения. Это делается в начале блока
begin...end, где размешается разрабатываемая программа. Затем идет процедура
write (Записать). В данном случае необходимо вывести (записать) на экран сумму
двух чисел, которым уже присвоены значения. Процедура Readln (Считать) заканчи-
вает программу пользователя. Она необходима для того, чтобы оставить открытым ок-
но DOS, в котором будет отображаться результат сложения (рис. 3.1). Без процедуры
Readln окно DOS после вывода результата моментально закроется, так как программа
будет завершена, а наличие этой процедуры требует ввода какого-либо значения, что
не позволит закончить программу. Нажатия любой клавиши будет достаточно для то-
го, чтобы программа завершилась. Теперь напишем такую же программу сложения двух чисел, в которой слагаемые
можно вводить в процессе работы программы. Выглядеть она будет так.
program Projectl;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a: Cardinal;
b: Cardinal;
begin
{ TODO -oUser -cConsole Main : Insert code here }
Write('Input a: ' ) ;
Read(a);
Write('Input b: ' ) ;
Read(b);
Write('Result: ' ) ;
Writeln(a+b);
Write('Press any key1);
Readln;
Readln;
end.
Если посмотреть внимательнее, то структура программы не изменилась, только
вместо присваивания переменным значений появились вызовы процедур Write
и Read. Таким образом можно вводить необходимые значения с экрана. После появ-
ления надписи input а: необходимо ввести нужное число и нажать клавишу
<Enter>. То же самое сделайте в ответ на запрос input b:.
После нажатия клавиши <Enter> появится результат. В некоторых случаях вместо
слова w r i t e используется слово Writeln. Суффикс In необходим, если после ввода или вывода значения должен быть сделан переход на новую строку. С аналогичной
целью используется и процедура Readln, которая считывает неотображаемые символы
перехода на новую строку и установки курсора в начало строки.
Сделаем еще одно изменение, чтобы наша программа напоминала простейший
калькулятор.
program Projectl;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,
b,
sign: Cardinal;
begin
{ TODO -oUser -cConsole Main : Insert code here }
while a<>0 do begin
Write('Input a: ' ) ;
Read(a) ;
Write('Input b: ' ) ;
Read(b);
Write('Operation: ') ;
Read(sign);
if sign=l then begin
Write(' **Result: ' ) ;
Writeln(a+b);
end else begin
Write(' **Result: ' ) ;
Writeln(a-b);
end
end;
end.
Если запустить эту программу на выполнение, то можно постоянно вводить два
числа и получать результат, не выходя из программы, как это было раньше. Для этого
фрагменты ввода и вывода значений помещены в конструкцию, обеспечивающую
циклическое повторение программы, это ключевые слова while. . .do (пока...делать).
После них идет блок повторяющихся кодов, расположенных между ключевыми сло-
вами begin. . .end;. После слова end стоит точка с запятой, что говорит о заверше-
нии блока, но не о завершении программы. Как видим, условие выхода из цикла оп-
ределяет выражение а<>0, т.е. пока а не равно 0, цикл будет постоянно повторяться.
Как только а станет равным нулю, управление моментально будет передано строке,
находящейся за концом цикла, т.е. end.. Это конец программы.
Здесь еще введена третья переменная sign. Это будет конструкция выбора ариф-
метической операции. Если в ответ на запрос "Operation:" ввести 1, то это будет
означать суммирование, а любое другое число вводится при вычитании — для этого
создана конструкция if.. .then.. . e l s e (если...тогда...иначе). Чтобы можно было
использовать отрицательные значения, я поменял тип переменных — из Cardinal
(натуральные) на integer (целочисленные, допускающие отрицательные значения).
Разработчики Delphi рекомендуют использовать групповые типы Cardinal
и Integer, так как для них оптимизированы математические вычисления, т.е. мате-
матические операции с ними выполняются быстрее, чем с другими типами. Эти типы
называются групповыми потому, что они Хотя часто приходится использовать
и другие типы, например, с целью экономии памяти или если необходимы вещест-
венные числа (числа с плавающей запятой). Запустите эту программу и убедитесь, что можно складывать и вычитать два числа
в цикле. Выход из программы произойдет, если первому числу присвоить значение 0.
Как видите, использование даже самых простейших средств позволило создать ра-
ботающую и полезную программу. Постарайтесь понять всю программу. Большие
и сложные приложения проектируются таким же образом, но, разумеется, в них ис-
пользуется больше специфических конструкций, ключевых слов и операторов, изуче-
нием которых сейчас и займемся.

Теги: borland delphi vista, borland delphi, SendTo, Windows Borland Delphi

Статьи по теме:

Компонент TQRImage
Свойство OutputBin
Устройства обработки данных
Многоадресная рассылка
Использование выражений
Компьютерные видеоконференции
Свойство Caption
Поиск пространства имен
TableName
IndexFieldNames
Свойство PrinterSettings
Редактор кода
Свойство ParentFont
Электронная почта. Структура электронной почты, её возможности
Плавающая запятая в BASM
| Borland Delphi | vitek |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | Borland Delphi | Консольные приложения. Регион сайта: Москва и Санкт-Петербург