Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 139

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

10.05.2015, 16:59. Показов 1702. Ответов 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го столбца перемножил



А вот строки столбца 1 и 2 между собой не получилось.
Натолкните на путь истинный
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2015, 16:59
Ответы с готовыми решениями:

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

Перемножение ячеек StringGrid
Здравствуйте!!! Требуется перемножить ячейки столбца в StringGrid, и вывести сообщение с результатом написала: double s; for(...

Перемножение в StringGrid
Есть StringGrid1 в котором 4 столбца и 81 строка, StringGrid2 в котором 4 столбца и 20 строк (в программе участвует 5-я строка!!!)....

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33403 / 21513 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
10.05.2015, 17:46
Лучший ответ Сообщение было отмечено 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
Сообщений: 139
10.05.2015, 18:09  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
IntToStr
Так вот что я при умножении пропустил,спасибо

Не по теме:

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

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33403 / 21513 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
10.05.2015, 18:15
Можно, назначь разный Tag компонентам, и потом в GetEditStyle проверяй значение Tag и принимай соответствующее решение: показывать или не показывать в 13-ом столбце ComboBox
1
 Аватар для Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 139
10.05.2015, 19:47  [ТС]
Спасибо,помогло

Добавлено через 1 час 6 минут
Цитата Сообщение от volvo Посмотреть сообщение
Это нужно?
А если , числа в столбцах "55,67" и "77,03" (в таком роде), выводит 0
Как быть в таком случае
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33403 / 21513 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
10.05.2015, 20:00
Вещественные числа - я бы сделал так:
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
Сообщений: 139
10.05.2015, 20:07  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Вещественные числа - я бы сделал так:
C++
1
(TryStrToFloat(StringGrid1->Cells[2][i], first)
Все работает, как всегда вы меня выручили
Премного благодарен за помощь

Не по теме:

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

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33403 / 21513 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
10.05.2015, 20:10
Ну это же аргументы функции TryStrToFloat, которая принимает строку и ссылку на double, вот и передаем ей 2 параметра.
1
 Аватар для Access12
19 / 19 / 4
Регистрация: 28.04.2013
Сообщений: 139
10.05.2015, 20:11  [ТС]
Понял,спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2015, 20:11
Помогаю со студенческими работами здесь

Перемножение ячеек StringGrid
выдает ошибку при таком коде procedure TForm1.Button2Click(Sender: TObject); var i:integer; summa:real; Sg : TStringGrid; ...

Перемножение ячеек StringGrid при нажатии кнопки
Здравствуйте, мне надо написать программу, где ячейки SrtingGrid при нажатии кнопки должны перемножаться... Я нашел уйму форумов на эту...

Поиск в Stringgrid и вывод строк в новый Stringgrid
Привет. Наверное этот вопрос задавался уже много раз, но я не могу никак понять: 1. У меня есть Stringgrid в нем содержатся записи: фио,...

Перемножение строк на стобцы
Подскажите пожалуйста, имеется 12 столбцов и 75 строк, задача перемножить значение каждой строки на значение каждого столбца. В свободной...

Перемножение всех строк в запросе
Доброго дня, столкнулся с вопросом, который пока не могу решить. Допустим есть запрос, который вернул средующее Номер Количество ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru