program zzz;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
mass1=array[1..5,1..4] of real;
mass2=array[1..5] of real;
const
a:mass1=((3,6,-2,1),(8,1,4,0),(0,2,-3,-5),(-1,4,8,2),(6,-6,-2,1));
var
b:mass2;
i,j:integer;
bmax,lmax:real;
imax:integer;
asort:mass1;
procedure sred(a1:mass1;var b1:mass2);
var
k,l:integer{k nomer stroki, l nomer ctolbca} ;
begin
for k:=1 to 5 do
begin
b1[k]:=a1[k,1];
for l:=2 to 4 do
b1[k]:=b1[k]+a1[k,l];
b1[k]:=b1[k]/4;
end;
end;
procedure max(b1:mass2;var m:real;var lmax:integer);
var l:integer;
begin
m:=b1[1];
lmax:=1;
for l:=2 to 5 do
if b1[l]>m then
begin
m:=b1[l];
lmax:=l;
end;
end;
procedure sort(lmax:integer; var a1:mass1; a2:mass1) ;
var l,k:integer;
q:real;
begin
a1:=a2;
for k:=2 to 5 do
for l:=5 downto k do
if a1[lmax,l-1]>a1[lmax,l] then
begin
q:= a1[lmax,l-1];
a1[lmax,l-1]:=a1[lmax,l];
a1[lmax,l]:=q;
end;
end;
begin
sred(a,b);
for i:=1 to 5 do
writeln (b:3:1);
readln;
end.
поиск максимального элемента и упорядочение элементов
Задан двумерный массив А. Определить среднее значение элементов каждой строки, занести найденные значения в одномерный массив В. Определить максимальное значение из найденных средних значений и соответствующую ему строку. Упорядочить элементы этой строки по возрастанию. Вывести все результаты на экран. Для определения среднего значения, максимума и сортировки составить подпрограммы.
Массив А:
3 6 -2 1
8 1 4 0
0 2 -3 -5
-1 4 8 2
6 -6 -2 1
Код:
[color=red]Для оформления кода используй теги [ code ] [/ code ]. Модератор.[/color]
извини, но весь код смотреть лень. в чем у тебя проблема-то? что именно из задания не получается?
Программа не дописана. При запуске она выводит на экран только средние значения строк. надо еще найти максимальный элемент из этих средних значений и в какой строке он находится изатем упорядочить эту строку повозрастанию. нужно добавить вывод этих результатов на экран.
Код:
program zzz;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
mass1=array[1..5,1..4] of real;
mass2=array[1..5] of real;
const
a:mass1=((3,6,-2,1),(8,1,4,0),(0,2,-3,-5),(-1,4,8,2),(6,-6,-2,1));
var
b:mass2;
i,j:integer;
bmax:real;
imax:integer;
asort:mass1;
procedure sred(a1:mass1;var b1:mass2);
var
k,l:integer;
begin
for k:=1 to 5 do
begin
b1[k]:=a1[k,1];
for l:=2 to 4 do
b1[k]:=b1[k]+a1[k,l];
b1[k]:=b1[k]/4;
end;
end;
procedure max(b1:mass2;var m:real;var lmax:integer);
var
l:integer;
begin
m:=b1[1];
lmax:=1;
for l:=2 to 5 do
if b1[l]>m then
begin
m:=b1[l];
lmax:=l;
end;
end;
procedure sort(lmax:integer; var a1:mass1; a2:mass1) ;
var
l,k:integer;
q:real;
begin
a1:=a2;
for k:=1 to 4 do
for l:=k to 4 do
if a1[lmax,k]>a[lmax,l] then
begin
q:= a1[lmax,l];
a1[lmax,l]:=a1[lmax,k];
a1[lmax,k]:=q;
end;
end;
begin
sred(a,b);
for i:=1 to 5 do
writeln (b:3:2);
writeln;
max(b,bmax,imax);
writeln(bmax:2:2);
writeln;
writeln(imax);
writeln;
sort(imax,asort,a);
for i:=1 to 5 do
begin
for j:=1 to 4 do
write(' ',asort[i,j]:2:2);
writeln;
end;
readln;
end.
{$APPTYPE CONSOLE}
uses
SysUtils;
type
mass1=array[1..5,1..4] of real;
mass2=array[1..5] of real;
const
a:mass1=((3,6,-2,1),(8,1,4,0),(0,2,-3,-5),(-1,4,8,2),(6,-6,-2,1));
var
b:mass2;
i,j:integer;
bmax:real;
imax:integer;
asort:mass1;
procedure sred(a1:mass1;var b1:mass2);
var
k,l:integer;
begin
for k:=1 to 5 do
begin
b1[k]:=a1[k,1];
for l:=2 to 4 do
b1[k]:=b1[k]+a1[k,l];
b1[k]:=b1[k]/4;
end;
end;
procedure max(b1:mass2;var m:real;var lmax:integer);
var
l:integer;
begin
m:=b1[1];
lmax:=1;
for l:=2 to 5 do
if b1[l]>m then
begin
m:=b1[l];
lmax:=l;
end;
end;
procedure sort(lmax:integer; var a1:mass1; a2:mass1) ;
var
l,k:integer;
q:real;
begin
a1:=a2;
for k:=1 to 4 do
for l:=k to 4 do
if a1[lmax,k]>a[lmax,l] then
begin
q:= a1[lmax,l];
a1[lmax,l]:=a1[lmax,k];
a1[lmax,k]:=q;
end;
end;
begin
sred(a,b);
for i:=1 to 5 do
writeln (b:3:2);
writeln;
max(b,bmax,imax);
writeln(bmax:2:2);
writeln;
writeln(imax);
writeln;
sort(imax,asort,a);
for i:=1 to 5 do
begin
for j:=1 to 4 do
write(' ',asort[i,j]:2:2);
writeln;
end;
readln;
end.
Спасибо! То что надо!!!