Задание:
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) thenwriteln ('porojniy vagon=', i); end; writeln ('); writeln ('grujenie 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] <= 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.
Знаете другой ответ?