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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2011, 21:50   #1
Katexxxsa
Новичок
Джуниор
 
Регистрация: 03.10.2011
Сообщений: 1
По умолчанию Ошибка: "Access violation at address 0045E503 in module 'Project1.exe'. Read of address 00316777.

Помогите пожалуйста, возникла Ошибка: "Access violation at address 0045E503 in module 'Project1.exe'. Read of address 00316777.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
f:TextFile;
A: array of array of Real;
B,C,Z: array of Real;
I,Izvezd,J,Jzvezd,N,M,Priznak:Integ er;
max,min:Real;
begin
If OpenDialog1.Execute then
Begin
AssignFile(f,OpenDialog1.FileName);
Reset(f);
Read(F,N);
Read(F,M);
SetLength(C,N+1);
SetLength(Z,N+M+1);
SetLength(B,M+1);
SetLength(A,N+1,M+1);
Readln(F);
for I:=1 to N do
Read(F,C[I]);
Readln(F);
for I:=1 to M do
Read(F,B[I]);
Readln(F);
for I:=1 to N do
begin
for J:=1 to M do
Read(F,A[I,J]);
Readln(F);
end;
end;
For J:=1 to N do
Z[I]:=-C[I];
Priznak:=0;
for J:=1 to N+M do
if Z[J]<0 then
Priznak:=1;
while Priznak=1 do
begin
max:=-10E10;
for J:=1 to N+M do
if (Z[J]<0) and ((abs(Z[J]))>max) then
begin
max:=abs(Z[J]);
Jzvezd:=J
end;
min:=10E10;
for I:=1 to M do
if (A[I,Jzvezd]>0) and ((B[I]/A[I,Jzvezd])<min) then
begin
min:=B[I]/A[I,Jzvezd];
Izvezd:=I
end;
for I:=1 to M do
if I<>Izvezd then
for J:=1 to N+M do
begin
A[I,J]:=A[I,J]-A[Izvezd,J]*A[I,Jzvezd]/A[Izvezd,Jzvezd];
B[I]:=B[I]-B[Izvezd]*A[I,Jzvezd]/A[Izvezd,Jzvezd];
Z[J]:=Z[J]-Z[Jzvezd]*A[I,Jzvezd]/A[Izvezd,Jzvezd];
end;
Z[0]:=Z[0]-B[Izvezd]*Z[Jzvezd]/A[Izvezd,Jzvezd];
for J:=1 to N+M do
A[Izvezd,J]:=A[Izvezd,J]/A[Izvezd,Jzvezd];
for J:=1 to N+M do
if Z[J]<0 then
Priznak:=1
else
Priznak:=0;
end;

StringGrid1.Visible:=True;
StringGrid1.Cells[0,0]:='Fц=';
StringGrid1.Cells[0,m+2]:='Z строка';
StringGrid1.Cells[0,1]:='c б';
StringGrid1.Cells[1,1]:='x б';
StringGrid1.Cells[2,1]:='b[i]';
for I:=1 to M do
Begin
StringGrid1.Cells[3,I]:=floattostr(B[I]);
End;
for i:=1 to m do
for J:=1 to N do
Begin
StringGrid1.Cells[2,3]:=floattostr(A[I,J]);
End;
End;
end.
Katexxxsa вне форума Ответить с цитированием
Старый 03.10.2011, 23:16   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

1. Project/Options/Compiler - включить Range Check Error.
2. Project/Build project.
3. Run/Run.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation at address 004733C4 in module 'loginin.exe'. Read of address 00000048' pavellyba Общие вопросы Delphi 2 18.08.2011 10:32
Ошибка "Access violation at address 004043A8 in module 'Project1.exe'. Read of address 00FF5A53." ms.Karishka Общие вопросы Delphi 6 14.04.2011 22:18
Access violation at address 00447E73 in modul Project.exe. Read of address 00000057. ArtGrek Общие вопросы Delphi 40 12.03.2011 22:03
Access violation at address 00478D0E in module 'Project1.exe'. Write of address 00000000 fondreykus-1 Общие вопросы Delphi 5 27.01.2010 14:25
Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000. Fen1x Общие вопросы Delphi 8 13.10.2007 20:13