![]() |
|
|
Регистрация | << Правила форума >> | 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, впредь задавая вопрос постарайтесть более подробно описать задачу. "Скомпилировть код" - это не вопрос, вопрос в том что должен "делать" этот код. Что-то я раздобрел, надо было-бы банить ТС и удалять тему... ![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |