Вообще задача:отсортировать матрицу перестановкой срок так чтоб элементы в последнем столбце стояли по возрастнаию.Найти ср арифмет последнего столбца.у меня не сортирует.
Program matr;
Uses crt;
const
max=10;
Var
i,j,n,m,x,k:integer;
a:array [1..max,1..max] of integer;
b:array [1..max,1..max] of integer;
candidat:integer;
sum:real;
Begin
ClrScr;
Textcolor(6);
Writeln('predupregdenir');
repeat
textcolor(2);
writeln('vvod');
readln(n);
writeln ('vvod');
readln(m);
if (n<0) or (m<0) or (m>max )then
writeln('vi vveli ne dopustimie zna4enija')
until (n>0) and (n<max) and (m>0) and (m<max);
writeln('‚ў(r)¤ ¬ ваЁжл');
for i:=1to n dofor j:=1to m dobegin
write ('elementi ',i,' н«Ґ¬Ґв ',j,'stolbca:');
readln(a[i,j]);
end;
writeln('isxodnaya');
for i:=1to n dobeginfor j:=1to m do
write(a[i,j]:3);
writeln;
end;
for i:=1to n do
b[j,1]:=a[i,m];
for i:=1to n-1dofor j:=1to n doif b[j,m]<b[j,1] thenbegin
k:=b[j,1];
b[j,1]:=b[j,m];
b[j,m]:=k
end;
for j:= 1to n dobeginif a[j,m]<>b[j,1] thenbeginfor j:=1to n doif a[j,m]=b[j,1] then b[j,2]:=j
endelse b[j,2]:=j;
end;
writeln('(r)вб(r)авЁа(r)ў п ¬ ваЁж ');
for i:=1to n dobeginfor j:=1to m do
write(a[i,j]:3);
writeln;
end;
K:=0;
for i:=1to n do
k:=k+a[i,j];
sum:=k/n;
write('б।ҐҐ аЁд¬.=',sum:0:3);
repeatuntil keypressed;
end.
lsdy
25.05.2007 1:39
Помогите горит очень!!
мисс_граффити
25.05.2007 2:19
Если хотите получить помощь - как минимум, с уважением относитесь к собеседникам и соблюдайте правила (они написаны наверху страницы).Особенно это касается тегов. Настоятельно рекомендую внести исправления.
lsdy
25.05.2007 2:30
Цитата(мисс_граффити @ 24.05.2007 23:19)
Если хотите получить помощь - как минимум, с уважением относитесь к собеседникам и соблюдайте правила (они написаны наверху страницы).Особенно это касается тегов. Настоятельно рекомендую внести исправления.
Понял. Помогите плз поиском нашел многое но не много не то((А думать голова не может а отладить срочно надо.
Айра
25.05.2007 3:00
По-моему, сортировка должна выглядеть так:
for z:=2to n dofor j:=n downto z dobeginif a[j-1,m]>a[j,m] thenbegin
k:=a[j-1,m];
a[j-1,m]:=a[j,m];
a[j,m]:=k;
end;
end;
volvo
25.05.2007 4:23
Цитата
По-моему, сортировка должна выглядеть так:
Не совсем... Несмотря на то, что сравниваться должны только элементы последнего столбца, менять -то местами надо строки, а не только элементы этого самого столбца:
for z:=2to n dofor j:=n downto z dobeginif a[j-1,m]>a[j,m] thenfor p := 1to m dobegin{ меняем местами строки полностью }
k:=a[j-1,p];
a[j-1,p]:=a[j,p];
a[j,p]:=k;
end;
end;
Айра
25.05.2007 9:50
Спасибо, что поправил опять я невнимательно читаю задание(((
lsdy
25.05.2007 10:42
Айра,вольво респект.Будете в г.Йошкар-Ола звоните(+79600917742) помогу чем смогу !!
lsdy
1.06.2007 2:24
Еще вопрос как сделать чтоб отсортированный столбец записывало в txt файл?
Айра
1.06.2007 3:40
Можно воть так, если всю матрицу (вдруг понадобится)))) записывать:
var f: text;
...
assign(f,'rezult.txt');
rewrite(f); {если делать так, то файл будет создаваться сам там же где живет код программы}for i:=1to n dobeginfor j:=1to m dobegin
write(f,a[i,j]);
end;
writeln(f);
end;
close(f);
...
и так, только для столбца:
var f: text;
...
assign(f,'rezult.txt');
rewrite(f);
for i:=1to n dobegin
writeln(f,a[i,m]);
end;
close(f);
...
p.s. проверяла на другой программке, но вроде работает))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.