- •Министерство образования и науки российской федерации
- •Программирование в delphi c использованием строкового типа данных
- •305040, Курск, ул. 50 лет Октября, 94 Содержание
- •I-го слова в строке символов.
- •Interface
- •Implementation
- •Процедуры и функции для работы со строками
- •Правила использования параметров функции FloatToStrF
I-го слова в строке символов.
Входные параметры:
sst очередное слово;
s1 входная строка символов;
i номер слова в строке;
dl количество слов в строке;
a двумерный массив, содержащий информацию о структуре строки;
Выходные параметры:
m количество повторений очередного (i-го) слова в строке символов.
Схема алгоритма проверки повторения очередного слова строки среди слов, расположенных перед ним (Prov1) приведена на рис. 5.

Рис.5. Схема алгоритма Prov1 проверки повторения очередного слова строки среди слов, расположенных перед ним.
Входные параметры:
sst очередной слово;
s1 входная строка символов;
n количество слов в строке, расположенных перед проверяемым;
a двумерный массив, содержащий информацию о структуре строки;
Выходные параметры:
f логическая переменная признак повторения очередного слова (при f = false).
Дополнительные переменные:
j номер слова в строке при проверке;
ss j-ое слово в сроке при проверке.
Схема алгоритма проверки повторения очередного слова строки среди слов, расположенных после него (Prov2) приведена на рис. 6.

Рис. 6. Схема алгоритма Prov2 проверки повторения очередного слова строки среди слов, расположенных после него.
Входныепараметры:
sst очередное проверяемое слово;
s1 входная строка символов;
i1 номер слова, расположенного после проверяемого;
i2 количество слов в строке;
a двумерный массив, содержащий информацию о структуре строки;
Выходные параметры:
m1 количество повторений очередного слова в строке символов.
Дополнительные переменные:
j номер слова в строке при проверке;
ss j-тое слово в сроке при проверке.
Текст программы
program Project_str;
uses
Forms,
Unit_str in 'Unit_str.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
unit Unit_str;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit; // поле для ввода исходной строки
Label2: TLabel;
Edit2: TEdit; // поле для ввода сформированной строки
Button1: TButton; // кнопка выполнения
Button2: TButton; // кнопка очистки
Memo1: TMemo;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.dfm}
type Tst r =array[1..15,1..2] of integer;
var s1,s2:string;
procedure Strukt(s1:string;l:integer; var a:tstr; var k:integer);
var c,i:integer;
begin
k:=0;
c:=0;
for i:=1 to l do
if (s1[i]=' ') or (s1[i]=',')
then
begin
if c>0 then
begin
k:=k+1;
a[k,1]:=i-c;
a[k,2]:=c;
c:=0;
end;
end
else c:=c+1;
end;
function Prov1(sst,s1:string;n:integer;a:tstr):boolean;
var j:integer;
ss:string;
begin
Result:= true;
for j:=1 to n do
begin
ss:=copy(s1,a[j,1],a[j,2]);
if ss=sst then
result:=false;
end;
end;
function Prov2 (sst,s1:string;i1,i2:integer;a:tstr):integer;
var j,m1:integer;
ss:string;
begin
m1:=1;
for j:=i1 to i2 do
begin
ss:=copy(s1,a[j,1],a[j,2]);
if ss=sst then
m1:=m1+1;
end;
result:=m1;
end;
function Schet (sst,s1:string;i:integer;a:tstr;k:integer):integer;
var f1:boolean;
m:integer;
begin
m:=1;
f1:=prov1(sst,s1,i-1,a);
if f1 then
m:=prov2(sst,s1,i+1,k,a);
Result:=m;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:tstr;
ss1,sst:string;
m,i,l,dl:integer;
begin
s1:=edit1.Text;
s1:=s1+' ';
l:=length(S1);
if l>1 then
begin
struсt(s1,l,a,dl);
if dl>1 then
begin
ss1:=copy(s1,a[1,1],a[1,2]);
s2:='';
for i:=2 to dl do
begin
sst:=copy(s1,a[i,1],a[i,2]);
if ss1<>sst then
begin
m:=Schet(sst,s1,i,a,dl);
if m>2 then
s2:=s2+sst+' ';
end;
end;
if length(s2)>0 then
edit2.Text:=s2
else ShowMessage('Выходная строка пустая');
end
else ShowMessage('Слов нет');
end
else ShowMessage('Входная строка пустая');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit1.SetFocus;
end;
end.
Результаты работы программы




Порядок выполнения работы
Получить задание.
Разработать алгоритм и представить его в виде схемы.
Разработать интерфейс программы.
Написать программу.
Отладить программу.
Содержание отчёта
Титульный лист.
Задание.
Схема алгоритма.
Текст программы.
Результаты выполнения программы.
Приложение
