Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

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

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 22:10   #1
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
Радость помогите, пожалуйста, решить задачу с матрицей

Заполнение массива исходными случайными целыми значениями из диапазона [-50;50]. Размеры массива М и (или N) взять постоянными, равными целым числам от 5 до 10. Требуется выводить на экран массив до сортировки (исходный массив) и после сортировки (отсортированный массив).
Дана целочисленная прямоугольная матрица порядка N. Таким образом переставить сроки матрицы, чтобы их последние элементы располагались в порядке невозрастания. Метод сортировки – подсчетом.

жду и ВЕРЮ
13Anka07 вне форума Ответить с цитированием
Старый 05.05.2009, 12:03   #2
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

Привет.

А что вы уже сделали?
Dirt вне форума Ответить с цитированием
Старый 05.05.2009, 18:22   #3
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
По умолчанию

Program 3
Const N=10;
Var a: array [1..N,1..N] of integer;
i,j,k: integer;
b:array[1..N,1..N]; {отсортированный массив}
c: array[1..N,1..N]; {количественный массив}
p: integer; {шаг}
Begin {заполнение матрицы случайными значениями}
Randomize;
for i:=1 to k do begin
for j:=1 to k do begin
a[i,j]:=Random(101)-50;
write(a[i,j]:4);
end;
writeln;
end;
readln;
for i:=1 to k do
j:=k;
c[i,j]:=0;
{подсчет}
for i:=1 to k-1 do {первый элемент пары}
for p:=i+1 to k do {второй элемент пары}
if a[i,j]<a[p,j] then c[p,j]:=c[p,j]+1
else c[i,j]:=c[i,j]+1;
{расстановка в новый массив}
for i:=1 to k-1 do
b[c[i,j]+1]:=a[i,j];
writeln;
END.
13Anka07 вне форума Ответить с цитированием
Старый 05.05.2009, 18:26   #4
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
По умолчанию

помогите, пожалуйста. Я уже с этой задачкой очень долго сижу. По-разному пыталась решать, но почему-то никак не идет
13Anka07 вне форума Ответить с цитированием
Старый 06.05.2009, 03:59   #5
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

Как вам надо отсортировать? по столбцам, по строкам или полностью матрицу?
Dirt вне форума Ответить с цитированием
Старый 06.05.2009, 16:49   #6
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
По умолчанию

переставить местами строки матрицы , т.е. отсортировать всю матрицу.)))) Должно получиться примерно такое:
ТЕСТ
Исходная матрица:
2 3 4 5
1 8 3 7
7 2 8 1
4 5 2 3

Отсортированная матрица:
1 8 3 7
2 3 4 5
4 5 2 3
7 2 8 1
13Anka07 вне форума Ответить с цитированием
Старый 06.05.2009, 18:19   #7
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Если я верно понял задание:
Код:
program pr;
uses CRT;
const
n = 4;
m = 6;
type
DMass = array[1..n,1..m] of integer;
var
a : DMass;
i, j, k : integer;

procedure swap(var x,y : longint);
var
temp : longint;
begin
     temp := x;
     x := y;
     y := temp;
end;

begin
clrscr;
randomize;

writeln('Исходный массив:');
for i:=1 to n do
begin
     for j:=1 to m do
     begin
          a[i,j] := random(101)-50;
          write(a[i,j]:4);
     end;
writeln;
end;

for i:=1 to n-1 do
begin
     for j:=1 to n-i do
     begin
          if a[j,m] < a[j+1,m] then
          begin
               for k:=1 to m do
               swap(a[j,m-k+1],a[j+1,m-k+1]);
          end;
     end;
end;

writeln('Отсортированный массив:');
for i:=1 to n do
begin
    for j:=1 to m do
    write(a[i,j]:4);
writeln;
end;

end.
UPD: Упс. Выполнил без метода подсчёта. Попробую ещё подумать.
Пишу глупости.

Последний раз редактировалось Gongled; 06.05.2009 в 18:23.
Gongled вне форума Ответить с цитированием
Старый 06.05.2009, 19:37   #8
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
По умолчанию

спасибо большое!!!!! Я очень рада))))) Пожалуста, попробуйте все-таки методом подсчета((((
13Anka07 вне форума Ответить с цитированием
Старый 07.05.2009, 11:27   #9
13Anka07
 
Регистрация: 04.05.2009
Сообщений: 7
Стрелка

??? (((( пожалуста, кто-нибудь помогите решить!! (( скоро уже сдавать надо, целый месяц сижу - не получается (((((((((((((((
13Anka07 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста решить задачу! Fatality Помощь студентам 3 28.05.2012 11:02
Помогите пожалуйста решить задачу Sabber Паскаль, Turbo Pascal, PascalABC.NET 5 17.11.2008 15:55
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ!(СВЯЗАНО С МАТРИЦЕЙ) Ильдар ХАЛИКОВ Паскаль, Turbo Pascal, PascalABC.NET 13 13.05.2008 00:28

Реклама для незарегистрированных, регистрация на форуме