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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2022, 16:27   #11
funny.weirdo
Пользователь
 
Регистрация: 24.05.2022
Сообщений: 15
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Хотя судя по всему в 0 строке у вас заголовок. Тогда цикл лучше начинать не с 0, а с 1 для заполнения суммы сгруппированной по городам.
Да, дело было в этом, проглядел
Спасибо большое


Код:
procedure TForm1.Button2Click(Sender: TObject);
var city: array of String;
count: array of Integer;
f,i,j: Integer;
begin
 // Сначала надо посчитать суммы домов сгруппированные по именам городов
SetLength(city, 0);
SetLength(count, 0);
with StringGrid1 do
for i := 1 to RowCount-1 do
begin
f := low(city)- 1; // Поиск совпадения с именем города в массиве
for j := f+1 to high(city) do
if lowercase(Cells[1, i]) = city[j] then
begin f := j; // Совпадение найдено, изменяем флаг
inc(count[j], strtoint(Cells[3, i])); // Учет количества в соответствующем городе
break; // Конец поиска
end;
if f < low(city) then
begin // Флаг показывает, что совпадения не было, тогда добавляем новый город в массивы
f := Length(city);
SetLength(city, f + 1); // Расширяем массив имен
SetLength(count, f + 1); // Расширяем массив счетчиков
f := high(city);
city[f] := lowercase(Cells[1, i]); // Добавление имени города в массив
count[f] := strtoint(Cells[3, i]); // Добавление количества домов в массив
end;
end;
j := low(city);
f := count[j]; // Поиск минимального элемента в массиве
for i := j + 1 to high(city) do
if f > count[i] then
begin
j := i;
f := count[i];
end;
Edit4.Text := city[j]; // Наименование города
Edit5.Text := inttostr(count[j]); // Минимально количество домов
end;
funny.weirdo вне форума Ответить с цитированием
Старый 25.05.2022, 16:41   #12
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Я не успел исправить предыдущий пост до того как вы это напечатали. Прочитайте его еще раз.
macomics вне форума Ответить с цитированием
Старый 25.05.2022, 16:47   #13
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от funny.weirdo Посмотреть сообщение
А как найти город с минимальным числом домов? Пытаюсь писать и выходит откровенный бред
Прошу прощения, но зачем вам город?

Цитата:
Сообщение от funny.weirdo Посмотреть сообщение
Для кнопки реализовать поиск по таблице StringGrid1 [город][улица][число домов]
улиц с самым маленьким и самым большим числом домов в КАЖДОМ городе
Здесь вы пишете, что вам нужны улицы в каждом городе, а не города
mr.stranger вне форума Ответить с цитированием
Старый 25.05.2022, 16:49   #14
funny.weirdo
Пользователь
 
Регистрация: 24.05.2022
Сообщений: 15
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Я не успел исправить предыдущий пост до того как вы это напечатали. Прочитайте его еще раз.
Увидел, спасибо
funny.weirdo вне форума Ответить с цитированием
Старый 25.05.2022, 16:51   #15
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Тогда еще проще. Даже массив count не понадобится. Но я думаю используя этот пример он сможет найти min и max по таблице.
При нахождении нового города надо в StringGrid2 добавлять 2 строки с min и max. Тогда при нахождении улицы с меньшим числом домов можно обновить FixedRows + 2 * i строку, а при большем числе домов - FixedRows + 2 * i + 1 строку.

Последний раз редактировалось macomics; 25.05.2022 в 16:54.
macomics вне форума Ответить с цитированием
Старый 25.05.2022, 16:51   #16
funny.weirdo
Пользователь
 
Регистрация: 24.05.2022
Сообщений: 15
По умолчанию

Цитата:
Сообщение от mr.stranger Посмотреть сообщение
Здесь вы пишете, что вам нужны улицы в каждом городе, а не города
0_о
Точно
Но, этот код - тоже задание, просто другое, так что все было не зря)
Правда эта проблема остается открытой
Цитата:
Сообщение от mr.stranger Посмотреть сообщение
нужны улицы в каждом городе, а не города
funny.weirdo вне форума Ответить с цитированием
Старый 25.05.2022, 16:52   #17
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
min и max по таблице
Как я понимаю, надо не по таблице, а для каждого города в отдельности
В таком случае кст вывод вам надо сделать в StringGrid2, потому что записей может быть много

Последний раз редактировалось mr.stranger; 25.05.2022 в 17:48.
mr.stranger вне форума Ответить с цитированием
Старый 25.05.2022, 16:55   #18
funny.weirdo
Пользователь
 
Регистрация: 24.05.2022
Сообщений: 15
По умолчанию

mr.stranger, Да
funny.weirdo вне форума Ответить с цитированием
Старый 29.05.2022, 22:48   #19
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Даже массив count не понадобится.
Простите, но почему не понадобится, в здании же написано, что надо найти улицы с max и min количеством домов?
mr.stranger вне форума Ответить с цитированием
Старый 29.05.2022, 22:49   #20
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Мне не совсем понятно, как в таком случае будет выглядеть код
mr.stranger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в StringGrid Retiree Компоненты Delphi 1 27.04.2012 09:52
Поиск по БД в StringGrid Anny_Apple БД в Delphi 12 27.05.2011 00:14
Поиск в StringGrid program123 Общие вопросы Delphi 6 13.09.2010 09:45
Поиск в StringGrid program123 Помощь студентам 5 11.04.2009 19:10
Поиск по StringGrid'у monushka Помощь студентам 3 09.02.2008 20:03