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

Есть ли какой-нибудь способ сделать такое, раз уж компилятор отказывается принимать присваивание после params?

%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B94

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

Нет, никак

1 лайк
  1. Это не нужно, в params можно передать 0 элементов и получите массив из 0 элементов в подпрограмме, ничего там не надо присваивать.

  2. Если так уж надо было бы - через отдельную перегрузку.

  3. Вложенные external подпрограммы сломаны в данный момент:
    https://github.com/pascalabcnet/pascalabcnet/issues/2075

И это опять Колян.

PascalABCCompiler.Core v3.5.0.2217 (27.07.2019), debug version
Runtime version: 4.0.30319.42000
OS version: Microsoft Windows NT 6.1.7601 Service Pack 1
Processor count: 2
WorkingSet: 93436 kb

Имеется вот такой вот прекрасно работающий код - https://www.yadi.sk/d/NHPIhXkgWhWGFA

Компилирую всегда через Ctrl+F9.

При его компиляции происходит вот это:

%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9

Строк на самом деле всего ВОСЕМЬСОТ30, а пишет что их ДЕВЯТЬСОТ30 - что это за свистопляска?

При компиляции через кнопку “Компилировать” - точно такой же результат.

Нет, не работающий, потому что вы не предоставили модуль.
Модуль, в котором наверняка и потерялись те 100 строк.

И обратите внимание, когда .pcu есть - компилятор перекомпилирует только то, что использованно в программе, а не весь модуль. Поэтому даже если тот модуль больше, но используется только 100 строк - это тоже объяснение.

Если .pcu не откомпилированы, количество строк модуля прибавляется к общему количеству строк

1 лайк

Здравствуйте, а что случилось с сайтом pascalabc.net ?

Захожу с других компов, с телефона, с другого IP - тот же самый результат.

Просто лежит, ничего нового…

Может кто пояснить, что я делаю не так?

Программа работает только без связи с оболочкой. Что делать?

@Nikfus, всё так. Программа ожидает ввода.

Так она же должна вывести “Введите температуру (в цельсиях):”. А делает она это только в КС. В самом Паскале даже через Writeln ничего не выводит.

Судя по скриншотам Вы не ввели ничего. Она не может продолжить выполнение, до тех пор пока Вы не введёте число типа real.

Не. Вы не поняли. На первом скриншоте программа уже запущена, а в окне вывода - ничего. На втором - запущена без связи с оболочкой и она уже что-то выводит.

Могу ПриветМир написать для наглядности.

begin
  var t := ReadReal('Введите температуру в цельсиях:');
  var res := t * 9/5 + 32;
  Println($'{t} градусам по Целью соответствует {res} по Фарингейту');
end.

У меня всё работает.

По поводу возможных рефакторингов кода:

  • В переменную res результат вычислений выносить было не обязательно. Конечно, при учёте того, что он в дальнейшем не понадобится.
  • Можете использовать интерполированные строки (выше пример) вместо передачи нескольких параметров в Print.

Не помогло. Попробую переустановить.

Запишите видео и пришлите сюда. По описанию ошибки(?) я не могу понять ничего. Пока моё мнение таково: Вы делайте что-то не так.