|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.12.2016, 17:08 | #1 |
Пользователь
Регистрация: 19.12.2016
Сообщений: 70
|
Уменьшать стоимость всех товаров на 10%
Уменьшать стоимость всех товаров на 10%, пока средняя стоимость всех товаров не станет меньше 100 рублей. работаю непосредственно с компонентом ADOTable через DBEGrid напрямую , то есть без SQL-запросов.
Помогите с алгоритмом |
25.12.2016, 17:35 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Посчитай среднюю стоимость. И сколько раз ее нужно умножить на 0.9, чтобы бы она стала меньше 100. По сути решить уравнение в целых k: C*0.9^k<100. Получишь k раз. Потом на 0.9^k умножь стоимость каждого товара
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 25.12.2016 в 17:39. |
25.12.2016, 18:22 | #3 |
Пользователь
Регистрация: 19.12.2016
Сообщений: 70
|
а если у меня будут добавляется еще товары средняя цена же изменится, как тогда?
|
25.12.2016, 18:25 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Естественно изменится. Но ты же сначала об этом не сказал. Тогда есть стоимость исходная и пересчитанная. И каждый раз при добавлении товаров по новой считай пересчитанную стоимость для всех записей по тому же алгоритму. Или забудь про исходную стоимость старых записей.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
25.12.2016, 18:27 | #5 | |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
SQL запросом сделать это можно одной стракой, рекомендую начать изучать SQL, все равно без этого не обойтись.
В противном случае вы будете в цикле проходить по всем строкам от первой до последней делая нужные операции. Цитата:
|
|
25.12.2016, 18:28 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Можно и SQL, но одной строкой не получится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
25.12.2016, 18:31 | #7 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
почему? я довольно часто это делаю, меняю на процент из за курса, при желании для ворпресс и опен карт могу найти коды
и SQL тем хорош, что можно очень сложные запросы, сделать одной строкой ) В данном случае будет один Update |
25.12.2016, 18:37 | #8 |
Пользователь
Регистрация: 19.12.2016
Сообщений: 70
|
Alar, я знаю SQL и знаю что через него проще, но в этом и загвоздка запрещено использовать SQL . Я напрямую работаю с ADOTable
|
25.12.2016, 18:41 | #9 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
ИвановБ, как делать я описал, через циклы
DBEGrid - обычная матрица, в чём там могут быть сложности? |
25.12.2016, 18:48 | #10 |
Пользователь
Регистрация: 19.12.2016
Сообщений: 70
|
То есть если средняя цена 4443 ее умножаем на 0.9. И нужно умножить на 37 раз, а можно ведь это сделать в цикле? То есть нажал 37 раз и действие застопорилось.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан текст. Найти множество всех слов, которые встречаются во всех предло-жениях текста. | Anton94.by | Помощь студентам | 1 | 31.03.2014 15:30 |
Уменьшать размер букв Label6 в зависимости от width | Алексей_2012 | Общие вопросы Delphi | 6 | 24.03.2013 20:27 |
цикл for i:=0 to count -1 do. Уменьшать счётчик i внутри цикла... | Человек_Борща | Общие вопросы Delphi | 10 | 01.07.2011 21:11 |
Имена всех секций всех ini-файлов (DELPHI) | Dj_SheLL | Помощь студентам | 7 | 10.10.2010 17:44 |