mmotop20oo12

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору всем привет, недавно перешли на ООП (обьектное программирование в делфи). Столкнулся с задачей суть в том что бы вывести номер не повторяющихся элементов двумерного массива. я вроде бы все написал вот вам код и скрины, но единственное я не могу понять как мне сделать эту проверку на неодинаковые элементы, пытался но ставит ошибку. помогите пожалуйста. http://f-picture.net/lfp/s018.radikal.ru/i508/1412/aa/ffaa46cde565.png/htm ставит ошибку когда щетчик начинаю Код: unit lb2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) Button1: TButton; StringGrid1: TStringGrid; Edit1: TEdit; Button2: TButton; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const nmax=10; //максимальная размерность массива type //объявление типа двумерного массива mas2=array[1..NMax,1..Nmax] of extended; var Form1: TForm1; a:mas2; n,i,j:integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin n:=3; //размерность массива //задание числа строк и столбцов для матриц Edit1.Text:=floattostr(n); StringGrid1.ColCount:=n+1; StringGrid1.rowCount:=n+1; //Заполнение верхнего и левого столбцов надписями StringGrid1.Cells[0,0]:='Массив A'; for i:=1 to n do begin StringGrid1.Cells[0,i]:='i='+Inttostr(i); StringGrid1.Cells[i,0]:='j='+Inttostr(i); end; end; procedure TForm1.Button1Click(Sender: TObject); begin StringGrid1.Cells[0,0]:='Массив A'; n:=StrToInt(Edit1.Text); //задание числа строк и столбцов для матриц StringGrid1.ColCount:=n+1; StringGrid1.rowCount:=n+1; for i:=1 to n do begin StringGrid1.Cells[0,i]:='i='+Inttostr(i); StringGrid1.Cells[i,0]:='j='+Inttostr(i); end; end; procedure TForm1.Button2Click(Sender: TObject); var x,q,p,s,d,k:extended; //x,q,p,s,d:integer; begin //Заполнение массива А элементами таблицы StringGrid1 for i:=1 to n do for j:=1 to n do a[i,j]:=StrToFloat(StringGrid1.Cells[j,i]); for q:= 1 to n do for p:= 1 to n do begin x:=a[q,p]; k:=0; for s:= 1 to n do for d:= 1 to n do if a[s,d]=x then k:=k+1; end; Memo1.Lines.Add(' k= '+FloatToStrF(k,ffFixed,8,2)) end; end. |
|