Ошибка в программе "встречено '.', а ожидвлось " - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Ошибка в программе "встречено '.', а ожидалось ';' (последняя строка). Программа вычисляет методом трапеции сразу четыре интеграла.
Листинг программы
  1. Program Trapecii;
  2. uses crt;
  3. var n1,n2,n3,n4:int64; a1,a2,a3,a4,b1,b2,b3,b4,h1,h2,h3,h4,s1,s2,s3,s4,x1,x2,x3,x4:real;
  4. function f1(x:real):real;
  5. function f2(x:real):real;
  6. function f3(x:real):real;
  7. function f4(x:real):real;
  8. begin
  9. f1:=(x*x+1)/((x*x*x+3*x+1)*(x*x*x+3*x+1));
  10. f2:=(sin^(-1)(x))/(sqrt(1+x));
  11. f3:=1/(x+1);
  12. f4:=sin(x)/(5+3*sin(x));
  13. end;
  14. begin
  15. clrScr;
  16. writeln('Введите a1,b1,n1'); readln(A1,B1,N1);
  17. writeln('Введите a2,b2,n2'); readln(A2,B2,N2);
  18. writeln('Введите a3,b3,n3'); readln(A3,B3,N3);
  19. writeln('Введите a4,b4,n4'); readln(A4,B4,N4);
  20. h1:=(b1-a1)/n1;
  21. x1:=a1;
  22. s1:=2*f1(x);
  23. h2:=(b2-a2)/n2;
  24. x2:=a2;
  25. s2:=2*f2(x);
  26. h3:=(b3-a3)/n3;
  27. x3:=a3;
  28. s3:=2*f3(x);
  29. h4:=(b4-a4)/n3;
  30. x4:=a4;
  31. s4:=2*f4(x);
  32. for i1: integer :=1 to (n1-1) do
  33. begin
  34. x1:=x1+h1;
  35. s1:=s1+2*f1(x);
  36. end;
  37. for i2: integer :=1 to (n2-1) do
  38. begin
  39. x2:=x2+h2;
  40. s2:=s2+2*f2(x);
  41. end;
  42. for i3: integer :=1 to (n3-1) do
  43. begin
  44. x3:=x3+h3;
  45. s3:=s3+2*f3(x);
  46. end;
  47. for i4: integer :=1 to (n4-1) do
  48. begin
  49. x4:=x4+h4;
  50. s4:=s4+2*f4(x);
  51. end;
  52. s1:=h1/2*(s1+f1(b1));
  53. s2:=h2/2*(s2+f2(b2));
  54. s3:=h3/2*(s3+f3(b3));
  55. s4:=h4/2*(s4+f4(b4));
  56. writeln(a1,' ',b1,' ',n1,' ',s1:0:6);
  57. writeln(a2,' ',b2,' ',n2,' ',s2:0:6);
  58. writeln(a3,' ',b3,' ',n3,' ',s3:0:6);
  59. writeln(a4,' ',b4,' ',n4,' ',s4:0:6);
  60. readln;
  61. end.

Решение задачи: «Ошибка в программе "встречено '.', а ожидвлось "»

textual
Листинг программы
  1. type func=function(x:real):real;
  2. function f1(x:real):real;
  3. begin
  4. f1:=(x*x+1)/((x*x*x+3*x+1)*(x*x*x+3*x+1));
  5. end;
  6. function f2(x:real):real;
  7. begin
  8. f2:=1/sin(x)/sqrt(1+x); //исправил Вашу функцию, не знаю верно ли, но sin^ такое не пишут
  9. end;
  10. function f3(x:real):real;
  11. begin
  12. f3:=1/(x+1);
  13. end;
  14. function f4(x:real):real;
  15. begin
  16. f4:=sin(x)/(5+3*sin(x));
  17. end;
  18.  
  19. procedure trap(a,b,h:real;f:func;n:byte);
  20. var s,k:real;
  21. begin
  22. s:=(f(a)+f(b))/2;
  23. k:=a;
  24. while k<=b do
  25.  begin
  26.   k:=k+h;
  27.   s:=s+f(k);
  28.  end;
  29. s:=s*h;
  30. writeln('a',n,'=',a:0:1,' b',n,'=',b:0:1,' h',n,'=',h:0:2,' S',n,'=',s:0:3);
  31. end;
  32.  
  33. begin
  34. trap(1,5,0.05,f1,1);
  35. trap(1,5,0.05,f2,2);
  36. trap(1,5,0.05,f3,3);
  37. trap(1,5,0.05,f4,4);
  38. end.

Объяснение кода листинга программы

Данный код представляет собой программу на языке Pascal ABC, которая реализует метод трассировки для вычисления значений функций f1, f2, f3 и f4.

  1. Тип func определяет функцию без параметров и возвращающим значение типа real.
  2. Функции f1, f2, f3 и f4 определяют соответственно четвертую, третью, вторую и первую функции из задания. Каждая функция принимает аргумент типа real и возвращает значение типа real.
  3. Процедура trap определяет процедуру без параметров и содержит следующие переменные: a, b, h и f - аргументы функций, которые будут использоваться в процессе вычислений. Также в процедуре определены переменные s и k типа real, которые будут использоваться для хранения промежуточных результатов.
  4. В цикле while происходит вычисление среднего значения функции f на интервалах от k до k+h. Значение функции f вычисляется как сумма значений функций на двух концах интервала, разделенная на 2. Затем значение функции f добавляется к сумме переменных s и k.
  5. По завершении цикла выводится информация о значениях переменных a, b, h, s и k с помощью функции writeln.
  6. В конце программы вызываются процедуры trap для каждой функции с соответствующими значениями аргументов. Ошибки в программе:
    • В функции f2 вместо использования функции sin следует использовать функцию sin(x), так как аргумент функции sin должен быть выражен в радианах.
    • В функции f4 вместо использования функции sin следует использовать функцию sin(x), так как аргумент функции sin должен быть выражен в радианах.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы