Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В момента голямата функция прави нещо такова:
- А Попълва Строи matExt, matInt(по-метод-надолу), matRem(по-метод-надолу) за цялата таблица
- Б Закръгля едномерни парченца от таблицата (по-метод-надолу)
- Б1 Round1D(едно едномерно парченце по-метод-надолу)
- (Макар че в момента не е обособено като истинска процедура с име Round1D)
- Б2 Round1D(друго едномерно парченце по-метод-надолу)
- Б2 Round1D(трето едномерно парченце по-метод-надолу)
- ...
- В Закръгля двумерни парченца от таблицата
- Вместо това, искаме в Б да става нещо такова:
- Б1 Round1D(едно едномерно парченце по-метод-смесен)
- Б2 Round1D(друго едномерно парченце по-метод-смесен)
- Б2 Round1D(трето едномерно парченце по-метод-смесен)
- ...
- В момента обаче стъпка А и Б са "сплетени", щото А подготвя почвата за метод-надолу, и Б използва тая почва
- Затова в момента е може да хукнеш да правиш "метод-нагоре" само в Б
- Затова мисля че стъпките в Б трябва да се променят на няколко етапа:
- Етап 0:
- Да се отделят Round1D като истинска процедура.
- Може да се наложи да има поне 2 версии -- за хоризонтални и вертикални едномерни парченца:
- Round1DRow(rowIdx, startColIdx, endColIdx...)
- Round1DCol(colIdx, startRowIdx, endRowIdx...)
- Етап 1
- Вече отделени, Б-стъпките Round1DRow() и Round1DCol() трябва да "изсмучат" от А всичките особености на метод-надолу:
- * (ново) Попълване matInt и matRem в рамките на това парченце по метод-надолу (т.е. да си подготви почвата за метод-надолу)
- * (както досега) Закръгляне на това парченце по метод-надолу
- Етап 2
- В Б-стъпките да се разширят с със закръгляне надолу и избор на краен вариант
- Б-стъпките Round1DRow() и Round1DCol()
- * (както досега) Попълване matInt и matRem в рамките на това парченце по метод-надолу (т.е. да си подготви почвата за метод-надолу)
- * (както досега) Закръгляне на това парченце по метод-надолу
- * (ново) Прекопиране на едномерния резултат в рамките на парченцето в нови промеливи arrInt1 и arrRem1
- * (ново) Попълване matInt и matRem в рамките на това парченце по метод-нагоре (т.е. да си подготви почвата за метод-нагоре)
- * (ново) Закръгляне на това парченце по метод-нагоре (да си направи закръглянето по метод-нагоре)
- * (ново) Прекопиране на едномерния резултат в рамките на парченцето в нови промеливи arrInt2 и arrRem2
- * (ново) Сравняване на двата едномерни резултата, т.е. на arrInt1, arrRem1 срещу това на arrInt2 и arrRem2
- * (ново) Избор на едно от двете решения.
- * Ако arrInt1, arrRem1 е по-добро, то да се прекопира обратно на правилното място в matInt/matRem
- * Ако arrInt2, arrRem2 е по-добро, то да си остане в matInt/matRem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement