Program vagoni; varA:array[1..15] of real;B:array[1..15] of real;C:array[1..15] of real;i,m,q,j,d,N:integer;s,max_num, max_index:real;beginN:=15;m:=10;q:=50;writeln(Vvedite massy vagonov sostava M sostoyashego iz 15 vagonov);s:=0;Beginfor i:=1 to N doBeginwrite(vagon_,i,-> );readln(a[i]);end;end;writeln( );writeln(VSE vagoni:);for i:=1 to N dowriteln(vagon_,i,=,a[i],tonn);writeln( );writeln( );writeln(Porojnie vagoni:);for i:=1 to N dobeginif (A[i] m) then s:=s+a[i];if (A[i] > m) thenwriteln(grujeniy vagon=, i);end;Writeln(Summa mass grujenih vagonov:, s);if s>q thenwriteln(previshenie massy! sostav ne mojet bit sformirovan) elsebeginwriteln;writeln(Noviy sostav:);j:=1;d:=1;for i:=1 to N{-1} doif A[i] > m thenbeginB[j]:=A[i];writeln(vagon_,j,=,B[j],tonn);j:=j+1;end elsebeginC[d]:=A[i];d:=d+1;end;end;Beginwriteln( );writeln(Ostatok:);d:=d-1;WHILE d>0 dobeginwriteln(vagon_,d,=,C[d],tonn);d:=d-1;end;end;writeln( );beginmax_index := 1;max_num := B[1];for i := 2 to j doif B[i] > max_num then beginmax_index := i;max_num := B[i];end;writeln(Maksimalnaya massa vagona sostava B=,max_num, tonn, Ego nomer:,max_index);end;end.Вот программа нужно чтоб формировался состав б в любом случае но не превышал 50 тонн, а остальные груженые вагоны вывести в остаток, и среди вагонов состава б найти вагон с максимальной массой
Var
A, B, C: array[1..15] of real;
i, m, max_weight, b_n, c_n, N, max: integer;
s: real;
begin
N := 15;
m := 10;
max_weight := 50;
writeln(ВВедите массы состава , m, состоящего из , n, вагонов);
for i := 1 to n do
begin
write(Масса вагона № , i, = );
readln(a[i]);
end;
writeln();
writeln(Все вагоны:);
for i := 1 to n do
writeln(Вагон №, i, = , a[i], тон);
writeln();
writeln(Порожние вагоны:);
for i := 1 to n do
if (A[i] writeln(Вагон №, i);
writeln();
s := 0;
writeln(Груженные вагоны:);
for i := 1 to n do
if (A[i] > m) then begin
s := s + a[i];
writeln(Вагон №, i);
end;
Writeln(Сумма масс груженных вагонов = , s);
{// if s > max_weight then begin
// writeln(Превышение массы! Состав не будет сформирован);
// exit;
// end;}
writeln;
writeln(Новый состав:);
s := 0;
for i := 1 to n do
if (A[i] > m) and (s + A[i] b_n := b_n + 1;
s := s + A[i];
B[b_n] := A[i];
writeln(Вагон №, b_n, = , B[b_n], тон);
end
else begin
c_n := c_n + 1;
C[c_n] := A[i];
end;
writeln();
writeln(Остаток:);
for i := 1 to c_n do
writeln(Вагон №, i, = , C[i], тон);
writeln();
max := 1;
for i := 1 to b_n do
if B[i] > B[max] then
max := i;
writeln(Максимальная масса в составе: Вагон №, max, = , B[max], тон);
end.
