![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток. Пишу я программу для решения слау над полем простых чисел (но это не суть).
Проблема моя связана с тем что при заполнении последней строки массива программа крашится и выдает: Exception EAccessViolation in module Gauss.exe at 0000A340. Access violation at address 0040A340 in module 'Gauss.exe'. Write of address 000 00000. В чем дело никак не пойму. Код программы. Код:
program Gauss; {$APPTYPE CONSOLE} uses SysUtils, math, windows; var n,i,j,m,p:integer; b:array of integer; x:array of integer; a:array of array of integer; function Zetta(z: integer):integer; begin If z>=p then Zetta:=z mod p; If z<0 then Zetta:=p-(abs(z) mod p); end; begin setconsoleoutputcp(1251); setconsolecp(1251); write('Введите чиcло p: ');readln(p); write('Введите число уравнений: ');readln(m); m:=m-1; write('Введите число неизвестных: ');readln(n); n:=n-1; SetLength(a,m,n); SetLength(b,m); SetLength(x,n); writeln; writeln('A*X = B'); writeln; for i := 0 to m do begin for j := 0 to n do begin write('A[',i+1,',',j+1,'] = '); readln(a[i,j]); a[i,j]:=Zetta(a[i,j]); end; write('B[',i+1,'] = '); readln(b[i]); b[i]:=Zetta(b[i]); end; readln end. |