Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 134
#1

Перемножение строк в StringGrid

10.05.2015, 16:59. Просмотров 951. Ответов 8
Метки нет (Все метки)

Продолжаю линию своих вопросов
Добрый день и всем всего хорошего.
Буду рад,подсказкам по вопросу.
Описание: Создана Form1, на ней расположении некоторое количество компонентов TStringGrid(от 2 до Х).
Вопрос: как перемножить строки[i] столбца [2], между строками[i] столбца [3] и вывести в столбец [5].

Со сложением столбцов все нормально.
C++
1
2
3
4
5
int summ(0);
    for (int i = 0; i < StringGrid1->RowCount; i++)
    {
        summ = summ + StringGrid1->Cells[0][i].ToIntDef(0);
    }
А с умножением что то проблема, строки 1го столбца перемножил

Перемножение строк в StringGrid


А вот строки столбца 1 и 2 между собой не получилось.
Натолкните на путь истинный

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2015, 16:59
Ответы с готовыми решениями:

Матрицы, StringGrid, перемножение.
Добрый день уважаемые господа. ПРошу Вашей помощи. Необходимо перемножить 2...

StringGrid и добавление строк
в StringGrid при добавлении строк всегда остается нижняя пустая строка. точнее...

Удаление строк StringGrid
Задание: нужно вывести приборы с их параметрами(не суть, какие) и сравнить их с...

Выделение строк в StringGrid
Ребята, подскажите, кто знает. Как получить номер первой и последней выделеной...

Перенос строк между StringGrid
имею 2 таблицы Стринггрид1 StringGrid2 в 1 ввожу числа. хочу с 1 таблицы 1...

8
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25738 / 17292 / 6872
Регистрация: 22.10.2011
Сообщений: 30,512
Записей в блоге: 6
10.05.2015, 17:46 #2
Лучший ответ Сообщение было отмечено Access12 как решение

Решение

C++
1
2
3
4
    for (int i = 0; i < StringGrid1->RowCount; i++)
    {
        StringGrid1->Cells[5][i] = IntToStr(StringGrid1->Cells[2][i].ToIntDef(0) * StringGrid1->Cells[3][i].ToIntDef(0));
    }
Это нужно?
1
Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 134
10.05.2015, 18:09  [ТС] #3
Цитата Сообщение от volvo Посмотреть сообщение
IntToStr
Так вот что я при умножении пропустил,спасибо

Не по теме:

Если класс уже описан для TStringGrid,можно ли описать в классе отличия между StringGrid1 и StringGrid2 ? Т.е. чтобы в одном случае был ComboBox, только в столбце 2,а во втором еще и в столбце №13?

0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25738 / 17292 / 6872
Регистрация: 22.10.2011
Сообщений: 30,512
Записей в блоге: 6
10.05.2015, 18:15 #4
Можно, назначь разный Tag компонентам, и потом в GetEditStyle проверяй значение Tag и принимай соответствующее решение: показывать или не показывать в 13-ом столбце ComboBox
1
Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 134
10.05.2015, 19:47  [ТС] #5
Спасибо,помогло

Добавлено через 1 час 6 минут
Цитата Сообщение от volvo Посмотреть сообщение
Это нужно?
А если , числа в столбцах "55,67" и "77,03" (в таком роде), выводит 0
Как быть в таком случае
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25738 / 17292 / 6872
Регистрация: 22.10.2011
Сообщений: 30,512
Записей в блоге: 6
10.05.2015, 20:00 #6
Вещественные числа - я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
    double first, second;
    for (int i = 0; i < StringGrid1->RowCount; i++)
        if (TryStrToFloat(StringGrid1->Cells[2][i], first) && TryStrToFloat(StringGrid1->Cells[3][i], second))
        {
            StringGrid1->Cells[5][i] = FloatToStr(first * second);
        }
        else
        {
            StringGrid1->Cells[5][i] = "какое-то дефолтное значение, если ячейки не содержат чисел";
        }
0
Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 134
10.05.2015, 20:07  [ТС] #7
Цитата Сообщение от volvo Посмотреть сообщение
Вещественные числа - я бы сделал так:
C++
1
(TryStrToFloat(StringGrid1->Cells[2][i], first)
Все работает, как всегда вы меня выручили
Премного благодарен за помощь

Не по теме:

Т.е. можно присвоить переменную просто поставив запятую после указания нужных [i][j] ?

0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25738 / 17292 / 6872
Регистрация: 22.10.2011
Сообщений: 30,512
Записей в блоге: 6
10.05.2015, 20:10 #8
Ну это же аргументы функции TryStrToFloat, которая принимает строку и ссылку на double, вот и передаем ей 2 параметра.
1
Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 134
10.05.2015, 20:11  [ТС] #9
Понял,спасибо
0
10.05.2015, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2015, 20:11

Stringgrid показ конкретных строк
Сделано подобие диспетчера задач с двумя Stringgrid (процессы и потоки). В...

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

Перенос строк в компоненте StringGrid
Доброго времени суток. Собственно сабж господа, помогите образовать перенос...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru