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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 22:38   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Почему постоянно один и тотже минимальный элемент?

Код:
min:=a[1,1]; 
For i:=1 to m do
For j:=1 to m do
begin
If a[i,j]<min then
If (pos('/ ',Form1.StringGrid1.Cells[i,j])=0) or (pos('. ',Form1.StringGrid1.Cells[i,j])=0) then
begin
min:=a[i,j];
it:=i;
jt:=j;
end;
end;
При каждом нажатии на кнопку на форме в Stringgrid должны появляться '/' и '.' И это условие должно учитываться в нахождении минимального элемента. А оно пропускается!!! Почему?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 24.03.2010, 23:12   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

If (pos('/ ',Form1.StringGrid1.Cells[i,j])=0) AND (pos('. ',Form1.StringGrid1.Cells[i,j])=0) then
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 24.03.2010, 23:23   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Не работает так. Почему-то элемент a[1,1] постоянно минимуу присваивает, программа просто тупо пропускает этот оператор!!!
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 24.03.2010 в 23:30.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 24.03.2010, 23:43   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
If (pos('/ ',Form1.StringGrid1.Cells[i,j])=0) And (pos('. ',Form1.StringGrid1.Cells[i,j])=0)
может клетки не те читает?

Последний раз редактировалось NiCola999; 24.03.2010 в 23:45.
NiCola999 вне форума Ответить с цитированием
Старый 25.03.2010, 07:27   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Если вы пишите в условии and значит программа будет думать, что вы хотите проверить наличие в клетке стринггрида символов '/' и '.' А то, что проблема в строчке min:=a[1,1]... Ведь минимальный элемент с чем надо сравнивать не меняется!!! он остается a[1,1], а надо, чтобы, за номинальный минимальный брался тот элемент, в ячейки которого отсутствовали символы '/' ИЛИ '.' Проблема решена своими силами, но спасибо, что пытались помочь.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 25.03.2010, 07:34   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе нужно чтоб min:=a[i,j]; срабатывал если . и / найдены в клетке?
Тогда тебе не равно нужно писать потому что pos возвращает позицию найденного и если она не 0 то такое найдено:
Код:
If (pos('/ ',Form1.StringGrid1.Cells[i,j])<>0) or (pos('. ',Form1.StringGrid1.Cells[i,j])<>0) then
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.03.2010, 08:31   #7
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Так ведь pos может быть не равно 0, а в случае <>, оно ведь может быть и >0, следовательно стоит ограничиться только знаком < В любом случае я разобрался уже. А делал я программу по распределению грузов по их минимальной стоимости, если надо - выложу код. И в моем случае pos просто не может быть = 0, так получается из распределения.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
Транспонировать квадрат,в нижнем левом углу которого находится минимальный элемент zidan671 Помощь студентам 14 13.03.2009 22:05
заменить любой минимальный элемент максимальным и сменить знак максимального элемента противоположным Рітка-кулеметчиця Паскаль, Turbo Pascal, PascalABC.NET 2 26.01.2009 17:45
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24