В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
oles2014
oles2014
09.09.2021 23:00 •  Информатика

Вариант 22. два сплава
имеется два сплава из двух металлов, соотношение этих металлов
в каждом из сплавов известно. программа должна определять, какое
количество объёмных единиц первого и второго сплава нужно взять,
чтобы получить третий сплав с заданным соотношением этих
металлов.
входные данные. соотношение двух металлов в первом сплаве,
во втором сплаве и в требуемом сплаве, а также количество объёмных
единиц третьего сплава, которое требуется получить.
выходные данные. количество объёмных единиц первого и
второго сплава, которые следует соединить, для получения заданного
количества третьего сплава, либо сообщение о том, что получить
третий сплав из имеющихся двух невозможно.

напишите код решения отдельных моментов: оба соотношения в сплаве больше 1 и оба соотношения в сплаве меньше 1.или объясните,почему тогда нет решения в положительных числах.

Показать ответ
Ответ:
Bronin2002
Bronin2002
10.10.2020 17:11

===== PascalABC.NET =====

function НОД(a, b: integer): integer;

begin

 (a, b) := (Abs(a), Abs(b));

 while b <> 0 do

   (a, b) := (b, a mod b);

 Result := a

end;

function Подходит(a, b: integer) :=

   (Sign(a) = Sign(b)) and (b <> 0);

procedure СократитьДробь(var a, b: integer);

begin

 var d := НОД(a, b);

 if d > 1 then

   (a, b) := (a div d, b div d)

end;

begin

 Println('Введите соотношения металлов в сплаве.');

 Println('Числа частей целые и вводятся через пробел.');

 var (a1, b1) := ReadInteger2('Первый сплав:');

 var (a2, b2) := ReadInteger2('Второй сплав:');;

 var (a3, b3) := ReadInteger2('Нужный сплав:');;

 var y1 := (a2 + b2) * (a1 * b3 - b1 * a3);

 var y2 := a1 * b2 - a2 * b1;

 if not Подходит(y1, y2) then

 begin

   Println('Решения нет');

   exit

 end;

 var x1 := (a3 + b3) * y2 - y1;

 var x2 := y2;

 if not Подходит(x1, x2) then

 begin

   Println('Решения нет');

   exit

 end;

 СократитьДробь(y1, y2);

 СократитьДробь(x1, x2);

 var (r1, r2) := (x1 * y2, x2 * y1);

 СократитьДробь(r1, r2);

 var v := ReadReal('Требуемый объем сплава:');

 Writeln('Соотношение частей металла ', r1, ' : ', r2);

 Writeln('Соотношение объемов: ', v * r1 / (r1 + r2),

     ' : ', v * r2 / (r1 + r2))

end.


Вариант 22. два сплава имеется два сплава из двух металлов, соотношение этих металлов в каждом из сп
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота