Программа
'Описание массивов:
PowerT% = 10
DIM T(PowerT%, PowerT%)
PowerS% = 25
DIM S(PowerS%)
DEF FNGetLim (Param) = ((Param + 1) * Param + 3) / 6 'Функция вычисления пределов
DEF FNP5 (x) = ((((x + 3) * x + 2) * x + 6) * x + 7) * x - 5
DEF FNQ4 (x, M) = FNP5(x) / (x - M)'Функция Q4 (или R4)
DEF FNFun! (x!, Subtrahend!) = FNQ4(x!, Subtrahend!) 'Вычисление интегрируемой функции F1
DEF FNIntegral! (NumbFunc%, Left!, Right!, Break%, M, N) 'Вычисление интеграла
Sum! = 0 'Обнуление промежуточной суммы
LengthStep! = (Right! - Left!) / Break%
'Вычисление длины шага интегрирования
IF NumbFunc% = 1 THEN LeftY! = FNFun!(Left!, M) ELSE LeftY! = FNFun!(Left!, N)
'Вычисление значения функции на левой границе
RightX! = Left! + LengthStep! 'Вычисление правой границы левого интервала
FOR i% = 1 TO Break% 'Цикл набора промежуточной суммы
IF NumbFunc% = 1 THEN RightY! = FNFun!(RightX!, M) ELSE RightY! = FNFun!(RightX!, N)
'Вычисление значения функции на правой границе
Sum! = Sum! + (LeftY! + RightY!) / 2 'Набор промежуточной суммы
LeftY! = RightY!
'Сохранение значения функции на правой границе для последующей итерации
RightX! = RightX! + LengthStep!
'Вычисление правой границы следующего участка
NEXT i%
FNIntegral! = Sum! * LengthStep! 'Определение интегральной суммы
END DEF
'...............................................................................................................................................................
CLS 'Очистка экрана
FOR i% = 1 TO PowerT%'Цикл инициализации строк массива T
FOR j% = 1 TO PowerT%'Цикл инициализации элементов массива T
PRINT USING "Введите элемент T[##;##] "; i%; j%;
'Вывод приглашения ввести элемент массива T
INPUT "", T(i%, j%) 'Ввод элемента массива
NEXT j%
NEXT i%
FOR i% = 1 TO PowerS% 'Цикл инициализации массива S
PRINT USING "Введите элемент S[##] "; i%;
'Вывод приглашения ввести элемент массива S
INPUT "", S(i%) 'Ввод элемента массива
NEXT i%
INPUT "Введите p ", p 'Ввод p
INPUT "Введите q ", q 'Ввод q
INPUT "Введите t ", t 'Ввод t
INPUT "Введите z ", z 'Ввод z
CLS 'Очистка экрана
PRINT "Массив T:" 'Вывод заголовка
FOR i% = 1 TO PowerT% 'Цикл вывода строк массива T
FOR j% = 1 TO PowerT% 'Цикл вывода элементов массива T
PRINT USING " ###.# "; T(i%, j%); 'Вывод элемента массива T
NEXT j%
PRINT 'Пропуск строки
NEXT i%
PRINT "Массив S:" 'Вывод заголовка
FOR i% = 1 TO PowerS% 'Цикл вывода массива S
PRINT USING " ####.##"; S(i%); 'Вывод элемента массива S
NEXT i%
PRINT 'Пропуск строки
'Определение M:
M = T(1, 1) 'Начальное определение значения M
FOR i% = 2 TO PowerT% 'Цикл просмотра главной диагонали массива T
IF T(i%, i%) < M THEN M = T(i%, i%) 'Переопределение значения M
NEXT i%
'Определение N:
N = 0 'Начальное определение значения N
FOR i% = 1 TO PowerS% 'Цикл просмотра массива S
IF S(i%) < -5 OR S(i%) > 5 THEN N = N + 1 'Подсчет элементов
NEXT i%
'Определение a, b, c, d:
a = FNGetLim(p)
b = FNGetLim(q)
c = FNGetLim(t)
d = FNGetLim(z)
PRINT "M="; M; " N="; N 'Вывод переменных M, N
PRINT "p="; p; " q="; q; " t="; t; " z="; z 'Вывод переменных p, q, t, z
PRINT "a="; a; " b="; b; " c="; c; " d="; d 'Вывод переменных a, b, c, d
Y = FNIntegral!(1, a, b, 100, M, N) - FNIntegral!(2, c, d, 100, M, N)
'Вычисление разности интегралов
PRINT "Y="; Y 'Вывод вычисленного выражения
END
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию