Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Drake_Parker
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 3
1

Возращение функцией вместо значения - ноль

09.06.2013, 13:17. Просмотров 492. Ответов 0
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане. Проблема следующего характера:

Функция при выполнении присвоения перемонной возвращает 0, хотя имеет другое значение. Буду премного благодарен за любую помощь касаемо этой проблемы.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Program Z1;
uses crt;
 
const
V0:real=250;
Pk:real=5;
NCl:real=0.65;
NN2:real=0.06;
Mur:real=0.007;
MHO:real=250;
Pnas:real=250;
Tpl:real=350;
n:real=0.5;
Vgnu:real=1.12;
Tp:real=321;
Gn:real=875;
P0:real=0.1;
Gv:real=1030;
Munnu:real=0.002;
Tg:real=283;
D:real=0.2;
L:real=2500;
dH:real=35;
r:real=120;
T0:real=273;
g:real=10;
 
var Pp1,Pp2,Pp3:real;
f:text;
 
function log(a,b:real):real;
begin
 log:=ln(a)/ln(b);
end;
 
function st(a,b:real):real;
begin
 st:=exp(b*ln(a));
end;
 
function Pp(Pm:real):real;
const ksh=0.00005;
var M,Tm,a2,Vp,a1,km,Knas,Pnast,Vc,b2,dgr,
B,z,Gs,Beta,Frr,Alfa0,sina,Rer,dA2,l1,Mun,
Ren,kA,b1,dGv,Mug,fi,Resm,a3,b3,c3,Psi,
Lambda0,LambdaCM,Gg,Gfi,Pp,Reg,Lambdag,c0,
b0,A4,A5,Kg:real;
begin
 M:=MHO*(1/(1-n)+1.293*(1E-3)*V0*Vgnu+10293*(1E-3)*r*Vgnu);
 Tm:=(Tp+Tg)/2;
 a2:=3.64*Vgnu*st(10,-3)*Gn-3.316;
 Vp:=V0*(a2*(1+log(Pm,10))/(1+log(Pnas,10))+(1-a2)*sqr((1+log(Pm,10))/(1+log(Pnas,10))));
 a1:=5.242-4.06*(1E-3)*Vgnu*Gn+0.00354*(Tm-293)*(1E-3)*Vgnu*Gn;
 km:=0.029*(1E-3)*Vgnu*Gn-0.023;
 Knas:=(V0*(NCl-0.8*NN2))/(7018+0.9157*V0*(NCl-0.8*NN2));
 Pnast:=Pnas+0.1*Knas*(Tm-Tpl);
 Vc:=(1+km*(Tm-293))*(a1*(1-(1+log(Pm,10))/(1+log(Pnas,10)))+(1-a1)*sqr(1-(1+log(Pm,10))/(1+log(Pnas,10))));
 b2:=0.0175*(1E-3)*V0-0.653*(1/st(10,4))*sqr((1/(st(10,3))*Gn*V0));
 dgr:=Vgnu*(1+b2*(((1+log(Pm,10))/(1+log(Pnas,10)))-(sqr((1+log(Pm,10))/(1+log(Pnas,10))))));
 B:=1+(1.293*(1/st(10,6))*Vp*Vgnu)/(0.274+0.2*Vgnu);
 if Pm>0.6 then z:=1-((10*Pm-6)*(0.00345*Vgnu-0.000446)+0.015)*(1.3-0.0144*(Tm-283))
 else if Pm<=0.6 then z:=1;
 Gs:=(1/(1-n)+1.293*(1E-3)*V0*Vgnu+1.293*(1E-3)*r*Vgnu)/(B/Gn+n/((1-n)*Gv)+((1E-3)*z*(r+Vc)*Tm*P0)/(273*Pm));
 Beta:=(z*(r+Vc)*Tm*P0)/(273*Pm*((z*(r+Vc)*Tm*P0)/(273*Pm)+B/((1E-3)*Gn)+n/((1-n)*Gv*(1E-3))));
 Frr:=(0.221*(1E-4)*sqr(M))/(sqr(Gs)*st(D,5));
 Alfa0:=Beta/(1-Beta);
 sina:=dH/L;
 if n<>0 then Rer:=(0.0148*M)/(Mur*D);
 dA2:=exp(55000*st((Munnu/Gn),0.21)*(1/Tm-1/T0));
 l1:=(Munnu/Gn)+0.0662*st((Munnu/Gn),1.3)*(10*Pm-1)*dA2;
 Mun:=Gn*l1/(1+(1.5/st((Munnu/Gn),0.64)*Vp*l1));
 Ren:=0.0148*MHO/(Mun*D);
 kA:=0.13*(1+Alfa0)*(Frr/st(Rer,0.2)+0.0006)+sina;
 b1:=1.05-0.0036*(1E-3)*Gn*V0;
 dGv:=(Vgnu-b1*(1+log(Pm,10))/(1+log(Pnas,10))+(0.38-b1)*sqr((1+log(Pm,10))/(1+log(Pnas,10))))*(1+0.0054*(Tm-293));
 Mug:=(1E-5)*(0.166+0.00282*Tm)/st((1.293*dGv),0.28);
 if kA>=0 then begin
  fi:=1-(1-Beta)*(1+0.5*st(Alfa0,0.25)*(1/exp(0.052*st(Frr,0.6)*Alfa0)));
  Resm:=0.0148*km/(D*(Mug*(1-fi)+Mur*fi));
  a3:=0.0075/(Frr+0.005);
  b3:=0.22;
  c3:=0.0575*st(Frr,0.21);
  if Frr>=0.35 then Psi:=1 else Psi:=1+a3*st(Alfa0,b3)*(1/exp(c3*Alfa0));
  if (kA>0) then
  begin
   if Resm>=1500 then Lambda0:=0.*st((ksh/D+45/Resm),0.2)
   else Lambda0:=64/Resm;
  end;
  LambdaCM:=Psi*Lambda0;
  Gg:=1.293*Vgnu*T0*Pm/(z*Tm*P0);
  Gfi:=Gs*(1-fi)+Gg*fi;
  Pp:=1.087*(1/st(10,9))*LambdaCM*sqr(km)*L/(g*Gs*st(D,5))+(1/st(10,5))*dH*Gfi+Pk;
 end
 else begin
  Reg:=1.90884*(1/st(10,5))*Vc*MHO*z*Tm*P0*Vgnu/(T0*Pm*Mug*D);
  Lambdag:=0.1*st((ksh/D+45/Reg),0.2);
  c0:=0.026*st(Frr,0.23);
  b0:=st(Frr,0.23)*(0.429-0.039);
  A4:=5.5*(Frr-0.05)*st(Alfa0,b0)*exp(-1*c0*Alfa0);
  Kg:=1/st((1-0.34*st(Frr,0.4)/(st(Frr,0.08)*st((0.3*Alfa0/(25.4*(1/st(Frr,0.53)))-sina),0.4))),2.5)+A4;
  A5:=1.293*(1/st(10,5))*T0*Pm*dH/(z*P0*Tm);
  Pp:=Pk+A5+1.408*st(10,15)*Kg*Lambdag*st(Vc,2)*st(MHO,2)*z*P0*Vgnu*L/(10*st(D,5)*T0*Pm);
 end;
 writeln('Pp=',Pp:6:3);
end;
 
begin
clrscr;
Pp1:=Pp(Pk);
Pk:=(Pp1+Pk)/2;
Pp2:=Pp(Pk);
Pk:=(Pp1+Pk)/2;
Pp3:=Pp(Pk);
writeln('Pp1=',Pp1:6:0);
writeln('Pp2=',Pp2:6:0);
writeln('Pp3=',Pp3:6:0);
{While (abs((Pp1-Pp3)/(Pp3-Pp2)))>=0.05 do
 begin
 Pp1:=Pp2;
 Pp2:=Pp3;
 Pk:=(Pp3+Pk)/3;
 Pp3:=Pp(Pk);
 if (Pp3-Pp2=0) then break;
end;
end.
0
Вложения
Тип файла: txt 1.txt (3.7 Кб, 4 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 13:17
Ответы с готовыми решениями:

Возращение функцией 2 и более результата
Здравствуйте, вопрос, может ли эта функция из DLL вернуть в программу 2 и более результата ? (в...

Возращение значения в рекурсии
Есть бинарное дерево и есть функция, которая должна рекурсивно пройти по вершинам в порядке...

Возращение значения из функции
Помогите пожалуйста решить. Вывести на экран таблицу значений функции Y(x) и ее разложения в...

Выделение памяти оператором new в функции и возращение ею этого значения
Сабж, получается после выхода из функции указатель удаляется, а выделенная память не освободится,...

Массивы. Найти максимальные и минимальные значения. В строках, где находятся искомые значения все значения обратить в ноль и вернуть номер строки
Всем привет! Вот такая задачка: Ввести двумерный массив 5х6. Найти максимальные и минимальные...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 13:17

Ноль вместо выполнения кода
Делаю сайт для гильдии друга в одной игре. Столкнулся с тем, что надо сделать форму чтобы оставляли...

Вместо отрицательных элементов матрицы пишем ноль
Вместо отрицательных элементов матрицы D (K, K) пишем ноль и печатаем его в общем виде.

Ноль вместо первого элемента в алгоритме быстрой сортировки
Здравствуйте, скопировал код из темы, хочу отсортировать массив, но почему-то в отсортированном...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru