Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.09.2009, 12:42
inferno mf inferno mf вне форума
Прохожий
 
Регистрация: 13.09.2009
Сообщения: 19
Репутация: 10
По умолчанию Массивы Delphi

Доброго всем! Может кто-нибудь помочь с задачкой?

a)В матрице n-ого порядка найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов , лежащих выше главной диагонали.

b) Определить кол-во инверсий в этом массиве X.

Алгоритм можете пояснить?

Заранее благодарен.
Ответить с цитированием
  #2  
Старый 13.09.2009, 17:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Для а) я вам написал:
Код:
program Project32;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
  Matrix: Array of Array of Integer;
  i,j,N,Max,Min: Integer;
begin
 // Формируем квадратную матрицу N-размерности
 Randomize;
 N := Random(9)+2;
 SetLength(Matrix, N);
 for i := 0 to N-1
 do begin
    SetLength(Matrix[i], N);
    for j := 0 to N-1
    do begin
       Matrix[i,j] := Random(99)+1;
       Write(Matrix[i,j]:3)
       end;
    WriteLn;
    end;
 //Ищем максимальный среди элементов, лежащих ниже побочной диагонали
 Max := Matrix[1,N-1];
 for i := 1 to N-1
 do for j := N-i to N-1
    do if Matrix[i,j] > Max then Max := Matrix[i,j];
 WriteLn('Max = ',Max:3);
 //Ищем минимальный среди элементов, лежащих выше главной диагонали
 Min := Matrix[0,1];
 for i := 1 to N-2
 do for j := i+1 to N-1
    do if Matrix[i,j] < Min then Min := Matrix[i,j];
 WriteLn('Min = ',Min:3);
 ReadLn;
end.
А вот что такое инверсия в матрице помню только смутно
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 19.09.2009, 15:45
inferno mf inferno mf вне форума
Прохожий
 
Регистрация: 13.09.2009
Сообщения: 19
Репутация: 10
По умолчанию

спасибо огромное.

Не подскажите где там еще можно обработку исключительных ситуаций подключить?

Во 2-ой дан двумерный динамический массив.

инверсия это такие пары элементов, в которых большее число находится слева от меньшего: xi>xj при i<j.
Ответить с цитированием
  #4  
Старый 19.09.2009, 16:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Сообщение от inferno mf
спасибо огромное.

Не подскажите где там еще можно обработку исключительных ситуаций подключить?
Даже затрудняюсь сказать, где там можно обработку исключений пришпандорить, т.к. не вижу мест которые их могли бы вызвать.
Цитата:
Сообщение от inferno mf
Во 2-ой дан двумерный динамический массив.
Это к чему? Поясните мысль.
Цитата:
Сообщение от inferno mf
инверсия это такие пары элементов, в которых большее число находится слева от меньшего: xi>xj при i<j.
Понятно, вот держите дополнение для инверсий:
Код:
 Inv := 0;
 for i := 0 to N-1
 do for j := 0 to N-2
    do if Matrix[i,j] > Matrix[i,j+1]
       then Inc(Inv);
 WriteLn('Inv = ',Inv:3);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter