Написать процедуру, которая складывает два рациональных числа - Turbo Pascal
Формулировка задачи:
2) Для комбинированного типа
написать процедуру p(c,a:drob; var b:drob), которая складывает рациональные числа a и b и присваивает их сумму рациональному параметру с.
Листинг программы
- type
- drob=record
- ch:integer;
- zn:1..maxint
- end;
- var
- massiv=array[q..20] of drob;
Решение задачи: «Написать процедуру, которая складывает два рациональных числа»
textual
Листинг программы
- type
- natur = 1..maxint;{натуральные числа из диапазона integer}
- type
- drob = record
- ch: integer;
- zn: natur;
- end;
- function NOD(m, n: natur): natur;{наибольший общий делитель}
- begin
- while m <> n do
- if m > n then
- m := m - n
- else
- n := n - m;
- NOD := m;
- end;
- var
- z, x, y: drob;
- a, b, c, d: natur;
- e, f: natur;
- kr: natur;
- procedure SumDrob(x, y: drob; var z: drob);
- begin
- z.ch := x.ch * y.zn + x.zn * y.ch;{числитель}
- z.zn := x.zn * y.zn;{знаменатель}
- kr := NOD(z.ch, z.zn);{нод}
- z.ch := z.ch div kr;{сокращаем дробь}
- z.zn := z.zn div kr;
- end;
- begin
- writeln('Введите 4 натуральных числа-числители и знаменатели 2х дробей:');
- repeat
- readln(a, b, c, d);
- until(a > 0) and (a <= maxint) and (b > 0) and (b <= maxint) and
- (c > 0) and (c <= maxint) and (d > 0) and (d <= maxint);
- x.ch := a;
- x.zn := b;
- y.ch := c;
- y.zn := d;
- sumdrob(x, y, z);
- write('Сумма дробей ', x.ch, '/', x.zn, ' + ', y.ch, '/', y.zn, ' = ', z.ch, '/', z.zn);
- readln
- end.
Объяснение кода листинга программы
- Создаём тип данных
natur
, который представляет натуральное число из диапазона integer. - Создаём тип данных
drob
, который представляет дроби с двумя числами: числитель (ch) и знаменатель (zn). - Определяем функцию
NOD
, которая вычисляет наибольший общий делитель двух чисел. - Объявляем переменные
z
,x
иy
типаdrob
, а такжеa
,b
,c
иd
типаnatur
. - В цикле повторяем, пока не будут введены корректные числа.
- Задаем значения числителей и знаменателей для переменных
x
,y
иz
. - Вызываем процедуру
SumDrob
, передавая в неё переменныеx
,y
иz
. - Выводим результат на экран.
- Ждем ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д