program SortH; const H=3; {размерности массива} M=5; type stroka=array [1..H] of integer; var mas:array[1..M] of stroka; i,j:integer; {Функция определения характеристики} function har_S(const s:stroka):integer; var i,x:integer; begin x:=0; for i:=1 to H do if (Frac(s[i]/2)=0) and (s[i]>0) then x:=x+s[i]; har_S:=x; end; {Процедура сортировки} procedure sort; var tmps:stroka; i:integer; sorting:boolean; begin while sorting do begin sorting:=false; for i:=1 to M-1 do if har_S(mas[i])>har_S(mas[i+1]) then begin tmps:=mas[i]; mas[i]:=mas[i+1]; mas[i+1]:=tmps; sorting:=true; end; end; end; {Процедура вывода массива} procedure vyvod; var i:integer; begin for i:=1 to M do begin for j:=1 to H do write('a[',i:2,',',j:2,']=',mas[i][j]:4,' '); writeln('Хар. ',har_S(mas[i])); end; end; begin for i:=1 to M do begin for j:=1 to H do begin write('a[',i:2,',',j:2,']=');readln(mas[i][j]); end; writeln; end; sort; vyvod; end. |