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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.03.2011, 19:08
aerosm aerosm вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 7
Репутация: 10
По умолчанию Тема процедуры и функции. Help!

Подсчитать сумму положительних элементов каждого радка матриц А[1..4,1..5] и В[1..4,1..5].

Вот накатал. Но не работает, уже пол дня мучаюсь. Помогите, исправте.

Код:
var
  Form1: TForm1;

implementation

type mas=array [1..4,1..5] of integer;
mas1=array [1..4] of integer;
procedure dod(a:mas;var x1:mas1);
var i,j,k:integer;
begin
 
for j:=1 to 4 do
begin   k:=0;
 for i:=1 to 5 do
 if a[i,j]>0 then
 k:=k+a[i,j];
 x1[i]:=k;
end;
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
A,b: mas;
i,j:integer;l,k:mas1;
begin
for j:=1 to 4 do
begin
for i:=1 to 5 do
if (strtoint(stringgrid1.Cells[i-1,j-1])<>0)  then
a[i,j]:=strtoint(stringgrid1.Cells[i-1,0]);
if (strtoint(stringgrid2.Cells[i-1,0])<>0)   then
B[i,j]:=strtoint(stringgrid2.Cells[i-1,j-1]); end;
 dod(a,l);
 dod(b,k);
 label1.caption:=floattostr(l);
 label2.caption:=floattostr(k);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
begin
randomize;
for i:=1 to 5 do
begin
for j:=1 to 4 do
begin
stringgrid1.Cells[i-1,j-1]:=inttostr(random(100));
stringgrid2.Cells[i-1,j-1]:=inttostr(random(100));
end;
end;
end;
Ответить с цитированием
  #2  
Старый 02.03.2011, 19:30
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

в проседуре dod что то не то там помоему должно быть так
Код:
procedure dod(a:mas;var x1:mas1);
var i,j,k:integer;
begin
for j:=1 to 4 do
begin   k:=0;
 for i:=1 to 5 do
 if a[i,j]>0 then
 k:=k+a[i,j];
x1[j]:=k;
end;

end;
Ответить с цитированием
  #3  
Старый 02.03.2011, 23:17
aerosm aerosm вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 7
Репутация: 10
По умолчанию

ну незнаю. так же неработает
Ответить с цитированием
  #4  
Старый 02.03.2011, 23:26
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Дк а что именно не работает. ошибку выдает или не верно складывает
Ответить с цитированием
  #5  
Старый 02.03.2011, 23:32
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Код:
procedure dod(a:mas;var x1:mas1);
var i,j,k:integer;
begin
for i:=1 to 4 do
begin   k:=0;
 for j:=1 to 5 do
 if a[i,j]>0 then
 k:=k+a[i,j];
x1[i]:=k;
end;
end;

вот так попробуй, там еще баг был.

Последний раз редактировалось Pilot_Red, 02.03.2011 в 23:35.
Ответить с цитированием
  #6  
Старый 03.03.2011, 15:21
aerosm aerosm вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 7
Репутация: 10
По умолчанию

здесь выдает ошибку [Error] Unit1.pas(61): Incompatible types: 'String' and 'mas1'
Код:
label1.caption:=floattostr(l);
 label2.caption:=floattostr(k);
Ответить с цитированием
  #7  
Старый 03.03.2011, 18:45
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

дк конечно будет выдавать...
ты присваиваешь строке целый массив.
вот собственно рабочий вариант
label1.caption:=inttostr(l[номер ряда]);
label2.caption:=inttostr(k[номер ряда]);

почему inttostr а не floattostr, потому что у тебя целочисленный массив

а вообще почитай хоть чуть чуть о типах..
Ответить с цитированием
  #8  
Старый 03.03.2011, 19:02
aerosm aerosm вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 7
Репутация: 10
По умолчанию

все. сделал. спасибо!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter