Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 13:56   #1
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию Запуталась в ошибках

Добрый день! Пишу программу, но запуталась в огромном количестве однотипных ошибок.
Мне необходимо написать программу для вычисления размера сечения резца державки. Данные программа должна считывать из текстового файла.
Код объекта:
Код:
unit cutter;


interface

uses math;

Type TP=procedure of object;
Tcutter=CLASS

Power:integer;        
S:integer;            
l:integer;            
t: integer;         
B: integer;          
H: integer;           
OnOff:boolean;     
p:TP;

Constructor Create(PP:TP);
Destructor Free;
procedure PowerCutting(Cp:integer; V,x1,y1,n:integer; var Pz:extended);         
procedure SpeedCutting(Cv:integer; x2,y2,m:integer; T1:byte; var V:extended);   
procedure Comparison(g:integer; Pz:integer; var OnOff:boolean);             

end;

implementation

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;

//*************

CONSTRUCTOR TCutter.Create(PP:TP);
begin
  INHERITED Create;
  p:=pp;
end;

//*************

Destructor TCutter.Free;
 begin

 end;

//*************

procedure TCutter.PowerCutting;
begin
  Pz:=Cp*(math.power(t,x1))*(math.power(S,y1))*(math.power(V,n));
  p;
end;

//*************

procedure TCutter.SpeedCutting;
begin
  V:=Cv/((math.power(t,x2)*(math.power(S,y2))*(math.power(T1,m))));
end;

//*************

procedure TCutter.Comparison;
begin
  If B*sqr(H)>=((6*Pz*l)/g) then
  OnOff:=true
  else
  OnOff:=false
end;

end.
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 13:56   #2
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

Код программы:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cutter, StdCtrls, ExtCtrls, XPMan;

type
  TForm1 = class(TForm)
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    LabeledEdit5: TLabeledEdit;
    RadioGroup1: TRadioGroup;
    Image1: TImage;
    Button1: TButton;
    XPManifest1: TXPManifest;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    procedure Show;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Const Fnam = '_Òåñò_.txt';
var
  Form1: TForm1;
  Cut: TCutter;
  OnOff: boolean;
  j:byte;
  V, Pz:real;
  FAl :TStrings; 
  It :longint;   
  t:ARRAY OF ARRAY OF integer;
  S:ARRAY OF ARRAY OF integer;
  l:ARRAY OF ARRAY OF integer;
  T1:ARRAY OF ARRAY OF integer;  
  g:ARRAY OF ARRAY OF integer;   
  Cv:ARRAY OF ARRAY OF integer;
  Cp:ARRAY OF ARRAY OF integer;

  x1:ARRAY OF ARRAY OF integer;
  y1:ARRAY OF ARRAY OF integer;
  n:ARRAY OF ARRAY OF integer;
  x2:ARRAY OF ARRAY OF integer;
  y2:ARRAY OF ARRAY OF integer;
  m:ARRAY OF ARRAY OF integer;

 const  B:array[1..9] of byte=(10,12,12,16,16,20,20,25,25);
 const  H:array[1..9] of byte=(16,16,20,20,25,25,32,32,40);


implementation

{$R *.dfm}

procedure TForm1.Show;
begin
  LabeledEdit1.Text:=floattostr(Cut.t) + ',ìì';
  LabeledEdit2.Text:=floattostr(Cut.S) + ',ìì/îá';
  LabeledEdit3.Text:=floattostr(Cut.l) + ',ìì';
  Application.ProcessMessages;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  It := 0;
  FAl := TStringList.Create; 
end;


procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
  0: j:=1;
  1: j:=2;
  2: j:=3;
end;
 with Image1.Canvas do
 begin
   Brush.Color:=clWhite;
   Brush.Style:=bsSolid;
   FillRect(Image1.ClientRect);
   Application.ProcessMessages;
 end;
 Cut:=TCutter.Create(show);
  Cut.t:= 1;
  Cut.t:=t[j];
  Cut.S:=S[j];
  Cut.l:=l[j];
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
begin
if (RadioGroup1.ItemIndex=-1) then
begin
messageBox(Handle,'Выберите режим','Выход', mb_ok or mb_iconquestion)
end
else if (RadioGroup1.ItemIndex=0) or (RadioGroup1.ItemIndex=1) or
(RadioGroup1.ItemIndex=2) then
begin
  Cut.SpeedCutting(Cv[j],x2[j],y2[i],m[j],T1[j],V);
  Cut.PowerCutting(Cp[j],V,x1[j],y1[j],n[j],Pz);
  LabeledEdit4.text:=floattostr(Pz) + ',кгс';
for j:=1 to 9 do
begin
Cut.B:=B[j];
Cut.H:=H[j];
Cut.Comparison(g[j],Pz,OnOff);
if OnOff=false then
 begin
 LabeledEdit5.text:='Нет подходящего резца';
 end
 else
 if (B[i]*sqr(H[i])-((6*Pz*Cut.l)/g[i]))<(B[i+1]*sqr(H[i+1])-((6*Pz*Cut.l)/g[i])) then
 begin
 LabeledEdit5.text:=inttostr(Cut.B)+'x'+inttostr(Cut.H);
with Image1.Canvas do
 begin
   Brush.Color:=clWhite;
   Brush.Style:=bsBDiagonal;
   Pen.Color:=clGray;
   Pen.Style:=psSolid;
   Pen.Width:=5;
   Rectangle(trunc(Image1.Width DIV 2 - (Cut.B div 2)*3.8), trunc(Image1.Height DIV 2 - (Cut.H div 2)*3.8),
   trunc(Image1.Width DIV 2 + (Cut.B div 2)*3.8), trunc(Image1.Height DIV 2 + (Cut.H div 2)*3.8));
   Application.ProcessMessages;
 end;
 exit;
 end;
 end;
 end;
end;

procedure Tform1.FormDestroy(Sender: TObject);
begin
 Cut.Free;
end;


procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
 FAl := TStringList.Create; 
 FAl.Clear;
 FAl.LoadFromFile(FNam);
 It := 0;
 Button1.Enabled := True;
 Button2.Enabled := False;
 if FAl.Strings[i]='{' then
 begin
   t[j]:=StrToint(Fal.Strings[i+1]);
   S[j]:=StrToint(Fal.Strings[i+2]);
   T1[j]:=StrToint(Fal.Strings[i+3]);
   l[j]:=StrToint(Fal.Strings[i+4]);
   g[j]:=StrToint(Fal.Strings[i+5]);
   Cp[j]:=StrToint(Fal.Strings[i+6]);
   x1[j]:=StrToint(Fal.Strings[i+7]);
   y1[j]:=StrToint(Fal.Strings[i+8]);
   n[j]:=StrToint(Fal.Strings[i+9]);
   Cv[j]:=StrToint(Fal.Strings[i+10]);
   x2[j]:=StrToint(Fal.Strings[i+11]);
   y2[j]:=StrToint(Fal.Strings[i+12]);
   m[j]:=StrToint(Fal.Strings[i+13]);
   i:=i+1;
   j:=j+1;
 end
 else
 IF FAl.Strings[i]='}'  then
 i:=i+1;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 FAl.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
 f:TextFile;
 FileDir:String;
begin
 FileDir:='file.txt';
AssignFile(f,FileDir);
if not FileExists(FileDir) then
 begin
  Rewrite(f);
  CloseFile(f);
 end;
Append(f);
Writeln(f,LabeledEdit1.Text);
Writeln(f,LabeledEdit2.Text);
Writeln(f,LabeledEdit3.Text);
Writeln(f,LabeledEdit4.Text);
Writeln(f,LabeledEdit5.Text);
Flush(f);
CloseFile(f);
end;


end.
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 13:57   #3
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

А вот все мои однотипные ошибки:
Цитата:
[Error] Unit1.pas(101): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(102): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(103): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(116): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(116): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(116): Incompatible types: 'Byte' and 'dynamic array'
[Error] Unit1.pas(117): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(117): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(123): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(129): Operator not applicable to this operand type
[Error] Unit1.pas(129): Operator not applicable to this operand type
[Error] Unit1.pas(166): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(167): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(168): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(169): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(170): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(171): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(172): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(173): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(174): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(175): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(176): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(177): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(178): Incompatible types: 'Integer' and 'dynamic array'
[Error] Unit1.pas(188): Statement expected but 'PROCEDURE' found
Знаю, что для динамического массива необходимо написать SetLength, но не знаю где. Совсем что то запуталась. Помогите, пожалуйста. Очень вас прошу!
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 15:30   #4
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

Ну не ужели никто не может помочь? Я вас очень прошу!!!
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 15:45   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Было бы лучше если бы вы указали к какой строке кода относ\тс ваши ошибки. Хотя бы первые в списке. Ну да ладно.

Код:
 S:ARRAY OF ARRAY OF integer;
  l:ARRAY OF ARRAY OF integer;
  T1:ARRAY OF ARRAY OF integer;  
  g:ARRAY OF ARRAY OF integer;   
  Cv:ARRAY OF ARRAY OF integer;
  Cp:ARRAY OF ARRAY OF integer;
  x1:ARRAY OF ARRAY OF integer;
  y1:ARRAY OF ARRAY OF integer;
  n:ARRAY OF ARRAY OF integer;
  x2:ARRAY OF ARRAY OF integer;
  y2:ARRAY OF ARRAY OF integer;
  m:ARRAY OF ARRAY OF integer;
переменные объявлены как двумернные массивы.
а пытаетесь работать как с одномерным.
Код:
  t[j]:=StrToint(Fal.Strings[i+1]);
   S[j]:=StrToint(Fal.Strings[i+2]);
   T1[j]:=StrToint(Fal.Strings[i+3]);
   l[j]:=StrToint(Fal.Strings[i+4]);
   g[j]:=StrToint(Fal.Strings[i+5]);
   Cp[j]:=StrToint(Fal.Strings[i+6]);
   x1[j]:=StrToint(Fal.Strings[i+7]);
   y1[j]:=StrToint(Fal.Strings[i+8]);
   n[j]:=StrToint(Fal.Strings[i+9]);
   Cv[j]:=StrToint(Fal.Strings[i+10]);
   x2[j]:=StrToint(Fal.Strings[i+11]);
   y2[j]:=StrToint(Fal.Strings[i+12]);
   m[j]:=StrToint(Fal.Strings[i+13]);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.12.2010, 16:07   #6
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

Массивы исправила))) Осталось только три ошибки
Цитата:
[Error] Unit1.pas(116): Types of actual and formal var parameters must be identical
[Error] Unit1.pas(117): Types of actual and formal var parameters must be identical
[Error] Unit1.pas(188): Statement expected but 'PROCEDURE' found
Первая относится к строке
Код:
Cut.SpeedCutting(Cv[j],x2[j],y2[i],m[j],T1[j],V);
Вторая к
Код:
 Cut.PowerCutting(Cp[j],V,x1[j],y1[j],n[j],Pz);
И третья
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 17:06   #7
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

Я исправила первые 2 ошибки! Помогите исправить последнюю!!! ну пожалуйста!!!! Очень-очень-очень надо!!!
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Старый 12.12.2010, 17:07   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

перед
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Код:
end;
добавьте)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 12.12.2010, 17:39   #9
Lisёноk
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 75
По умолчанию

Ой :-[ Спасибо большое)))
Я самый порочный ангел и самый безгрешный демон...
Lisёноk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуталась во множествах Asira Помощь студентам 0 22.12.2009 00:43
Перехват сообщений об ошибках Garacio_cain Общие вопросы Delphi 0 18.09.2009 15:08
Отключение сообщений о ошибках TyoshA Общие вопросы Delphi 6 10.07.2009 15:43
запуталась с задачей Екатерина А. Паскаль, Turbo Pascal, PascalABC.NET 7 12.12.2008 21:23
Всплывающие предупреждения об ошибках valerij Microsoft Office Excel 2 25.10.2007 00:32