Поздравляю. Вы будете переписывать и отвечать за? А если нет, то кто?
У меня есть личный опыт. Он плохой. Я переписывал код. Из книги типа Форсайта. Сделал ошибку. Ошибка была в коде три года. Проявлялась не всегда.
Потом анализировал, почему сделал ошибку. Вот, программировал поздно вечером, внимание было утрачено - и… Поэтому тут я не верю в свои силы - в уже написанный и проверенный код верю гораздо больше.
И потенциальные пользователи, думаю, будут со мною солидарны.
Полностью согласен.
Я могу, если в этом есть смысл и переписать, и ответить. Но лишь за то, что портированный в PascalABC.NET код эквивалентен исходному на уровне языка. За работу компилятора и откомпилированной программы, а также за корректность исходного кода отвечать, естественно, я не могу. А ответственности я не боюсь. За свою жизнь примерно лет так 30 работал в условиях личной ответственности за свою работу, когда можно было легко попасть “под статью” и даже под очень нехорошую, когда вылететь с работы “с волчьим билетом” - это еще лучший исход…
Знаете, когда тебя вызывают в советскую спецчасть оборонного завода и спрашивают, почему после ночной работы на их ВЦ перестала работать программа разузловки некоего техпроцесса… тут не до смеха.
Если сто программ переписать - да. Если пару десятков и переработать под удобный интерфейс - why not?
Можете, а хотите? Ну или будете? А если да, то разработчики Вас встретят с распростертыми объятиями. Тогда в чем вопрос? Вперед!
У меня тоже есть личный опыт. Хороший, ибо иначе не могло быть - за это деньги платили))) Мы по договору перерабатывали практически все прикладное программное обеспечение НПО “Магнит” (г. Новочеркасск") с языка Кобол на PL/1 с учетом изменения некоторых спецификаций. АСУ целого завода! И ничего, за 8 месяцев справились группой из двух человек.
Вообщем, я библиотеку Вашу приму. Может, что попрошу скорректировать. Просто это большой труд.
И тогда - была разница. За деньги и по спецификации.
Собственно, все шло к тому, чтобы выяснить, как проще: одна мегабиблиотека в стиле uses StudLib или множественное uses Fraction; uses Matrix; uses Polinomial; uses МногоЕщеЧто;
begin
// создали матрицу
var a:=new integer[3,3] ((1,2,3), (4,5,6), (7,8,9));
// что-то с ней сделали
a.Println(2);
// а теперь надо вместо нее заполнить матрицу 2х4
Writeln;
a:=MatrGen(2,4,(i,j)->Arr(1,2,3,4,5,6,7,8)[4*i+j]);
a.Println(2);
end.
Есть ли какой-нибудь более элегантный способ переопределить и переинициализировать массив? Если нет, то быть может, нужно сделать Matr() по образу и подобию Arr() ?
А нельзя снова new integer?
Может и можно, но это как-то некрасиво, если нужно делать много раз. Например, в программе тестирования, когда многократно требуются наборы массивов с разными размерами и содержимым. Я помню, конечно, про автоматическую сборку мусора, но хорошо ли так активно его плодить?
Т.е. если Вы, как Разработчик, поощряете подобный стиль программирования, буду его использовать:
begin
var a:=new integer[3,3] ((1,2,3), (4,5,6), (7,8,9));
a.Println(2); Writeln;
a:=new integer[2,4] ((1,2,3,4),(5,6,7,8));
a.Println(2); Writeln;
a:=new integer[3,2] ((1,2),(3,4),(5,6));
a.Println(2)
end.
А с другой стороны, ведь когда пишется что-то типа [quote=“RAlex, post:253, topic:143”] a:=MatrGen(2,4,(i,j)->Arr(1,2,3,4,5,6,7,8)[4*i+j]); [/quote]
все равно фактически происходит то же самое: создается новый массив и старая ссылка на прежний массив утрачивается, попадая в объятия к сборщику мусора.
Да, именно так. Я рекомендую инициализировать повторно. Активная сборка мусора - это нормально
Всё дело в том, кто ставит систему на ПК, любой нормальный системщик никогда не поставит чистую Винду, он всегда отключит всё гавно из неё и поставит нормальный софт с драйверами.
При создании возвращающей массив функции, при условии, что все манипуляции с результатом проводились с использованием других процедур, компилятором выводится предупреждение, что якобы возвращаемое значение не определено. Если я все правильно понял, то этот недочет нужно исправить.
Появилось очередное изменение, посмотрел на GitHub, думал, что-то интересное, а вышло что забавное: @ibond сделал “украинскую локализацию”. Видимо из-за запрета на Украине русского языка)) Надо ли ждать в дальнейшем казах тили, беларускую мову, а также, несомненно, катакану?
Мы пока думаем, надо ли оставлять украинскую локализацию в инсталляте или сделать внешний пак и разместить на сайте. А то как-то странно выглядит: украинский, русский и английский. Если бы было много, тогда понятно.
А история украинской локализации проста. Её сделал один украинский преподаватель и прислал нам. http://computer-science.in.ua/2017/07/16/ukrajinizacija-pascalabc-net/
Ещё в разные времена мне предлагали сделать локализацию на немецком и казахском, но к сожалению, кроме намерений я ничего не получил.
Так это только инсталлятор… я-то подумал, что локализация полной будет. Подсказки, сообщения об ошибках…