Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.11.2012, 22:39
aniakaif aniakaif вне форума
Прохожий
 
Регистрация: 23.11.2012
Сообщения: 2
Репутация: 10
По умолчанию Нужен просто .exe файл

Помогите скомпилировать код.
Код:
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  
Старый 23.11.2012, 22:47
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

Какие ошибки то? Ну вы даёте)
Ответить с цитированием
  #3  
Старый 23.11.2012, 22:51
aniakaif aniakaif вне форума
Прохожий
 
Регистрация: 23.11.2012
Сообщения: 2
Репутация: 10
По умолчанию

я не писала код
это уже готовый
Можете просто скомпилировать его у себя?
Ответить с цитированием
  #4  
Старый 23.11.2012, 22:58
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от aniakaif
я не писала код
это уже готовый
Можете просто скомпилировать его у себя?

Нет, не можем. Еще .dfm файл для этого нужен.
Ответить с цитированием
  #5  
Старый 23.11.2012, 23:36
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

У меня все компилируются, немного сделал читабельнее код:
Код:
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.
Можете еще добавить на проверку ввода в Memo:
Код:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in ['A'..'Z', 'a'..'z', 'А'..'Я', 'а'..'я']) then
    Key := #0
end;
Прикрепил скомпилированную программу в архиве (в .exe).
Вложения
Тип файла: zip Programma.zip (227.3 Кбайт, 4 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо sariman за это полезное сообщение:
Aristarh Dark (24.11.2012)
  #6  
Старый 24.11.2012, 00:54
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

sariman, спасибо за настойчивость, это реально круто - не полениться разобрать и выровнять такой код. Наверное хотел понравиться девушке. Чтож вполне здравое желание.

aniakaif, впредь задавая вопрос постарайтесть более подробно описать задачу. "Скомпилировть код" - это не вопрос, вопрос в том что должен "делать" этот код.

Что-то я раздобрел, надо было-бы банить ТС и удалять тему...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025