Advertisement
mirovlad

Untitled

May 15th, 2024 (edited)
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. В момента голямата функция прави нещо такова:
  2.  
  3. А Попълва Строи matExt, matInt(по-метод-надолу), matRem(по-метод-надолу) за цялата таблица
  4. Б Закръгля едномерни парченца от таблицата (по-метод-надолу)
  5. Б1 Round1D(едно едномерно парченце по-метод-надолу)
  6. (Макар че в момента не е обособено като истинска процедура с име Round1D)
  7. Б2 Round1D(друго едномерно парченце по-метод-надолу)
  8. Б2 Round1D(трето едномерно парченце по-метод-надолу)
  9. ...
  10. В Закръгля двумерни парченца от таблицата
  11.  
  12.  
  13.  
  14. Вместо това, искаме в Б да става нещо такова:
  15. Б1 Round1D(едно едномерно парченце по-метод-смесен)
  16. Б2 Round1D(друго едномерно парченце по-метод-смесен)
  17. Б2 Round1D(трето едномерно парченце по-метод-смесен)
  18. ...
  19.  
  20. В момента обаче стъпка А и Б са "сплетени", щото А подготвя почвата за метод-надолу, и Б използва тая почва
  21. Затова в момента е може да хукнеш да правиш "метод-нагоре" само в Б
  22.  
  23. Затова мисля че стъпките в Б трябва да се променят на няколко етапа:
  24.  
  25. Етап 0:
  26. Да се отделят Round1D като истинска процедура.
  27. Може да се наложи да има поне 2 версии -- за хоризонтални и вертикални едномерни парченца:
  28. Round1DRow(rowIdx, startColIdx, endColIdx...)
  29. Round1DCol(colIdx, startRowIdx, endRowIdx...)
  30.  
  31. Етап 1
  32. Вече отделени, Б-стъпките Round1DRow() и Round1DCol() трябва да "изсмучат" от А всичките особености на метод-надолу:
  33. * (ново) Попълване matInt и matRem в рамките на това парченце по метод-надолу (т.е. да си подготви почвата за метод-надолу)
  34. * (както досега) Закръгляне на това парченце по метод-надолу
  35.  
  36. Етап 2
  37. В Б-стъпките да се разширят с със закръгляне надолу и избор на краен вариант
  38. Б-стъпките Round1DRow() и Round1DCol()
  39. * (както досега) Попълване matInt и matRem в рамките на това парченце по метод-надолу (т.е. да си подготви почвата за метод-надолу)
  40. * (както досега) Закръгляне на това парченце по метод-надолу
  41. * (ново) Прекопиране на едномерния резултат в рамките на парченцето в нови промеливи arrInt1 и arrRem1
  42. * (ново) Попълване matInt и matRem в рамките на това парченце по метод-нагоре (т.е. да си подготви почвата за метод-нагоре)
  43. * (ново) Закръгляне на това парченце по метод-нагоре (да си направи закръглянето по метод-нагоре)
  44. * (ново) Прекопиране на едномерния резултат в рамките на парченцето в нови промеливи arrInt2 и arrRem2
  45. * (ново) Сравняване на двата едномерни резултата, т.е. на arrInt1, arrRem1 срещу това на arrInt2 и arrRem2
  46. * (ново) Избор на едно от двете решения.
  47. * Ако arrInt1, arrRem1 е по-добро, то да се прекопира обратно на правилното място в matInt/matRem
  48. * Ако arrInt2, arrRem2 е по-добро, то да си остане в matInt/matRem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement