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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2010, 23:14   #1
Cam_Wexler
 
Аватар для Cam_Wexler
 
Регистрация: 11.04.2010
Сообщений: 5
Подмигивание двумерный массив Pascal

Всем Добрый вечер!)
Есть одна задачка, с которой все бьюсь, а до конца все никак довести не могу. Все, что-то не то выдает.
вот задача:
Квадратный массив размером М на М заполняется числами из входного текстового файла. Исходный массив распечатывается. Главную диагональ массива упорядочить по убыванию методом выбора. Переделанный массив распечатать.
Количество строк и столбцов -10. Тип обработки данных - целые

очень надеюсь на вашу помощь) очень хочется с ней разобраться)
Cam_Wexler вне форума Ответить с цитированием
Старый 11.04.2010, 23:56   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

главная диагональ - индексы строки и столбца равны, i = j

могу выполнить за небольшое вознаграждение, или выкладывайте исходники и говорите где именно не получается
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 12.04.2010, 19:01   #3
G0NZIK
 
Аватар для G0NZIK
 
Регистрация: 05.04.2010
Сообщений: 9
По умолчанию

Что именно у тебя не получается?пококретней пожалуйста
G0NZIK вне форума Ответить с цитированием
Старый 13.04.2010, 17:54   #4
Cam_Wexler
 
Аватар для Cam_Wexler
 
Регистрация: 11.04.2010
Сообщений: 5
По умолчанию

не могу найти главную диагональ и отсортировать ее по убыванию
если у меня матрица квадратная, то можно рассмотреть как одномерный массив. Создам B:array[1..10] of integer;

должно выполняться по условию:
for i:= 1 to m do
а вот что дальше писать? как отсортировать? не понимаю.
Cam_Wexler вне форума Ответить с цитированием
Старый 13.04.2010, 18:01   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
не могу найти главную диагональ
ты читать умеешь?

Цитата:
главная диагональ - индексы строки и столбца равны, i = j
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 13.04.2010, 18:43   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Cam_Wexler Посмотреть сообщение
если у меня матрица квадратная, то можно рассмотреть как одномерный массив. Создам B:array[1..10] of integer;
Если у тебя матрица квадратная, то это уже двумерный массив
B:array[0..9,0..9] of integer. И отвыкайте от пионерских привычек индексировать массивы с 1. Потом, когда перейдете на Delphi и будете работать с динамическими структурами это вам отрыгнется горькой отрыжкой

Или ты хотел загнать элементы главной диагонали в отдельную одномерную матрицу, сделать сортировку и заполнить главную диагональ уже отсортированными элементами вспомогательной матрицы?
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 13.04.2010 в 18:48.
Grag вне форума Ответить с цитированием
Старый 13.04.2010, 19:37   #7
Cam_Wexler
 
Аватар для Cam_Wexler
 
Регистрация: 11.04.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Grag Посмотреть сообщение
Или ты хотел загнать элементы главной диагонали в отдельную одномерную матрицу, сделать сортировку и заполнить главную диагональ уже отсортированными элементами вспомогательной матрицы?
да)

выложу всю свою программу:
Код:
 program lab;

type masr = array [1..10, 1..10] of integer;
var
A:masr;
B: array [1..10] of integer;

z,i,j, m, n,  x, Num:integer;
fin, fout: text;
label vvod_m;
begin
{otkritie vhodnogo i vihodnogo failov}
 assign(fout, 'lab.res');
 rewrite(fout);
 assign(fin, 'DATI.txt');
 reset(fin);
{vvod kol-va strok massiva}
 vvod_m:
  writeln('vvedite chislo strok i stolbcov massiva');
 readln(m);
  if (m<2) or (m>10) then
 begin
  writeln('nedopustimoe znachenie!');
  goto vvod_m;
 end;

{zapolnenie massiva chislami iz faila}
 for i:=1 to m do
  for j:=1 to m do
   read(fin, A[i,j]);
{zakritie vhodnogo faila}
 close(fin);
{raspechatla ishodnogo massiva}
 writeln(fout, 'ishodhiy massiv iz ', m, 'x' ,m, ' elementov');
 for i:=1 to m do
 begin
  for j:=1 to m do
   write(fout, A[i,j]:5);{pechat tekushey stroki}
  writeln(fout);
 end;
 writeln(fout);
 {poisk glavnoy diagonali i ee sortirovka po ubivaniyu}
      for i:=1 to M do
    begin
    X:=A[i]; Num:=i;
      for j:=i+1 to M do
   if A[j]<M then
    begin
     X:=A[j]; Num:=j;
    end;
      x:=A[i];
    A[i]:=A[Num];
    A[Num]:=x;
    end;
   writeln('massiv otsortirovan');

  {pechat otsortirivannogo massiva}
  writeln(fout, 'sortirovanniy massiv');
  for i:=1 to m do begin
  write (fout, A[i,j]:5);
  writeln(fout); end;
  close(fout);
  END.

Последний раз редактировалось Stilet; 14.04.2010 в 09:45.
Cam_Wexler вне форума Ответить с цитированием
Старый 13.04.2010, 20:58   #8
G0NZIK
 
Аватар для G0NZIK
 
Регистрация: 05.04.2010
Сообщений: 9
По умолчанию

Мда.....
после VB 6.0 так трудно вспоминать Pascal
G0NZIK вне форума Ответить с цитированием
Старый 15.04.2010, 09:38   #9
Cam_Wexler
 
Аватар для Cam_Wexler
 
Регистрация: 11.04.2010
Сообщений: 5
По умолчанию

эх...видимо никто мне не поможет
Cam_Wexler вне форума Ответить с цитированием
Старый 14.05.2010, 22:12   #10
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Вот сортировка выбором главной диагонали по убыванию.
Код:
i:=1;
repeat
max := A[i,i];
for j:=i to N do 
 if A[j,j] > max then max := A[j,j];
tmp := A[i,i];A[i,i] := A[j,j];A[j,j]:=tmp;
i := i+1;
until (i=N)
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Двумерный массив. Fonthreat Помощь студентам 1 29.03.2010 17:57
Сформировать двумерный массив (Turbo Pascal) 0001 Фриланс 7 19.01.2010 15:09
Двумерный массив с динамической переменной Pascal AxisNet Помощь студентам 1 17.11.2009 14:33
Pascal Двумерный массив vovalski Помощь студентам 1 16.11.2009 20:42