Вопрос задан 03.08.2023 в 10:09. Предмет Информатика. Спрашивает Акопова Марина.

Напишите пожалуйста программу сложения двух дробей, результатом должна быть сократимая дробь

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сальников Вадим.
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

function NOD(a,b:integer):integer;
begin
  while b>0 do (a,b):=(b,a mod b);
  Result:=a
end;

procedure FracAdd(n1,d1,n2,d2:integer; var n,d:integer);
// сложение дробей n1/d1 + n2/d2 = n/d
begin
  (n,d):=(n1*d2+n2*d1,d1*d2);
  var k:=NOD(n,d);
  if k<>1 then (n,d):=(n div k,d div k)
end;

begin
  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1й дроби:');
  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2й дроби:');
  var m,n:integer;
  FracAdd(a,b,c,d,m,n);
  if n=1 then Writeln('Сумма=',m)
  else Writeln('Сумма=',m,'/',n)
end.

Пример
Введите числитель и знаменатель 1й дроби: 6 15
Введите числитель и знаменатель 2й дроби: 12 300
Сумма=11/25

Замечание: вводить только натуральные числа!
0 0
Отвечает Пестрякова Мария.
Program nd;
function nod(n,m: integer): integer;
begin
while(n<>0) and (m<>0) do
begin
if n>=m then n:=n mod m else m:=m mod n;
end;
nod:=m+n;
end;
var m1,m2,n1,n2,t,ch,zn: integer;
begin
write('введите числитель и знаменатель 1 дроби через пробел: ');
readln(m1,n1);
write('введите числитель и знаменатель 2 дроби через пробел: ');
readln(m2,n2);
ch:=(n2*m1+m2*n1) div nod(n2*m1+m2*n1,n1*n2);
zn:=(n1*n2) div nod(n2*m1+m2*n1,n1*n2);
write(m1,'/',n1,' + ',m2,'/',n2,' = ');
if zn=1 then write(ch) else write(ch,'/',zn);
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно! Вот пример программы на языке Python, которая выполняет сложение двух дробей и выводит сокращенную дробь в результате:

python
def gcd(a, b): # Алгоритм Евклида для нахождения наибольшего общего делителя while b: a, b = b, a % b return a def simplify_fraction(num, den): # Сокращение дроби до наименьших значений common_divisor = gcd(num, den) return num // common_divisor, den // common_divisor def add_fractions(num1, den1, num2, den2): # Сложение двух дробей numerator = (num1 * den2) + (num2 * den1) denominator = den1 * den2 return numerator, denominator def main(): try: # Ввод числителей и знаменателей пользователем num1 = int(input("Введите числитель первой дроби: ")) den1 = int(input("Введите знаменатель первой дроби: ")) num2 = int(input("Введите числитель второй дроби: ")) den2 = int(input("Введите знаменатель второй дроби: ")) # Сложение дробей result_num, result_den = add_fractions(num1, den1, num2, den2) # Сокращение результата simplified_num, simplified_den = simplify_fraction(result_num, result_den) print(f"Результат: {simplified_num}/{simplified_den}") except ValueError: print("Ошибка ввода. Пожалуйста, введите целые числа.") if __name__ == "__main__": main()

Программа запросит у пользователя числители и знаменатели двух дробей, затем выполнит их сложение и выведет результат в виде сокращенной дроби.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос