Не компилируется программа - PascalABC.NET
Формулировка задачи:
не работает программа в чем причина?
Решение задачи: «Не компилируется программа»
textual
Листинг программы
program OTC; uses Crt; const c = 2.2E-7; r = 9.1E3; tr = 5E-3; n = 50; otr = 100; var st, t: real; npp: word; f: text; function integral(vid: byte; verx, niz: real; n: word; Time: real): real; var d, y, S, tau: real; k :integer; begin d := (verx - niz) / n; S := 0; for k := 0 to n do begin tau := niz + k * d; case vid of 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)); 2: y := (1 - exp(-3)) * exp((-1) * (6 * tau / tr - 3) * (6 * tau / tr - 3)) * ((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)); end; if k <> 0 then begin if(k mod 2) = 0 then begin if k <> n then y := 2 * y end else y := 4 * y; end; S := S + y; end; integral := d * S / 3; end; 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.
Объяснение кода листинга программы
Список элементов кода:
- Объявление переменных и констант:
- 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 и возвращает значение интеграла)
- Запись заголовка и основной части программы:
- 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.
- Вывод списка элементов кода:
- Не компилируется программа
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д