Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <math.h>
  5. #define JOJO 64
  6. using namespace std;
  7. int **getM(int **M, int N, int k) {
  8. int **A = new int *[N - 1];
  9. for (int i = 1; i < N; i++) {
  10. A[i - 1] = new int[N - 1];
  11. int m = 0;
  12. for (int j = 0; j < N; j++) {
  13. if (j == k) m++;
  14. else A[i - 1][j - m] = M[i][j];
  15. }
  16. }
  17. return A;
  18. }
  19.  
  20. int getDet(int **M, int N) {
  21. if (N == 1) return M[0][0];
  22. int D = 0;
  23. for (int i = 0; i < N; i++)
  24. D += (((i + 1) % 2) ? 1 : -1) * M[0][i] * getDet(getM(M, N, i), N - 1);
  25. return D;
  26. }
  27.  
  28. int main() {
  29.  
  30. srand(time(NULL));
  31. //getting info from config
  32. ifstream suk("C:\\Users\\student\\Documents\\CHERNEVICH\\CONFIG\\CONFIG.txt");
  33.  
  34. int N, x;
  35. string U[] = {"a","b","c","d","e", "f", "g", "h", "i", "k"};
  36. cout << "How many equation must be in your system?" << endl;
  37. cin >> N;
  38. cout << "How many variation of tasks you need?" << endl;
  39. cin >> x;
  40. char buff[100];
  41. suk.getline(buff, 50);
  42. suk.getline(buff, 50);
  43. suk.getline(buff, 50);
  44. int min, max, no;
  45. min = atoi(buff);
  46. suk.getline(buff, 50);
  47. suk.getline(buff, 50);
  48. max = atoi(buff);
  49. suk.getline(buff, 100);
  50. suk.getline(buff, 50);
  51. no = atoi(buff);
  52. suk.close();
  53.  
  54.  
  55. char s1[JOJO] = "C:\\Users\\student\\Documents\\CHERNEVICH\\TASKS\\Var00000.txt";
  56. char s2[JOJO] = "C:\\Users\\student\\Documents\\CHERNEVICH\\ANSWERS\\ANS00000.txt";
  57. ofstream out2;
  58. out2.open(s2);
  59. for(int k = 1; k < x + 1; k++) {
  60.  
  61. ofstream out1;
  62. int OP =0;
  63. OP = k;
  64. if(OP/10000>0){s1[47]='0' +OP/10000; OP -= (OP/10000)*10000; }
  65. if(OP/1000>0){s1[48]='0' +OP/1000; OP -= (OP/1000)*1000; }
  66. if(OP/100>0){s1[49]='0' +OP/100; OP -= (OP/100)*100; }
  67. if(OP/10>0){s1[50]='0' +OP/10; OP -= (OP/10)*10; }
  68. s1[51]='0' +OP; OP=0;
  69. // OP = k;
  70. //if(OP/10000>0){s2[49]='0' +OP/10000; OP -= (OP/10000)*10000; }
  71. //if(OP/1000>0){s2[50]='0' +OP/1000; OP -= (OP/1000)*1000; }
  72. //if(OP/100>0){s2[51]='0' +OP/100; OP -= (OP/100)*100; }
  73. //if(OP/10>0){s2[52]='0' +OP/10; OP -= (OP/10)*10; }
  74. //s2[53]='0' +OP; OP=0;
  75.  
  76.  
  77. //cout << s1 << endl;
  78. out1.open(s1);
  79. int s=0;
  80. int C[N-1];
  81. int **A = new int *[N];
  82. int B[x][N];
  83. int SCHET=0;
  84. for (int i = 0; i < N; i++) {B[k][i] = rand()%20 -10; if(B[k][i]==0) SCHET+=1;}
  85. if(SCHET>no){k--; continue;}
  86. for (int i = 0; i < N; i++) {
  87. A[i] = new int[N];
  88. for (int j = 0; j < N; j++)
  89. {
  90. // cin >> A[i][j];
  91. A[i][j] = rand()%(abs(max-min)+1)+min;
  92. s += A[i][j]*B[k][j];
  93. // cout << A[i][j] << " " << B[k][j] << " ";
  94. }
  95. C[i] = s;
  96. s = 0;
  97. //cout << endl;
  98. }
  99. if(getDet(A, N)==0) {k--; continue;}
  100. if (out1.is_open()){
  101. for(int i = 0; i < N; i++) {
  102. int OPEL = -1;
  103. for(int j = 0; j < N; j++){
  104. OPEL+=1;
  105. if(A[i][j]==0) {OPEL = 0; continue;}
  106. if((OPEL != 0)&&(A[i][j]>0)) out1 << "+";
  107. if((OPEL != 0)&&(A[i][j]<0)) out1 << "-";
  108. if(A[i][j]==1){ out1 << U[j]; continue;}
  109. if(A[i][j]==-1){out1 << U[j]; continue;}
  110. out1 << abs(A[i][j])<< U[j];
  111. }
  112. out1<<"= " << C[i];
  113. out1<< endl;
  114. }
  115. //out << "JKF";
  116. }
  117. if(out2.is_open()){
  118. out2 << "VAR" << k << " " ;
  119. for(int i = 0; i< N; i++){
  120. out2<< U[i] << " = " << B[k][i] << " ";
  121.  
  122. }
  123. out2 << endl;
  124. }
  125. // cout << getDet(A, N) << endl;
  126. }
  127.  
  128. system("pause");
  129. return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement