Написать процедуру, которая складывает два рациональных числа - Turbo Pascal

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

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

2) Для комбинированного типа
Листинг программы
  1. type
  2. drob=record
  3. ch:integer;
  4. zn:1..maxint
  5. end;
  6. var
  7. massiv=array[q..20] of drob;
написать процедуру p(c,a:drob; var b:drob), которая складывает рациональные числа a и b и присваивает их сумму рациональному параметру с.

Решение задачи: «Написать процедуру, которая складывает два рациональных числа»

textual
Листинг программы
  1. type
  2.   natur = 1..maxint;{натуральные числа из диапазона integer}
  3.  
  4. type
  5.   drob = record
  6.     ch: integer;
  7.     zn: natur;
  8.   end;
  9.  
  10.  
  11. function NOD(m, n: natur): natur;{наибольший общий делитель}
  12. begin
  13.   while m <> n do
  14.     if m > n then
  15.       m := m - n
  16.     else
  17.       n := n - m;
  18.   NOD := m;
  19. end;
  20.  
  21. var
  22.   z, x, y: drob;
  23.   a, b, c, d: natur;
  24.   e, f: natur;
  25.   kr: natur;
  26.  
  27. procedure SumDrob(x, y: drob; var z: drob);
  28. begin
  29.   z.ch := x.ch * y.zn + x.zn * y.ch;{числитель}
  30.   z.zn := x.zn * y.zn;{знаменатель}
  31.   kr := NOD(z.ch, z.zn);{нод}
  32.   z.ch := z.ch div kr;{сокращаем дробь}
  33.   z.zn := z.zn div kr;
  34. end;
  35.  
  36. begin
  37.   writeln('Введите 4 натуральных числа-числители и знаменатели 2х дробей:');
  38.   repeat
  39.     readln(a, b, c, d);
  40.   until(a > 0) and (a <= maxint) and (b > 0) and (b <= maxint) and
  41.        (c > 0) and (c <= maxint) and (d > 0) and (d <= maxint);
  42.   x.ch := a;
  43.   x.zn := b;
  44.   y.ch := c;
  45.   y.zn := d;    
  46.   sumdrob(x, y, z);      
  47.   write('Сумма дробей ', x.ch, '/', x.zn, ' + ', y.ch, '/', y.zn, ' = ', z.ch, '/', z.zn);
  48.   readln
  49. end.

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

  1. Создаём тип данных natur, который представляет натуральное число из диапазона integer.
  2. Создаём тип данных drob, который представляет дроби с двумя числами: числитель (ch) и знаменатель (zn).
  3. Определяем функцию NOD, которая вычисляет наибольший общий делитель двух чисел.
  4. Объявляем переменные z, x и y типа drob, а также a, b, c и d типа natur.
  5. В цикле повторяем, пока не будут введены корректные числа.
  6. Задаем значения числителей и знаменателей для переменных x, y и z.
  7. Вызываем процедуру SumDrob, передавая в неё переменные x, y и z.
  8. Выводим результат на экран.
  9. Ждем ввода пользователя.

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы