Хохлова Иванович
?>

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

Информатика

Ответы

barekyan096140

===== 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. два сплава имеется два сплава из двух металлов, соотношение этих металлов в каждом из сп
fruktovahere
#include <stdio.h>

#define maxsize 105

typedef struct station{
    int x, y, z;
} station;

int abs(int x){
    return x >= 0 ? x : -x;
}

int min(int a, int b){
    return a <= b ? a : b;
}

int main(){
    FILE *ist, *ost;
    
    station s[maxsize];
    int w[maxsize][maxsize];
    int inc[maxsize];
    int n,i,j,k,m,l,r;
    
    ist = fopen("input.txt","r");
    
    fscanf(ist, "%d", &n);
    for(i = 0; i < n; i++) fscanf(ist, "%d %d %d", &s[i].x, &s[i].y, &s[i].z);
    
    fclose(ist);
    
    for(i = 0; i < n; i++) inc[i] = 0;
    
    for(i = 0; i < n; i++)
    for(j = i; j < n; j++)
        w[i][j] = w[j][i] = min(abs(s[i].x - s[j].x), min(abs(s[i].y - s[j].y), abs(s[i].z - s[j].z)) );
    
    r = 0; k = 1;
    inc[0] = 1;
    while(k < n){
        m = -1;
        for(i = 0; i < n; i++) if(inc[i])
        for(j = 0; j < n; j++) if(!inc[j])
            if (m == -1 || w[i][j] < m) m = w[i][j], l = j;
        r += m;
        inc[l] = 1;
        k++;
    }
    
    ost = fopen("output.txt","w");
    fprintf(ost,"%d", r);
    fclose(ost);
    
    return 0;
}
happygal5224
13 сентября 1956 года, то есть более полвека назад компания IBM представила свой первый накопитель на жестких магнитных дисках (позднее данные устройства получили полуофициальное прозвище «винчестер») . 
И это изобретение со временем фактически создало огромную индустрию магнитных накопителей, без которых сейчас немыслимо ни одно мало-мальски мощное вычислительное устройство, поскольку подавляющее большинство информации, которыми оперируют эти самые вычислительные устройства, хранится именно на магнитных носителях. 

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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