Пример выполнения задания

Задание: написать программу подсчета числа слов в произвольной строке. В качестве разделителя может быть любое число пробелов. Для ввода строк и работы с ними использовать компонент типа ТСоmbоВох. Ввод строки заканчивать нажатием Enter. Для выхода из программы использовать кнопку Close.

Форма приложения приведена на рисунке 5.1.

Рисунок 5.1 – Форма приложения

Текст программы:

Unit LabRab_5;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TUnit_Lab5 = class(TForm)

ComboBox1: TComboBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

BitBtn1: TBitBtn;

Button1: TButton;

Procedure FormActivate(Sender: TObject);

Procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

Procedure ComboBox1Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

var

Unit_Lab5: TUnit_Lab5;

Implementation

{$R *.dfm}

// Обработка события активизации формы

Procedure TUnit_Lab5.FormActivate(Sender: TObject);

begin

ComboBox1.SetFocus; //Передача фокуса ComboBox1

end;

// Обработка события нажатия левой клавиши мыши

Procedure TUnit_Lab5.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

if Key =#13 then //Если нажата клавиша Enter то...

begin

// Строка из окна редактирования заносится в список выборa

ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text:= ''; //Очистка окна редактирования

end;

end;

Procedure TUnit_Lab5.ComboBox1Click(Sender: TObject);

var

St: string;

n, i, nst, ind: integer;

begin

n:= 0; //Содержит число слов выбранной строки

ind:= 0; //Содержит число слов

//Определение номера выбранной строки

nSt:= ComboBox1.ItemIndex;

//Занесение выбранной строки в переменную st

St:= ComboBox1.Items[nst];

//Просмотр всех символов строки st

for i:= 1 to Length(St) do

begin

Case ind of

0: if St[i] <>'' then

begin

//Если встретился символ после пробела

//число слов увеличивается на единицу

ind:= 1;

inc(n);

end;

// Если встретился пробел после символов

1: if St[i] ='' then ind:= 0;

end; //Case

Label3.Caption:= IntToStr(n); //Вывод числа слов в Label3

end;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: