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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2013, 15:38   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот этот кусок кода:
Цитата:
Код:
 For i:=1 to n do
 For j:=1 to n do
	  if abs(A[i,j])>absmax then
		        begin
		           imax:=i;
		           jmax:=j;
		           absmax:=A[i][j];
		        end;
вообще, по хорошему, должен выглядеть так:
Код:
 imax:=1;
 jmax:=1;
 For i:=1 to n do
   For j:=1 to n do
    if abs(A[i,j])>abs(A[imax,jmax]) then
          begin
              imax:=i;
              jmax:=j;
          end;
и, кстати, переменная absmax в таком случае вообще не нужна!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.10.2013, 16:42   #12
mta0
Пользователь
 
Регистрация: 18.09.2013
Сообщений: 23
По умолчанию

Цитата:
Сообщение от SaLoKiN Посмотреть сообщение
не нашел
Код:
imax:=0;
jmax:=0;
absmax:=A[1][1];
Код:
imax:=i;   
jmax:=j; 
absmax:=A[i][j];
и так и так по нулям
mta0 вне форума Ответить с цитированием
Старый 22.10.2013, 16:45   #13
mta0
Пользователь
 
Регистрация: 18.09.2013
Сообщений: 23
Хорошо

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вот этот кусок кода:


вообще, по хорошему, должен выглядеть так:
Код:
 imax:=1;
 jmax:=1;
 For i:=1 to n do
   For j:=1 to n do
    if abs(A[i,j])>abs(A[imax,jmax]) then
          begin
              imax:=i;
              jmax:=j;
          end;
и, кстати, переменная absmax в таком случае вообще не нужна!
Вот так понятнее
mta0 вне форума Ответить с цитированием
Старый 22.10.2013, 17:36   #14
mta0
Пользователь
 
Регистрация: 18.09.2013
Сообщений: 23
По умолчанию

Разобрался . Всем огромное спасибо !!!
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, mxarrays, math;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

 const
  nmax=5;   //ìàêñ ðàçìåð
 type
 mas1=array[1..nmax,1..nmax] of extended;
 mas2=array[1..nmax,1..nmax] of extended;




var
  Form1: TForm1;
  B: mas2;
  A: mas1;
n, jmax, i, j, imax: integer;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

n:=3;
   Edit1.Text:=floattostr(n);

{çàäàíèå ñòðîê è ñòîëáöîâ}
stringgrid1.RowCount:=n+1;
stringgrid1.colCount:=n+1;
stringgrid2.RowCount:=n;
stringgrid2.colCount:=n;
{Çàïîëíåíèå âåðõíåãî è ëåâîãî ñòîëáöîâ ïîÿñíÿþùèìè ïîäïèñÿìè}
   for i:=1 to n do StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
   for i:=1 to n do StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
   for i:=1 to n do StringGrid2.Cells[0,i]:=' i= '+IntToStr(i);
   for i:=1 to n do StringGrid2.Cells[i,0]:=' j= '+IntToStr(i);


{ââîä â ëåâóþ âåðíþþ ÿ÷åéêó òàáëèöû íàçâàåèÿ ìàññèâà}
stringgrid1.Cells[0,0]:='Maccèâ À';
stringgrid2.Cells[0,0]:='Maccèâ B';

{çàïîëíåíèå âåðõíåãî è ëåâîãî ñòîëáöîâ}
for i:=1 to n do begin
stringgrid1.Cells[0,i]:='J='+inttostr(i);
stringgrid2.Cells[0,i]:='J='+inttostr(i);
end;
end;





procedure TForm1.Button1Click(Sender: TObject);
begin
   n:=StrToInt(Edit1.Text);

 {Çàäàíèå ÷èñëà ñòðîê è ñòîëáöîâ â òàáëèöàõ}
   StringGrid1.RowCount:=n+1;
   StringGrid1.ColCount:=n+1;
   StringGrid2.RowCount:=n;
   StringGrid2.colCount:=n;
 {Çàïîëíåíèå âåðõíåãî è ëåâîãî ñòîëáöîâ ïîÿñíÿþùèìè ïîäïèñÿìè}
   for i:=1 to n do StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
   for i:=1 to n do StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
   for i:=1 to n do StringGrid2.Cells[0,i]:=' i= '+IntToStr(i);
   for i:=1 to n do StringGrid2.Cells[i,0]:=' j= '+IntToStr(i);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin


  {Çàïîëíåíèå ìàññèâà À ýëåìåíòàìè èç òàáëèöû StringGrid1}
  for i:=1 to n do
  for j:=1 to n do
  A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);

{íàõîæäåíèå max}
  imax:=1;
  jmax:=1;
   For i:=1 to n do
   For j:=1 to n do
    if abs(A[i,j])>abs(A[imax,jmax]) then
          begin
              imax:=i;
              jmax:=j;
          end;

{âû÷åðêèâàíèå}

for i:=imax to n-1 do
       for j:=1 to n do 
       A[i,j]:=A[i+1,j];
       
 for j:=jmax to n-1 do
       for i:=1 to n-1 do 
       A[i,j]:=A[i,j+1];      
         
 
   for i:=1 to n-1 do
      begin
      for j:=1 to n-1 do
        Stringgrid2.Cells[i,j]:=floattoStr(A[j,i]);

      end;
       end;



 end.
mta0 вне форума Ответить с цитированием
Старый 22.10.2013, 18:13   #15
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вот этот кусок кода:


вообще, по хорошему, должен выглядеть так:
согласен с вами, но причина вывода нулей думаю была явно не в этом =)
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Excel в Delhi. KyTuH Общие вопросы Delphi 2 30.05.2013 11:31
Проблема с массивом logo23 Паскаль, Turbo Pascal, PascalABC.NET 8 03.05.2012 21:42
Проблема с массивом Тёма_) Visual C++ 9 22.03.2012 00:01
проблема с массивом и бд hunter03 Помощь студентам 4 16.10.2011 17:57
проблема с массивом Lonix Общие вопросы Delphi 2 06.11.2007 23:56