Паскаль, выдает на тестах ошибки. Ошибки с типами

Паскаль, выдает на тестах ошибки. Ошибки с типами
Итак, доброе утро. Представьте вы создали программу какую-нибудь, в ней забивается из input.txt, например, два числа и в итоге в файл output.txt появляется ответ от, к примеру, сложения этих чисел. Вводимые переменные типа longint. Вы послали данную программу на тесты. Вроде бы все хорошо идет когда вводят значения маленькие (трехзначные), а вот на пятизначные вопросы выводит неправильные ответы. И девятизначные такая же фигня. Почему это может происходить. Напоминаю, longint переменные ввода. Может быть вывод тоже должен быть такой же (я вводил обычный integer)? А какой у real "старший брат"?

  • Если слагаемые longint, то и вывод, естественно, должен быть longint.
    Тип real в разных реализациях разной точности. Но можешь использовать double, точность real меньше или равна точности double.
  • Результат сложения целых чисел будет больше, чем каждое из слагаемых, поэтому тип результата должен иметь диапазон, как минимум, не меньший, чем у слагаемых.
    Если я правильно понимаю, у переменных целого типа диапазон -32768..32767, у длинного целого: -2147483648..2147483647.
    Если слагаемое соответствующего типа превышает максимальное значение своего диапазона, происходит целое арифметическое переполнение. Паскаль обычно отрабатывает его молча (не выдавая сообщений об ошибках) .
    Например:
    var x: integer;
    begin
    x:=32767;
    writeln(x+1); // будет выведено число -32768
    ...
    Самый длинный вещественный тип Паскаля называется Extended.
    Кстати, несмотря на длину в 10 байт, процессор обрабатывает данные типа Extended быстрее, чем данные всех остальных вещественных типов.