
лабораторная работа / лабораторные работы по LAZARUS / отчет
.docunit 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.