Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2011, 11:53   #1
rwss gle
Заблокирован
 
Регистрация: 26.03.2011
Сообщений: 13
По умолчанию Элементы выше побочной диагонали по возрастанию.

Привет всем! Я начинающий программист) Как решать вот это задание: Элементы выше побочной диагонали по возрастанию. Помогите, пожалуйста, решать по паскалю(((((
rwss gle вне форума Ответить с цитированием
Старый 26.03.2011, 16:27   #2
Astorius
 
Регистрация: 26.03.2011
Сообщений: 7
По умолчанию

Задание по подробнее
Astorius вне форума Ответить с цитированием
Старый 26.03.2011, 16:31   #3
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Код:
Элементы выше побочной диагонали по возрастанию.
Что это значит?
Акоб вне форума Ответить с цитированием
Старый 28.03.2011, 12:14   #4
rwss gle
Заблокирован
 
Регистрация: 26.03.2011
Сообщений: 13
По умолчанию

Вот, короче, пример::
21 87 15 1
9 10 1 7
41 1 31 16
1 93 7 24

Результат должен таким:
9 10 15 1
21 41 1 7
87 1 31 16
1 93 7 24
rwss gle вне форума Ответить с цитированием
Старый 28.03.2011, 13:33   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Берете элеементы выше побочной диагонали, сортируете их и записываете обратно... что не понятно?
p51x вне форума Ответить с цитированием
Старый 28.03.2011, 13:47   #6
rwss gle
Заблокирован
 
Регистрация: 26.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Берете элеементы выше побочной диагонали, сортируете их и записываете обратно... что не понятно?
Но я тут запутался...
Код:
for i:=1 to n-1 do
 begin
  for j:=1 to n-1 do
    for k:=j+1 to n do
      if a[n-j+1,j]>a[n-k+1,k] then 
begin
temp:=a[n-k+1,k];
a[n-k+1,k]:=a[n-j+1,j];
a[n-j+1,j]:=temp;
end;
 end;
Это уже на побочной диагонали, а нужно выше. Как, подскажите, пожалуйста! =(


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 28.03.2011 в 14:13.
rwss gle вне форума Ответить с цитированием
Старый 28.03.2011, 14:24   #7
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

http://programmersforum.ru/showthread.php?t=70310 тут можно много чего найти по Вашему вопросу
psycho-coder вне форума Ответить с цитированием
Старый 28.03.2011, 22:45   #8
rwss gle
Заблокирован
 
Регистрация: 26.03.2011
Сообщений: 13
По умолчанию

Решаю, решаю, решаю, но никак. Помогите! а то скоро надо защищать(
rwss gle вне форума Ответить с цитированием
Старый 29.03.2011, 16:24   #9
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Можно все элементы выше побочной диаганали записать в одномерный массив.
Код:
a := 0;
for i := 1 to n - 1 do
for j := 1 to n - j do
begin
a := a + 1;
y[a] : = x[i,j];
end
Дальше делаем пузырьковую сортировку.
Код:
t:boolean;
t := true;
while t = true do
begin
for i := 1 to a do
begin
if y[i] > y[i + 1] then
begin
BUFF := y[i];
y[i] := y[i + 1];
y[i + 1] := BUFF;
end
end
end
Потом все записываем обратно.
Код:
a := 0;
for i := 1 to n - 1 do
for j := 1 to n - j do
begin
a := a + 1;
x[i,j] := y[a];
end

Последний раз редактировалось Акоб; 29.03.2011 в 16:28.
Акоб вне форума Ответить с цитированием
Старый 29.03.2011, 20:18   #10
rwss gle
Заблокирован
 
Регистрация: 26.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Акоб Посмотреть сообщение
Можно все элементы выше побочной диаганали записать в одномерный массив.
Код:
a := 0;
for i := 1 to n - 1 do
for j := 1 to n - j do
begin
a := a + 1;
y[a] : = x[i,j];
end
Дальше делаем пузырьковую сортировку.
Код:
t:boolean;
t := true;
while t = true do
begin
for i := 1 to a do
begin
if y[i] > y[i + 1] then
begin
BUFF := y[i];
y[i] := y[i + 1];
y[i + 1] := BUFF;
end
end
end
Потом все записываем обратно.
Код:
a := 0;
for i := 1 to n - 1 do
for j := 1 to n - j do
begin
a := a + 1;
x[i,j] := y[a];
end

Спасибо БОЛЬШОЕ, вы мне очень помогли!
rwss gle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наименьший отрицательный элемент выше побочной диагонали и наименьший положительный ниже (Pascal) Tifa Помощь студентам 10 28.01.2011 08:23
Дан двумерный массив.Найти наибольший отрицательный элемент выше побочной диагонали и наименьший положите red-white Помощь студентам 1 05.11.2010 09:51
на побочной диагонали должны стоять максимальные элементы всех строк SkyL1ne Помощь студентам 1 28.09.2010 22:01
элементы находящиеся выше главной диагонали warder49 Общие вопросы C/C++ 16 07.03.2010 16:50
вывести элементы выше главной диагонали : Rusl92 Помощь студентам 0 30.10.2009 22:45