IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Есть двумерный массив NxM и готовая задача., помогите отредактировать
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Эдик

Репутация: -  0  +


дан двумерный массив N x M, вводимый с клавиатуры. расположить все элементы массива по убыванию.

var a,b:array[1..50,1..50] of real;
m,n,i,j,p,q,r:integer;
begin
write('m=');readln(m);
write('n=');readln(n);
for m:=1 to m do
for n:=1 to n do
begin
write;
readln(a[m,n]);
end;
writeln;
for m:=1 to m do
begin
for n:=1 to n do write(a[m,n]:5:0);
writeln;
end;
for j:=1 to n do
for i:=1 to m do

begin
r:=1;
for p:=1 to m do
begin
if not(p=i) then
if a[p,j]>a[i,j] then r:=r+1;{}
if a[p,j]=a[i,j] then
if i>p then r:=r+1
end;
b[r,j]:=a[i,j];
end;
writeln;
for p:=1 to m do
begin
for q:=1 to n do write(b[p,q]:5:0);
writeln;
end;
readln
end.

как её исправить ? кто нибудь подскажите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






после readln не стоит ;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(гость @ 7.11.2011 3:12) *
после readln не стоит ;
А кто сказал, что она там нужна?.. blink.gif

Не совсем понятно, как именно ты хочешь сортировать - по строкам или по столбцам, а может, по спирали.. В одномерном массиве сортировка однозначная, в даух- и более мерных необходимо уточнение. Твоя прога довольно неплохо сортирует по убыванию внутри каждого столбца. Если ты хочешь сквозную сортировку (по строкам или по столбцам - уточни), то надо переводить нумерацию из двумерной в одномерную (согласно с тем, по чему сортировка).

Не совсем по теме: впервые вижу использование одной и той же переменной для предела и параметра цикла.. По идее, оно вроде бы как должно работать (и работает!)), но все же я не рекомендую так делать. Строго говоря, значение параметра цикла после выхода из оного не определено. Так что ты рискуешь потерять граничное значение. Кроме того, последовательность присвоения значений индексу и границе тоже не строго определено, так что возможно, что цикл будет всегда выполняться ровно один раз. Короче, не вижу смысла экономить на этом.

И еще: уделяй внимание форматированию кода. Вот тебе, например, твой код (но с заменой ручного ввода на случайный и с заменой параметров цикла, хоть и не везде) отформатированный по правилам:
var
a,b:array[1..50,1..50] of real;
m,n,i,j,p,q,r:integer;
begin
write('m=');readln(m);
write('n=');readln(n);
for m:=1 to m do
for n:=1 to n do begin
{write;
readln(a[m,n]);}
a[m,n]:= Random*100-50
end;
for i:=1 to m do begin
for j:=1 to n do write(a[i,j]:6:1);
writeln;
end;
for j:=1 to n do
for i:=1 to m do begin
r:=1;
for p:=1 to m do
begin
if not(p=i) then
if a[p,j]>a[i,j] then r:=r+1;
{}
if a[p,j]=a[i,j] then
if i>p then r:=r+1
end;
b[r,j]:=a[i,j];
end;
writeln;
for p:=1 to m do begin
for q:=1 to n do write(b[p,q]:6:1);
writeln;
end;
readln
end.

Намного же лучше, правда?
Да, и ставь теги, когда постишь код на форум, плз.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 20:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name