![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите скомпилировать код.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
StringGrid2: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
mas:array [1..1065]of byte;
mas2:array [1..1065]of integer;
massiv,massiv2:array [1..2,1..500] of byte;
massiv3,massiv4:array [1..2,1..500] of integer;
frequency:real;
k,i,j:integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
for i:=1 to 1065 do
mas2[i]:=0;
for i:=1 to 2 do
for j:=1 to 500 do
begin
massiv[i,j]:=0;
massiv2[i,j]:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var kol,num:integer;
Str,s,ss:string;
x,y,n:integer; t:boolean;
begin
k:=0;
//записываем цифры из текста в массив
for i:=0 to Memo1.Lines.Count-1 do
begin
Str:=Memo1.Lines[i];
j:=1;
while (j<=Length(Str)) do
begin
if ((Str[j]<>' ')and(Str[j]<>',')and(Str[j]<>'.')and(Str[j]<>'-')and(Str[j]<>':')) then
begin
inc(k);s:=Copy(Str,j,2);mas[k]:=StrToInt(s); j:=j+2;
end
else inc(j);
end;
end;
num:=k;
//подсчитываем сколько раз каждая цифра встречается в исходном тексте
for i:= 1 to k do
begin
x:=mas[i];
kol:=0;
for j:= 1 to k do
if (x=mas[j]) then inc(kol);
massiv[1,i]:=x;
massiv[2,i]:=kol;
end;
for i:=1 to k do
begin
x:= massiv[1,i];
y:=i;
j:=1;
while j<=k do
begin
if (massiv[1,j]=x)and(j<>i) then
begin
massiv[1,j]:=0;
massiv[2,j]:=0;
end;
inc(j);
end;
end;
kol:=0;
for i:=1 to k do
if (massiv[1,i]<>0)then
begin
inc(kol);
massiv2[1,kol]:=massiv[1,i];
massiv2[2,kol]:=massiv[2,i];
end;
StringGrid1.ColCount:=kol;
for i:=1 to k do begin
StringGrid1.Cells[i-1,0]:=IntToStr(massiv2[1,i]);
StringGrid1.Cells[i-1,1]:=IntToStr(massiv2[2,i]);
frequency:=massiv2[2,i]/num;
StringGrid1.Cells[i-1,2]:=FloatToStrF(frequency,fffixed,5,4);
end;
//подсчет биграмм
for i:=0 to Memo1.Lines.Count-1 do
begin
Str:=Memo1.Lines[i];
j:=1;
while (j<=Length(Str)) do
begin
if ((Str[j]<>' ')and(Str[j]<>',')and(Str[j]<>'.')and(Str[j]<>'-')and(Str[j]<>':')and(Str[j+1]<>' ')) then
begin
s:=Copy(Str,j,5);
for n:=1 to 5 do
if ((s[n]=' ')or(s[n]=',')or(s[n]=':')or(s[n]='-'))then delete(s,n,1);
if length(s)=4
then begin inc(k); mas2[k]:=StrToInt(s);end;
j:=j+2;
end
else inc(j);
end;
end;
StringGrid2.ColCount:=k;
num:=k;
for i:= 1 to k do
begin
x:=mas2[i];
kol:=0;
for j:= 1 to k do
if (x=mas2[j]) then inc(kol);
massiv3[1,i]:=x;
massiv3[2,i]:=kol;
end;
for i:=1 to k do
begin
x:= massiv3[1,i];
y:=i;
j:=1;
while j<=k do
begin
if (massiv3[1,j]=x)and(j<>i) then
begin
massiv3[1,j]:=0;
massiv3[2,j]:=0;
end;
inc(j);
end;
end;
kol:=0;
for i:=1 to k do
if (massiv3[1,i]<>0)then
begin
inc(kol);
massiv4[1,kol]:=massiv3[1,i];
massiv4[2,kol]:=massiv3[2,i];
end;
StringGrid2.ColCount:=kol;
for i:=1 to k do begin
StringGrid2.Cells[i-1,0]:=IntToStr(massiv4[1,i]);
StringGrid2.Cells[i-1,1]:=IntToStr(massiv4[2,i]);
frequency:=massiv4[2,i]/num;
StringGrid2.Cells[i-1,2]:=FloatToStrF(frequency,fffixed,5,4);
end;
end;
end.lmikle: Пользуемся тегами!!! С делфи никогда не имела дела. Попробовала скомпилировать - выдал ошибки. Нужен только .exe файл! ПОМОГИТЕ! Последний раз редактировалось lmikle, 23.11.2012 в 22:57. |
|
#2
|
||||
|
||||
|
Какие ошибки то? Ну вы даёте)
|
|
#3
|
|||
|
|||
|
я не писала код
это уже готовый Можете просто скомпилировать его у себя? |
|
#4
|
|||
|
|||
|
Цитата:
Нет, не можем. Еще .dfm файл для этого нужен. |
|
#5
|
||||
|
||||
|
У меня все компилируются, немного сделал читабельнее код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Memo1: TMemo;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
mas: array [1..1065] of Byte;
mas2: array [1..1065] of Integer;
massiv, massiv2: array [1..2,1..500] of Byte;
massiv3, massiv4: array [1..2,1..500] of Integer;
frequency: Real;
K, I, J: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
for I := 1 to 1065 do
mas2[i]:=0;
for I := 1 to 2 do
for J := 1 to 500 do
begin
massiv[I,J] := 0;
massiv2[I,J] := 0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Col, Num, x,y,n: Integer;
Str, s, ss: string;
T: Boolean;
begin
K := 0;
// Записываем цифры из текста в массив
for I := 0 to Memo1.Lines.Count - 1 do
begin
Str:=Memo1.Lines[i];
J := 1;
while (j<=Length(Str)) do
begin
if ((Str[J] <> ' ') and (Str[J] <> ',') and (Str[J] <> '.') and
(Str[J] <> '-')and (Str[J] <> ':')) then
begin
Inc(K);
S := Copy(Str, J, 2);
Mas[K] := StrToInt(s);
J := J + 2;
end
else
Inc(J);
end;
end;
Num := K;
// Подсчитываем сколько раз каждая цифра встречается в исходном тексте
for I := 1 to K do
begin
X := mas[i];
Col := 0;
for J := 1 to K do
if (X = mas[J]) then
Inc(Col);
massiv[1, I] := X;
massiv[2, I] := Col;
end;
for I := 1 to K do
begin
X := massiv[1, I];
Y := I;
J := 1;
while J <= K do
begin
if (massiv[1,j] = X) and (J <> I) then
begin
massiv[1, J] := 0;
massiv[2, J] := 0;
end;
Inc(J)
end
end;
Col := 0;
for I := 1 to K do
if (massiv[1, I] <> 0)then
begin
Inc(Col);
massiv2[1, Col] := massiv[1, I];
massiv2[2, Col] := massiv[2, I]
end;
StringGrid1.ColCount := Col;
for I := 1 to K do
begin
StringGrid1.Cells[I-1, 0] := IntToStr(massiv2[1,I]);
StringGrid1.Cells[I-1, 1] := IntToStr(massiv2[2,I]);
Frequency := massiv2[2,I] / Num;
StringGrid1.Cells[I-1, 2] := FloatToStrF(Frequency, fffixed, 5, 4);
end;
// Подсчет биграмм
for I := 0 to Memo1.Lines.Count - 1 do
begin
Str := Memo1.Lines[i];
J := 1;
while (J <= Length(Str)) do
begin
if ((Str[J] <> ' ') and (Str[J] <> ',') and (Str[J] <> '.') and
(Str[J] <> '-') and (Str[J] <> ':') and (Str[J + 1] <> ' ')) then
begin
s := Copy(Str, J, 5);
for N := 1 to 5 do
if ((s[N] = ' ') or (s[N] = ',') or (s[N] = ':') or (s[N] = '-'))then
Delete(s, N, 1);
if Length(s) = 4 then
begin
Inc(K);
mas2[K] := StrToInt(s);
end;
J := J + 2;
end
else
Inc(J);
end;
end;
StringGrid2.ColCount := K;
Num := K;
for I := 1 to k do
begin
X := mas2[i];
Col := 0;
for J := 1 to k do
if (X = mas2[J]) then
Inc(Col);
massiv3[1, I] := X;
massiv3[2, I] := Col;
end;
for I := 1 to K do
begin
X := massiv3[1, I];
Y := I;
J := 1;
while J <= K do
begin
if (massiv3[1, J] = x) and (J <> I) then
begin
massiv3[1, J] := 0;
massiv3[2, J] := 0;
end;
Inc(J);
end;
end;
Col := 0;
for I := 1 to K do
if (massiv3[1, I] <> 0)then
begin
Inc(Col);
massiv4[1, Col] := massiv3[1, I];
massiv4[2, Col] := massiv3[2, I];
end;
StringGrid2.ColCount:=Col;
for I := 1 to K do
begin
StringGrid2.Cells[I-1, 0] := IntToStr(massiv4[1, I]);
StringGrid2.Cells[I-1, 1] := IntToStr(massiv4[2, I]);
Frequency := massiv4[2, I] / num;
StringGrid2.Cells[I-1, 2] := FloatToStrF(Frequency, fffixed, 5, 4);
end;
end;
end.Код:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я']) then
Key := #0
end; |
| Этот пользователь сказал Спасибо sariman за это полезное сообщение: | ||
Aristarh Dark (24.11.2012)
| ||
|
#6
|
||||
|
||||
|
sariman, спасибо за настойчивость, это реально круто - не полениться разобрать и выровнять такой код. Наверное хотел понравиться девушке. Чтож вполне здравое желание.
aniakaif, впредь задавая вопрос постарайтесть более подробно описать задачу. "Скомпилировть код" - это не вопрос, вопрос в том что должен "делать" этот код. Что-то я раздобрел, надо было-бы банить ТС и удалять тему... ![]() |