Программа


'Описание массивов:
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


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию