
- •Курсовая работа
- •Пояснительная записка
- •Курсовая работа
- •Информатика
- •Задание
- •Аннотация
- •Содержание
- •Введение
- •1. Теоретические положения
- •2.1.3. Расчетные формулы
- •2.2. Подготовка теста
- •2.3. Разработка алгоритма решения задачи
- •2.3.1. Укрупнение алгоритма и его описание
- •2.3.2. Пояснения к блок-схеме
- •2.4. Программирование
- •2.4.1. Описание используемых переменных, массивов и подпрограмм
- •2.4.2. Файловый ввод-вывод данных
- •2.4.3. Соответствие между блок-схемой и программой
- •2.5. Программный код
- •2.6. Отладка программы
- •2.6.1. Методы, используемые при отладке программы
- •2.6.2. Результаты отладки
- •2.7. Результаты выполнения программы и их анализ.
- •Заключение
- •Библиографический список
2.4.3. Соответствие между блок-схемой и программой
Программа, обеспечивающая выполнение алгоритма полностью соответствует приведенным выше пунктам блок-схемы
2.5. Программный код
program kurs2;
var
t1,t2,En,b,m,q1,q2,t0,E1,E2,a,A1,A2,k1,k2,x:real;
ExpIT:array [1..2,1..6] of real;
TeorI:array [1..6] of real;
K:array [1..6] of real;
i,j:integer;
fei,ftik:text;
{VICHISLENIE b i m}
procedure vichislenie(k1,k2,t1,t2,a:real;var m,b:real);
var
A1,A2:real;
begin
A1:=ln(k1-a);
A2:=ln(k2-a);
m:=(t2-t1)/(A1-A2);
b:=exp((t2*A1-t1*A2)/(t2-t1));
end;
begin
assign(fei,'fei.txt');
reset(fei);readln(fei);
{chtenie dannih iz faila}
i:=1;
while not SeekEOLN(fei) do
begin
read(fei,x);
ExpIT[1,i]:=x;
i:=i+1;
end;
readln(fei);
i:=1;
while not SeekEOLN(fei) do
begin
read(fei,x);
ExpIT[2,i]:=x;
i:=i+1;
end;
close(fei);
{uporyadivachennie dannih po vozrostaniy}
for j:=1 to 5 do
begin
i:=1;
while i < 6 do
begin
if ExpIT[1,i] > ExpIT[1,i+1] then
begin
x:=ExpIT[1,i+1];ExpIT[1,i+1]:=ExpIT[1,i];ExpIT[1,i]:=x;
x:=ExpIT[2,i+1];ExpIT[2,i+1]:=ExpIT[2,i];ExpIT[2,i]:=x;
end;
i:=i+1;
end;
end;
{vivod ishodnih dannih na ekran}
writeln(' t1 t2 t3 t4 t5 t6');
for j:=1 to 6 do
begin
write(ExpIT[1,j]:5:1,' ');
write(' ');
end;
writeln;
writeln(' e1 e2 e3 e4 e5 e6');
for j:=1 to 6 do
begin
write(ExpIT[2,j]:7:4);
write(' ');
end;
writeln;
{avtomaticheskiy vibor t1,t2,e1,e2}
t2:=ExpIT[1,6];e2:=ExpIT[2,6];
i:=1;
t0:=0;
repeat
if ExpIT[1,i] > 20
then
t0:=ExpIT[1,i]
else
i:=i+1;
until t0 <> 0;
t1:=ExpIT[1,1];
e1:=ExpIT[2,1];
if t0 > ExpIT[1,1]
then
begin
t1:=t0;
e1:=ExpIT[2,i];
end;
{AVTOMATICHESKIY VIBOR PARAMETRA En}
writeln('VVEDITE PROIZVOLNOE CHISLO OT (0;1) NO NE 0 I NE 1');
read(q1);
En:=((1-q1)*ExpIT[2,6])+q1;
{AVTOMATICHESKIY VIBOR PARAMETRA a}
writeln('VVEDITE PROIZVOLNOE CHISLO OT (0;1) NO NE 0 I NE 1');
read(q2);
k1:=-((1/t1)*ln(1-(e1/En)));
k2:=-((1/t2)*ln(1-(e2/En)));
a:=k2*q2;
{VZOV PROCIDURI vichislenie}
vichislenie(k1,k2,t1,t2,a,m,b);
{VICHISLENIE RASSCHETNIH ZNACHENIY Ki,Ei}
for i:=1 to 6 do
begin
K[i]:=a+b*exp(-ExpIT[1,i]/m);
TeorI[i]:=En*(1-exp(-K[i]*ExpIt[1,i]));
end;
{VIVOD REZULTATOV}
{vivod na ekran}
writeln;
writeln('TEORITICHESKIE ZNACHENIYA Ki');
for i:=1 to 6 do
write('K[',i,']=',K[i]:6:4,' ');
writeln;
writeln('TEORITICHESKIE ZNACHENIYA Ei');
for i:=1 to 6 do
write('e[',i,']=',TeorI[i]:6:4,' ');
{vivod v fail}
assign(ftik,'ftik.txt');
rewrite(ftik);
writeln(ftik,'TEORITICHESKIE ZNACHENIYA Ki');
for i:=1 to 6 do
write(ftik,'K[',i,']=',K[i]:5:4,' ');
writeln(ftik);
writeln(ftik,'TEORITICHESKIE ZNACHENIYA Ei');
for i:=1 to 6 do
write(ftik,'e[',i,']=',TeorI[i]:5:4,' ');
close(ftik);
readln;
readln;
end.