OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 27 Март, 2024 07:57

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 08:05 
Аватара пользователя

Зарегистрирован: Суббота, 13 Ноябрь, 2010 14:09
Сообщения: 26
сделал пример из 4-х простеньких модулей:
Код:
МОДУЛЬ ПримерЖивность;
   ТИП
      Описание* = УКАЗАТЕЛЬ ДО МАССИВ ИЗ  ЛИТЕР;
      
      Живность* = УКАЗАТЕЛЬ ДО АБСТРАКТНАЯ ЗАПИСЬ
         имя*: Описание; (*Описание;*)
         описание*: Описание;
      КОНЕЦ;

ПРОЦЕДУРА (эта_живность:Живность) описать*(): Описание, НОВЫЙ ;
   ПЕРЕМЕННЫЕ
   описание: Описание;
НАЧАЛО
   НОВЫЙ (описание, 40);
   описание^:= эта_живность.имя + эта_живность.описание;
   ВЕРНУТЬ описание;
КОНЕЦ описать;   

КОНЕЦ ПримерЖивность.

Код:
МОДУЛЬ ПримерЗверь;
   ПОДКЛЮЧИТЬ  ПримерЖивность;
   ТИП
   
      Зверь* = УКАЗАТЕЛЬ ДО ЗАПИСЬ (ПримерЖивность.Живность)
      КОНЕЦ;   
(*   ПРОЦЕДУРА новый_зверь*( наименование: ПримерЖивность.Описание): Зверь; *)
ПРОЦЕДУРА новый_зверь*( наименование: МАССИВ ИЗ  ЛИТЕР): Зверь;
   ПЕРЕМЕННЫЕ
         этот_зверь: Зверь;
   НАЧАЛО
      НОВЫЙ (этот_зверь);
      этот_зверь.описание^:= "бегает";
      этот_зверь.имя^ := наименование$;
      ВЕРНУТЬ этот_зверь;   
   КОНЕЦ новый_зверь;
   
НАЧАЛО
КОНЕЦ  ПримерЗверь.

Код:
МОДУЛЬ ПримерПтица;
   ПОДКЛЮЧИТЬ  Вывод := i21eduВывод, ПримерЖивность;
   ТИП
      Птица* = УКАЗАТЕЛЬ ДО ЗАПИСЬ (ПримерЖивность.Живность)
      КОНЕЦ;   
ПРОЦЕДУРА новая_птица*( наименование: МАССИВ ИЗ  ЛИТЕР): Птица;
   ПЕРЕМЕННЫЕ
      эта_птица: Птица;
   НАЧАЛО
      Вывод.Цепочка( "отметка-1" );
      НОВАЯ (эта_птица);
      эта_птица.описание^:= "летает";
      эта_птица.имя^ := наименование$;
      ВЕРНУТЬ эта_птица;   
   КОНЕЦ новая_птица;

Код:
МОДУЛЬ Пример;
   ПОДКЛЮЧИТЬ  Вывод := i21eduВывод,
      ПримерЖивность, ПримерПтица, ПримерЗверь;
   КОНСТАНТЫ
      количество_живности = 4;  (*пусть будут ворона, собака, лиса, ястреб*)
   ПЕРЕМЕННЫЕ
      список_живности : УКАЗАТЕЛЬ ДО МАССИВ ИЗ ПримерЖивность.Живность;
      i : INTEGER;
      текст: УКАЗАТЕЛЬ ДО МАССИВ ИЗ ЛИТЕР;
   
ПРОЦЕДУРА описать_живность*();
  ПЕРЕМЕННЫЕ
  НАЧАЛО
   НОВЫЙ (список_живности, количество_живности + 1);
   Вывод.Цепочка( "отметка-0");
   список_живности [0]:= ПримерПтица.новая_птица("Ворона");
   список_живности [1]:= ПримерЗверь.новый_зверь("Собака");   
   список_живности [2]:= ПримерЗверь.новый_зверь("Лиса");   
   список_живности [3]:= ПримерПтица.новая_птица("Ястреб");
   ДЛЯ i :=0  ДО количество_живности-1 ДЕЛАТЬ
         текст:=список_живности[i].описать();
         Вывод.Цепочка( текст ); Вывод.НовСтрока;
   КОНЕЦ;   
   список_живности:= ОТСУТСТВУЕТ;
   КОНЕЦ описать_живность;

НАЧАЛО
   
КОНЕЦ Пример.



Запускаю Пример.описать_живность()
получаю трап: NIL dereference (read)
понимаю
в "отметку-0" попадает
в "отметку-1" ― нет
1)Помогите разобраться - почему?
2)Помогите разобраться как грамотно пользоваться трапом. Для меня это ― по сути артефакт.

сам трап:
Код:
NIL dereference (read)

 ПримерПтица.новая_птица   [0000005EH]
   .наименование   ARRAY 7 OF CHAR   "Ворона"
   .эта_птица   ПримерПтица.Птица   [0101C090H]
 Пример.описать_живность   [0000003FH]
 StdInterpreter.CallProc   [000003A5H]
   .a   BOOLEAN   FALSE
   .b   BOOLEAN   FALSE
   .c   BOOLEAN   FALSE
   .i   Meta.Item   поля
   .imported   ARRAY 256 OF CHAR   ""   ...
   .importing   ARRAY 256 OF CHAR   ""   ...
   .mn   Meta.Name   "Пример"
   .mod   StdInterpreter.Ident   "Пример"
   .object   ARRAY 256 OF CHAR   ""   ...
   .ok   BOOLEAN   TRUE
   .parType   INTEGER   0
   .pn   Meta.Name   "описать_живность"
   .proc   StdInterpreter.Ident   "описать_живность"
   .res   INTEGER   0
   .v   StdInterpreter.ProcVal   поля
   .vi   StdInterpreter.ProcIVal   поля
   .vii   StdInterpreter.ProcIIVal   поля
   .vr   StdInterpreter.ProcRVal   поля
   .vri   StdInterpreter.ProcRIVal   поля
   .vrii   StdInterpreter.ProcRIIVal   поля
   .vrr   StdInterpreter.ProcRRVal   поля
   .vrri   StdInterpreter.ProcRRIVal   поля
   .vrrii   StdInterpreter.ProcRRIIVal   поля
   .vrs   StdInterpreter.ProcRSVal   поля
   .vrsi   StdInterpreter.ProcRSIVal   поля
   .vrsii   StdInterpreter.ProcRSIIVal   поля
   .vs   StdInterpreter.ProcSVal   поля
   .vsi   StdInterpreter.ProcSIVal   поля
   .vsii   StdInterpreter.ProcSIIVal   поля
   .vsr   StdInterpreter.ProcSRVal   поля
   .vsri   StdInterpreter.ProcSRIVal   поля
   .vsrii   StdInterpreter.ProcSRIIVal   поля
   .vss   StdInterpreter.ProcSSVal   поля
   .vssi   StdInterpreter.ProcSSIVal   поля
   .vssii   StdInterpreter.ProcSSIIVal   поля
 StdInterpreter.Command   [00001260H]
   .left   StdInterpreter.Ident   "Пример"
   .ptype   INTEGER   0
   .right   StdInterpreter.Ident   "описать_живность"
 StdInterpreter.CallHook.Call   [00001385H]
   .ch   CHAR   0X
   .e   ARRAY 64 OF CHAR   ""   ...
   .errorMsg   ARRAY 2 OF CHAR   " "
   .f   ARRAY 64 OF CHAR   ""   ...
   .g   ARRAY 64 OF CHAR   ""   ...
   .hook   StdInterpreter.CallHook   [0105FE50H]
   .i   INTEGER   24
   .i0   INTEGER   0
   .i1   INTEGER   0
   .id   StdInterpreter.Ident   "описать_живность"
   .par0   Dialog.String   ""   ...
   .par1   Views.Title   ""   ...
   .proc   ARRAY 256 OF CHAR   "Пример.описать_живность"   ...
   .res   INTEGER   0
   .s0   Dialog.String   ""   ...
   .s1   Dialog.String   ""   ...
   .type   INTEGER   3
   .x   INTEGER   0
 Dialog.Call   [00003401H]
   .errorMsg   ARRAY 2 OF CHAR   " "
   .proc   ARRAY 256 OF CHAR   "Пример.описать_живность"   ...
   .res   INTEGER   0
 DevCommanders.Execute   [00000662H]
   .beg   INTEGER   1343
   .cmd   Dialog.String   "Пример.описать_живность"   ...
   .end   INTEGER   1345
   .pos   INTEGER   1319
   .res   INTEGER   0
   .s   DevCommanders.Scanner   поля
   .t   TextModels.Model   [0119C4E0H]
   .unload   BOOLEAN   TRUE
 DevCommanders.Track   [00000795H]
   .buttons   SET   {2, 16, 25}
   .c   Models.Context   [011A22A0H]
   .end   INTEGER   1345
   .f   Views.Frame   [010DC510H]
   .h   INTEGER   123825
   .in   BOOLEAN   TRUE
   .in0   BOOLEAN   TRUE
   .isDown   BOOLEAN   FALSE
   .m   SET   {2, 25}
   .v   DevCommanders.View   [011A2270H]
   .w   INTEGER   149225
   .x   INTEGER   88900
   .y   INTEGER   41275
 DevCommanders.StdView.HandleCtrlMsg   [00000946H]
   .f   Views.Frame   [010DC510H]
   .focus   Views.View   NIL
   .msg   Controllers.TrackMsg   поля
   .v   DevCommanders.StdView   [011A2270H]
 Views.ForwardCtrlMsg   [000026B0H]
   .a   Views.View   NIL
   .f   Views.Frame   [010DC510H]
   .focus   Views.View   NIL
   .g   Views.Frame   [011A38C0H]
   .h   Views.Frame   NIL
   .msg   Controllers.TrackMsg   поля
   .op   INTEGER   0
   .req   BOOLEAN   FALSE
   .v   Views.View   [011A2270H]
 Views.ForwardCtrlMsg   [0000276BH]
   .a   Views.View   NIL
   .f   Views.Frame   [011A38C0H]
   .focus   Views.View   [011A2270H]
   .g   Views.Frame   [011A3530H]
   .h   Views.Frame   [010DC510H]
   .msg   Controllers.TrackMsg   поля
   .op   INTEGER   0
   .req   BOOLEAN   FALSE
   .v   Views.View   [0119C480H]
 Views.ForwardCtrlMsg   [0000276BH]
   .a   Views.View   NIL
   .f   Views.Frame   [011A3530H]
   .focus   Views.View   [0119C480H]
   .g   Views.Frame   NIL
   .h   Views.Frame   [011A38C0H]
   .msg   Controllers.TrackMsg   поля
   .op   INTEGER   0
   .req   BOOLEAN   FALSE
   .v   Views.View   [0119C2C0H]
 Windows.Window.ForwardCtrlMsg   [000002AFH]
   .msg   Controllers.TrackMsg   поля
   .w   Windows.Window   [011A2FD0H]
 HostWindows.Window.ForwardCtrlMsg   [00001615H]
   .d   BOOLEAN   FALSE
   .msg   Controllers.TrackMsg   поля
   .res   INTEGER   2010354855
   .w   HostWindows.Window   [011A2FD0H]
 HostWindows.Window.MouseDown   [00001BA5H]
   .modifiers   SET   {2, 16, 25}
   .ph   INTEGER   392
   .pw   INTEGER   656
   .time   INTEGER   0
   .track   Controllers.TrackMsg   поля
   .w   HostWindows.Window   [011A2FD0H]
   .x   INTEGER   16
   .y   INTEGER   366
 HostWindows.HandleMouse   [00003445H]
   .b   SET   {2, 16, 25}
   .f   Views.Frame   NIL
   .g   Views.Frame   NIL
   .isDown   BOOLEAN   TRUE
   .lParam   INTEGER   23986192
   .w   HostWindows.Window   [011A2FD0H]
   .wParam   INTEGER   265
   .wnd   INTEGER   262810
   .x   INTEGER   16
   .y   INTEGER   366
 Kernel.Try   [00003A31H]
   .a   INTEGER   262810
   .b   INTEGER   265
   .c   INTEGER   23986192
   .h   PROCEDURE   HostWindows.HandleMouse
 HostWindows.DocWinHandler   [00003FB2H]
   .dx   INTEGER   0
   .dy   INTEGER   0
   .lParam   INTEGER   23986192
   .message   INTEGER   513
   .res   INTEGER   0
   .st   SET   {5}
   .style   SET   {2, 3, 8, 9, 11..15, 17, 21}
   .w   HostWindows.Window   NIL
   .wParam   INTEGER   9
   .wnd   INTEGER   262810
   .x   INTEGER   16064144
<system>   (pc=77D38708H,  fp=0022FB84H)
<system>   (pc=77D387EAH,  fp=0022FBECH)
<system>   (pc=77D389A4H,  fp=0022FC4CH)
<system>   (pc=77D3BCCBH,  fp=0022FC5CH)
 HostMenus.Loop   [00003C86H]
   .done   BOOLEAN   FALSE
   .f   SET   {0..5}
   .n   INTEGER   0
   .res   INTEGER   0
   .w   HostWindows.Window   NIL
 Kernel.Start   [00002B5CH]
   .code   PROCEDURE   HostMenus.Loop


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 08:09 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Хохулин Олег писал(а):
Для меня это ― по сути артефакт.
Артефакт - это искусственная вещь, созданная человеком, помещённая в контекст некой культуры. Противоположен по смыслу вещи природной. А вы применяете как синоним "непонятного". Зачем такие слова-то писать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 08:28 
Аватара пользователя

Зарегистрирован: Суббота, 13 Ноябрь, 2010 14:09
Сообщения: 26
Александр Ильин писал(а):
Хохулин Олег писал(а):
Для меня это ― по сути артефакт.
Артефакт - это искусственная вещь, созданная человеком, помещённая в контекст некой культуры. Противоположен по смыслу вещи природной. А вы применяете как синоним "непонятного". Зачем такие слова-то писать?

в определениях из разных мест: Артефакт (от лат. artefactum — искусственно сделанное). Общеупотребительное (употребляется чаще всего в смысле значения): кем-то сделано, как работает не понимаю, как использовать понимаю смутно и скорее всего не верно.
Академические определения - это конечно хорошо, но в жизни смысл слов постепенно (в наше время, кажется, ― довольно быстро) меняется.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 08:42 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Хохулин Олег писал(а):
Академические определения - это конечно хорошо, но в жизни смысло слов постепенно (в наше время, кажется, ― довольно быстро) меняется.
Вы написали "для меня - по сути артефакт", словно знакомы с сутью. Сами использовали академический термин, никто вас за язык не тянул. А по сути все программы суть артефакты, что для вас, что для нас.

ББ перезапускать пробовали? У меня подозрение, что у вас не все модули перекомпилированы/перезагружены.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 09:04 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А вот здесь:
http://www.inr.ac.ru/~info21/pdf/i21.pdf
- нету разве про трапы?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 09:22 
Аватара пользователя

Зарегистрирован: Суббота, 13 Ноябрь, 2010 14:09
Сообщения: 26
Александр Ильин писал(а):
ББ перезапускать пробовали? У меня подозрение, что у вас не все модули перекомпилированы/перезагружены.

Да, выгружал. Да, перезапускал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 09:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Хохулин Олег писал(а):
в "отметку-0" попадает
в "отметку-1" ― нет
Разве можно так обманывать? В отметку 1 тоже попадает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 09:46 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
В процедурах новая_птица, новый_зверь не выделена память под строки .описание и .имя. При присвоении производится разыменование (^) пустого указателя (NIL), отсюда и трап.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:33 
Аватара пользователя

Зарегистрирован: Суббота, 13 Ноябрь, 2010 14:09
Сообщения: 26
Александр Ильин писал(а):
Хохулин Олег писал(а):
в "отметку-0" попадает
в "отметку-1" ― нет
Разве можно так обманывать? В отметку 1 тоже попадает.

Пока не влепил в модуль Птица пустую процедуру и не вызвал ее, модуль похоже не выгружался...
Чего я не понял, не заметил?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:40 
Аватара пользователя

Зарегистрирован: Суббота, 13 Ноябрь, 2010 14:09
Сообщения: 26
Александр Ильин писал(а):
В процедурах новая_птица, новый_зверь не выделена память под строки .описание и .имя. При присвоении производится разыменование (^) пустого указателя (NIL), отсюда и трап.

Спасибо, так и есть. Исправил - заработало.
Хотел бы сделать процедуру, которая инициализировала бы эти поля в модуле "Живность", а в уточнении "Птица", "Зверь" дозаполнять "добавки" . (Живность.Ини, Птица.Ини, Зверь.Ини)
Но как сделать супервызов Живность.Ини в Птица.Ини ???


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:43 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Хохулин Олег писал(а):
Чего я не понял, не заметил?
Если модуль используется (импортирован) каким-то другим загруженным модулем, то сначала нужно выгрузить этот другой.
Для правильного порядка выгрузки я обычно пишу коммандер такого вида: ^Q DevDebug.UnloadThis Пример ПримерПтица ПримерЖивность ПримерЗверь~


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:45 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Хохулин Олег писал(а):
Но как сделать супервызов Живность.Ини в Птица.Ини ???
Код:
ПРОЦЕДУРА (зверь: Зверь) Init;
НАЧАЛО
   зверь.Init^
КОНЕЦ Init;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:49 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Хохулин Олег писал(а):
Александр Ильин писал(а):
В процедурах новая_птица, новый_зверь не выделена память под строки .описание и .имя. При присвоении производится разыменование (^) пустого указателя (NIL), отсюда и трап.
Спасибо, так и есть. Исправил - заработало.
Место разыменовывания нулевого указателя доступно через трэп по одному тычку.
1) Вы его нашли и не поняли, что нужно выделить память?
или
2) Вы не знали как его найти? В данном случае см: http://www.inr.ac.ru/~info21/blackbox/avost/avost.htm


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:50 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Хохулин Олег писал(а):
Пока не влепил в модуль Птица пустую процедуру и не вызвал ее, модуль похоже не выгружался...
Чего я не понял, не заметил?
http://www.inr.ac.ru/~info21/blackbox/welcome.html = Первые сведения о работе в системе Блэкбокс

http://www.inr.ac.ru/~info21/blackbox/dev/zagruzka.htm = Загрузка и перезагрузка модулей


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:53 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Евгений Темиргалеев писал(а):
Место разыменовывания нулевого указателя доступно через трэп по одному тычку.
Данное утверждение истинно только при работе с исходниками с английскими ключевыми словами (MODULE, PROCEDURE, BEGIN и т.д.).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 10:54 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Хохулин Олег писал(а):
Хотел бы сделать процедуру, которая инициализировала бы эти поля в модуле "Живность", а в уточнении "Птица", "Зверь" дозаполнять "добавки" . (Живность.Ини, Птица.Ини, Зверь.Ини)
Для этого не обязательно делать супервызов. Инициализировать поля может и обычная процедура
Код:
ПРОЦЕДУРА Ини* (эта_живность:Живность);
Или я чего-то не понимаю?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 11:11 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Александр Ильин писал(а):
Евгений Темиргалеев писал(а):
Место разыменовывания нулевого указателя доступно через трэп по одному тычку.
Данное утверждение истинно только при работе с исходниками с английскими ключевыми словами (MODULE, PROCEDURE, BEGIN и т.д.).
Странно... у меня была уверенность, что info21 эту проблему решил. Она, кажется, на форуме где-то обсуждалась.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 11:14 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Евгений Темиргалеев писал(а):
Странно... у меня была уверенность, что info21 эту проблему решил. Она, кажется, на форуме где-то обсуждалась.
Позиции для трапов зашиваются в объектный файл компилятором. Компилятор видит только переводной вариант текста с английскими ключевыми словами.

Обсуждалась проблема позиционирования маркеров ошибок компиляции.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 13:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Хохулин Олег писал(а):
Но как сделать супервызов Живность.Ини в Птица.Ини ???
Супервызовы -- нехорошая вещь. Тем более, что и не нужная.

Процедуру, специфическую для конкретного уровня наследования, оформите как простую процедуру. Соотв. модуль всё равно всегда будет виден в контексте вызова, так что с вызовом проблем не будет.

Где-то Вы уже подпортили себе ... вкус. Что читали, если не секрет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Декабрь, 2010 13:38 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Коллеги, вы даете ссылки на устаревшие документы.

*Вся* документация в надлежащим образом переработанном виде есть в школьной версии, доступна через Справку для учителя и проч.
У человека уже есть школьная версия, не надо его зря путать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

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


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

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


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

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