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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2013, 14:26   #1
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию оконное приложение. в чем ошибка?

здраствуйте, вот это моя программа для оконного приложения:
дана матрица А из n строк и m столбцов. для каждого столбца матрицы найти среднее арифметическое элементов больших нуля, но меньше единицы.

вот код программы:

Код:
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k,n,m:integer; S,Sr:real;
A:array of array of real;
B:array of real;
begin
n:=StrToInt(Edit1.Text);{ считали из компонент Edit1}
m:=StrToInt(Edit2.Text);
SetLength(A,m,n);{распределение памяти под массивы a}
SetLength(B,m);
StringGrid2.ColCount:=m+1;  {и s }
for i:=1 to n do {в цикле считываем из ячеек компоненты}
for j:=1 to m do {StringGrid1 значения элементов матрицы}
if StringGrid1.Cells[j,i]='' then {если ячейка пустая}
a[i-1,j-1]:=0 {то элемент матрицы равен нулю}
else
a[i-1,j-1]:=StrToFloat(StringGrid1.Cells[j,i]);
{закончен ввод матрицы, далее обработка}
for j:=0 to (m-1) do
begin
k:=0;Sr:=0;S:=0;B[j]:=0;
for i:=0 to (n-1) do
if(A[i,j]>0) and (A[i,j]<1) then
begin
S:=S+A[i,j];
k:=k+1;
end;
if k=0 then
B[j]:=0 else

Sr:=S/k;
B[j]:=Sr;

end;

for j:=1 to m do
begin {в цикле записываем в ячейки StringGrid2}
StringGrid2.Cells[j,1]:=FloatToStr(B[j]);
 
end;
end;
суть в том, что в выходном массиве в последней ячейке ВСЕГДА вместо нужного среднего арифметического, записывается какое-то странное число, не могу понять, в чем ошибка? почему для последнего столбца со средним арифметическим что-то не так?
помогите,пожалуйста!

Последний раз редактировалось ACE Valery; 09.03.2013 в 19:19.
Катерина Рыжая вне форума Ответить с цитированием
Старый 09.03.2013, 14:42   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Вообще-то везде принято нумеровать с 0, а не с 1.
s-andriano вне форума Ответить с цитированием
Старый 09.03.2013, 14:50   #3
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию

точно.. спасибо огромное! она наконец-то заработала!
Катерина Рыжая вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать диалоговое приложение для Windows NT. В чем ошибка? veronika_nika Помощь студентам 6 22.10.2012 21:50
простейшее оконное приложение sergej735 Win Api 3 18.06.2011 10:40
оконное приложение programmm Win Api 1 16.05.2011 23:09
Как проще создать оконное приложение Mrloony Общие вопросы C/C++ 3 22.09.2008 00:00