Не компилируется программа - PascalABC.NET

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

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

не работает программа в чем причина?
Листинг программы
  1. program OTC;
  2. uses Crt;
  3. const
  4. c=2.2E-7;
  5. r=9.1E3;
  6. tr=5E-3;
  7. n=50;
  8. otr=100;
  9. var
  10. st,t:real;
  11. k,npp:word;
  12. f:text;
  13. function integral(vid:byte;verx,niz:real;n:word;Time:real):real;
  14. var
  15. d,y,S,tau:real;
  16. begin
  17. d:=(verx-niz)/n;
  18. S:=0;
  19. for k:=0 to n do
  20. begin
  21. tau:=niz+k*d;
  22. case vid of
  23. 1: y:=(1-exp((-1)*(6*tau/tr)))*((1+sqrt(5))*exp((-1)*((sqrt(5)+3)*(Time-tau)/ (2*r*c))-(1-sqrt(5))*exp((-1)*(3-sqrt(5))*(Time-tau)/(2*r*c)))/(2*sqrt(5)*r*c));
  24. 2: y:=(1-exp(-3))*exp((-1)*(6*tau/tr-3)*(6*tau/tr-3))*((1+sqrt(5))*exp((-1)*
  25. ((sqrt(5)+3)*(Time-tau)/(2*r*c))-(1-sqrt(5))*exp((-1)*(3-sqrt(5))*(Time-tau)/
  26. (2*r*c)))/(2*sqrt(5)*r*c));
  27. end;
  28. if k<>0 then
  29. begin
  30. if(k mod 2)=0 then
  31. begin
  32. if k<>n then y:=2*y
  33. end
  34. else
  35. y:=4*y;
  36. end;
  37. S:=S+y; end;
  38. integral:=d*S/3; end; begin ClrScr; Assign(f,'OTC.doc');
  39. Rewrite(f); st:=tr/n; t:=0;
  40. npp:=0;
  41. writeln(f,' N/n Время,mc Uвых,B');
  42. while t <(tr/2) do
  43. begin
  44. npp:=npp+1;
  45. writeln(f,npp:5,(1000*t):9:2,integral(1,t,0,otr,t):20:10);
  46. t:=t+st;
  47. end;
  48. while t<=3*tr+st do
  49. begin
  50. npp:=npp+1;
  51. writeln(f,npp:5,(1000*t):9:2,
  52. integral(1,tr/2,0,otr,t)+integral(2,t,tr/2,otr,t):10:8);
  53. t:=t+st;
  54. end;
  55. Close(f); end.

Решение задачи: «Не компилируется программа»

textual
Листинг программы
  1. program OTC;
  2.  
  3. uses
  4.   Crt;
  5. const
  6.   c = 2.2E-7;
  7.   r = 9.1E3;
  8.   tr = 5E-3;
  9.   n = 50;
  10.   otr = 100;
  11.  
  12. var
  13.   st, t: real;
  14.   npp: word;
  15.   f: text;
  16.  
  17. function integral(vid: byte; verx, niz: real; n: word; Time: real): real;
  18. var
  19.   d, y, S, tau: real;
  20.   k :integer;
  21. begin
  22.   d := (verx - niz) / n;
  23.   S := 0;
  24.   for k := 0 to n do
  25.   begin
  26.     tau := niz + k * d;
  27.     case vid of
  28.       1: y := (1 - exp((-1) * (6 * tau / tr))) * ((1 + sqrt(5)) * exp((-1) * ((sqrt(5) + 3) * (Time - tau) / (2 * r * c)) - (1 - sqrt(5)) * exp((-1) * (3 - sqrt(5)) * (Time - tau) / (2 * r * c))) / (2 * sqrt(5) * r * c));
  29.       2:
  30.         y := (1 - exp(-3)) * exp((-1) * (6 * tau / tr - 3) * (6 * tau / tr - 3)) * ((1 + sqrt(5)) * exp((-1) *
  31.         ((sqrt(5) + 3) * (Time - tau) / (2 * r * c)) - (1 - sqrt(5)) * exp((-1) * (3 - sqrt(5)) * (Time - tau) /
  32.         (2 * r * c))) / (2 * sqrt(5) * r * c));
  33.     end;
  34.     if k <> 0 then
  35.     begin
  36.       if(k mod 2) = 0 then
  37.       begin
  38.         if k <> n then y := 2 * y
  39.       end
  40.       else
  41.         y := 4 * y;
  42.     end;
  43.     S := S + y; end;
  44.     integral := d * S / 3;
  45. end;
  46. begin
  47.   ClrScr; Assign(f, 'OTC.doc');
  48.   Rewrite(f); st := tr / n; t := 0;
  49.   npp := 0;
  50.   writeln(f, ' N/n Время,mc Uвых,B');
  51.   while t < (tr / 2) do
  52.   begin
  53.     npp := npp + 1;
  54.     writeln(f, npp:5, (1000 * t):9:2, integral(1, t, 0, otr, t):20:10);
  55.     t := t + st;
  56.   end;
  57.   while t <= 3 * tr + st do
  58.   begin
  59.     npp := npp + 1;
  60.     writeln(f, npp:5, (1000 * t):9:2,
  61.     integral(1, tr / 2, 0, otr, t) + integral(2, t, tr / 2, otr, t):10:8);
  62.     t := t + st;
  63.   end;
  64.   Close(f);
  65. end.

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

Список элементов кода:

  1. Объявление переменных и констант:
    • c = 2.2E-7 (константа, значение 2.2 * 10^-7)
    • r = 9.1E3 (константа, значение 9.1 * 10^3)
    • tr = 5E-3 (константа, значение 5 * 10^-3)
    • n = 50 (переменная, значение 50)
    • otr = 100 (переменная, значение 100)
    • st, t (переменные, значение tr / n и 0 соответственно)
    • npp (переменная, используется для нумерации строк в файле)
    • f (переменная, используется для записи в файл)
    • vid (переменная, используется в функции integral, значение 1 или 2)
    • verx, niz (переменные, используются в функции integral, значение t и 0 соответственно)
    • niz (переменная, используется в функции integral, значение t)
    • S (переменная, используется в функции integral, значение 0)
    • tau (переменная, используется в функции integral, значение tau)
    • k (переменная, используется в цикле функции integral, значение от 0 до n)
    • d (переменная, используется в функции integral, значение (verx - niz) / n)
    • y (переменная, используется в функции integral, значение вычисляется в процессе)
    • tau (переменная, используется в функции integral, значение tau)
    • Time (переменная, используется в функции integral, значение время)
    • integral (функция, принимает vid, verx, niz, n, Time и возвращает значение интеграла)
  2. Запись заголовка и основной части программы:
    • program OTC;
    • uses Crt;
    • const c, r, tr, n, otr;
    • var st, t, npp, f;
    • function integral(vid: byte; verx, niz: real; n: word; Time: real): real;
    • var d, y, S, tau: real;
    • k: integer;
    • begin
    • ClrScr; Assign(f, 'OTC.doc');
    • Rewrite(f); st := tr / n; t := 0;
    • npp := 0;
    • writeln(f, ' N/n Время,mc Uвых,B');
    • while t < (tr / 2) do
    • begin
    • npp := npp + 1;
    • writeln(f, npp:5, (1000 * t):9:2, integral(1, t, 0, otr, t):20:10);
    • t := t + st;
    • end;
    • while t <= 3 * tr + st do
    • begin
    • npp := npp + 1;
    • writeln(f, npp:5, (1000 * t):9:2, integral(1, tr / 2, 0, otr, t) + integral(2, t, tr / 2, otr, t):10:8);
    • t := t + st;
    • end;
    • Close(f);
    • end.
  3. Вывод списка элементов кода:
    • Не компилируется программа

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


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

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

12   голосов , оценка 3.75 из 5

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

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

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