Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.03.2024
Сообщений: 16

Вычислить интеграл

18.03.2024, 16:32. Показов 918. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать программу на Паскаль, которая вычисляет интеграл. Важно: нельзя использовать готовые функции, по типу break, exit,и тп. Нужно написать через процедуры и функции.
Миниатюры
Вычислить интеграл  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2024, 16:32
Ответы с готовыми решениями:

вычислить интеграл
Прошу помощи, светлые умы, не знаю уже как и быть вычислить интеграл: S = \int_{a}^{b}{e}^{-x}dx, используя формулу трапеции S...

Вычислить определенный интеграл
где f x( ) равно cos(x)

Вычислить определенный интеграл
где f x( ) равно sin(x)

5
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
18.03.2024, 20:00
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program AnaliticIntegral;
 
  function Power(x: real; n: integer): real;
  var
    r: real;
  begin
    r := 1;
    for n := n downto 1 do
      r := r * x;
    Power := r;
  end;
 
  function Antiderivate(x: real; n: integer): real; forward;
 
  function Antiderivate(x: real; n: integer): real;
  begin
    if n <= 0 then
      exit;
    if n = 1 then
      Antiderivate := sin(x)
    else if n = 2 then
      Antiderivate := (x / 2) + sin(2 * x) / 4
    else
    begin
      Antiderivate := (Power(cos(x), n - 1) * sin(x) / n) + ((n - 1) / n) *
        Antiderivate(x, n - 2);
    end;
  end;
 
var
  a, b, Integral: real;
  n: integer;
begin
  a := 1;{нижний предел интегрирования}
  b := 2;{верхний предел интегрирования}
  n := 6;
  Integral := Antiderivate(b, n) - Antiderivate(a, n);
  writeln('integral=', Integral: 0: 8);
end.
1
0 / 0 / 0
Регистрация: 06.03.2024
Сообщений: 16
19.03.2024, 17:42  [ТС]
а можно как-то без exit?
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,368
19.03.2024, 21:54
Лучший ответ Сообщение было отмечено Ulyannna как решение

Решение

Ulyannna, удалите строку 18 и замените
Pascal
17
    if n > 0 then
ФедосеевПавел, а зачем forward;?

Ulyannna, строку 13 тоже удалите.

Добавлено через 39 минут
Если выбросить всё лишнее, то вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Power(x: real; n: integer): real;
var
  r: real;
begin
  r := x;
  for n := n downto 2 do r := r * x;
  Power := r
end;
 
function Integr(x: real; n: integer): real;
begin
  if n > 2 then Integr := Power(cos(x), n - 1) * sin(x) / n + (n - 1) / n * Integr(x, n - 2)
  else
    if n = 2 then Integr := x / 2 + sin(2 * x) / 4
    else
      if n = 1 then Integr := sin(x)
end;
 
var
  a, b, Integral: real;
  n: integer;
begin
  a := 1; {нижний предел интегрирования}
  b := 2; {верхний предел интегрирования}
  n := 6;
  Integral := Integr(b, n) - Integr(a, n);
  writeln('Integral = ', Integral:0:12)
end.
2
0 / 0 / 0
Регистрация: 06.03.2024
Сообщений: 16
20.03.2024, 01:29  [ТС]
больше Вам спасибо!
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8655 / 4490 / 1669
Регистрация: 01.02.2015
Сообщений: 13,898
Записей в блоге: 12
22.03.2024, 19:36
И то же самое итеративным способом
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program AnaliticIntegral;
 
  function Antiderivate(x: real; n: integer): real;
  var
    res, cos_x, cos_sin: real;
    i: integer;
  begin
    cos_x := cos(x);
    cos_sin := sin(x);
    if odd(n) then
      res := sin(x)
    else
    begin
      res := (x / 2) + (sin(2 * x) / 4);
      cos_sin := cos_sin * cos_x;
    end;
    cos_x := sqr(cos_x);
    i := 4 - (n and 1);
    while i <= n do
    begin
      cos_sin := cos_sin * cos_x;
      res := (cos_sin / i) + (res * pred(i) / i);
      Inc(i, 2);
    end;
    Antiderivate := res;
  end;
 
var
  a, b, Integral: real;
  n: integer;
begin
  a := 1;{нижний предел интегрирования}
  b := 2;{верхний предел интегрирования}
  n := 6;
  Integral := Antiderivate(b, n) - Antiderivate(a, n);
  writeln('integral=', Integral: 0: 8);
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2024, 19:36
Помогаю со студенческими работами здесь

Приближенно вычислить интеграл
Приближенно вычислить интеграл (фото ниже) используя формулу прямоугольников при n = 100: ∫ f(x)dx ≈ h , где h = (b - a)/n,...

Вычислить интеграл Френеля
Помогите пожалуйста.

Вычислить интеграл по формуле Ньютона (3/8)
Вычислить интеграл по формуле Ньютона (методом 3/8). Пожалуйста, помогите

Вычислить интеграл методом Симпсона
Затрудняюсь в решении интеграла методом симпсона. Интеграл от 1 до 0 cos⁡(x^3 )dx. Если кому не сложно, составьте пожалуйста программу на...

Вычислить интеграл методом Симпсона
помогите, пожалуйста, кто сможет, написать программу вот Вычислить приближённое значение интеграла от функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru