I’m trying to make a program to find the determinant of a matrix like this :
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.
But, if I input with 3×3 matrix with elements (1,1,1;1,1,1;1,1,1) it will be exit with error 207. It’s also happened if I try to input matrix with same colum element. But, it not happened in 2×2 matrix. Please, tell me what is the reason of such behavior because I can’t fund it
Заблокирован |
||||
1 |
||||
04.10.2014, 18:53. Показов 1265. Ответов 6 Метки ошибка 207, сопроцессор, стек (Все метки)
Итак ошибка 207. Я просмотрел на форуме целый
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
04.10.2014, 18:53 |
6 |
bormant Модератор 7534 / 4394 / 2785 Регистрация: 22.11.2013 Сообщений: 12,588 Записей в блоге: 1 |
||||
04.10.2014, 19:29 |
2 |
|||
hoch,
1 |
Puporev Почетный модератор 64288 / 47587 / 32739 Регистрация: 18.05.2008 Сообщений: 115,181 |
||||
04.10.2014, 19:37 |
3 |
|||
Вроде так.
В Турбо Паскале часто этот трюк приходится использовать.
1 |
Заблокирован |
|
04.10.2014, 19:45 [ТС] |
4 |
Bormant Добавлено через 6 минут
0 |
3030 / 1916 / 1649 Регистрация: 30.04.2011 Сообщений: 3,060 |
|
04.10.2014, 20:47 |
5 |
А как узнать включён у меня сопроцессор или нет? Для этого в редакторе Turbo Pascal нажмите комбинацию клавиш Ctrl + O, O. В редакторе появится список состояний директив. Если в списке присутствует N+ — значит включен, а если N- — значит выключен.
1 |
Модератор 7534 / 4394 / 2785 Регистрация: 22.11.2013 Сообщений: 12,588 Записей в блоге: 1 |
|
04.10.2014, 22:04 |
6 |
Если используется компилятор командной строки, обычно достаточно запустить его без параметров или с ключом -? или -h, чтобы узнать используемые умолчания.
1 |
Заблокирован |
|
05.10.2014, 08:40 [ТС] |
7 |
Ребята,
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
05.10.2014, 08:40 |
Помогаю со студенческими работами здесь Ошибка 207 при вычислении выражения Ошибку 207 при вычислении выражения Error 207 при вычислении выражения Ошибка при вычислении функции, деление на ноль. function Myfunc(a,eps:real):real; Ошибка 207 при возведении числа в степень Ошибка 207 при решении задачи с логарифмом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
Recommended Answers
Well the answer would be more evident if you debugged it.
You tell me what the values of each part of that line works out to be, so Z, ln(Z), etc.. you tell me which bit fails.. and what the values are.
Are you really using turbo pascal …
Jump to Post
All 4 Replies
LizR
171
Posting Virtuoso
14 Years Ago
Well the answer would be more evident if you debugged it.
You tell me what the values of each part of that line works out to be, so Z, ln(Z), etc.. you tell me which bit fails.. and what the values are.
Are you really using turbo pascal from the 80s? or do you mean the turbo delphi products?
14 Years Ago
Yes the compiler i used is Turbo Pascal unfortunately i checked if the CubeRoot & SquareRoot are computing correctly so i tested them turns out
Ex when input X = 4
The result:
SquareRoot := Sqrt(X); { Turn out correct 2.0000000000E+00 }
T1 := Trunc(X); { also correct 2 }
D1 := SquareRoot - T1; { is correct 0.0000000000E+00 }
{but with the cube is a different story }
CubeRoot := Exp( V * Ln(Z) ); { Turn out correct 1.5874010520E+00 }
T2 := Trunc(X); { also correct }
D2 := CubeRoot - T2; { is not correct 5.8740105200E-00 it should come out
{ 0.58740105200E+00 }
I also try to use the same program with Dev Pascal its seem to have the same problem with D1 it would seem that i cant calculate both of them in the same place
Edited
10 Years Ago
by happygeek because:
fixed formatting
LizR
171
Posting Virtuoso
14 Years Ago
Forgive my denseness (its past 11, and Im about to go to bed but..)
5.8740105200E-00 = 0.58740105200E+00
as 5.8740105200E surely is 0.587… just as 0.587E+00 is also 0.587….
14 Years Ago
I discovered that u have to seperate the two operation of square root and cube root and it worked and i changed the compiler thanks for the help
Reply to this topic
Be a part of the DaniWeb community
We’re a friendly, industry-focused community of developers, IT pros, digital marketers,
and technology enthusiasts meeting, networking, learning, and sharing knowledge.
Заблокирован |
||||
1 |
||||
04.10.2014, 18:53. Показов 1173. Ответов 6 Метки ошибка 207, сопроцессор, стек (Все метки)
Итак ошибка 207. Я просмотрел на форуме целый
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
04.10.2014, 18:53 |
6 |
bormant Модератор 7480 / 4352 / 2771 Регистрация: 22.11.2013 Сообщений: 12,478 Записей в блоге: 1 |
||||
04.10.2014, 19:29 |
2 |
|||
hoch,
1 |
Puporev Почетный модератор 64270 / 47569 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
04.10.2014, 19:37 |
3 |
|||
Вроде так.
В Турбо Паскале часто этот трюк приходится использовать. 1 |
Заблокирован |
|
04.10.2014, 19:45 [ТС] |
4 |
Bormant Добавлено через 6 минут 0 |
3028 / 1914 / 1649 Регистрация: 30.04.2011 Сообщений: 3,060 |
|
04.10.2014, 20:47 |
5 |
А как узнать включён у меня сопроцессор или нет? Для этого в редакторе Turbo Pascal нажмите комбинацию клавиш Ctrl + O, O. В редакторе появится список состояний директив. Если в списке присутствует N+ — значит включен, а если N- — значит выключен. 1 |
Модератор 7480 / 4352 / 2771 Регистрация: 22.11.2013 Сообщений: 12,478 Записей в блоге: 1 |
|
04.10.2014, 22:04 |
6 |
Если используется компилятор командной строки, обычно достаточно запустить его без параметров или с ключом -? или -h, чтобы узнать используемые умолчания. 1 |
Заблокирован |
|
05.10.2014, 08:40 [ТС] |
7 |
Ребята, 0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
05.10.2014, 08:40 |
Помогаю со студенческими работами здесь Ошибка 207 при вычислении выражения Ошибку 207 при вычислении выражения Error 207 при вычислении выражения Ошибка при вычислении функции, деление на ноль. function Myfunc(a,eps:real):real; Ошибка 207 при возведении числа в степень Ошибка 207 при решении задачи с логарифмом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
I’m trying to make a program to find the determinant of a matrix like this :
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.
But, if I input with 3×3 matrix with elements (1,1,1;1,1,1;1,1,1) it will be exit with error 207. It’s also happened if I try to input matrix with same colum element. But, it not happened in 2×2 matrix. Please, tell me what is the reason of such behavior because I can’t fund it
Recommended Answers
Well the answer would be more evident if you debugged it.
You tell me what the values of each part of that line works out to be, so Z, ln(Z), etc.. you tell me which bit fails.. and what the values are.
Are you really using turbo pascal …
Jump to Post
All 4 Replies
LizR
14 Years Ago
Well the answer would be more evident if you debugged it.
You tell me what the values of each part of that line works out to be, so Z, ln(Z), etc.. you tell me which bit fails.. and what the values are.
Are you really using turbo pascal from the 80s? or do you mean the turbo delphi products?
14 Years Ago
Yes the compiler i used is Turbo Pascal unfortunately i checked if the CubeRoot & SquareRoot are computing correctly so i tested them turns out
Ex when input X = 4
The result:
SquareRoot := Sqrt(X); { Turn out correct 2.0000000000E+00 }
T1 := Trunc(X); { also correct 2 }
D1 := SquareRoot - T1; { is correct 0.0000000000E+00 }
{but with the cube is a different story }
CubeRoot := Exp( V * Ln(Z) ); { Turn out correct 1.5874010520E+00 }
T2 := Trunc(X); { also correct }
D2 := CubeRoot - T2; { is not correct 5.8740105200E-00 it should come out
{ 0.58740105200E+00 }
I also try to use the same program with Dev Pascal its seem to have the same problem with D1 it would seem that i cant calculate both of them in the same place
Edited
9 Years Ago
by happygeek because:
fixed formatting
LizR
14 Years Ago
Forgive my denseness (its past 11, and Im about to go to bed but..)
5.8740105200E-00 = 0.58740105200E+00
as 5.8740105200E surely is 0.587… just as 0.587E+00 is also 0.587….
14 Years Ago
I discovered that u have to seperate the two operation of square root and cube root and it worked and i changed the compiler thanks for the help
Reply to this topic
Be a part of the DaniWeb community
We’re a friendly, industry-focused community of developers, IT pros, digital marketers,
and technology enthusiasts meeting, networking, learning, and sharing knowledge.
1 Out of memory (Выход за границы памяти). 2 Identifier expected (Не указан идентификатор). 3 Unknown identifier (Неизвестный идентификатор). 4 Duplicate identifier (Двойной идентификатор). 5 Syntax error (Синтаксическая ошибка). 6 Error in real constant (Ошибка в вещественной константе). 7 Error in integer constant (Ошибка в целой константе). 8 String constant exceeds line (Строковая константа превышает допустимые размеры). 9 Too many nested files (Слишком много вложенных файлов). 10 Unexpected end of file (He найден конец файла). 11 Line too long (Слишком длинная строка) 12 Type identifier expected (Здесь нужен идентификатор типа). 13 Too many open files (Слишком много открытых файлов). 14 Invalid file name (Неверное имя файла). 15 File not found (Файл не найден). 16 Disk full (Диск заполнен). 17 Invalid compiler directive (Неправильная директива компилятора). 18 Too many files (Слишком много файлов). 19 Undefined type in pointer definition (Неопределенный тип в объявлении указателя). 20 Variable identifier expected (Отсутствует идентификатор переменной). 21 Error in type (Ошибка в объявлении типа). 22 Structure too large (Слишком большая структура). 23 Set base type of range (Базовый тип множества нарушает границы). 24 File components may not be files (Компонентами файла не могут быть файлы) . 25 Invalid string length (Неверная длина строки). 26 Type mismatch (Несоответствие типов). 27 Invalid subrange base type (Неправильный базовый тип для типа-диапазона). 28 Lower bound greater than upper bound (Нижняя граница больше верхней). 29 Ordinal type expected (Нужен порядковый тип). 30 Integer constant expected (Нужна целая константа). 31 Constant expected (Нужна константа). 32 Integer or real constant expected (Нужна целая или вещественная константа) . 33 Type identifier expected (Нужен идентификатор типа) 34 Invalid function result type (Неправильный тип результата функции) 35 Label identifier expected (Нужен идентификатор метки). 36 BEGIN expected (Нужен BEGIN). 37 END expected (Нужен END). 38 Integer expression expected (Нужно выражение типа INTEGER). 39 Ordinal expression expected (Нужно выражение перечисляемого типа). 40 Boolean expression expected (Нужно выражение типа BOOLEAN). 41 Operand types do not match operator (Типы операндов не соответствуют операции). 42 Error in expression (Ошибка в выражении). 43 Illegal assignment (Неверное присваивание). 44 Field identifier expected (Нужен идентификатор поля) . 45 Object file too large (Объектный файл слишком большой). 46 Undefined external (Неопределенная внешняя процедура). 47 Invalid object file record (Неправильная запись объектного файла). 48 Code segment too large (Сегмент кода слишком большой). 49 Data segment too large (Сегмент данных слишком велик). 50 DO expected (Нужен оператор DO). 51 Invalid PUBLIC definition (Неверное PUBLIC-определение). 52 Invalid EXTRN definition (Неправильное EXTRN-определение). 53 Too many EXTRN definition (Слишком много EXTRN-определений). 54 OF expected (Требуется OF). 55 INTERFACE expected (Требуется интерфейсная секция). 56 Invalid relocatable reference (Неправильная перемещаемая ссылка). 57 THEN expected (Требуется THEN). 58 TO or DOWNTO expected (Требуется TO или DOWNTO). 59 Undefined forward (Неопределенное опережающее описание). 60 Too many procedures (Слишком много процедур). 61 Invalid typecast (Неверное преобразование типа). 62 Division by zero (Деление на ноль). 63 Invalid file type (Неверный файловый тип). 64 Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа). 65 Pointer variable expected (Нужно использовать переменную-указатель). 66 String variable expected (Нужна строковая переменная). 67 String expression expected (Нужно выражение строкового типа). 68 Circular unit reference (Перекрестная ссылка модулей). 69 Unit name mismatch (Несоответствие имен программных модулей). 70 Unit version mismatch (Несоответствие версий модулей). 71 Duplicate unit name (Повторное имя программного модуля). 72 Unit file format error (Ошибка формата файла модуля). 73 IMPLEMENTATION expected (Отсутствует исполняемая часть модуля). 74 Constant and case types do not match (Типы констант и тип выражения опе- ратора CASE не соответствуют друг другу). 75 Record variable expected (Нужна переменная типа запись). 76 Constant out of range (Константа нарушает границы). 77 File variable expected (Нужна файловая переменная). 78 Pointer expression expected (Нужно выражение типа указатель). 79 Integer or real expression expected (Нужно выражение вещественного или целого типа). 80 Label not within current block (Метка не находится внутри текущего блока) 81 Label already defined (Метка уже определена). 82 Undefined label in processing statement part (Неопределенная метка в предшествующем разделе операторов). 83 Invalid @ argument (Неправильный аргумент операции @). 84 Unit expected (Нужно кодовое слово UNIT). 85 ”;” expected (Нужно указать”;”). 86 ”:” expected (Нужно указать”:”). 87 ”,”expected (Нужно указать”,”). 88 ”(” expected (Нужно указать ”(”). 89 ”)” expected (Нужно указать”)”). 90 ”=” expected (Нужно указать”=”) 91 ”:=” expected (Нужно указать”:=”) 92 ”[” or ”(.”expected (Нужно указать ”[” или ”(.”). 93 ”]” or ”.)” expected (Нужно указать”]” или ”.)”). 94 ”.” expected (Нужно указать”.”) 95 ”..” expected (Нужно указать”..”). 96 Too many variables (Слишком много переменных). 97 Invalid FOR control variable (Неправильный параметр цикла оператора FOR). 98 Integer variable expected (Нужна переменная целого типа). 99 File and procedure types are not allowed here (Здесь не могут использоваться файлы или процедурные типы). 100 String length mismatch (Несоответствие длины строки). 101 Invalid ordering of fields (Неверный порядок полей). 102 String constant expected (Нужна константа строкового типа). 103 Integer or real variable expected (Нужна переменная типа INTEGER или REAL). 104 Ordinal variable expected (Нужна переменная порядкового типа). 105 INLINE error (Ошибка в операторе INLINE) 106 Character expression expected (Предшествующее выражение должно иметь символьный тип). 107 Too many relocation items (Слишком много перемещаемых элементов). 108 Overflow in arithmetic operator (Переполнение при выполнении арифметического оператора). 109 No enclosing FOR, WHILE or REPEAT statement (Нет операторов, заканчивающих операторы FOR, WHILE или REPEAT). 110 Debug information table overflow (Переполнение информационной таблицы отладки) 111 N/A 112 CASE constant out of range (Константа CASE нарушает допустимые границы) . 113 Error in statement (Ошибка в операторе). 114 114 Cannot call an interrupt procedure (Невозможно вызвать процедуру npерывания). 115 N/A 116 Must be in 8087 mode to compile this (Для компиляции необходим режим 8087). 117 Target address not found (Указанный адрес не найден). 118 118 Include files are not allowed here (Здесь не допускаются включаемые файлы). 119 No inherited methods are accessible here (В этом месте программы нет унаследованных методов). 120 N/A 121 Invalid qualifier (Неверный квалификатор). 122 Invalid variable reference (Недействительная ссылка на переменную). 123 Too many symbols (Слишком много символов). 124 Statement part too large (Слишком большой раздел операторов). 125 N/A 126 Files must be var parameters (Файлы должны передаваться как параметры-переменные). 127 Too many conditional symbols (Слишком много условных символов). 128 Misplaced conditional directive (Пропущена условная директива). 129 ENDIF directive missing (Пропущена директива ENDIF). 130 Error in initial conditional defines (Ошибка в условных определениях). 131 Header does not match previous definition (Заголовок не соответствует предыдущему определению). 132 Critical disk error (Критическая ошибка диска). 133 Cannot evaluate this expression (Нельзя вычислить данное выражение). 134 Expression incorrectly germinated (Некорректное завершение выражения). 135 Invalid format specifier (Неверный спецификатор формата). 136 Invalid indirect reference (Недопустимая косвенная ссылка). 137 Structured variable are not allowed here (Здесь нельзя использовать переменную структурного типа). 138 Cannot evaluate without System unit (Нельзя вычислить выражение без мо-дуля SYSTEM). 139 Cannot access this symbol (Нет доступа к данному символу). 140 Invalid floating-point operation (Недопустимая операция с плавающей запятой). 141 Cannot compile overlay to memory (Нельзя выполнить компиляцию оверлейных модулей в память). 142 Procedure or function variable expected (Должна использоваться перемен- ная процедурного типа). 143 Invalid procedure or function reference (Недопустимая ссылка на процедуру или функцию) . 144 Cannot overlay this unit (Этот модуль не может использоваться в качестве оверлейного). 145 Too many nested scopes (Слишком много вложений). 146 File access denied (Отказано в доступе к файлу). 147 Object type expected (Здесь должен быть тип OBJECT) . 148 object types are not allowed (Нельзя объявлять локальные объекты). 149 VIRTUAL expected (Пропущено слово VIRTUAL). 150 Method identifier expected (Пропущен идентификатор инкапсулированного правила). 151 Virtual constructor are not allowed (Конструктор не может быть виртуальным). 153 Destructor identifier expected (Пропущен идентификатор деструктора). 154 Fail only allowed within constructor (Обращение к стандартной процедуре FAIL может содержаться только в конструкторе). 155 Invalid combination of opcode and operands (Недопустимая комбинация кода команды и операндов). 156 Memory reference expected (Отсутствует адрес). 157 Cannot add or subtract relocatable symbols (Нельзя складывать или вычитать перемещаемые символы). 158 Invalid register combination (Недопустимая комбинация регистров). 159 286/287 instructions are not enabled (Недоступен набор команд микропроцессоров 286/287). 160 Invalid symbol reference (Недопустимая ссылка на символ). 161 Code generation error (Ошибка генерации кода). 162 ASM expected (Отсутствует зарезервированное слово ASM).