Белорусская цифровая библиотека




Выпуcк номер 2 (24/04/04)/ CODE'ИНГ

 

Второй урок Borland Delphi

Я долго думал, что же сделать нам с тобой на втором уроке по Delphi. Калькулятор? Не интересно. Hello, world? Ну, это же примитив. Лучше намутить и интересное, и нестандартное. И веселое! Короче, писать сегодня будем «искусственный интеллект»!!!

Запускай Delphi. Помни, я использую Borland Delphi 6, и если в предыдущих версиях что-то не будет работать, я не виноват. Хотя, вряд ли такое случится. Во всяком случае сегодня.
Пока грузится всеми любимый продукт, расскажу тебе принцип нашей программы. Пользователь вводит фразы, например: «привет», «как дела?», «как тебя зовут» и т.д. Если программа видит такую фразу, то соответственно отвечает. Никакой логической обработки, если есть вопрос как тебя зовут, то будет ответ – меня зовут так-то. Конечно, тоже очень примитивная программа, но все-таки второй урок!

Кидай на форму три компонента – Tmemo, TEdit и TButton, как на рисунке. В мемо будут все фразы – и фразы пользователя, и программы. В едите пользователь будет вводить слова, а кнопкой будет отправлять их на обработку программе. Все просто.


Свойство Caption у Button измени на «Ввод» или что-то в этом роде. У Edit’a text просто сделай пустым. Но лучше напиши там «привет». Потом скажу зачем. Можешь еще у Memo в свойстве Lines написать приветствие или что пожелаешь сам. Теперь выдели саму форму – Form1. Ее свойство Caption измени с Form1 на «Супер-пупер прога Васи Финтифлюшкина». Хотя, может тебя и не так зовут :).

С дизайном разобрались. Пора кодить. Дважды кликни по кнопке – откроется редактор кода. Теперь там пишем:

if edit1.Text='привет' then
begin
memo1.Lines.Add('Пользователь: '+ edit1.Text);
memo1.Lines.Add('Компьютер: '+'привет, привет!');
end;

Давай разбираться. Первая строчка – условие. Идет проверка – если свойство text компонента edit1 равно «привет», тогда начинаем действия. Соответственно, если написанный текст – это не «привет», то ничего происходить не будет.

Допустим, условие прошло. Начинается небольшая процедура – begin означает начало. Третья строчка – в компонент memo1 в свойство Lines добавляется новая строка. В скобках после memo1.lines.add то, что будет добавляться. В апострофах (‘’) текст, который будет выводится. Там написано – ‘Пользователь: ’ Это значит, что новая строка будет начинаться со слова «Пользователь: ». Далее идет «+edit1.Text); Как вы, наверное, заметили, текст идет уже без апострофов. Это означает, что выводится будет не текст, а значение свойства указанного там. В нашем случае будет выводиться то, что записано в свойстве text компонента edit1. Плюсик означает, что к тексту будет «прибавляться» еще текст.
Теперь разберемся, что мы вообще только что сделали в третьей строке. А тут все просто – в memo1 выводится строка следующего содержания «Пользователь: привет». То есть как в чатах – сначала кто сказал, а потом – что сказал. Чтобы не было путаницы.
Идем далее. Четвертая строчка. Похоже на третью, но это уже ответ компьютера. Здесь добавляется строчка, но текст берется не из другого компонента, а пишется сразу. То есть на экран появится «Компьютер: привет, привет!». Такая вот беседа.

Командой end закрываем нашу маленькую процедуру. Да, чтобы не было путаницы, здесь полный код процедуры нажатия кнопки TButton с моими комметариями:

procedure TForm1.Button1Click(Sender: TObject);
begin
//начало процедуры
if edit1.Text='привет' then
//проверка, условие иными словами
begin
// начало подпроцедуры
memo1.Lines.Add('Пользователь: '+ edit1.Text);
// пишем в мемо фразу пользователя
memo1.Lines.Add('Компьютер: '+'привет, привет!');
// пишем в мемо фразу компа
end;
// конец подпроцедуры
end;
// конец процедуры

Конечно, теперь программа умеет отвечать только на «привет». Да и то, если напишешь с большой буквы, то не ответит. Поэтому на каждую фразу нужно будет заводить по отдельному условию в процедуру Buttun.Click. Все будут выглядеть как первая, только будет меняться фраза пользователя и ответ программы. К примеру:

if edit1.Text='как дела' then
begin
memo1.Lines.Add('Пользователь: '+ edit1.Text);
memo1.Lines.Add('Компьютер: '+'да потихоньку');
end;

if edit1.Text='как тебя зовут' then
begin
memo1.Lines.Add('Пользователь: '+ edit1.Text);
memo1.Lines.Add('Компьютер: '+'меня.. мм… Патефон Иваныч!');
end;

и так далее. Условий можно ставить сколько угодно. Получается, буквально 10-15 часов кодинга, и с твоей программой можно поболтать по-человечески! :) Шучу, не сиди за компом много. Глаза испортишь. Ну все, бывай!


<<< назад

freetonik (tonik@mail.kz )

 



@ library.by