Программа 8

Программа 8.3.

100 'ПЕРЕХОД ОТ ПРЯМОУГОЛЬНОЙ ФОРМЫ К ПОЛЯРНОЙ И ОТ ПОЛЯРНОЙ К ПРЯМОУГОЛЬНОЙ

110 '

120 DIM REX[256] 'Массив REX[ ] содержит действительную часть

130 DIM IMX[256] 'Массив IMX[ ] содержит мнимую часть

140 DIM MAG[256] 'Массив MAG[ ] содержит модуль

150 DIM PHASE[256] 'Массив PHASE[ ] содержит фазу

160 '

170 PI = 3.14159265

180 '

190 GOSUB XXXX 'Предполагаемая подпрограмма загрузки данных в массивы REX[] и IMX[]

200 '

210 '

220 ' 'Переход от прямоугольной к полярной форме представления; выражение (8.6)

230 FOR K% = 0 TO 256

240 MAG[K%] = SQR( REX[K%]^2 + IMX[K%]^2 ) 'см. выражение (8.6)

250 IF REX[K%] = 0 THEN REX[K%] = 1E-20 'защита от деления на ноль (проблема 2)

260 PHASE[K%] = ATN( IMX[K%] / REX[K%] ) 'см. выражение (8.6)

270 ' 'корректировка значений арктангенса (проблема 3)

280 IF REX[K%] < 0 AND IMX[K%] < 0 THEN PHASE[K%] = PHASE[K%] - PI

290 IF REX[K%] < 0 AND IMX[K%] >= 0 THEN PHASE[K%] = PHASE[K%] + PI

300 NEXT K%

310 '

320 '

330 ' 'Переход от полярной к прямоугольной форме представления; выражение (8.7)

340 FOR K% = 0 TO 256

350 REX[K%] = MAG[K%] * COS( PHASE[K%] )

360 IMX[K%] = MAG[K%] * SIN( PHASE[K%] )

370 NEXT K%

380 '

390 END