Форум по 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, впредь задавая вопрос постарайтесть более подробно описать задачу. "Скомпилировть код" - это не вопрос, вопрос в том что должен "делать" этот код.

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

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #7  
Старый 24.11.2012, 14:20
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Aristarh Dark
sariman, спасибо за настойчивость, это реально круто - не полениться разобрать и выровнять такой код. Наверное хотел понравиться девушке. Чтож вполне здравое желание.
Вставляешь в дельфи и жмешь Ctrl + D и она сама тебе форматирует в удобочитабельный вид
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #8  
Старый 24.11.2012, 22:03
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Попробовал как-то, только один раз, перематерился и больше не пользуюсь.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 24.11.2012, 23:55
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

M.A.D.M.A.N. я не Вы, выравнивал сам, так что не пи**те лишнего (сорри за мат, просто взбесил).
Ответить с цитированием
  #10  
Старый 25.11.2012, 11:16
Аватар для ~TB~
~TB~ ~TB~ вне форума
Начинающий
 
Регистрация: 17.02.2006
Адрес: Казахстан
Сообщения: 172
Версия Delphi: XE
Репутация: 1500
По умолчанию

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  
Старый 25.11.2012, 11:40
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ты меня тоже бесишь, но я же не не матькаюсь в твой адрес.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 25.11.2012 в 13:14.
Ответить с цитированием
  #12  
Старый 25.11.2012, 13:34
Аватар для sariman
sariman sariman вне форума
Активный
 
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
По умолчанию

M.A.D.M.A.N. Ок
Ответить с цитированием
  #13  
Старый 25.11.2012, 17:03
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Ты меня тоже бесишь, но я же не не матькаюсь в твой адрес.
в предыдущей версии поста был же, или уже не считается?
Ответить с цитированием
  #14  
Старый 25.11.2012, 17:46
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Кончаем оффтопить.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #15  
Старый 25.11.2012, 21:19
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ~TB~
...Не представляю как нужно писать, чтобы Ctrl+D заставляло матерится.
Просто со временм вырабатываются собственные стереотипы форматирования и после Ctrl+D приходится "перегонять" под себя. Зачастую это даже больше, чем требовалось первоначально.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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