![]() |
|
|
Регистрация | << Правила форума >> | 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, впредь задавая вопрос постарайтесть более подробно описать задачу. "Скомпилировть код" - это не вопрос, вопрос в том что должен "делать" этот код. Что-то я раздобрел, надо было-бы банить ТС и удалять тему... ![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#7
|
||||
|
||||
![]() Цитата:
![]() — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
![]() Попробовал как-то, только один раз, перематерился и больше не пользуюсь.
![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
||||
|
||||
![]() M.A.D.M.A.N. я не Вы, выравнивал сам, так что не пи**те лишнего (сорри за мат, просто взбесил).
|
#10
|
||||
|
||||
![]() sariman,
Вообще-то это была подсказка, как лучше и удобнее. angvelem, Не представляю как нужно писать, чтобы Ctrl+D заставляло матерится. Постоянно пользую. Давлю всякий раз после того как наберу пару строчек - здорово экономит время на редактировании, причем все выглядит миленько и по стандартам. Рекомендую попробовать еще. 00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 |
#11
|
||||
|
||||
![]() Ты меня тоже бесишь, но я же не не матькаюсь в твой адрес.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 25.11.2012 в 13:14. |
#12
|
||||
|
||||
![]() M.A.D.M.A.N. Ок
![]() |
#13
|
||||
|
||||
![]() Цитата:
|
#14
|
||||
|
||||
![]() Кончаем оффтопить.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#15
|
||||
|
||||
![]() Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |