Я новичок в Pascal, и я пытаюсь написать простую программу, но проблема с передачей значений между функциями. Это небольшая часть того, что у меня есть:Поддерживает ли Pascal передачу параметров в функции?
program numberConverter;
const
maxValue = 4999;
minValue = 1;
var num: integer;
function convertNumeral(number: integer):string;
var j: integer;
begin
if ((number < minValue) OR (number > maxValue)) then
begin
writeln(number);
writeln('The number you enter must be between 1 and 4999. Please try again:');
read(j);
convertNumeral := convertNumeral(j);
end
else
if (number >= 1000) then
convertNumeral := 'M' + convertNumeral(number -1000)
{more code here, left it out for space}
end;
begin
writeln;
writeln('Enter an integer between 1 and 4999 to be converted:');
read(num);
writeln;
writeln(num);
writeln(convertNumeral(num));
end.
Моя проблема заключается в том, что значение из WriteLn (converNumeral (Num)), в основном, «Num», не получает передается функции convertNumeral и было интересно, если Паскаль даже это делает. Я считаю, это потому, что я не объявлял число переменной, но когда я это сделаю, я получаю ошибку компиляции, что он не может завершить второй оператор if. Спасибо за ваше время.
не может видеть из этого кода, не связанный с вопросом. PS тест от 1 до 4999 за пределами функции, делая это внутри, а затем просят другого, если это не очень очень плохо. Функции должны делать одно. –
@ Тони Это то, что я закончил делать, создав вспомогательный метод тестирования, решив проблему. – gestalt
Имеет смысл взломать фрагмент кода, который делает слишком много вещей в одноцелевые функции, часто обнаруживает ошибки и недостатки в реализации. Сделайте это привычкой, он будет стоять на хорошем месте. Если есть stuuf, который можно оптимизировать с помощью inlining, компилятор сделает это за вас. Всегда выбирайте для понимания. –