Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Kron1C
0 / 0 / 0
Регистрация: 09.06.2015
Сообщений: 2
#1

Исправление ошибки "Constant object cannot be passed as var parameter" - Delphi

09.06.2015, 09:15. Просмотров 409. Ответов 1
Метки нет (Все метки)

Ругается на параметр "a" с ошибкой "Constant object cannot be passed as var paramete"

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const      size  = 3;
type       matrix = array[1 .. size, 1 .. size] of real;
const      a : matrix = ((1,  2,  3),(4, 4, 5),(7,  8,  9));
 
function minusOne(n : integer) : integer;
  begin
     minusOne := (1 - 2*Byte(Odd(n)));
  end;
 
function get_addr(i, j : integer; const n : integer) : integer;
  begin
     get_addr := Pred(i) * n + j;
  end;
 
 
function det(var p; const n : integer) : real;
  type
     vector = array[1 .. size * size] of real;
  var
     my_p : vector absolute p;
     pp : ^vector;
     s : real;
     i, j, curr : integer;
  begin
     s := 0.0;
     if n = 2 then
        s := my_p[1]*my_p[4] - my_p[2]*my_p[3]
     else
        for i := 1 to n do
        begin
           GetMem(pp, Sqr(n - 1) * SizeOf(real));
           curr := 1;
           for j := 1 to n do
              if j <> i then
              begin
                 move(my_p[get_addr(j, 2, n)], pp^[get_addr(curr, 1, Pred(n))],
                      pred(n) * SizeOf(real));
                 inc(curr);
              end;
           s := s + minusOne(Succ(i)) * my_p[get_addr(i, 1, n)] * det(pp^, Pred(n));
           FreeMem(pp, Sqr(Pred(n)) * SizeOf(real))
        end;
     det := s;
 
  end;
 
begin
   Writeln(det(a, 3):0:0 );
   readln;
end.
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2015, 09:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Исправление ошибки "Constant object cannot be passed as var parameter" (Delphi):

Constant object cannot be passed as var parameter - Delphi
Всем доброго времени суток. Ипользую данный код: procedure TForm1.Button1Click(Sender: TObject); var s: PAnsiChar; begin ...

Ошибка: Constant object cannot be passed as var parameter - Delphi
else if (TS = 'PRIVMSG') then begin uMessage:=''; for i:=1 to j do //Проверяем кто написал сообщение ...

[Ошибка] Constant object cannot be passed as var parameter - Delphi
procedure TForm1.Button1Click(Sender: TObject); const x: array of byte = ($01, $01, $01, $01, $01); begin S.SendTo(x, sizeof(x)); ...

Ошибка: [Error] Project1.dpr(11): Constant object cannot be passed as var parameter Operator not applicable to this operand type - Delphi
Помогите пожалуйста, в чем ошибка? помогите решить unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Ошибка Constant object cannot be passed as var parameter - Delphi
Привет. При пропускание через функции Insert и Delete, выдает ошибку(в название темы). Перевод примерно такой: Константа не может бы...

Возникает ошибка: "Constant object cannot be passed as var parametr". - Delphi
procedure TForm1.Button1Click(Sender: TObject); type mass =array of real; const mass1:mass= ((-1.8, 2.3) ,(3.25, -0.5)); var...

1
D1973
Модератор
3225 / 2273 / 919
Регистрация: 21.01.2014
Сообщений: 9,427
Записей в блоге: 3
Завершенные тесты: 1
09.06.2015, 09:22 #2
Вот так объявить функцию попробуй
Delphi
1
function det(p : matrix; const n : integer) : real;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 09:22
Привет! Вот еще темы с ответами:

Вылазит ошибка "constant expression expected", не пойму в чем дело - Delphi
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

"Object reference not set to an instance of an object" - Delphi
Работал раньше на лазарусе под линуксом, ща решил под делфи9 написать. Создал форму, вставил туда edit1, и сказал чтобы при введении текста...

Создать массив, размер которого задает пользователь: "Constant expression expected" - Delphi
Нужно задать масив размер которого задает пользователь , тоесть arrayof real; делфи начинает матерится на N мол &quot;Constant expression...

Избавиться от ошибки при нажатии на кнопку "Вперед" или "Назад" в браузере - Delphi
При создании нечто похожего на браузер, появилась такая проблемка: я создаю две кнопки &quot;Вперёд&quot; и &quot;Назад&quot;, но если я не перехожу по ссылкам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru