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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.02.2009, 15:01   #1
aks
Пользователь
 
Аватар для aks
 
Регистрация: 03.02.2009
Сообщений: 44
Вопрос помогите со stringgrid в delphi


Дана матрица размером m*n, определить количество и координаты
особых элементов матрицы. Элемент считается особым, если он больше
суммы остальных элементов своего столбца и при этом в его строке слева от него находятся элементы меньше него, а справа больше него.
Помогите найти ошибку в коде
массив вводится вручную, но при выполнении выдает: lable1.caption:='osobih netu' даже при том, что он есть.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
for w:=1 to 4 do
for q:=1 to 4 do
a[w,q]:=StrToFloat(StringGrid1.Cells[w,q]);
for w:=1 to 4 do
for q:=1 to 4 do
sum[w]:=sum[w]+a[q,w];
for q:=1 to 4 do begin
for w:=1 to 4 do begin
if sum[q]<a[w,q] then
if (a[w,q]>a[w,q-1]) and (a[w,q]<a[w,q+1]) then
lable1.caption:='osobi'
else
lable1.caption:='osobih netu'
end;
end;
end;
From Stilet: Тег Code не забываем - код оформляем правильно

Последний раз редактировалось Stilet; 12.02.2009 в 09:39.
aks вне форума
Старый 10.02.2009, 16:10   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Вы сравнивает элемент с суммой элементов. Интересно, как он может быть больше суммы, если сам в нее включен? Наверное утверждение о том, что элемент больше суммы остальных элементов своего столбца выглядит
Код:
if x>(sum-x)
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума
Старый 11.02.2009, 15:04   #3
aks
Пользователь
 
Аватар для aks
 
Регистрация: 03.02.2009
Сообщений: 44
По умолчанию

тогда подскажите как найти max элемент в столбце, а то ячто-то туплю!
aks вне форума
Старый 11.02.2009, 15:18   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от aks
подскажите как найти max элемент в столбце
Допустим, надо найти максимум в первом столбце.
Код:
max := 1;  { считаем, что первый элемент - максимум }
for i:=2 to m do  { проходите по остальным элементам столбца }
  if a[i,1] > a[max,1] then  max := i;
Теперь в max индекс максимального элемента.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 11.02.2009, 15:49   #5
aks
Пользователь
 
Аватар для aks
 
Регистрация: 03.02.2009
Сообщений: 44
По умолчанию

все равно работает некорректно
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
for w:=1 to 4 do
for q:=1 to 4 do
a[w,q]:=StrToFloat(StringGrid1.Cells[w,q]);
max:=1;
for w:=2 to 4 do
if a[w,1]>a[max,1] then max:=w;
for q:=2 to 3 do begin
for w:=1 to 4 do begin
sum[w]:=sum[w]+a[q,w]-max;
if (max>sum[w]) and (a[w,q]>a[w,q-1]) and (a[w,q]<a[w,q+1]) then
label1.caption:='osbi netu'
else
label1.Caption:='osobi ['+IntToStr(q)+','+IntToStr(w)+']';
end;
end;
end;

Последний раз редактировалось Stilet; 12.02.2009 в 09:39.
aks вне форума
Старый 11.02.2009, 15:55   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
if (a[w,q]>sum[w]-a[w,q]) and (a[w,q]<a[w,q+1]) then
строка проверка на особенность.
Конечно элемент должен быть максимумом в своей строке, но к чему эти сложности
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума
Старый 11.02.2009, 16:19   #7
aks
Пользователь
 
Аватар для aks
 
Регистрация: 03.02.2009
Сообщений: 44
По умолчанию

с эти все ясно, но

Код:
label1.Caption:='osobi ['+IntToStr(q)+','+IntToStr(w)+']';
выводит каждый раз одно и тоже значение

Последний раз редактировалось Stilet; 12.02.2009 в 09:39.
aks вне форума
Старый 12.02.2009, 09:41   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
label1.Caption:=label1.Caption+'osobi ['+IntToStr(q)+','+IntToStr(w)+']';
или
Код:
label1.Caption:=label1.Caption+'osobi ['+IntToStr(q)+','+IntToStr(w)+']'+chr(13);
I'm learning to live...

Последний раз редактировалось Stilet; 12.02.2009 в 09:44.
Stilet вне форума
Старый 12.02.2009, 16:18   #9
aks
Пользователь
 
Аватар для aks
 
Регистрация: 03.02.2009
Сообщений: 44
По умолчанию

всем спасибо теперь все работае. тему можно закрывать.
aks вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel и StringGrid в Delphi monushka Помощь студентам 28 28.10.2009 16:33
помогите со stringgrid в delphi aks Общие вопросы Delphi 4 03.02.2009 17:13
Delphi:Работа с Listbox и StringGrid Shaitan Помощь студентам 2 11.11.2008 21:04
перевести программу из Pascal с использованием компонента Stringgrid в delphi. evrey Компоненты Delphi 4 02.06.2008 18:57
Delphi(Stringgrid) подскажите zzzzz Помощь студентам 1 14.07.2007 11:51