Неправильный вывод результата - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Мне задали задачу по информатике: дано выражение (x1+n1/z1)+(x2+n2/z2). вывести результат в виде x+n/z. Код ниже. При вводе 4 1 2 3 1 3 выдаёт 7 2 6, а не 7 5 6. Исправьте пожалуйста и объясните, почему неправильный вывод.

Решение задачи: «Неправильный вывод результата»

textual
Листинг программы
function nod(a, b: integer): integer;
begin
  repeat
    if a > b
      then a := a mod b
      else b := b mod a
  until (a = 0) or (b = 0);
  nod := a + b
end;
 
var
  x, x1, x2, n, n1, n2, z, z1, z2, d: integer;
begin
  readln(x1, n1, z1, x2, n2, z2);
  x := x1 + x2;
  n := n1 * z2 + n2 * z1;
  z := z1 * z2;
  d := nod(n, z);
  n := n div d;
  z := z div d;
  x := x + n div z;
  n := n mod z;
  write(x, '+' , n, '/' ,z);
  readln
end.

Объяснение кода листинга программы

  1. Введенные данные: x1, n1, z1, x2, n2, z2.
  2. Вычисление суммы x1 и x2.
  3. Вычисление произведения n1 и z2, а также произведения n2 и z1.
  4. Вычисление остатка от деления n на z.
  5. Вычисление произведения n и z.
  6. Вычисление остатка от деления n на z.
  7. Вычисление суммы n и z.
  8. Вычисление остатка от деления n на z.
  9. Вывод на экран значений x, n, z.
  10. Чтение данных с экрана.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы