Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.01.2012, 17:40
sidoro89 sidoro89 вне форума
Прохожий
 
Регистрация: 06.01.2012
Сообщения: 7
Репутация: 10
Лампочка Пожалуйста объясните, что не так с кодом?

Есть код.
в отдельном модуле:
Код:
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
type
  TMatrixData = array of array of Extended;
 
  TMatrix = class
  protected
    FData: TMatrixData;
    FOrigin: Integer;
...
 
procedure TForm1.btn1Click(Sender: TObject);
var
  A, B:TMatrix;
  C,D:TMatrixData;
  s:extended;
  i,j: Integer;
begin
  SetLength(C,3,3) ;
  SetLength(D,3,3) ;
  for i:=0 to 2 do
  for j:=0 to 2 do
  begin
    C[i,j]:=i+j+2;
    D[i,j]:=i*j-3;
  end;
  A:=TMatrix.Create(C);
  B:=TMatrix.Create(D);
  S:=C[0,0];
  A.Free;
  B.Free;
end;
Админ: Пользуемся тегами для оформления кода.

По логике вещей в переменной S должно быть значение матрицы С[0,0], а там 1е+300, как вытащить значение из массива? Что происходит?

Последний раз редактировалось Admin, 06.01.2012 в 18:00.
Ответить с цитированием
  #2  
Старый 06.01.2012, 18:12
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

давай весь код
Ответить с цитированием
  #3  
Старый 06.01.2012, 19:49
sidoro89 sidoro89 вне форума
Прохожий
 
Регистрация: 06.01.2012
Сообщения: 7
Репутация: 10
По умолчанию

На форум не влез, меньше 300 кб не сделать было. Залил на Депозит:
http://depositfiles.com/files/32huqhhdj

Тут чуть другая модификация, но проблема такая же.
Запустить MKE.dpr
Unit1. Строчки 1143, 1144 с параметром. на 1146 Остановку сделать, чтобы проследить.
Пользоваться:
1) геометрия - Ок
2) Расчет - проверка исходных данных
Ответить с цитированием
  #4  
Старый 06.01.2012, 22:13
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

походу это было потому что компилятор соптимизировал эту переменную как нигде не используемую
PHP код:
KOOR_ELM:=TMatrix.Create(KOOR_EL);

S_EL:=KOOR_ELM.Det;
showmessage(floattostr(S_EL));
S_EL:=KOOR_EL[1,2];
showmessage(floattostr(S_EL));

KOOR_ELM.Free
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
sidoro89 (07.01.2012)
  #5  
Старый 06.01.2012, 22:18
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ну так правильно, если в переменную записать данные, а потом больше эту переменную не использовать, то Дельфи просто "проигнорирует" её. При этом будет выдано соответствующее сообщение, на которое ТС не обратил внимания.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sidoro89 (07.01.2012)
  #6  
Старый 07.01.2012, 00:51
sidoro89 sidoro89 вне форума
Прохожий
 
Регистрация: 06.01.2012
Сообщения: 7
Репутация: 10
Хорошо Всем огромное спасибо.

Всем огромное спасибо. Я уже 2 дня мучаюсь понять не могу, что происходило, а оказывается вот оно что. Спасибо, что объяснили про компилятор делфи. Действительно дальше стал писать код и все заработало. Теперь надеюсь до конца праздников закончу .

Тему можно закрывать. Еще раз спасибо .
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025