OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 26 Апрель, 2024 02:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Lib: Вопрос про Log в LibMatrices
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 19:07 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3777
Не могу разобраться, почему так странно выводится матрица в пакете Lib :(
После вывода первой матрицы пишется строчка второй... пытался копаться в исходниках, подозреваю что дело в буфере, но опыта не хватает, чтобы поправить, подскажите, пожалуйста.
Программа:
Код:
MODULE DiaTest;
   IMPORT Out := StdLog, Mat := LibMatrices;
   PROCEDURE Do* ();
      VAR
         n, i: INTEGER;
         s: POINTER TO ARRAY OF REAL;
         A: Mat.Matrix;
   BEGIN
      n := 10;
      NEW(s, n);

      A := Mat.NewRC(n, n);
      FOR i := 0 TO n - 1 DO
         A[i][i] := 1;
      END;
      FOR i := 0 TO n - 2 DO
         A[i][i + 1] := - 1;
         A[i + 1][i] := - 1;
      END;
      Out.String(" -- 1 ВЫВОД -- "); Out.Ln;
      Mat.WrtL(A, 4, 1, 10);
      Out.String(" -- 2 ВЫВОД -- "); Out.Ln;
      Mat.WrtL(A, 4, 1, 10);
   END Do;
END DiaTest.

DiaTest.Do
Код:
 -- 1 ВЫВОД --
(-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. )
( 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
 -- 2 ВЫВОД --
(-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 19:21 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
вроде видел (давно), что Lib-й вывод лезет в
Цитата:
VAR buf-: TextModels.Model
The buffer used internally for minimizing screen refreshes.
Попробуйте Out.Ln после Mat.WrtL(...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 19:30 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3777
Евгений Темиргалеев писал(а):
вроде видел (давно), что Lib-й вывод лезет в
Цитата:
VAR buf-: TextModels.Model
The buffer used internally for minimizing screen refreshes.
Попробуйте Out.Ln после Mat.WrtL(...

Так пробовал, не помогало.

Ответ: оказалось, надо
LibFmtrs.logFmtr.SetToEnd;
Перед
Mat.WrtL(...);

Нашел только что в одном спрятанном примере в LibIMatrices, тему закрываю.
Хоть это и странно, что каждый раз придется так писать, но работает :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 19:32 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
divan писал(а):
Нашел только что в одном спрятанном примере в LibIMatrices, тему закрываю.
Может быть, достаточно Log.FlushBuf?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Понедельник, 27 Декабрь, 2010 21:31 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3777
Александр Ильин писал(а):
divan писал(а):
Нашел только что в одном спрятанном примере в LibIMatrices, тему закрываю.
Может быть, достаточно Log.FlushBuf?
Не смог найти такого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Вторник, 28 Декабрь, 2010 04:55 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
divan писал(а):
Не смог найти такого.
В смысле? Пишете "Log", выделяете, в контекстном меню выбираете "Interface".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Вторник, 28 Декабрь, 2010 10:01 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Александр говорит про Log, а divan про StdLog.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Вторник, 28 Декабрь, 2010 18:37 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3777
Александр Ильин писал(а):
divan писал(а):
Нашел только что в одном спрятанном примере в LibIMatrices, тему закрываю.
Может быть, достаточно Log.FlushBuf?
Вот такое не помогает.
Код:
Log.FlushBuf;
Out.String(" -- 1 ВЫВОД -- "); Out.Ln;
Log.FlushBuf;
Mat.WrtL(A, 4, 1, 10);
Log.FlushBuf;
Out.String(" -- 2 ВЫВОД -- "); Out.Ln;
Log.FlushBuf;
Mat.WrtL(A, 4, 1, 10);
Log.FlushBuf;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Среда, 29 Декабрь, 2010 09:35 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Если в Lib есть специальный модуль, который отвечает за вывод в лог
divan писал(а):
Ответ: оказалось, надо
LibFmtrs.logFmtr.SetToEnd;
то может и нужно его использовать? А не изобретать варианты с Log.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про Log в LibMatrices
СообщениеДобавлено: Среда, 29 Декабрь, 2010 09:46 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3777
Евгений Темиргалеев писал(а):
Если в Lib есть специальный модуль, который отвечает за вывод в лог
divan писал(а):
Ответ: оказалось, надо
LibFmtrs.logFmtr.SetToEnd;
то может и нужно его использовать? А не изобретать варианты с Log.

Ну, интересно было проверить :) решение найдено одно, но каждую задачу разными способами интересно решить.


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB