Скачиваний:
56
Добавлен:
11.02.2014
Размер:
59.39 Кб
Скачать

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

ListBox1: TListBox;

procedure Button1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: char);

procedure FormActivate(Sender: TObject);

procedure Label2Click(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

procedure ListBox1KeyPress(Sender: TObject; var Key: char);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.Label2Click(Sender: TObject);

begin

end;

procedure TForm1.ListBox1Click(Sender: TObject);

// собственно код программы

var min, max, len, i, nst : integer;

s, str, max_str, min_str : string;

begin

nst:=ListBox1.ItemIndex; // определение номера выбранной строки

s:=ListBox1.Items[nst]; // s присваивается выбранная строка

max := 0; // обнуляем переменную

min := length(s); // длина строки

len := 0; // обнуляем переменную

max_str := ''; // обнуляем переменную

min_str := ''; // обнуляем переменную

str := ''; // обнуляем переменную

for i:=1 to length(s) do // циклом проходимся по всей строке - от 1-го символа и до последнего

if s[i]<>' ' then begin // если символ не является пробелом, то:

inc(len); // увеличиваем длину слова на 1

str := str + s[i]; // присваеваем текущий символ строке, по одному символу будет собираться слово полностью

end else begin

if len>max then begin // если длина последнего найденного слова больше предыдущего (максимального)

max := len; // присваеваем длину этого слова

max_str := str; // а это само слово которое собирали по одному символу

end;

if len<min then begin // если длина последнего найденного слова меньше предыдущего (минимального)

min := len; // длина слова

min_str := str; // само слово

end;

len := 0; // обнуляем для того чтобы искать длину следующего слова

str := ''; // обнуляем чтоб записывать следующее найденное слово

end;

Label2.Caption:=('самое короткое слово: '+min_str);

Label3.Caption:=('самое длинное слово: '+max_str);

end;

procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: char);

begin

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

begin

if key=#13 then // если нажата клавиша Enter то

begin // строка из редактируемого текстового поля

ListBox1.Items.Add(Edit1.Text); // заносится в список выбора

Edit1.Text:=''; // очистка текстового поля

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

form1.close; // закрыть программу

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

Edit1.SetFocus; // передача фокуса ввода Edit1

end;

initialization

{$I unit1.lrs}

end.