AZJIO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: #include "Array.au3" ; Входящие данные ; Диапазон Х и Y: от 0 до 10 с шагом 0.01 Local $iMinX = 200 Local $iMaxX = 210 Local $nStep = 0.01 Local $kx = 208 ; коэффициент К1 Local $ky = 17 ; коэффициент К2 Local $Sum = 46247.48 ; Сумма Local $aRes[1][2] $timer = TimerInit() ; Вычисление $j = 0 For $Y = $iMinX To $iMaxX Step $nStep $Y = Round($Y, 2) $X = ($Sum - $Y * $ky) / $kx If Not StringRegExp($X, '\.\d{3,}') Then $j += 1 ReDim $aRes[$j][2] $aRes[$j - 1][0] = $X $aRes[$j - 1][1] = $Y EndIf Next $timer = TimerDiff($timer) _ArrayDisplay($aRes, 'Результат ' & Round($timer, 2), -1, 0, '', '|', '№|X|Y') | Цитата: при X с сотыми выдал Y целое. | результат должен быть только все числа с сотыми? Число типа 205.10 уже неверное? Тогда такой вариант. Кстати трюк с *100 увеличил скорость в 2 раза Код: #include "Array.au3" ; Входящие данные ; Диапазон Х и Y: от 0 до 10 с шагом 0.01 Local $iMinX = 200 Local $iMaxX = 210 Local $Sum = 46247.48 ; Сумма $iMinX *= 100 $iMaxX *= 100 $Sum *= 100 ; Сумма Local $kx = 208 ; коэффициент К1 Local $ky = 17 ; коэффициент К2 Local $aRes[1][2] $timer = TimerInit() ; Вычисление $j = 0 For $Y = $iMinX To $iMaxX $X = ($Sum - $Y * $ky) / $kx If Not StringInStr($X, '.') And StringRight($X, 1)<>'0' And StringRight($Y, 1)<>'0' Then $j += 1 ReDim $aRes[$j][2] $aRes[$j - 1][0] = $X/100 $aRes[$j - 1][1] = $Y/100 EndIf Next $timer = TimerDiff($timer) _ArrayDisplay($aRes, 'Результат ' & Round($timer, 2), -1, 0, '', '|', '№|X|Y') |
| Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 18:07 16-04-2013 | Исправлено: AZJIO, 18:24 16-04-2013 |
|