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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2007, 23:51   #11
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Исходные данные:
Цитата:
write('Введите размерность матрицы: ');
readln(n);
write('Введите матрицу: ');
for i := 1 to n do begin
for j := 1 to n do begin
read(a[i,j]); write(' ');
writeln;
end;
Вывод результата:
Цитата:
for i := 1 to n do begin
for j := 1 to n do
write(a[i,j],' ');
writeln;
end;
Вот тебе теперь уже готовая прога, загони код и пользуйся!
Должен работать.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 10.02.2007, 23:55   #12
Imperceptible
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 14
По умолчанию

Спасибо, выручил, теперь только требуется оформить в виде процедуры, надеюсь не напутаю в локальных и глобальных переменных.
Imperceptible вне форума Ответить с цитированием
Старый 11.02.2007, 00:06   #13
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Ну давай дерзай и не путайся! Удачи!
Цитата:
Спасибо, выручил, теперь только требуется оформить в виде процедуры, надеюсь не напутаю в локальных и глобальных переменных.
Ты напиши кого ты хоть благодаришь то...
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 11.02.2007, 00:11   #14
Imperceptible
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 14
По умолчанию

Благодарю всех, кто откликнулся, но особено Time!
Я, честно говоря, не думал что мне так быстро помогут, классный форум а главное люди отзывчивые.
Imperceptible вне форума Ответить с цитированием
Старый 11.02.2007, 18:43   #15
Imperceptible
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 14
По умолчанию

Стоп, ток сейчас заметил что не всё она сортирует.

При вводе матрицы
1 2 3 4
4 7 5 8
9 4 4 4
2 1 2 3
выдаёт
9 2 3 4
4 1 5 8
3 4 7 4
2 1 2 4
Не получается такая сортировка, совсем запутался
Imperceptible вне форума Ответить с цитированием
Старый 11.02.2007, 19:30   #16
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Я писал на скорою руку, поэтому может где-то допустил ошибку. Я сегодня попозже вечером найду ошибку и напишу тебе.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 11.02.2007, 19:42   #17
Imperceptible
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 14
По умолчанию

Хорошо, я сейчас какраз засел...
Imperceptible вне форума Ответить с цитированием
Старый 11.02.2007, 19:48   #18
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Вот. Только код заточен под положительные числа. Чтобы этого избежать надо находить еще минимальный элемент.

Код:
Const X = 3;

Var A:Array[1..X,1..X] of Integer;

Procedure Zapoln;
Var I,J:Integer;
Begin
For I:=1 to X Do
For J:=1 to X Do
A[I,J]:=Random(10);
End;

Procedure Show;
Var I,J:Integer;
Begin
 For I:=1 to X Do
 Begin
 For J:=1 to X Do
 Write(A[I,J],' ');
 WriteLn;
 End;
End;

Procedure Dvig;
Var Max, IMax, I,J,N,M,Z,W:Integer;
Begin
Max:=0;
IMax:=0;
For I:=1 To X Do
For J:=1 To X Do
If A[I,J] > Max Then
Begin
Max:=A[I,J];
N:=I;
M:=J;
End;
W:=A[1,1];
A[1,1]:=A[N,M];
A[N,M]:=W;
 For Z:=2 to X Do
 Begin
  For I:=1 To X Do
  For J:=1 to X Do
  If (A[I,J] < Max) and (A[I,J] > Imax) Then
   Begin
   IMax:=A[I,J];
   N:=I;
   M:=J;
   End;
  W:=A[Z,Z];
  A[Z,Z]:=A[N,M];
  A[N,M]:=W;
  Max:=IMax;
  IMax:=0;
 End;
End;

Begin
Randomize;
Zapoln;
Show;
WriteLn;
Dvig;
Show;
ReadLn;
End.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 11.02.2007, 21:40   #19
Imperceptible
Пользователь
 
Регистрация: 10.02.2007
Сообщений: 14
По умолчанию

Спасибо работает! А я сделал чтобы массив из файла читался, надеюсь так тоже можно.
Imperceptible вне форума Ответить с цитированием
Старый 11.02.2007, 21:53   #20
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Да, я ошибся конечно. Извини. Там ведь максимум каждый раз "обнулять" надо... Да и в конце чуток по легче записать можно...
Цитата:
for k := 1 to n do begin
maxi := k;
maxj := k;
max := a[k,k];

for i := 1 to n do
for j := 1 to n do
If (a[i,j] > max) and (i <> j) then
begin
maxi := i;
maxj := j;
max := a[i,j];
end;
for i := k to n do
if a[i,i] > max then
begin
maxi := i;
maxj := i;
max := a[i,i];
end;
a[maxi,maxj] := a[k,k]; a[k,k] := max;
end;
Вот так. Попробуй должно теперь работать.
Красным выделены места, которые изменились.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный Массив n01R Помощь студентам 9 19.12.2009 16:41
Двумерный массив... slim5 Помощь студентам 2 20.06.2008 23:16
Двумерный массив в С++ Draid Помощь студентам 2 07.03.2008 22:06
Двумерный массив Jodu Помощь студентам 18 05.12.2007 22:44