为啥我的 pascal 程序以错误 207 退出
Posted
技术标签:
【中文标题】为啥我的 pascal 程序以错误 207 退出【英文标题】:Why my pascal program exited with Error 207为什么我的 pascal 程序以错误 207 退出 【发布时间】:2021-06-12 17:30:17 【问题描述】:我正在尝试编写一个程序来找到这样的矩阵的行列式:
program determinan;
uses crt;
type
arr=array of array of real;
var
mat:arr;
uk:byte;
procedure ukuran(var x:arr;var n:byte);
begin
write('Masukkan ukuran matriks : ');readln(n);
setlength(x,n+1,n+1);
end;
procedure masuk(var x:arr;n:byte);
var
i,j:byte;
begin
writeln('Masukkan elemen matriks : ');
for i:= 1 to n do
for j:= 1 to n do
begin
write('E(',i,',',j,'):');
read(x[i,j]);
end;
end;
procedure tulis(x:arr;n:byte;nama:string);
var
i,j:byte;
begin
writeln('Matriks ',nama,' : ');
for i:= 1 to n do
begin
for j:=1 to n do
write(x[i,j]:0:0,' ');
writeln;
end;
end;
procedure segitiga(var x:arr;n:byte);
var
i,j,k:byte;
nano :real;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
begin
nano:=x[j,i]/x[i,i];
for k:=i to n do x[j,k]:=x[j,k]-nano*x[i,k];
end;
end;
function determinan(x:arr;n:byte):real;
var
i:byte;
begin
determinan:=1;
for i:=1 to n do
determinan:=determinan*x[i,i];
end;
begin
clrscr;
writeln('-----------------------------');
writeln('Program Menghitung Determinan');
writeln('-----------------------------');
ukuran(mat,uk);
masuk(mat,uk);writeln;
tulis(mat,uk,'asal');writeln;
segitiga(mat,uk);
tulis(mat,uk,'segitiga atas');writeln;
writeln('Determinan : ',determinan(mat,uk):0:0);
readkey;
end.
但是,如果我输入带有元素 (1,1,1;1,1,1;1,1,1) 的 3x3 矩阵,它将退出并出现错误 207。如果我尝试输入矩阵,也会发生这种情况相同的列元素。但是,它没有发生在 2x2 矩阵中。请告诉我这种行为的原因是什么,因为我无法资助它
【问题讨论】:
使用调试器并跟踪错误点。 如果你用FPC then your runtime error #207 means "invalid floating point operation"编译它。阅读文档是必须的。 另外,如果您希望我们为您提供帮助,那么让我们尽可能轻松地帮助您当然符合您的最大利益。这包括将“ukuran”、“masuk”、“tulis”、“segitiga”等词翻译成英文!for i:= 1 to n...
- 但是你使用动态数组,它们是从零开始的
请不要标记垃圾邮件。您显然不想同时在标准 Pascal、Delphi 和 Free Pascal 下编译和运行此代码。仅添加实际应用于您的帖子的标签。使用误导性标签既浪费您的时间,也浪费我们的时间。删除那些不适用于您的帖子的内容。
【参考方案1】:
这一行: nano:=x[j,i]/x[i,i]; x[i,i] 可能等于 0,在帕斯卡中如果你将一个数字除以 0 ,它将返回错误 207 您的代码应该是这样的: if (x[i,i] 0) 然后 nano:=x[j,i]/x[i,i];
【讨论】:
以上是关于为啥我的 pascal 程序以错误 207 退出的主要内容,如果未能解决你的问题,请参考以下文章
用vs2019编写c语言程序,明显语法错误为啥不回报错,没有加return 0;