Помощь новичкам

Подключайте SFML.Net через $reference и не парьтесь. Подключение неуправляемых .dll - это задача не для новичков. Надо, по крайней мере, опыт с C++ иметь.

О, огромное спасибо.

Напишите, пожалуйста, как получить псевдослучайное вещественное число в диапазоне [a,b]. А то в паскале есть только function Random(a, b: real): real;, которая “возвращает случайное вещественное в диапазоне [a,b)”.

А в чём, по вашему, разница? То есть для целых разница хоть заметна, но для вещественных?

Как следующий отрывок кода (возможно, из C#) написать на паскале и что присваивается переменной?

float max = Enumerable.Sum<SubsystemTreasureGeneratorBlockBehavior.TreasureData>(SubsystemTreasureGeneratorBlockBehavior.m_treasureData, (SubsystemTreasureGeneratorBlockBehavior.TreasureData t) => t.Probability);

Я могу начать, но как продолжить — не знаю:

var max: single := ...

Может быть, там суммируются вероятности? У меня есть статический массив с вероятностями. Тогда можно написать

var max: single;
foreach var a in Probability do max += a;

Не похоже. По крайней мере если писал не извращенец. .Sum вызывается на много проще. И, при чём, так же как в паскале:

var max := SubsystemTreasureGeneratorBlockBehavior.m_treasureData.Sum(t->t.Probability);

Тут надо конечно max инициализировать нулём. И использовать тип real - float там от лукавого

Очередное летнее задание, хотя бы немного интересное и с элементами криптографии:

*Текстовый файл переписать не слева-направо, а сверху-вниз до 50 символов в каждом столбце. Другими словами, нужно транспонировать текст.

Я предложил ученице самое простое решение - использовать массив строк (или файлов), куда добавлять очередной символ по индексу X mod 50. Учитель засчитал решение, опираясь только на результат исполняемого файла! То есть, если прислать какой-то код и вообще другой ЕХЕ-файл выдающий ожидаемый результат, то код даже не проверяется - зачёт.

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

Что мешает разместить текст в матрице и транспонировать ее посредством Transpoze ? Есть Batch, позволяющий нарезать массив дольками, например, по 50.

1 лайк
var a := ReadAllLines(fname).Select(s->s.PadLeft(100).ToCharArray) - и массив массивов готов
var b := MatrByCol(a)

И потом считывать по строкам

1 лайк

У нас в лаборатории часто менялись программисты, поэтому не удивительно, что программы написаны на Си, на «плюсах», Python, Delphi, VB, VB .NET и что-то ещё. Большинство из них в общем хранилище создают тестовые или бинарные файлы для обмена данными, есть и SQL, а некоторые ждут буфер обмена с сигнатурой от другой программы в реальном времени.

Планирую попрактиковаться в переписи исходников и стандартизации на платформе .NET, но возник вопрос:

Как лучше реализовать обмен данными между разными приложениями хотя бы на одной машине, учитывая возможные отличия запуска х32/х64: клиент-сервер, WCF, сообщения, файл-меп и память-меп, IPC, именованные каналы, виртуальные TCP, что ещё или оставить бинарные?

Админ говорит, что при записи до 10000 целых чисел в секунду с допустимой задержкой 2-5 секунд не нужно тратиться на синхронизацию и подойдёт даже XML. А мне нужно контрольное мнение и, возможно, свежая идея, которую можно реализовать на PascalABC . NET.

Спасибо.

На одной машине передавать всегда надо через System.IO.Pipes, а между несколькими компами - System.Net.Sockets.
Буфер обмена и файлы на диске это костыли, которые много как могут сломаться.

А насчёт формата - полностью зависит от данных. И от вас.
Ручной бинарный формат будет всегда быстрее и эффективнее любого другого (кроме случая с чисто текстовыми данным), но если вы передаёте не мегабайты данных - пересылайте как вам удобнее.

1 лайк
  • Кнопка “Перекомпилировать все” компилирует все модули, если открыт модуль проекта, и просто компилирует открытый файл, если он не входит в проект?
  • Как пользоваться кнопкой “Запустить модульные тесты”?

Наберите программу begin end. и запустите модульные тесты - там подскажут. Ещё почитайте, что такое NUnit и модульное тестирование

  • А что насчёт кнопки “Перекомпилировать все”?
  • Как в паскале преобразовать число с основанием a в число с основанием b?

Надо, для начала, понимать, что когда число представлено в виде именно числа (как integer) - у него нет основания. Система исчисления это только способ записи чисел в виде строки.

Поэтому стандартные методы для работы с разными СС описаны как часть преобразования между строками и числами, в классе System.Convert.

  • Что компилирует кнопка “Перекомпилировать все”?
  • Мне нужно вывести число типа integer в двоичной системе счисления, но мне будет полезно узнать, как вывести число определённого типа в определённой системе счисления.

Я уже сказал где искать, откройте IDE и листайте список методов и их перегрузок, читайте описания. Их там не так много.

uses School;

begin
  Bin(364353746).Print
end.

Кто-нибудь, ответьте, пожалуйста, на вопрос: в чём отличие между действием кнопок “Компилировать” (“Build”) и “Перекомпилировать все” (“Rebuild”)? Единственное, что я нашёл — это https://github.com/pascalabcnet/pascalabcnet/blob/c87fe31ff4cb7dbd4141cfaea41316799ef417e6/Compiler/Compiler.cs#L2675, но там я вряд ли что-то пойму.