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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2013, 13:51   #1
simak12345
 
Регистрация: 17.02.2013
Сообщений: 7
По умолчанию Матрица. найти наибольшие элементы среди стоящих на главной и побочной диагоналях и поменять их местами (Delphi)

Дана матрица 3х3.
Подскажите как найти наибольший элемент среди стоящих на главной и побочной диагоналях?
simak12345 вне форума Ответить с цитированием
Старый 17.02.2013, 13:54   #2
Alchemic
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 53
По умолчанию

simak12345, даёшь начальный код!
Alchemic вне форума Ответить с цитированием
Старый 17.02.2013, 13:58   #3
simak12345
 
Регистрация: 17.02.2013
Сообщений: 7
По умолчанию

Код:
var
  Form1: TForm1;

implementation

{$R *.dfm}
type Ta=array of array of real;

procedure ZapolnenieStrGrid(m,n:integer;StrGrd:TstringGrid);
    var i,j:integer;
begin
   StrGrd.RowCount:=m;
   StrGrd.ColCount:=n;
   for i:=1 to StrGrd.rowCount - 3 do
     for j:=1 to StrGrd.colCount - 3 do
         StrGrd.Cells[j,i]:=FloatToStrF(i-j,ffFixed,4,3);
end;

Последний раз редактировалось Stilet; 17.02.2013 в 14:02.
simak12345 вне форума Ответить с цитированием
Старый 17.02.2013, 14:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во первых код у нас принято выделать спецтегом.
Во-вторых главная диагональ это StrGrd.Cells[i,i] а побочная StrGrd.Cells[StrGrd.colCount-i,i]
И все это можно рассчитать в одном цикле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2013, 20:48   #5
simak12345
 
Регистрация: 17.02.2013
Сообщений: 7
По умолчанию Матрицы

Ребят,помогите вывести на экран наибольший элемент и поменять местами

Код:
type Tmatr= array [1..50] of array [1..50] of real;
 var
  Form1: TForm1;
  k:integer;
  matr:Tmatr;
implementation

{$R *.dfm}
type Ta=array of array of real;
  //задание матрицы и вывод на экран
procedure ZapolnenieStrGrid(m,n:integer;StrGrd:TstringGrid);
    var i,j:integer;
 begin
   StrGrd.RowCount:=m;
   StrGrd.ColCount:=n;
   for i:=0 to StrGrd.rowCount - 1 do
     for j:=0 to StrGrd.colCount- 1 do
         StrGrd.Cells[j,i]:=FloatToStrF(i-j,ffFixed,4,3);
 end;
//нахождение максимального элемента среди диагоналей
procedure TForm1.Button1Click(Sender: TObject);
   var m,n:integer;
  begin
    m:=StrToInt(Edit1.text);
    n:=StrToInt(Edit2.text);
    ZapolnenieStrGrid(m,n,StringGrid1);
  end;


procedure TForm1.Button2Click(Sender: TObject);

var i: integer; max: real; Matr:Tmatr; row, col: integer;
begin
max := Matr[1,1]; row := 1; col := 1;
for i := 1 to k do
  begin
   //главная диагональ
    if Matr[i, i] > max then
       begin
         max := Matr[i, i];
         row := i;
         col := i
        end;
   //побочная диагональ
    if Matr[i, k-i+1] > max then
        begin
          max := Matr[i, k-i+1];
          row := i;
          col := k-i+1
         end;
  end;
Matr[i,i] := max;
Matr[i,i]:=StrToInt(edit3.text);
end;


//обмен элементов и вывод результата на экран
procedure TForm1.Button3Click(Sender: TObject);
var  buf:real;
     i,j,row,col:integer;
begin
StringGrid2.RowCount := k;
StringGrid2.ColCount  := k;
buf := matr[k div 2 + 1, k div 2 + 1];
matr[k div 2 + 1, k div 2 + 1] := matr[row,col];
matr[row, col] := buf;
for i:= 1 to k do
for j:=1 to k do
StringGrid2.Cells[j-1,i-1]:=FloatToStrF(matr[i,j],ffFixed,5,2);
end;
end.


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

Последний раз редактировалось Serge_Bliznykov; 18.02.2013 в 10:32.
simak12345 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольший элемент среди стоящих выше главной и побочной диагоналей Иляна Помощь студентам 0 29.01.2013 21:43
Матрица размерностью NxM заполняется случайными числами. Поменять местами первый и последний элементы каждого столбца. (Delphi) ganster Помощь студентам 0 02.07.2012 21:46
Матрица. Найти минимальный среди положительных, находящихся над главной диагональю, и поменять его с максимальным среди отрицатель Mayers Паскаль, Turbo Pascal, PascalABC.NET 0 15.05.2012 22:25
найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять местами с эл-том на пересечении диагоналей (C#) Vovchik123 Помощь студентам 5 27.12.2011 00:01
вычислить и вывести суммы отрицательных элементов,которые росположеные на главной и побочной диагоналях; milasssska Помощь студентам 1 27.05.2010 00:08