1 / 1 / 0
Регистрация: 28.12.2012
Сообщений: 17
|
|
1 | |
Перевести задачу из Паскаля в Маткад28.04.2013, 21:37. Показов 884. Ответов 1
Метки нет (Все метки)
Помогите перевести данную задачу из Паскаля в Маткад. Спасибо.
Код
program debit; const P_at = 1.01325; T_st = 20; ro_pov = 1.205; var mju, T_pl, k, h, R_k, r_s, ro_g, l, P_stat, L_, T_g, P_g, q_st, d_vn, lambda:real; A, B, T_pr, P_pr, T_ser_kr, P_ser_kr, ro_g_vidn, T_sr, P_sr, S, P_pl1, P_vyb1:real; d, q:real; output:text; function z(var P, T: real):real; begin z := exp(P*ln(abs((0.4*ln(T)+0.73))))+0.1*P; end; function P_pl(var P_stat, ro, L, T:real):real; var P_sr, P_pl_temp, P1, S:real; begin P_sr := P_stat; P1 := P_stat; P_pl_temp := 0; while abs(P1 - P_pl_temp) > 0.1 do begin P1 := P_pl_temp; S := (0.03415*ro*L)/(z(P_sr,T)*T); P_pl_temp := P_stat*exp(S); P_sr := (P_pl_temp + P_stat)/2; end; P_pl := P_pl_temp; end; function P_vyb(var P, q_st, T_sr, d, S, lambda:real):real; var P_sr, P_vyb_temp, P1, teta:real; begin P_sr := (2/3)*(P + sqr(P)/(2*P)); P_vyb_temp := 0; P1 := P_sr; while abs(P_vyb_temp - P1) > 0.1 do begin P1 := P_vyb_temp; teta := 0.0133*lambda*(sqr(T_sr)*z(P_sr, T_sr))*(exp(2*S)-1)/exp(5*ln(d)); P_vyb_temp := sqrt(sqr(P)*exp(2*S) + teta*sqr(q_st)); P_sr := (2/3)*(P_vyb_temp + sqr(P)/(P_vyb_temp + P)); end; P_vyb := P_vyb_temp; end; begin mju := 0.16; T_pl :=69; k := 0.043; h := 25; R_k := 550; r_s := 0.095; ro_g := 0.95; l := 0.35; P_stat := 6; L_ := 1900; T_g := 25; P_g := 3.1; q_st := 190; d_vn := 50; lambda := 0.025; T_sr := (T_pl - T_g)/ln(T_pl/T_g); ro_g_vidn := ro_g/ro_pov; P_pl1 := P_pl(P_stat, ro_g_vidn, L_, T_sr); P_sr :=(P_pl1+p_stat)/2; S := (0.03415*ro_g_vidn*L_)/(z(P_sr,T_sr)*T_sr); P_vyb1 := P_vyb(P_g, q_st, T_sr, d_vn, S, lambda); A := (mju*z(P_pl1, T_pl)*P_at*T_pl*ln(R_k/r_s))/(pi*k*h*T_st); T_ser_kr := 94.717+170.8*ro_g_vidn; P_ser_kr := 4.892 - 0.4048*ro_g_vidn; T_pr := T_st/ T_ser_kr; P_pr := P_at/ P_ser_kr; B := (ro_g*z(P_pr, T_pr)*P_at*T_pl*(1/r_s - 1/R_k))/(2*sqr(pi)*sqr(h)*l*T_st); d:= sqr(A)-4*(sqr(P_vyb1)-sqr(P_pl1))*B; q := (-A + sqrt(d))/(2*B); assign(output,'debit.txt'); rewrite(output); writeln(output,'Дебіт газу в пластових умовах з використанням двочленної формули = ',q); close(output); end.
0
|
28.04.2013, 21:37 | |
Ответы с готовыми решениями:
1
Перевести программу из паскаля в маткад Перевести код программы из паскаля в маткад Из паскаля в маткад Хотел бы перевести эту программу с С++ на маткад |
1503 / 1024 / 159
Регистрация: 12.06.2012
Сообщений: 2,083
|
|
29.04.2013, 11:42 | 2 |
Начните с определения в документе Mathcad заданных констант: "P_at", "T_st", "ro_pov".
0
|
29.04.2013, 11:42 | |
29.04.2013, 11:42 | |
Помогаю со студенческими работами здесь
2
Перевести с Паскаля на С++ Перевести из паскаля в СИ Перевести с паскаля на С++ Перевести с Паскаля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |