Program vagoni;

var
A: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;
begin
N:=15;
m:=10;
q:=50;

writeln('Vvedite massy vagonov sostava M sostoyashego iz 15 vagonov');
s:=0;
Begin
for i:=1 to N do
Begin
write('vagon_',i,'-> ');
readln(a[i]);

end;
end;
writeln(' ');

writeln('VSE vagoni:');
for i:=1 to N do
writeln('vagon_',i,'=',a[i],'tonn');
writeln(' ');
writeln(' ');

writeln('Porojnie vagoni:');

for i:=1 to N do
begin
if (A[i] <= m) then
writeln('porojniy vagon=', i);
end;
writeln('');
writeln('grujenie vagoni:');
for i:=1 to N do
begin
if (A[i] > m) then s:=s+a[i];
if (A[i] > m) then
writeln('grujeniy vagon=', i);

end;
Writeln('Summa mass grujenih vagonov:', s);

if s>q then
writeln('previshenie massy! sostav ne mojet bit sformirovan') else
begin
writeln;
writeln('Noviy sostav:');
j:=1;
d:=1;
for i:=1 to N{-1} do
if A[i] > m then
begin
B[j]:=A[i];
writeln('vagon_',j,'=',B[j],'tonn');
j:=j+1;
end else
begin
C[d]:=A[i];
d:=d+1;
end;
end;
Begin
writeln(' ');
writeln('Ostatok:');
d:=d-1;
WHILE d>0 do
begin
writeln('vagon_',d,'=',C[d],'tonn');
d:=d-1;
end;
end;
writeln(' ');
begin
max_index := 1;
max_num := B[1];

for i := 2 to j do
if B[i] > max_num then begin
max_index := i;
max_num := B[i];
end;
writeln('Maksimalnaya massa vagona sostava B=',max_num,' tonn', ' Ego nomer:',max_index);
end;
end.
Вот программа нужно чтоб формировался состав б в любом случае но не превышал 50 тонн, а остальные груженые вагоны вывести в остаток, и среди вагонов состава б найти вагон с максимальной массой

1

Ответы и объяснения

Лучший Ответ!
2013-11-12T03:22:22+04:00

Это Проверенный ответ

×
Проверенные ответы содержат надёжную, заслуживающую доверия информацию, оценённую командой экспертов. На "Знаниях" вы найдёте миллионы ответов, правильность которых подтвердили активные участники сообщества, но Проверенные ответы - это лучшие из лучших.
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] <= m) then
      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] <= max_weight) then begin
      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.