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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.05.2008, 20:56
111q 111q вне форума
Прохожий
 
Регистрация: 11.05.2008
Сообщения: 1
Репутация: 10
Восклицание масив в Stringgrid

Помогите пожайлуста переделать из паскаля в дельфи такую программу с использованием стринггрида (т.е. как я ппонимаю надо чтоб в стриннгрид1 ввелась рондомом матрица а во второй стринггрид поместить результат) . Использовать подпрограммы (ввода, вывода, обрабатывающей части). Дан масив целых чисел 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;

begin
clrscr;
InputArray(a,m,n);
writeln;
writeln('Ishodnaia matrica: ');
OutputArray(a,m,n);
DelCount(a,m,n);
writeln;
writeln;
writeln('Rezultat: ');
OutputArray(a,m,n);
readln;
readln;
end. 
Ответить с цитированием
  #2  
Старый 11.05.2008, 23:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Убиться можно. Если с вводом и выводом все понятно, то с тем, что делается в обработке ерунда какая-то. Ты уверен, что тебе просто надо в исходном массиве удалить столбцы с нулевыми элементами, т.к. приведенная программа еще чего-то там делает...

Фишка Дельфи в том, что ей не нужны такие сложные процедуры ввода и вывода, т.к. форма существует всегда во время выполнения программы и ввод/вывод можно фактически пропустить.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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