Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с ошибкой
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
lsdy
Вообще задача:отсортировать матрицу перестановкой срок так чтоб элементы в последнем столбце стояли по возрастнаию.Найти ср арифмет последнего столбца.у меня не сортирует.

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('‚ў®¤ ¬ ваЁжл');
for i:=1 to n do
for j:=1 to m do
begin
write ('elementi ',i,' н«Ґ¬Ґ­в ',j,'stolbca:');
readln(a[i,j]);
end;
writeln('isxodnaya');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
for i:=1 to n do
b[j,1]:=a[i,m];
for i:=1 to n-1 do
for j:=1 to n do
if b[j,m]<b[j,1] then begin
k:=b[j,1];
b[j,1]:=b[j,m];
b[j,m]:=k
end;
for j:= 1 to n do
begin
if a[j,m]<>b[j,1] then
begin
for j:=1 to n do
if a[j,m]=b[j,1] then b[j,2]:=j
end
else b[j,2]:=j;
end;


writeln('®вб®авЁа®ў ­­ п ¬ ваЁж ');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
K:=0;
for i:=1 to n do
k:=k+a[i,j];
sum:=k/n;
write('б।­ҐҐ  аЁд¬.=',sum:0:3);
repeat until keypressed;
end.
lsdy
Помогите горит очень!!
мисс_граффити
Если хотите получить помощь - как минимум, с уважением относитесь к собеседникам и соблюдайте правила (они написаны наверху страницы).Особенно это касается тегов.
Настоятельно рекомендую внести исправления.
lsdy
Цитата(мисс_граффити @ 24.05.2007 23:19) *

Если хотите получить помощь - как минимум, с уважением относитесь к собеседникам и соблюдайте правила (они написаны наверху страницы).Особенно это касается тегов.
Настоятельно рекомендую внести исправления.
Понял.
Помогите плз поиском нашел многое но не много не то((А думать голова не может а отладить срочно надо.
Айра
По-моему, сортировка должна выглядеть так:
  for z:=2 to n do
for j:=n downto z do
begin
if a[j-1,m]>a[j,m] then
begin
k:=a[j-1,m];
a[j-1,m]:=a[j,m];
a[j,m]:=k;
end;
end;
volvo
Цитата
По-моему, сортировка должна выглядеть так:
no1.gif Не совсем... Несмотря на то, что сравниваться должны только элементы последнего столбца, менять -то местами надо строки, а не только элементы этого самого столбца:

for z:=2 to n do
for j:=n downto z do begin
if a[j-1,m]>a[j,m] then
for p := 1 to m do begin { меняем местами строки полностью }
k:=a[j-1,p];
a[j-1,p]:=a[j,p];
a[j,p]:=k;
end;
end;

Айра
Спасибо, что поправил smile.gif опять я невнимательно читаю задание(((
lsdy
Айра,вольво респект.Будете в г.Йошкар-Ола звоните(+79600917742) помогу чем смогу !!
lsdy
Еще вопрос как сделать чтоб отсортированный столбец записывало в txt файл?
Айра
Можно воть так, если всю матрицу (вдруг понадобится)))) записывать:

var f: text;
...
assign(f,'rezult.txt');
rewrite(f); {если делать так, то файл будет создаваться сам там же где живет код программы}
for i:=1 to n do
begin
for j:=1 to m do
begin
write(f,a[i,j]);
end;
writeln(f);
end;
close(f);
...

и так, только для столбца:

var f: text;
...
assign(f,'rezult.txt');
rewrite(f);
for i:=1 to n do
begin
writeln(f,a[i,m]);
end;
close(f);
...




p.s. проверяла на другой программке, но вроде работает))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.