М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
28номер
28номер
01.11.2021 06:30 •  Информатика

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

👇
Ответ:
donczowakateri
donczowakateri
01.11.2021
// 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

Замечание: вводить только натуральные числа!
4,5(31 оценок)
Ответ:
juliettehasagun
juliettehasagun
01.11.2021
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.
4,7(82 оценок)
Открыть все ответы
Ответ:
trukit
trukit
01.11.2021

Объяснение:

1) четным. Функция a mod 2 возвращает остаток от деления числа а на 2.

Если остаток равен 0, то число а четное.

2) 20.

a = 100; b = 30; a = 100 - 3*30 = 10

c = b - a = 30 - 10 = 20

3) if переводится как если, и не только в условном операторе, а вообще по-английски.

4) (x=3) or (x=4).

Вообще-то любое из этих выражений может быть использовано, как условие.

Если нет проверки на равенство числу, то подразумевается проверка на равенство нулю.

Но, скорее всего, имеется ввиду именно это выражение.

5) if a<b then min := a; else min := b;

Ошибка: после min := a точка с запятой не нужна.

6) Условие: a < 17

7) Нет верного ответа, потому что не бывает треугольника с тремя прямыми углами.

8) Не могу ответить, потому что нет фрагмента программы.

4,7(98 оценок)
Ответ:
tanya260516
tanya260516
01.11.2021

Объяснение:

1) четным. Функция a mod 2 возвращает остаток от деления числа а на 2.

Если остаток равен 0, то число а четное.

2) 20.

a = 100; b = 30; a = 100 - 3*30 = 10

c = b - a = 30 - 10 = 20

3) if переводится как если, и не только в условном операторе, а вообще по-английски.

4) (x=3) or (x=4).

Вообще-то любое из этих выражений может быть использовано, как условие.

Если нет проверки на равенство числу, то подразумевается проверка на равенство нулю.

Но, скорее всего, имеется ввиду именно это выражение.

5) if a<b then min := a; else min := b;

Ошибка: после min := a точка с запятой не нужна.

6) Условие: a < 17

7) Нет верного ответа, потому что не бывает треугольника с тремя прямыми углами.

8) Не могу ответить, потому что нет фрагмента программы.

4,4(27 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ