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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 21:38   #1
Camelot_2012
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 90
По умолчанию Расположить в порядке возрастания их абсолютных величин.

В матрице А (mxn) элементы главной диагонали расположить в порядке возрастания их абсолютных величин.
Не могу понять что дальше писать!

Код:
Program zadacha;
Uses crt;
const m=3;
      n=3;    
var a:array[1..m,1..n] of integer;
    i,j:integer;
begin clrscr;
for i:=1 to m do
for j:=1 to n do
begin
write('vvedite a[', i, ',', j, ']: ');
read(a[i,j]);
end;
for i:=1 to m do
begin
writeln;
for j:=1 to n do
write(a[i,j]:6);
end;
for i:=1 to m do
for j:=1 to n do
begin
if a[i,i]

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

Последний раз редактировалось Serge_Bliznykov; 12.04.2012 в 22:59.
Camelot_2012 вне форума Ответить с цитированием
Старый 13.04.2012, 00:08   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, зачем Вам ДВЕ константы размерности массива: M и N - главная диагональ определена ИСКЛЮЧИТЕЛЬНО в квадратной матрице, а значит либо M должно быть равно N, либо (лучше!) оставьте одну константу:
Код:
const 
     n=3;    
var a:array[1..n,1..n] of integer;
ну, разумеется, везде вместо m поставьте n



во-вторых, вместо
Цитата:
Код:
for i:=1 to m do
for j:=1 to n do
begin
if a[i,i]
напишите что-то вроде:
Код:
  {сортируем элементы главной диагонали}
  for i := 1 to n- 1 do 
      for j := i + 1 to n do
        if abs(a[i,i]) < abs(a[j,j]) then begin
          k := a[i,i];
          a[i,i] := a[j,j];
          a[j.j] := k;
        end;

не забудьте после сортировки вывести полученную матрицу


p.s. код писал тут. не проверял...

p.p.s. если что-то непонятно - спрашивайте.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.04.2012, 00:34   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

эм... одна поправочка
данный код
Цитата:
Код:
{сортируем элементы главной диагонали}
  for i := 1 to n- 1 do 
      for j := i + 1 to n do
        if abs(a[i,i]) < abs(a[j,j]) then begin
          k := a[i,i];
          a[i,i] := a[j,j];
          a[j.j] := k;
        end;
отсортирует по убыванию...
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 13.04.2012, 08:33   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Hacker19_90
отсортирует по убыванию...
Hacker19_90, ваша правда! Так и есть. Ошибся я со знаком!
надо наоборот:
Код:
{сортируем элементы главной диагонали}
...
        if abs(a[i,i]) > abs(a[j,j]) then begin
...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расположить элементы матрицы в порядке возрастания. Cer)I(ik Паскаль, Turbo Pascal, PascalABC.NET 2 07.04.2011 00:29
расположить числа в порядке возрастания Julila Помощь студентам 4 04.01.2011 19:32
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41
В строках таблицы,содержащих наибольшее кол-во нулей, найти минимальную в строке сумму абсолютных величин Bga Помощь студентам 2 07.12.2009 00:52