Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 44

Задача на массивы в StringGrid

29.07.2013, 23:03. Показов 1147. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане, требуется ваша помощь, изучаю C++ совсем недолго, строго за нубовопросы не судите
Ниже обработчик для кнопки вывода в мемо наименьших значений по столбикам массива в SG (fixed Cols/Rows 1), значения находятся верно, но при попытке вывести их индексы и переможить их, считает через раз, чаще выдает неверно или значения вроде "1231241", укажите на ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int index1, index2, proiz, min;
min=StrToInt(StringGrid1->Cells[1][1]);
 for (j = 1; j < StringGrid1->ColCount; j++) {
    min = StrToInt(StringGrid1->Cells[j][1]) ;
        for (i = 1; i < StringGrid1->RowCount; i++) {
            if (StrToInt(StringGrid1->Cells[j][i]) < min) {
                min = StrToInt(StringGrid1->Cells[j][i]);
                index1 = i;
                index2 = j;
                proiz = i*j;
        }
          }
Memo1->Lines->Add("Минимальный элемент в столбце  " + IntToStr(j) + " = " +
            IntToStr(min));
Memo2->Lines->Add("Индексы минимальных элементов:  " + IntToStr(index1) + " и " +
            IntToStr(index2));
Memo3->Lines->Add("Произведения индексов:  " + IntToStr(proiz));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2013, 23:03
Ответы с готовыми решениями:

Массивы StringGrid
Помогите пожалуйста!!! Задача состоит в том что надо создать 2-ухмерный массив в стринггрид.(размеры массива вводишь сам, числа...

StringGrid и массивы
Привет, форумчане. Я в Делфи не особо разбираюсь, и у меня к вам вот такой вопрос. У меня дан массив a размерностью n элементов, a:=1,...

StringGrid массивы
Помогите, я совсем зеленый в программировании

8
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
29.07.2013, 23:19
во-первых, такая форма записи не является приемлемой, каждая переменная должна объявляться на новой строке:
Мун,
Цитата Сообщение от Мун Посмотреть сообщение
int index1, index2, proiz, min;
во-вторых, крайне нехорошо объявлять переменные без инициализации, тоже есть не очень хорошо

в-третьих, научитесь уже использовать дебаггер, в билдере он довольно простой и удобный.. не получается стандартными средствами, ну пишите хотя бы логи выполнения алгоритма...
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
30.07.2013, 05:53
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
во-первых, такая форма записи не является приемлемой, каждая переменная должна объявляться на новой строке:
странно. впервые такое слышу)

меня смутило что i n j не объявлены в теле обработчика (видать где-то выше глобально объявлены), вот это точно не гуд.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2013, 10:28
Основную ошибку я вижу в том, что в мэмо строки добавляются ПОСЛЕ обработки всей таблицы, а нужно после завершения цикла по i (проход по колонке). И опять же, - будет показано только первое минимальное значение, а их одинаковых может быть несколько (теоретически; структуру данных в таблице вы не показали).
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.07.2013, 10:32
AntonChik,

http://www.possibility.com/Cpp... ndard.html

правда там говорится про ситуацию:
C++
1
String* pName, name, address;
но код же должен единообразным для всех случаев. никто не запрещает и компилятору все равно, но для читабельности лучше объявлять так, как я указал выше
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
30.07.2013, 10:32
Цитата Сообщение от nick42 Посмотреть сообщение
а нужно после завершения цикла по i
я тоже сначала про это подумал, но там все нормально, мемо как раз после цикла i, просто в конце не хватает скобки для цикла j
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2013, 10:49
.. верно. И правильнее было бы инициализировать индексы как J 1 , а то при минимуме в верхней строчке будет неверный результат.
0
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 44
30.07.2013, 22:33  [ТС]
Цитата Сообщение от AntonChik Посмотреть сообщение
странно. впервые такое слышу)

меня смутило что i n j не объявлены в теле обработчика (видать где-то выше глобально объявлены), вот это точно не гуд.
я объявил глобально, потому что они используются ранее при выводе массива в SG

Добавлено через 2 минуты
Цитата Сообщение от AntonChik Посмотреть сообщение
я тоже сначала про это подумал, но там все нормально, мемо как раз после цикла i, просто в конце не хватает скобки для цикла j
скобка в конце в самом есть закрывающаяся, поигрался с ними, все только хуже) где-то с циклом потерялся видимо

Добавлено через 1 минуту
Цитата Сообщение от nick42 Посмотреть сообщение
.. верно. И правильнее было бы инициализировать индексы как J 1 , а то при минимуме в верхней строчке будет неверный результат.
вы о дополнительном значении J1?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.07.2013, 23:29
Цитата Сообщение от Мун Посмотреть сообщение
вы о дополнительном значении J1?
.. ну вот вы закончили цикл по i, увеличили на единицу j и начали следующий цикл по i..., - вы "освежили" только значение min, установив его равным значению самой верхней ячейки. Значения index1 и index2 остались от прежнего цикла. А теперь допустите, что значение верхней ячейки и есть самое минимальное... . Значит условие if в этом цикле по i ни разу не выполнится, и в конце цикла в Memo отправится правильное значение min и... старые значения индексов. Если бы вы в начале цикла по i позаботились одновременно с установкой min на самое "верхнее" значение установить и соответствующие этой ячейке индексы, - запись в мэмо была бы корректной.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2013, 23:29
Помогаю со студенческими работами здесь

Двумерные массивы, StringGrid
Добрый день, форумчане. Пишу с аккаунта друга, сам я в Delphi полный ноль, по этому прошу помощи у вас, так как если я сдам это задание,...

Одномерные массивы, StringGrid
Здравствуйте ! Помогите, пожалуйста с лабораторной. Не могу разобраться что и как... Задание: Составить программу для обработки...

Одномерные массивы. Компонент StringGrid.
На форме расположить компоненты: StringGrid, 6 CheckBox (каждый имеет свое значение, например 0,7,13,30,27,12) для выбора диапазона, Label,...

Двумерные Массивы (StringGrid) Пойжалуста Pomogite))
Дана матрица A (5x4). Заполнить ее значениями вещественного типа. Найти максимальное значение в каждой строке. Из этих значений получить...

Массивы компонентов билдера. Массив Shape и StringGrid
Доброго времени суток Товарищи! Подскажите мне пожалуйста как правильно записать массив из указателей на TStringGrid и Shape. У меня в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru