Болталка PascalABC.NET

Дело в том, что функцию random перекрывает класс System.Random ибо Вы в начале файла у Вас uses System. Дабы избежать такого поведения можно повысить приоритет системной подпрограммы, прописав uses PABCSystem после implementation. Либо можно явно обращаться к функции из системного модуля PABCSystem.random(5, 14);

UPD: @Admin я думаю часть сообщений имеет смысл перенести куда-нибудь

Да, получилось, спасибо.

Так же можно сказать, что и просто readln/writeln не рассматриваются. Кому надо ответ - смотрите результат в отладчике. Задача школьная, но я решаю её так чтобы потом было удобно пользоваться решением, если действительно понадобится решать много квадратных уравнений, а не просто написать, показать учителю и забыть.

Но это на самом деле не такая уж и проблема. Проблема в неработе программ, которые используют модули вроде Graph. А писать код можно и без IDE.

А ещё есть множество тонкостей, связанных с отличием ввода-вывода. Будет ли программа собранная ABC в линуксе выводить концы строк с CR LF или с LF по оператору writeln, например?

Переварит ли компилятор ABC исходный код в ASCII без BOM и с однобайтными переводами строки?

Только нормального ответа нету. Вы просто говорите “ставьте дома pabc” и всё, без вариантов. А добавить совместимости хотя бы до того, чтобы пример с квадратным уравнением выше можно было написать портабельно…

Не уловил связь. Можете пояснить?

Угу. А я пишу крестики-нолики с ООП, DI, логированием и WPF. На очереди Web, в частности APS, потом Android. Задача школьная? Школьная. Просто я решаю её так, чтобы потом было удобно пользоваться решением

Ой, а разве это всё нужно в школе?..

Варианты? Не вопрос:

  1. Пишите на fpc (и договоритесь с учителем)

  2. Пишите на другом языке (не на паскале, см. пункт первый)

  3. Можно поставить pabc на удалённой виртуалке

  4. Можно писать программы у друга (или в школе (или в библиотеке))

  5. Можно не писать программы ¯\(ツ)

Вы подтасовываете факты уже. Ввод/вывод рассматривается всегда и везде

графика, как я понял, начнёт работать под linux вместе с ide

так для вывода используются методы .net. соответственно как оно работает в .net, так оно будет работать и в pabc

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

а какие должны быть варианты? человек сам себе создаёт проблемы, а все должны ему с ними помогать? :thinking:

в этой процедуре неограниченное количество out-параметров, на подобии read. компилятор такое разворачивает в несколько read вместо одного общего, если я не ошибаюсь

Ой, сомневаюсь. Если не изменяет память, Graph написан на Win forms, GraphWPF - WPF соответственно. И тот, и другой windows-only

https://t.me/c/1355338635/3465

2 лайка

Ничего я не подтасовываю. Я просто говорю, что если ввод с stdin рассматривается, то что плохого в рассмотрении и параметров командной строки? Их задавать удобнее.

Ну и если вывод в stdout рассматривается, то почему бы не рассмотреть и вывод в stderr?

Ну я же говорил какие. И почему вы говорите, что проблемы создаёт себе сам человек, если он напротив эти проблемы, навязанные ему извне, пытается решить?

То что перечислено у вас — вероятно, нет. А чтение параметров командной строки и вывод в stderr — это достаточно базовые вещи и я не вижу причин почему бы это не изучать в школе, раз уж stdin и stdout изучают.

Я вас разочарую (как и меня десять лет информатики в школе), но практические знания на уроке даются никакие. На личном опыте, всё, что я умел бы, не выходя за материалы урока, это что-то там слепить на Скретче (удивительно отличный язык для программирования для этапа начальной школы), нарисовать циклическую фигуру в Лого и запустить какую-нибудь программу на Паскале, несущую нулевую практическую ценность (если, например, говорить про параметры командой строки и вообще запуск вне оболочки). Как видите, проблема явно не в PascalABC.NET. Будь у меня любая другая среда, ничего бы не изменилось, уверен.

Так что проблема явно не в том, на каком языке вы будете читать аргументы - на классическом ли Паскале, или на Паскале# - проблема в том, что вам никто не скажет, что есть, оказывается, какие-то аргументы

P.S. Ладно, про отсутствие изменений в другой среде наврал. Именно справка PascalABC.NET в девятом классе выбила меня из проторенной колеи

P.P.S. Ой, простите, забыл. Я бы ещё умел решать задания ЕГЭ на питоне (и то не факт, у нас и некоторые сдающие так и не смогли :confused:)

ничего плохого, но их не рассматривают. по этому в рамках данной дискуссии они не имеют никакого значения

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

опять же повторяюсь, что проблем, связанных с работой под linux, вероятно, в скором времени не станет

а домашнее, связанное с написанием кода бывает вообще? а то у нас, например, задавали максимум операторы повторить. так что проблем, связанных с установкой чего-либо и в помине не было))

Хм. Уже и не вспомню

Если класса до девятого, то какая разница, напишу я сортировку пузырьком (тема одиннадцатого класса, ага, очень сложно) в школе или дома. А потом мне было просто смешно делать то, что называлось заданием

Такое впечатление, что всё это происходит в Европарламенте, а не на российском форуме по программированию.

Writeln(ErrOutput, 'abc');
Println(ErrOutput, 'def');

А вообще всегда было Console.Error.

В первую очередь читается через System.Environment.CommandLine (исходные текст, которым программа была запущено) и System.Environment.GetCommandLineArgs (разделённые пробелами, но с учётом ковычек).

Так же есть паскалевская функция CommandLineArgs, копирующая функционал последнего, но без имени исполняемого файла в начале.

Телеграм канал? Я что то пропустил???

И про IDE для линукса я последнее время слышу, но от разработчиков ничего не видел. Это там получается?

Да, пропустили. Вот сегодня удалось Интеллисенс для Линукса оживить. Смотрите - вот пример запуска в Альт Линукс, распространенном в школах:

Но на гитхабе этого всего вроде нету… Можно ли как то попробовать под арчем?

А вот и графика, про которую злые языки говорят, что у нас её под Линуксом нет:

Можно. Пока такая ссылка: pascalabc.net/downloads/Linux/pascalabcnet4.zip

Можно даже в доработке поучаствовать ))) Если будет желание - выложу на Github

ага. ну там больше собрались люди после конференции. но вот и такие эксклюзивы появляются :grinning:

Что-то не запускается под mono. Или нужно что-то хитрое с этим делать, а просто mono bin/PascalABC.exe недостаточно?

Вылезает какой-то exception на два экрана, но я его не записал.

Пока собираем информацию. На четырех линуксах при правильно установленном mono всё запускается. Надо устанавливать mono-complete. И в некоторых Linux mono-locale-extras.

А без ошибки трудно понять, какие пакеты у вас не установлены или какие права на папки у вас не выставлены