Подключайте 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.
var a := ReadAllLines(fname).Select(s->s.PadLeft(100).ToCharArray) - и массив массивов готов
var b := MatrByCol(a)
И потом считывать по строкам
У нас в лаборатории часто менялись программисты, поэтому не удивительно, что программы написаны на Си, на «плюсах», Python, Delphi, VB, VB .NET и что-то ещё. Большинство из них в общем хранилище создают тестовые или бинарные файлы для обмена данными, есть и SQL, а некоторые ждут буфер обмена с сигнатурой от другой программы в реальном времени.
Планирую попрактиковаться в переписи исходников и стандартизации на платформе .NET, но возник вопрос:
Как лучше реализовать обмен данными между разными приложениями хотя бы на одной машине, учитывая возможные отличия запуска х32/х64: клиент-сервер, WCF, сообщения, файл-меп и память-меп, IPC, именованные каналы, виртуальные TCP, что ещё или оставить бинарные?
Админ говорит, что при записи до 10000 целых чисел в секунду с допустимой задержкой 2-5 секунд не нужно тратиться на синхронизацию и подойдёт даже XML. А мне нужно контрольное мнение и, возможно, свежая идея, которую можно реализовать на PascalABC . NET.
Спасибо.
На одной машине передавать всегда надо через System.IO.Pipes
, а между несколькими компами - System.Net.Sockets
.
Буфер обмена и файлы на диске это костыли, которые много как могут сломаться.
А насчёт формата - полностью зависит от данных. И от вас.
Ручной бинарный формат будет всегда быстрее и эффективнее любого другого (кроме случая с чисто текстовыми данным), но если вы передаёте не мегабайты данных - пересылайте как вам удобнее.
- Кнопка “Перекомпилировать все” компилирует все модули, если открыт модуль проекта, и просто компилирует открытый файл, если он не входит в проект?
- Как пользоваться кнопкой “Запустить модульные тесты”?
Наберите программу 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, но там я вряд ли что-то пойму.