Форум «Всё о Паскале» _ Делфи _ матрица в стринггриде
Автор: snopy 11.05.2008 22:46
Помогите пожайлуста переделать из паскаля в дельфи такую программу с использованием стринггрида. Использовать подпрограммы (ввода, вывода, обрабатывающей части). Дан масив целых чисел A[M,N], где M,N<=10. Удалить все столбцы, в которых нет нулевого элемента. Использовать стринггрид. Вот код на паскале.
Код
program Task; uses crt; type mas=array [1..10,1..10] of integer; var a:mas; m,n:integer;
procedure InputArray(var a:mas;var m,n:integer); var i,j:integer; k:boolean; begin k:=true; while k do begin write('Vvedite razmer massiva (m,n): '); readln(m,n); if (m>10) or (n>10) then writeln('Error!Razmer bolshhe 10!!') else k:=false; end; { writeln('Vvedite massiv razmerom ',m,' x ',n); } for i:=1 to m do for j:=1 to n do begin write('a[',i,',',j,']='); read(a[i][j]); end; end;
procedure DelCount(var a:mas;m:integer;var n:integer); var i,j,i2,j2:integer; f:boolean; begin f:=true; j:=1; while j<=n do begin if not(f) then begin for i2:=1 to m do for j2:=j-1 to n-1 do a[i2][j2]:=a[i2][j2+1]; n:=n-1; j:=j-1; end else f:=false; for i:=1 to m do if a[i][j]=0 then f:=true; j:=j+1; end; f:=false; for i:=1 to m do if a[i][n]=0 then f:=true; if not(f) then n:=n-1; end;
procedure OutputArray(a:mas;m,n:integer); var i,j:integer; begin if n=0 then writeln('Stolbci ne soderzhat 0-elementov!') else for i:=1 to m do begin writeln; for j:=1 to n do write(' ',a[i][j]); end; end;
Вообщем так, как кинул СтрингГрид на форму, то там есть следующие "методы" работы сней, которые тебе понадобятся :
Stringgrid1.RowCount //Количество строк Stringgrid1.ColCount //Количество Колонок Stringgrid1.Cell[i,j] //Содержание i-го столбца, j-ой строки в виде !!!строки!!! Stringgrid1.Weight // Общая ширина всего грида, Stringgrid1.Height //тут может что-то не так в синтаксисе... Stringgrid1.ColWidht[i] // Общая ширина Колонки грида, Stringgrid1.RowHeight[i] //Общая высота строки грида,
Добавлено через 10 мин. Также понадобятся тебе диалоги с пользователем:
Inputox(s1,s2,s3);//функция возвращает строку. s1 каптион диалога, s2 Что над едитом будет, s3 То что в едите будет Showmessage(s1);//покажет сообщение со строкой s1 и кнопкой OK MessageDLG(); ещё есть но она тебе не нужна
Автор: мисс_граффити 12.05.2008 2:49
Baumanec, это не методы, а свойства.
Автор: Baumanec 14.05.2008 23:19
Я знаю, поэтому в кавычки поставил. Это для повышения понимаемости тут, когда я начинал такими фразами бросаться то все в аут уходили...