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

Программа вычисления площади фигуры, ограниченной кривой

08.12.2022, 14:23. Показов 414. Ответов 2

Студворк — интернет-сервис помощи студентам
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    Program dkr3; 
    uses crt;
    var n,num:integer; 
    a,b,h,x,xb,s,s1,pg:real;
    
    
    function f(x: real):real;
    begin
     f:=(x*x*x)-4*x; //сама функция
    end;
    
    
    function fb(x:real):real;
    begin
      fb:=((x*x*x*x)/4)-(2*(x*x)); //производная
    end;
    
    
    procedure proc1;
      begin
    write('Введите нижний предел интегрирования '); 
    readln(a);
    write('Введите верхний предел интегрирования ');
    readln(b);
    write('Введите количество отрезков ');
    readln(n);
    h:=(b-a)/n; //дальше по методу правых прямоугольников
    s:=0; 
    xb:=a;
    for var i:=1 to n do begin 
    x:=xb+i*h; 
    s:=s+fb(x)*h;
    end;
    s1:=fb(b)-fb(a);
    pg:=abs(s1-s);
    writeln('Интеграл равен ',s:12:10); 
    writeln('Погрешность равна ', pg)
    end;
    
    
    
    begin
      writeln('Реализовать программу вычисления площади фигуры, ограниченной кривой 1*x^3+(0)*x^2+(-4)*x+(0) и осью Ox');
      repeat
      writeln('1 - узнать производную этой функции');
      writeln('2 - приближенное значение');
      writeln('3 - выход из программы');
      readln(num);
      case num of
        1:writeln('(x^4/4)-(2x^2)');
        2:proc1;
        3:halt;
      end;
      until num=3;
    end.
Есть такая программа для вычисления площади методом правых прямоугольников. Не понимаю почему погрешность слишком огромная, можете ли помочь исправить программу?

Добавлено через 2 минуты
И ещё можно ли сделать так, чтобы варианты выбора кейс меню выводились только один раз, а пользователь мог выбирать варианты какие хочет, пока не напишет "3" чтобы выйти из программы
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2022, 14:23
Ответы с готовыми решениями:

Реализовать программу вычисления площади фигуры, ограниченной кривой
1. Реализовать программу вычисления площади фигуры, ограниченной кривой 2 * x * 3 + (2) * x ^ 2 +...

Написать программу вычисления площади фигуры, ограниченной кривой
Приветствую всех! Требуется написать программу вычисления площади фигуры, ограниченной кривой ...

Написать программу вычисления площади фигуры, ограниченной кривой
Реализовать программу, вычисляющую площадь фигуры, ограниченной кривой 2*x^3 + (0)*x^2 + (2)*x +...

2
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,460
08.12.2022, 22:11
Вы перепутали понятия "производная" и "первообразная".

Вот здесь:
Pascal
32
    s:=s+fb(x)*h;
Какое, к лешему, fb? Должно быть f.

Объявлять глобальные переменные до подпрограмм нужно только тогда, когда это действительно необходимо, поскольку такое объявление порождает трудно локализуемые ошибки из-за перекрытия пространств имён глобальных и локальных переменных.

Зачем проверять 3 в case, да ещё и выходить по halt, если двумя строчками ниже и без этого произойдёт сначала выход из цикла, а потом и из программы?

Форматирование текста программы у Вас поганенькое, не разбери поймёшь что к чему относится.
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
40
41
42
Program dkr3;
 
uses
  crt; 
 
function f(x: real):real := x * (x * x - 4); //сама функция
    
function fb(x: real):real := x * x * (x * x / 4 - 2); //производная
 
procedure proc1;
  begin
    var a := ReadLnReal('Введите нижний предел интегрирования:'); 
    var b := ReadLnReal('Введите верхний предел интегрирования:');
    var n := ReadLnInteger('Введите количество отрезков:');
    var h := (b - a) / n; //дальше по методу правых прямоугольников
    var s := 0.0; 
    for var i := 1 to n do s += f(a + i * h) * h;
    var s1 := fb(b) - fb(a);
    var pg := abs(s1 - s);
    writeln('Приближённое значение интеграла равно ', s); 
    writeln('Погрешность равна ', pg)
  end;
   
begin
  writeln('Программа вычисления площади фигуры, ограниченной кривой'); 
  writeln('1*x^3+(0)*x^2+(-4)*x+(0) и осью Ox'); 
  writeln('1 - узнать первообразную этой функции'); 
  writeln('2 - приближенное значение интегала'); 
  writeln('3 - выход из программы'); 
  var num: char; 
  repeat
    num := ReadKey;
    GoToXY(1, 6);
    for var i := 7 to 18 do writeln(' ' * 79);
    gotoXY(1, 7);
    case num of
      '1': write('x^4/4-2x^2');
      '2': proc1
    end;
    GoToXY(1, 6);
  until num = '3'
end.
0
0 / 0 / 0
Регистрация: 29.11.2022
Сообщений: 12
09.12.2022, 14:39  [ТС]
Благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.12.2022, 14:39
Помогаю со студенческими работами здесь

Реализовать программу вычисления площади фигуры, ограниченной кривой (метод левых прямоугольников)
Здравствуйте, мне нужна помощь в написание программы, задание заключается в следующем: 1....

Вычисление площади фигуры, ограниченной кривой;
Задание: 1. Реализовать программу вычисления площади фигуры, ограниченной кривой ...

Задача вычисления площади фигуры, ограниченной графиком
Разработка программы вычисления площади фигуры вероятностным численным методом. Исходные данные:...

Найти площадь фигуры, ограниченной кривой.
помогите пожалуйста решить программу на free pascal 1)реализовать программу вычисления площадь...

Вычислить площадь фигуры, ограниченной частью кривой и осями координат
Помогите решить задачу в Паскале плиз!!!! Вычислить площадь фигуры, ограниченной частью кривой...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru