Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.72 KB | None | 0 0
  1. // ConsoleApplication3.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include <iostream>
  5. #include <fstream>
  6. #include <conio.h>
  7.  
  8. using namespace std;
  9. const char *FNAME1 = "Test_01.txt"; //имя файла с исходными данными
  10. const char *FNAME2 = "Test_02.txt"; //имя файла с исходными данными
  11. const char *FNAME_RES = "Result_01.txt"; //имя файла результатов
  12. const int N1 = 5; //максимальный размер массива
  13. const int M1 = 8;
  14. const int N2 = 6;
  15. const int M2 = 9;
  16. const int N = 10;
  17. const int M = 10;
  18.  
  19.  
  20. void InputMatr(int xMatr[][M], int, int, const char*);
  21. void OutputMatr(int AMatr[][M], int, int);
  22. int Amount_str(int xMatr[][M], int, int);
  23. void Search_Max(int xMatr[][M], int, int);
  24.  
  25.  
  26. int main()
  27. {
  28. int AMatr[N][M];
  29. int BMatr[N][M]; //объявление массива
  30. ifstream fin1(FNAME1); //объявление файловой переменной и открытие файла
  31. ifstream fin2(FNAME2); //объявление файловой переменной и открытие файла
  32. ofstream fout(FNAME_RES);
  33.  
  34. setlocale(LC_ALL, "RUSSIAN"); //подключение русского языка
  35. //файл не найден
  36. if (!fin1)
  37. {
  38. cout << "File " << FNAME1 << " not found\n";
  39. fin1.close(); //закрытьфайл
  40. system("pause");
  41. return 1;
  42. } // endif
  43. if (!fin2)
  44. {
  45. cout << "File " << FNAME2 << " not found\n";
  46. fin2.close(); //закрытьфайл
  47. system("pause");
  48. return 1;
  49. } // endif //файл существует, можно из него читать
  50. //fin >> N; //чтение числа элементов массива из файл
  51. //файл пуст
  52. if (fin1.eof())
  53. {
  54. cout << "File " << FNAME1 << " is empty\n";
  55. fin1.close(); //закрыть файл
  56. system("pause");
  57. return 1;
  58. } // endif
  59. if (fin2.eof())
  60. {
  61. cout << "File " << FNAME2 << " is empty\n";
  62. fin2.close(); //закрыть файл
  63. system("pause");
  64. return 1;
  65. } // endif
  66. //в файле не число
  67. if (fin1.fail())
  68. {
  69. cout << "ERROR! Read File " << FNAME1 << " failure\n";
  70. fin1.close(); //закрыть файл
  71. system("pause");
  72. return 1;
  73. } // end if
  74. if (fin2.fail())
  75. {
  76. cout << "ERROR! Read File " << FNAME2 << " failure\n";
  77. fin2.close(); //закрыть файл
  78. system("pause");
  79. return 1;
  80. } // end if
  81. InputMatr(AMatr, N1, M1, FNAME1);
  82. OutputMatr(AMatr, N1, M1);
  83. InputMatr(BMatr, N2, M2, FNAME2);
  84. OutputMatr(BMatr, N2, M2);
  85. cout << endl;
  86. fout << endl;
  87.  
  88. // ПЕРВОЕ ЗАДАНИЕ
  89.  
  90.  
  91. cout << Amount_str(AMatr, N1, M1);
  92. cout << Amount_str(BMatr, N2, M2);
  93.  
  94. // ВТОРОЕ ЗАДАНИЕ
  95. Search_Max(AMatr, N1, M1);
  96. Search_Max(BMatr, N2, M2);
  97.  
  98. system("pause");
  99. return 0;
  100. }
  101.  
  102.  
  103. void InputMatr(int xMatr[][M], int xN, int xM, const char* xFNAME)
  104. {
  105. ifstream fin(xFNAME); //объявление файловой переменной и открытие файла
  106. for (int i = 0; i < xN; i++)
  107. {
  108. for (int j = 0; j < xM; j++)
  109. {
  110. fin >> xMatr[i][j];
  111. }
  112. } //end for
  113. fin.close();
  114. }
  115.  
  116. void OutputMatr(int xMatr[][M], int N, int M)
  117. {
  118. ofstream fout(FNAME_RES);
  119. {
  120. for (int i = 0; i < M; i++)
  121. {
  122. for (int j = 0; j < N; j++)
  123. {
  124. cout << xMatr[i][j];
  125. fout << xMatr[i][j];
  126. }
  127. cout << endl;
  128. } //end for
  129. fout.close();
  130. }
  131.  
  132. }
  133. int Amount_str(int xMatr[][M], int xN, int xM)
  134. {
  135. int k;
  136. bool flag;
  137. for (int i = 0; i < xN; i++)
  138. {
  139. for (j = 0; j < xM; j++)
  140. {
  141. if (xMatr[xN][xM] % 2 == 0)
  142. {
  143. flag = 1;
  144. }
  145. if (flag)
  146. {
  147. k++;
  148. }
  149. flag = 0;
  150. }
  151. return k;
  152. }
  153.  
  154. const int M = 10;
  155. const int r,s = 10;
  156. void Search_Max(int xMatr[][M], int xN, int xM)
  157. {
  158. int b[r], i, j, q, w, s = 0, tmp;
  159.  
  160. for (i = 0; i < xN; i++) //цикл который последовательно сравнивает каждый элемент матрицы со всеми остальными
  161. {
  162. for (j = 0; j < xM; j++)
  163. {
  164. for (q = 0; q < xN; q++)
  165. {
  166. for (w = 0; w < M; w++)
  167. {
  168. if (xMatr[i][j] == xMatr[q][w] && (i != q || j != w)) //во втором условии исключаем элементы с одинаковыми индексами
  169. {
  170. b[s] = xMatr[i][j]; //записываем в массив b найденный элемент
  171. s++;
  172. q = n; //прекращаем искать одинаковые элементы, и переходим к следующему
  173. break; //выходим из этого цикла
  174. }
  175. }
  176. }
  177. }
  178. }
  179. for (i = 0; i < s; i++) //выводим получившийся массив чтобы полюбоваться своим творением
  180. cout << b[i] << "\t";
  181. cout << endl;
  182. tmp = b[0];
  183. for (i = 0; i < s; i++) //сравниваем соседние числа в поисках наибольшего.
  184. {
  185. if (b[i + 1] > tmp)
  186. tmp = b[i + 1];
  187. }
  188. cout << "Максимальное из чисел встречающееся более одного раза равно " << tmp << endl;
  189. }
  190. void Error_code(int X)
  191. {
  192. switch (X)
  193. {
  194. case 1:
  195. {
  196. cout << " ";
  197. break;
  198. }
  199. case 2:
  200. {
  201. cout << " ";
  202. break;
  203. }
  204. case 3:
  205. {
  206. cout << " ";
  207. break;
  208. }
  209. default:
  210.  
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement