Advertisement
Guest User

Untitled

a guest
Apr 27th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.79 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <cmath>
  4. #include <iomanip> //Подключить стандартный заголовок <iomanip> для определения нескольких манипуляторов, где каждый принимает единственный аргумент
  5. using namespace std;
  6.  
  7. struct My1
  8. {
  9. double Qc, Kn, Cb, B, Cto, qb, To, qrmin, qrmax;
  10. };
  11. My1 Result1;
  12. double Kp, Tk, Tn, k, v;
  13.  
  14. My1 f1(My1 Result1, double Kp, double Tk, double Tn)
  15. {
  16. v = 0.2;
  17. Result1.qb = (Kp*Result1.Kn *Result1.Qc) / 3600;
  18. Tn = Result1.B / (2 * v);
  19. Result1.To = Tn + Tk;
  20. Result1.qrmin = (0.05*Result1.Cb*Result1.qb) / (Result1.Kn *(1 - Result1.Cb));
  21. Result1.qrmax = Result1.qrmin *((3600 * (1 - k)) / (Result1.Kn *(Tn*(1 - k) + Tk)) + 1);
  22. Result1.Cto = (Result1.Kn *Result1.qrmax*Result1.To) / (Result1.Kn *Result1.Qc + (Result1.Kn *Result1.qrmax + Result1.qb)*Result1.To);
  23. return Result1;
  24. }
  25. My1 f1(double Kp, double Tk, double Tn, double v);
  26.  
  27. struct My2
  28. {
  29. double Sk, n, N, S, Lд, h0, Mr, Tr;
  30. };
  31. My2 Result2;
  32. double kc, h, Qn, L, H, H0, Tb, Mb, M1, M2, C2, T1, T2, Br;
  33.  
  34. My2 f2(My2 Result2, double Sk, double n, double N, double S, double Lд, double h0, double Mr, double Tr)
  35. {
  36. Result2.Sk = (0.05*Result1.Kn*Result1.Qc*k*(1 - Result1.Cto)) / (0.2*h*Result2.n*(1 - Result1.Cb));
  37. Result2.n = (Result1.Kn*Result1.Qc) / Qn;
  38. Result2.N = Result2.S / Result2.Sk;
  39. Result2.S = Result1.B*L;
  40. Result2.Lд = sqrt(Result2.Sk / 3);
  41. Result2.h0 = (H - H0)*((Result2.Mr *Tb) / (Mb*Result2.Tr));
  42. if (Result2.Mr>Mb)
  43. {
  44. Result2.h0 = H0*((Mb*Result2.Tr) / (Br*Tb));
  45. Result2.Mr = (M1*M2) / (M2 + ((M1 - M2)*C2));
  46. Result2.Tr = (T1*T2) / (T1 + ((T1 - T2)*Result1.Cb));
  47. }
  48. return Result2;
  49. }
  50. My2 f2(double Sk, double n, double N, double S, double Lд, double h0, double Mr, double Tr);
  51.  
  52. int main(My2 Result2, My1 Result1)
  53. {
  54. setlocale(0, "Russian");
  55. cout << "Введите свободный объем помещения Qc=" << endl;
  56. cin >> Result1.Qc;
  57. cout << "Введите коэффициент пропорциональности, определяющий соотношение полного и свободного объема помещения Kn=" << endl;
  58. cin >> Result1.Kn;
  59. cout << "Введите кратность воздухообмена Kp=" << endl;
  60. cin >> Kp;
  61. cout << "Введите инерционность датчика взрывопредупреждения Tk=" << endl;
  62. cin >> Tk;
  63. cout << "Введите ширину помещения B=" << endl;
  64. cin >> Result1.B;
  65. cout << "Введите нижний концентрационный предел воспламенения Cb=" << endl;
  66. cin >> Result1.Cb;
  67. cout << "Введите коэффициент порогового значения концентрации для автоматического включения аварийной вентиляции k=" << endl;
  68. cin >> k;
  69. Result1 = f1(Result1, Kp, Tk, Tn);
  70. cout << "Введите значение коэффициента неравномерности распределения газов в помещении kc=" << endl;
  71. cin >> kc;
  72. cout << "Ведите высоту помещения h=" << endl;
  73. cin >> h;
  74. cout << "Введите количество объектов с квадратным основнием по ширине помещения n=" << endl;
  75. cin >> Result2.n;
  76. cout << "Введите длину помещения L=" << endl;
  77. cin >> L;
  78. cout << "Введите ширину помещения B=" << endl;
  79. cin >> Result1.B;
  80. cout << "Введите высоту расположения вероятного источника утечки H0=" << endl;
  81. cin >> H0;
  82. cout << "Введите молярную массу горючего газа Mr=" << endl;
  83. cin >> Result2.Mr;
  84. cout << "Введите молярную массу воздуха Mb=" << endl;
  85. cin >> Mb;
  86. cout << "Введите температуру газа Tr=" << endl;
  87. cin >> Result2.Tr;
  88. cout << "Введите температуру воздуха в помещении Tb=" << endl;
  89. cin >> Tb;
  90. cout << "Введите малярную массу более лёгкого газа M1=" << endl;
  91. cin >> M1;
  92. cout << "Введите малярную массу более тяжелого газа M2=" << endl;
  93. cin >> M2;
  94. cout << "Введите концентрацию более тяжелого газа C2=" << endl;
  95. cin >> C2;
  96. Result2 = f2(Result2, Result2.Sk, Result2.n, Result2.N, Result2.S, Result2.Lд, Result2.h0, Result2.Mr, Result2.Tr);
  97. cout << "qb=" << scientific << setprecision(3) << Result1.qb << endl; // scientific -Вывод чисел с плавающей точкой в экспоненциальной форме,
  98. cout << "To=" << scientific << setprecision(3) << Result1.To << endl; // Манипулятор setprecision(3) контролирует, сколько точек должно быть после запятой (в данном случае 3)
  99. cout << "qrmin=" << scientific << setprecision(3) << Result1.qrmin << endl;
  100. cout << "qrmax=" << scientific << setprecision(3) << Result1.qrmax << endl;
  101. cout << "Cto=" << scientific << setprecision(3) << Result1.Cto << endl;
  102. cout << "Sk=" << scientific << setprecision(3) << Result2.Sk << endl;
  103. cout << "n=" << scientific << setprecision(3) << Result2.n << endl;
  104. cout << "N=" << scientific << setprecision(3) << Result2.N << endl;
  105. cout << "S=" << scientific << setprecision(3) << Result2.S << endl;
  106. cout << "Lд=" << scientific << setprecision(3) << Result2.Lд << endl;
  107. cout << "h0=" << scientific << setprecision(3) << Result2.h0 << endl;
  108. cout << "Mr=" << scientific << setprecision(3) << Result2.Mr << endl;
  109. cout << "Tr=" << scientific << setprecision(3) << Result2.Tr << endl;
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement