Оберон-клуб «ВЄДАsoft»
https://zx.oberon.org/forum/

мои контейнеры
https://zx.oberon.org/forum/viewtopic.php?f=2&t=454
Страница 1 из 1

Автор:  budden [ 31 дек 2018, 12:02 ]
Заголовок сообщения:  мои контейнеры

Посмотрел две библиотеки контейнеров, ни одна не устроила. Библиотека Петра не поддерживается и я не смог её собрать в последней обертоновской сборке, а библиотека Евгения мне не нравится по стилю (из контейнеров торчат особенности реализации). Плюс к тому, я избегал, избегаю и буду избегать наследования. Поэтому сделал кое-что своё - пока это только двусвязный список на базе постранично организованного массива. Управление страницами взял у Петра (оно там упрощённое, но пусть будет хоть так). В списке хранятся ANYPTR, контроль типов возлагается на пользователя.

Уже применил модульные тесты (см. другую тему здесь же). И, естественно, код на русском языке.

https://gitlab.com/budden/nkp/tree/master/k/Конт/Mod

Автор:  geniepro [ 31 дек 2018, 16:30 ]
Заголовок сообщения:  Re: мои контейнеры

budden писал(а):
И, естественно, код на русском языке.

https://gitlab.com/budden/nkp/tree/master/k/Конт/Mod
Хм. Даже стало интересно. Открыл код -- и что я увидел? Я увидел код на смеси русского и английского:
Код: "OBERON"
  1. PROCEDURE ДобавьСтраницЕслиНадо (сп: Список; будетДлина: INTEGER);
  2. VAR
  3. i, count: INTEGER;
  4. векторСтраниц: ВекторСтраниц;
  5. ш : INTEGER;
  6. BEGIN
  7. count := (будетДлина DIV размерСтраницы + 1);
  8. IF count > LEN(сп.векторСтраниц) THEN
  9. ш := шагРостаВектораСтраниц;
  10. NEW(векторСтраниц, count DIV ш * ш + ш);
  11. FOR i := 0 TO LEN(сп.векторСтраниц) - 1 DO векторСтраниц[i] := сп.векторСтраниц[i] END;
  12. сп.векторСтраниц := векторСтраниц END;
  13. FOR i := сп.используетсяСтраниц TO count - 1 DO NEW(сп.векторСтраниц[i], размерСтраницы) END;
  14. IF count > сп.используетсяСтраниц THEN сп.используетсяСтраниц := count END
  15. END ДобавьСтраницЕслиНадо;
  16.  
Есть же сборки блекбокса с русскоязычным синтаксисом, почему не возьмёшь их?

Автор:  budden [ 01 янв 2019, 19:35 ]
Заголовок сообщения:  Re: мои контейнеры

Перевод можно и потом сделать. Ключевых слов мало и они и так понятны. Зато этот код компилируется в любой другой сборке тоже. Главное - это предметная область.

Страница 1 из 1 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/