Болталка PascalABC.NET

Программа для решения квадратного уравнения — это не школьная задача? Мне казалось что на примере такой программы часто и разбирают простейшие конструкции языка программирования. Следующий шаг после hello world, в общем.

Почему вы так думаете? Установка и эксплуатация Linux не сложнее чем Windows. Конечно использование его коррелирует с большей компьютерной грамотностью, но вовсе не обязательно с ней сопряжено. Например школьнику мог линукс посоветовать одноклассник и записать на флешку или дать диск.

Работа с аргументами командной строки явно в ней не рассматривается. Разграничение потоков ввода/вывода тоже вряд ли где-то обозначивается.

Хотя я уже немного начинаю путаться какую проблему мы тут обсуждаем. Раз всё сводится к школьникам, то единственная проблема – отсутсвие ide на данный момент. Если ide будет, то все остальные проблемы по-моему надуманы. Та ситуация, когда человека учат pabc, а он носит в школу код на fpc уже обмусолена. Зависимости тоже не проблема. Сейчас установщик под win подтягивает .net fw самостоятельно, если я не ошибаюсь. На linux, вероятно, будет подтягивать mono

Дискуссия закончится полной победой Питона над всеми паскалями. Там есть PEP-8 - и никаких дискуссий.

Питон 2 умер, остался единственный Питон. fpc и pabc хотят убить друг друга.

Я надеюсь, что школьники и учителя оценят проблемы с паскалями и сделают правильный выбор.

Как здорово, что на этом форуме собрались адепты всех религий. А форум-то НАШ :smile:

школьники и в школе ничем не пользуются.

:slight_smile: Они и так все на Windows сидят

Дорогие коллеги. Хочу узнать, почему в WindowsForm не работает random (хот какой). Говорит, что “Unit1.pas(27) : У операции преобразования типов допустим только один параметр”.

Ну во-первых, Вы не в ту тему всё таки пишите. Во-вторых, хотя бы код покажите

Да, я просто из последних своих ответов продолжаю. На счет примера, вот простой проект. Project37.rar (8.2 КБ)

Дело в том, что функцию 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, вероятно, в скором времени не станет

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

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

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