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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 22:24   #1
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию Переформировать матрицу - столбцы по возрастанию их последних элементов

Переформировать матрицу таким образом ,чтобы ее столбцы располагались по возрастанию их последних элементов.
Вот такая задачка. может кто решить?
HoroHoro вне форума Ответить с цитированием
Старый 22.12.2008, 22:28   #2
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Если я правильно понял, то вот
Код:
program matrica;
uses crt;
var mas:array[1..1000,1..1000] of integer; i,j,k,c,n:integer;
begin
clrscr;
writeln ('Введите размер');
readln (n);
for i:=1 to n do
begin
for j:=1 to n do
begin
mas[i,j]:=-random(50)+random(50);
write (mas[i,j],'  ');
end;
writeln;
end;
for j:=1 to n do
for k:=1 to n-1 do
if mas[n,k]>mas[n,k+1] then 
for i:=1 to n do
begin
c:=mas[i,k];
mas[i,k]:=mas[i,k+1];
mas[i,k+1]:=c;
end;
writeln;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write (mas[i,j],'  ');
writeln;
end;
readkey
end.
Teor вне форума Ответить с цитированием
Старый 22.12.2008, 22:46   #3
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

похоже что так и есть. Спасибо.
HoroHoro вне форума Ответить с цитированием
Старый 22.12.2008, 22:57   #4
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

Teor. Спасибо за старания, но после написания программы увидел что она не работает. а именно на выходе получаются одни нули.
HoroHoro вне форума Ответить с цитированием
Старый 22.12.2008, 23:07   #5
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Хм... у меня все работает
Teor вне форума Ответить с цитированием
Старый 22.12.2008, 23:20   #6
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

Прошу прощения, переписал второй раз. все работает. Правда ему кажется массив слишком большим для integer'a. пришлось заменить на [1..100,1..100]. Большое спасибо за потраченное время.
HoroHoro вне форума Ответить с цитированием
Старый 22.12.2008, 23:47   #7
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

хм.. после нескольких проверок оказалось, что программа делает не то, что нужно. А то, что нужно покажу на примере:
21 13 49 -> 49 21 13
15 18 36 -> 36 15 18
2 30 1 -> 1 2 30
HoroHoro вне форума Ответить с цитированием
Старый 23.12.2008, 00:00   #8
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

... Я в тупике. Я несколько раз ее проверял и все правильно работало.
Teor вне форума Ответить с цитированием
Старый 23.12.2008, 08:42   #9
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Цитата:
var a:array[1..100,1..100] of integer;
t:array[1..100] of integer;
i,j,n,k:integer;
begin
randomize;
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
a[j,i]:=random(100);
write(a[j,i]:5);
end;
writeln;
end;
k:=1;
i:=1;
while k<>0 do
begin
k:=0;
for j:=1 to n-i do
if a[j,n]>a[j+1,n] then
begin
t:=a[j];
a[j]:=a[j+1];
a[j+1]:=t;
k:=k+1;
end;
i:=i+1;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to n do write(a[j,i]:5);
writeln;
end;
end.
Вот так попробуйте.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 23.12.2008, 19:20   #10
HoroHoro
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

Большое всем спасибо, особенно teor'у. Прошу меня простить, по моей глупости программа работала некорректно. Проблема заключалась в том, что введя в условие фиксированное значение n(размера матрицы), программа отказывалась работать корректно. Но после того, как я заменил свое фиксированное значение на неизвестное, задаваемое в начале программы, то программа заработала как надо. Спасибо большое. теперь мне интересно, почему все так вышло)
HoroHoro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассортировать по возрастанию и вывести на печать список студентов. Sergeo_89 Фриланс 6 09.12.2008 13:51
сортировка числовой последовательности по возрастанию Solniffko Паскаль, Turbo Pascal, PascalABC.NET 7 14.11.2008 08:36
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
Найти сумму последних L положительных элементов в массиве A={a[i]}. Assembler Kasim Помощь студентам 2 16.12.2007 16:12
количество элементов матрицы, больших среднего арифмитического всех её элементов finch Помощь студентам 3 27.08.2007 15:48