2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Delphi, помогите найти ошибку в коде
Сообщение06.06.2007, 18:51 


27/07/06
21
DneprDNU
Доброго времени суток!

есть 2 модуля unit1, unit_matr:
....
type tVect=array[0..10] of real;
tmat=array[0..10] of tvect;
...
<unit1>: ////это основной модуль
unit_matr.proc1(n,c_A;<ОШИБКА ВОТ ТУТ!!!>d);
...
<unit_matr>: //////это дополнительный модуль, в котором содержаться процедуры
procedure proc1(n:integer; c_A:TMatr; var d:real);
var i:integer;
begin
If n=2 then
d:=det2(c_a[1,1],c_a[1,2],c_a[2,1],c_a[2,2])
end;
....

в итоге выдает ошибку о несоответствии типов:(

_____
я передаю данные из первого модуля в процедуру второго модуля, а потом из второго передаю результат в первый модуль

Заранее благодарен)))

 Профиль  
                  
 
 
Сообщение07.06.2007, 00:04 
Заслуженный участник
Аватара пользователя


03/03/06
648
DneprSerg

Цитата:
tmat=array[0..10] of tvect
; // это Вы так определяете массив 11 на 11?

Цитата:
d:=det2(c_a[1,1],c_a[1,2],c_a[2,1],c_a[2,2])
// если не ошибаюсь, то индексацию начать с 0.

 Профиль  
                  
 
 Re: Delphi, помогите найти ошибку в коде
Сообщение07.06.2007, 06:32 
Заслуженный участник


15/05/05
3445
USA
DneprSerg писал(а):
unit_matr.proc1(n,c_A;<ОШИБКА ВОТ ТУТ!!!>d);
...
Вы пишете, что ошибку вызывает переменая d. Но Вы не написали, как она определена в основном модуле.

 Профиль  
                  
 
 
Сообщение07.06.2007, 23:38 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Присоединяюсь к Yuri Gendelman — дайте описание переменных в месте вызова.

И еще — меня смущает точка с запятой перед d. По-моему, там должна быть запятая…

 Профиль  
                  
 
 
Сообщение08.06.2007, 00:44 


27/07/06
21
DneprDNU
Цитата:
Вы пишете, что ошибку вызывает переменая d. Но Вы не написали, как она определена в основном модуле.

d:real;
Цитата:
И еще — меня смущает точка с запятой перед d. По-моему, там должна быть запятая…

не, там ";", с запятой не работает...

Добавлено спустя 8 минут 54 секунды:

reader_st писал(а):
DneprSerg

Цитата:
tmat=array[0..10] of tvect
; // это Вы так определяете массив 11 на 11?

Цитата:
d:=det2(c_a[1,1],c_a[1,2],c_a[2,1],c_a[2,2])
// если не ошибаюсь, то индексацию начать с 0.

нет, с индексацией все правильно, до выделения этого участка кода в отдельную процедуру все работало нормально...
да и ошибка возникает до этого...

Добавлено спустя 8 минут 40 секунд:

и еще: ток что попробовал, это не от разделения по модулям, просто сама процедура не работает...

 Профиль  
                  
 
 
Сообщение08.06.2007, 04:55 
Заслуженный участник


15/05/05
3445
USA
DneprSerg писал(а):
Цитата:
И еще — меня смущает точка с запятой перед d. По-моему, там должна быть запятая…
не, там ";", с запятой не работает...
Так и с ";" тоже не работает!
Я не помню случаев, когда ";" используется в списке фактических аргументов. Правда я уже несколько лет не программирую на Delphi.

 Профиль  
                  
 
 
Сообщение08.06.2007, 20:56 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
DneprSerg писал(а):
d:real;

Пожалуйста, все переменные, использованные как фактические параметры.

P.S. Обычно компилятор выдает сообщение об ошибке на следующей лексеме. Почему? — не знаю. Выглядит до предела глупо: скажем, пропущена точка с запятой, а ошибка выдается спустя пол-страницы комментариев. Ужели так трудно запомнить не только начало, но и конец лексемы?!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group