Добрый вечер,
Я только начал изучать Кобол, и на практике я хотел запрограммировать простую программу умножения, работающую с двумя десятичными числами, заданными пользователем.
Итак, я написал следующее
IDENTIFICATION DIVISION.
PROGRAM-ID. exo.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 a PIC 9(2)V9.
77 b PIC 9(2)V9.
77 result PIC 9(4)V99.
screen section.
1 pla-title.
2 blank screen.
2 line 1 col 1 value 'Multiplication'.
1 pls-numbers.
2 line 4 col 2 value 'Number 1 : '.
2 PIC 9(2)V9 to a required.
2 line 5 col 2 value 'Number 2 : '.
2 PIC 9(2)V9 to b required.
1 pla-result.
2 line 7 col 2 PIC 9(2)V9 from a.
2 col 7 value 'x'.
2 col 9 PIC 9(2)V9 from b.
2 col 13 value '='.
2 col 15 PIC 9(4)V99 from result.
PROCEDURE DIVISION.
display pla-title.
accept pls-numbers.
compute result = a * b.
display pla-result.
END PROGRAM exo.
Проблема здесь не в части умножения, которая работает идеально. Проблема заключается в вводе. Каждый раз, когда я нажимаю клавишу Tab или ввод, в конце добавляется 0. Например, введя 9,9,9, tab, 9,9,9, введите умножение 900 на 990, поскольку формат принимает только три последние цифры 99900 (табуляция + ввод) и 9990 (ввод).
Я пробовал ту же программу с целыми числами, она отлично работает. Я попробовал то же самое с реальными десятичными числами (9 (2) .9), и ввод работает, но у меня есть проблема с умножением (не числовое значение), которое я попытаюсь понять позже, одна проблема в то время .
Короче говоря, вопрос заключается в том, чтобы узнать, почему ввод изменяется, набрав tab и введите, что, в моем понимании, используется для навигации по полям принятия.
Большое спасибо за вашу помощь!