MainWindow.xaml.cs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Navigation;
  14. using System.Windows.Shapes;
  15. namespace Praktika3
  16. {
  17. /// <summary>
  18. /// Логика взаимодействия для MainWindow.xaml
  19. /// </summary>
  20. public partial class MainWindow : Window
  21. {
  22. public MainWindow()
  23. {
  24. InitializeComponent();
  25. }
  26. public void ClearTextBox()
  27. {
  28. lblFirst.Text = "";
  29. lblSecond.Text = "";
  30. lblAction.Text = "";
  31. lblResult.Text = "";
  32. }
  33. private void btnClear_Click(object sender, RoutedEventArgs e)
  34. {
  35. ClearTextBox();
  36. }
  37. private void btnPlus_Click(object sender, RoutedEventArgs e)
  38. {
  39. lblAction.Text = "+";
  40. }
  41. private void btnMinus_Click(object sender, RoutedEventArgs e)
  42. {
  43. lblAction.Text = "-";
  44. }
  45. private void btnMult_Click(object sender, RoutedEventArgs e)
  46. {
  47. lblAction.Text = "*";
  48. }
  49. private void btn8642_Click(object sender, RoutedEventArgs e)
  50. {
  51. String s = Convert.ToString(lblFirst.Text);
  52. string[] arr = s.Split('.');
  53. int dvoich;
  54. int vosmerich;
  55. int b;
  56. int c;
  57. if (proverkaSimv4(Convert.ToString(lblFirst.Text)))
  58. {
  59. b = int.Parse(Convert.ToString(arr[2]));
  60. c = int.Parse(Convert.ToString(arr[1]));
  61. string chetverich = "";
  62. do
  63. {
  64. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  65. b /= 4;
  66. } while (b > 0);
  67. string shesterich = "";
  68. do
  69. {
  70. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  71. c /= 6;
  72. } while (c > 0);
  73. dvoich = int.Parse(Convert.ToString(arr[3]));
  74. vosmerich = int.Parse(Convert.ToString(arr[0]));
  75. lblFirst.Text = string.Concat(Convert.ToString(vosmerich, 8), '.', shesterich, '.', chetverich, '.', Convert.ToString(dvoich, 2));
  76. }
  77. }
  78. private void btn8642Back_Click(object sender, RoutedEventArgs e)
  79. {
  80. String s = Convert.ToString(lblFirst.Text);
  81. string[] arr = s.Split('.');
  82. if (proverkaSimv8forfirst(Convert.ToString(lblFirst.Text)))
  83. {
  84. char[] arr2 = arr[3].ToCharArray();
  85. int res = 0;
  86. for (int i = 0; i < arr2.Length; i++)
  87. {
  88. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  89. }
  90. char[] arr3 = arr[2].ToCharArray();
  91. int res2 = 0;
  92. for (int i = 0; i < arr3.Length; i++)
  93. {
  94. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  95. }
  96. char[] arr4 = arr[1].ToCharArray();
  97. int res3 = 0;
  98. for (int i = 0; i < arr4.Length; i++)
  99. {
  100. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  101. }
  102. char[] arr5 = arr[0].ToCharArray();
  103. int res4 = 0;
  104. for (int i = 0; i < arr5.Length; i++)
  105. {
  106. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  107. }
  108. lblFirst.Text = String.Concat(res4, '.', res3, '.', res2, '.', res);
  109. }
  110. }
  111. private void btn10_Click(object sender, RoutedEventArgs e)
  112. {
  113. String s = Convert.ToString(lblSecond.Text);
  114. string[] arr = s.Split('.');
  115. if (proverkaSimv8(Convert.ToString(lblSecond.Text)))
  116. {
  117. char[] arr2 = arr[3].ToCharArray();
  118. int res = 0;
  119. for (int i = 0; i < arr2.Length; i++)
  120. {
  121. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  122. }
  123. char[] arr3 = arr[2].ToCharArray();
  124. int res2 = 0;
  125. for (int i = 0; i < arr3.Length; i++)
  126. {
  127. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  128. }
  129. char[] arr4 = arr[1].ToCharArray();
  130. int res3 = 0;
  131. for (int i = 0; i < arr4.Length; i++)
  132. {
  133. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  134. }
  135. char[] arr5 = arr[0].ToCharArray();
  136. int res4 = 0;
  137. for (int i = 0; i < arr5.Length; i++)
  138. {
  139. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  140. }
  141. lblSecond.Text = String.Concat(res4, '.', res3, '.', res2, '.', res);
  142. }
  143. }
  144. private void btn10Back_Click(object sender, RoutedEventArgs e)
  145. {
  146. String s = Convert.ToString(lblSecond.Text);
  147. string[] arr = s.Split('.');
  148. int dvoich;
  149. int vosmerich;
  150. int b;
  151. int c;
  152. if (proverkaSimv4forsecond(Convert.ToString(lblSecond.Text)))
  153. {
  154. b = int.Parse(Convert.ToString(arr[2]));
  155. c = int.Parse(Convert.ToString(arr[1]));
  156. string chetverich = "";
  157. do
  158. {
  159. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  160. b /= 4;
  161. } while (b > 0);
  162. string shesterich = "";
  163. do
  164. {
  165. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  166. c /= 6;
  167. } while (c > 0);
  168. dvoich = int.Parse(Convert.ToString(arr[3]));
  169. vosmerich = int.Parse(Convert.ToString(arr[0]));
  170. lblSecond.Text = string.Concat(Convert.ToString(vosmerich, 8), '.', shesterich, '.', chetverich, '.', Convert.ToString(dvoich, 2));
  171. }
  172. }
  173. private void btnAnswer10_Click(object sender, RoutedEventArgs e)
  174. {
  175. String s = Convert.ToString(lblSecond.Text);
  176. string ss = Convert.ToString(lblFirst.Text);
  177. string[] arr = s.Split('.');
  178. string[] arr6 = ss.Split('.');
  179. string first;
  180. string second;
  181. string operation = Convert.ToString(lblAction.Text);
  182. if (proverkaSimv108(Convert.ToString(lblFirst.Text), Convert.ToString(lblSecond.Text)))
  183. {
  184. char[] arr2 = arr[3].ToCharArray();
  185. int res = 0;
  186. for (int i = 0; i < arr2.Length; i++)
  187. {
  188. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  189. }
  190. char[] arr3 = arr[2].ToCharArray();
  191. int res2 = 0;
  192. for (int i = 0; i < arr3.Length; i++)
  193. {
  194. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  195. }
  196. char[] arr4 = arr[1].ToCharArray();
  197. int res3 = 0;
  198. for (int i = 0; i < arr4.Length; i++)
  199. {
  200. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  201. }
  202. char[] arr5 = arr[0].ToCharArray();
  203. int res4 = 0;
  204. for (int i = 0; i < arr5.Length; i++)
  205. {
  206. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  207. }
  208. second = string.Concat(res4, res3, res2, res);
  209. first = string.Concat(arr6[0], arr6[1], arr6[2], arr6[3]);
  210. if (string.IsNullOrEmpty(operation))
  211. {
  212. MessageBox.Show("Операция не выбрана");
  213. }
  214. else
  215. {
  216. switch (operation)
  217. {
  218. case "+":
  219. lblResult.Text = Addition(first, second);
  220. break;
  221. case "-":
  222. lblResult.Text = Substraction(first, second);
  223. break;
  224. case "*":
  225. lblResult.Text = Multiplication(first, second);
  226. break;
  227. default:
  228. break;
  229. }
  230. }
  231. }
  232. }
  233. private void btnAnswer8642_Click(object sender, RoutedEventArgs e)
  234. {
  235. //Объявление переменных, массивов
  236. String s;
  237. string ss;
  238. string[] arr;
  239. string[] arr6;
  240. string answer;
  241. String sss;
  242. string[] arr7;
  243. int dvoich;
  244. int vosmerich;
  245. int b;
  246. int c;
  247. string operation;
  248. if (proverkaSimv108(Convert.ToString(lblFirst.Text), Convert.ToString(lblSecond.Text)))//Проверка на символы
  249. {
  250. s = Convert.ToString(lblSecond.Text);
  251. ss = Convert.ToString(lblFirst.Text);
  252. arr = s.Split('.');
  253. arr6 = ss.Split('.');
  254. operation = Convert.ToString(lblAction.Text);
  255. //Перевод второго числа в десятичную систему
  256. char[] arr2 = arr[3].ToCharArray();
  257. int res = 0;
  258. for (int i = 0; i < arr2.Length; i++)
  259. {
  260. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  261. }
  262. char[] arr3 = arr[2].ToCharArray();
  263. int res2 = 0;
  264. for (int i = 0; i < arr3.Length; i++)
  265. {
  266. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  267. }
  268. char[] arr4 = arr[1].ToCharArray();
  269. int res3 = 0;
  270. for (int i = 0; i < arr4.Length; i++)
  271. {
  272. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  273. }
  274. char[] arr5 = arr[0].ToCharArray();
  275. int res4 = 0;
  276. for (int i = 0; i < arr5.Length; i++)
  277. {
  278. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  279. }
  280. if (string.IsNullOrEmpty(operation))
  281. {
  282. MessageBox.Show("Операция не выбрана");
  283. }
  284. else
  285. {
  286. switch (operation)
  287. {
  288. case "+":
  289. lblResult.Text = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
  290. break;
  291. case "-":
  292. lblResult.Text = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
  293. break;
  294. case "*":
  295. lblResult.Text = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
  296. break;
  297. }
  298. if (lblResult.Text.Length == 7)
  299. {
  300. sss = lblResult.Text;
  301. arr7 = sss.Split('.');
  302. if (proverkaSimv4(Convert.ToString(sss)))
  303. {
  304. b = int.Parse(Convert.ToString(arr7[2]));
  305. c = int.Parse(Convert.ToString(arr7[1]));
  306. string chetverich = "";
  307. do
  308. {
  309. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  310. b /= 4;
  311. } while (b > 0);
  312. string shesterich = "";
  313. do
  314. {
  315. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  316. c /= 6;
  317. } while (c > 0);
  318. dvoich = int.Parse(Convert.ToString(arr7[3]));
  319. vosmerich = int.Parse(Convert.ToString(arr7[0]));
  320. lblResult.Text = string.Concat(Convert.ToString(vosmerich, 8), shesterich, chetverich, Convert.ToString(dvoich, 2));
  321. }
  322. }
  323. else
  324. {
  325. MessageBox.Show("Число не 4-х значное. Перевод в систему невозможен");
  326. }
  327. }
  328. }
  329. }
  330. private bool proverkaSimv4(string lb_str)
  331. {
  332. string proverkasimv = Convert.ToString(lb_str);
  333. if (proverkasimv.Contains(".."))
  334. {
  335. MessageBox.Show("Неверный формат");
  336. return false;
  337. }
  338. else if (string.IsNullOrEmpty(proverkasimv))
  339. {
  340. MessageBox.Show("Первое число не указано");
  341. }
  342. for (int i = 0; i < proverkasimv.Length; i++)
  343. {
  344. if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
  345. {
  346. if (proverkasimv.Length == 7)
  347. {
  348. return true;
  349. }
  350. else if (lb_str.Length > 7 || lb_str.Length < 6)
  351. {
  352. MessageBox.Show("Можно использовать только 4-х значные числа");
  353. return false;
  354. }
  355. }
  356. else
  357. {
  358. MessageBox.Show("Неверный формат");
  359. return false;
  360. }
  361. }
  362. return false;
  363. //11 13 21 1001
  364. }
  365. private bool proverkaSimv4forsecond(string lb_str)
  366. {
  367. string proverkasimv = Convert.ToString(lb_str);
  368. if (proverkasimv.Contains(".."))
  369. {
  370. MessageBox.Show("Неверный формат");
  371. return false;
  372. }
  373. else if (string.IsNullOrEmpty(proverkasimv))
  374. {
  375. MessageBox.Show("Второе число не указано");
  376. }
  377. for (int i = 0; i < proverkasimv.Length; i++)
  378. {
  379. if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
  380. {
  381. if (proverkasimv.Length == 7)
  382. {
  383. return true;
  384. }
  385. else if (lb_str.Length > 7 || lb_str.Length < 6)
  386. {
  387. MessageBox.Show("Можно использовать только 4-х значные числа");
  388. return false;
  389. }
  390. }
  391. else
  392. {
  393. MessageBox.Show("Неверный формат");
  394. return false;
  395. }
  396. }
  397. return false;
  398. }
  399. private bool proverkaSimv8(string lb_str)
  400. {
  401. string proverkasimv = Convert.ToString(lb_str);
  402. if (proverkasimv.Contains(".."))
  403. {
  404. MessageBox.Show("Неверный формат");
  405. return false;
  406. }
  407. else if (string.IsNullOrEmpty(proverkasimv))
  408. {
  409. MessageBox.Show("Второе число не указано");
  410. }
  411. for (int i = 0; i < proverkasimv.Length; i++)
  412. {
  413. if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
  414. {
  415. if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7)
  416. {
  417. return true;
  418. }
  419. else if (lb_str.Length > 14 || lb_str.Length < 8)
  420. {
  421. MessageBox.Show("Можно использовать только 4-х значные числа");
  422. return false;
  423. }
  424. }
  425. else
  426. {
  427. MessageBox.Show("Неверный формат");
  428. return false;
  429. }
  430. }
  431. return false;
  432. }
  433. private bool proverkaSimv8forfirst(string lb_str)
  434. {
  435. string proverkasimv = Convert.ToString(lb_str);
  436. if (proverkasimv.Contains(".."))
  437. {
  438. MessageBox.Show("Неверный формат");
  439. return false;
  440. }
  441. else if (string.IsNullOrEmpty(proverkasimv))
  442. {
  443. MessageBox.Show("Первое число не указано");
  444. }
  445. for (int i = 0; i < proverkasimv.Length; i++)
  446. {
  447. if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
  448. {
  449. if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7)
  450. {
  451. return true;
  452. }
  453. else if (lb_str.Length > 14 || lb_str.Length < 8)
  454. {
  455. MessageBox.Show("Можно использовать только 4-х значные числа");
  456. return false;
  457. }
  458. }
  459. else
  460. {
  461. MessageBox.Show("Неверный формат");
  462. return false;
  463. }
  464. }
  465. return false;
  466. }
  467. private bool proverkaSimv108(string lb_str, string lb_str2)
  468. {
  469. string proverkasimv = Convert.ToString(lb_str);
  470. string proverkasimv2 = Convert.ToString(lb_str2);
  471. if (proverkasimv.Contains("..") && proverkasimv2.Contains(".."))
  472. {
  473. MessageBox.Show("Неверный формат");
  474. return false;
  475. }
  476. else if (String.IsNullOrEmpty(proverkasimv))
  477. {
  478. MessageBox.Show("Первое число не указано");
  479. return false;
  480. }
  481. else if (String.IsNullOrEmpty(proverkasimv2))
  482. {
  483. MessageBox.Show("Второе число не указано");
  484. return false;
  485. }
  486. for (int i = 0; i < proverkasimv.Length; i++)
  487. {
  488. for (int j = 0; j < proverkasimv2.Length; j++)
  489. {
  490. if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.' && proverkasimv2[j] >= '0' && proverkasimv2[j] <= '9' || proverkasimv2[j] == '.')
  491. {
  492. if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7 && proverkasimv2.Length <= 14 && proverkasimv2.Length >= 7 || proverkasimv.Length == 7 && proverkasimv2.Length == 7)
  493. {
  494. return true;
  495. }
  496. else if (proverkasimv.Length > 14 || proverkasimv.Length < 6 && proverkasimv2.Length > 14 || proverkasimv2.Length < 6)
  497. {
  498. MessageBox.Show("Можно использовать только 4-х значные числа");
  499. return false;
  500. }
  501. }
  502. else
  503. {
  504. MessageBox.Show("Неверный формат");
  505. return false;
  506. }
  507. }
  508. }
  509. return false;
  510. }
  511. public static string Addition(string first, string second)
  512. {
  513. try
  514. {
  515. return (Convert.ToInt32(first) + Convert.ToInt32(second)).ToString();
  516. }
  517. catch
  518. {
  519. return "";
  520. }
  521. }
  522. public static string Substraction(string first, string second)
  523. {
  524. try
  525. {
  526. return (Convert.ToInt32(first) - Convert.ToInt32(second)).ToString();
  527. }
  528. catch
  529. {
  530. return "";
  531. }
  532. }
  533. public static string Multiplication(string first, string second)
  534. {
  535. try
  536. {
  537. return (Convert.ToInt32(first) * Convert.ToInt32(second)).ToString();
  538. }
  539. catch
  540. {
  541. return "";
  542. }
  543. }
  544. public bool btn8642_ClickTest(string chisloOne)
  545. {
  546. String s = chisloOne;
  547. string[] arr = s.Split('.');
  548. int dvoich;
  549. int vosmerich;
  550. int b;
  551. int c;
  552. if (proverkaSimv4(Convert.ToString(chisloOne)))
  553. {
  554. b = int.Parse(Convert.ToString(arr[2]));
  555. c = int.Parse(Convert.ToString(arr[1]));
  556. string chetverich = "";
  557. do
  558. {
  559. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  560. b /= 4;
  561. } while (b > 0);
  562. string shesterich = "";
  563. do
  564. {
  565. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  566. c /= 6;
  567. } while (c > 0);
  568. dvoich = int.Parse(Convert.ToString(arr[3]));
  569. vosmerich = int.Parse(Convert.ToString(arr[0]));
  570. return true;
  571. }
  572. return false;
  573. }
  574. public bool btn8642Back_ClickTest(string chisloOne)
  575. {
  576. String s = chisloOne;
  577. string[] arr = s.Split('.');
  578. if (proverkaSimv8forfirst(chisloOne))
  579. {
  580. char[] arr2 = arr[3].ToCharArray();
  581. int res = 0;
  582. for (int i = 0; i < arr2.Length; i++)
  583. {
  584. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  585. }
  586. char[] arr3 = arr[2].ToCharArray();
  587. int res2 = 0;
  588. for (int i = 0; i < arr3.Length; i++)
  589. {
  590. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  591. }
  592. char[] arr4 = arr[1].ToCharArray();
  593. int res3 = 0;
  594. for (int i = 0; i < arr4.Length; i++)
  595. {
  596. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  597. }
  598. char[] arr5 = arr[0].ToCharArray();
  599. int res4 = 0;
  600. for (int i = 0; i < arr5.Length; i++)
  601. {
  602. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  603. }
  604. return true;
  605. }
  606. return false;
  607. }
  608. public bool btn10_ClickTest(string chisloTwo)
  609. {
  610. String s = chisloTwo;
  611. string[] arr = s.Split('.');
  612. if (proverkaSimv8(chisloTwo))
  613. {
  614. char[] arr2 = arr[3].ToCharArray();
  615. int res = 0;
  616. for (int i = 0; i < arr2.Length; i++)
  617. {
  618. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  619. }
  620. char[] arr3 = arr[2].ToCharArray();
  621. int res2 = 0;
  622. for (int i = 0; i < arr3.Length; i++)
  623. {
  624. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  625. }
  626. char[] arr4 = arr[1].ToCharArray();
  627. int res3 = 0;
  628. for (int i = 0; i < arr4.Length; i++)
  629. {
  630. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  631. }
  632. char[] arr5 = arr[0].ToCharArray();
  633. int res4 = 0;
  634. for (int i = 0; i < arr5.Length; i++)
  635. {
  636. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  637. }
  638. return true;
  639. }
  640. return false;
  641. }
  642. public bool btn10Back_ClickTest(string chisloTwo)
  643. {
  644. String s = chisloTwo;
  645. string[] arr = s.Split('.');
  646. int dvoich;
  647. int vosmerich;
  648. int b;
  649. int c;
  650. if (proverkaSimv4forsecond(chisloTwo))
  651. {
  652. b = int.Parse(Convert.ToString(arr[2]));
  653. c = int.Parse(Convert.ToString(arr[1]));
  654. string chetverich = "";
  655. do
  656. {
  657. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  658. b /= 4;
  659. } while (b > 0);
  660. string shesterich = "";
  661. do
  662. {
  663. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  664. c /= 6;
  665. } while (c > 0);
  666. dvoich = int.Parse(Convert.ToString(arr[3]));
  667. vosmerich = int.Parse(Convert.ToString(arr[0]));
  668. return true;
  669. }
  670. return false;
  671. }
  672. public bool btnAnswer10_ClickTest(string chisloOne, string chisloTwo, string operations)
  673. {
  674. String s = chisloTwo;
  675. string ss = chisloOne;
  676. string[] arr = s.Split('.');
  677. string[] arr6 = ss.Split('.');
  678. string first;
  679. string second;
  680. string operation = operations;
  681. if (proverkaSimv108(chisloOne, chisloTwo))
  682. {
  683. char[] arr2 = arr[3].ToCharArray();
  684. int res = 0;
  685. for (int i = 0; i < arr2.Length; i++)
  686. {
  687. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  688. }
  689. char[] arr3 = arr[2].ToCharArray();
  690. int res2 = 0;
  691. for (int i = 0; i < arr3.Length; i++)
  692. {
  693. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  694. }
  695. char[] arr4 = arr[1].ToCharArray();
  696. int res3 = 0;
  697. for (int i = 0; i < arr4.Length; i++)
  698. {
  699. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  700. }
  701. char[] arr5 = arr[0].ToCharArray();
  702. int res4 = 0;
  703. for (int i = 0; i < arr5.Length; i++)
  704. {
  705. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  706. }
  707. second = string.Concat(res4, res3, res2, res);
  708. first = string.Concat(arr6[0], arr6[1], arr6[2], arr6[3]);
  709. if (string.IsNullOrEmpty(operation))
  710. {
  711. MessageBox.Show("Операция не выбрана");
  712. }
  713. else
  714. {
  715. switch (operation)
  716. {
  717. case "+":
  718. lblResult.Text = Addition(first, second);
  719. return true;
  720. case "-":
  721. lblResult.Text = Substraction(first, second);
  722. return true;
  723. case "*":
  724. lblResult.Text = Multiplication(first, second);
  725. return true;
  726. default:
  727. break;
  728. }
  729. }
  730. }
  731. return false;
  732. }
  733. public bool btnAnswer8642_ClickTest(string chisloOne, string chisloTwo, string operations)
  734. {
  735. //Объявление переменных, массивов
  736. String s;
  737. string ss;
  738. string[] arr;
  739. string[] arr6;
  740. string answer;
  741. String sss;
  742. string[] arr7;
  743. int dvoich;
  744. int vosmerich;
  745. int b;
  746. int c;
  747. string operation;
  748. if (proverkaSimv108(chisloOne, chisloTwo))//Проверка на символы
  749. {
  750. s = Convert.ToString(chisloTwo);
  751. ss = Convert.ToString(chisloOne);
  752. arr = s.Split('.');
  753. arr6 = ss.Split('.');
  754. operation = Convert.ToString(operations);
  755. //Перевод второго числа в десятичную систему
  756. char[] arr2 = arr[3].ToCharArray();
  757. int res = 0;
  758. for (int i = 0; i < arr2.Length; i++)
  759. {
  760. res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1));
  761. }
  762. char[] arr3 = arr[2].ToCharArray();
  763. int res2 = 0;
  764. for (int i = 0; i < arr3.Length; i++)
  765. {
  766. res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1));
  767. }
  768. char[] arr4 = arr[1].ToCharArray();
  769. int res3 = 0;
  770. for (int i = 0; i < arr4.Length; i++)
  771. {
  772. res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1));
  773. }
  774. char[] arr5 = arr[0].ToCharArray();
  775. int res4 = 0;
  776. for (int i = 0; i < arr5.Length; i++)
  777. {
  778. res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1));
  779. }
  780. if (string.IsNullOrEmpty(operation))
  781. {
  782. MessageBox.Show("Операция не выбрана");
  783. }
  784. else
  785. {
  786. switch (operation)
  787. {
  788. case "+":
  789. lblResult.Text = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
  790. break;
  791. case "-":
  792. lblResult.Text = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
  793. break;
  794. case "*":
  795. lblResult.Text = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
  796. break;
  797. }
  798. if (lblResult.Text.Length == 7)
  799. {
  800. sss = lblResult.Text;
  801. arr7 = sss.Split('.');
  802. if (proverkaSimv4(Convert.ToString(sss)))
  803. {
  804. b = int.Parse(Convert.ToString(arr7[2]));
  805. c = int.Parse(Convert.ToString(arr7[1]));
  806. string chetverich = "";
  807. do
  808. {
  809. chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich);
  810. b /= 4;
  811. } while (b > 0);
  812. string shesterich = "";
  813. do
  814. {
  815. shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich);
  816. c /= 6;
  817. } while (c > 0);
  818. dvoich = int.Parse(Convert.ToString(arr7[3]));
  819. vosmerich = int.Parse(Convert.ToString(arr7[0]));
  820. return true;
  821. }
  822. }
  823. else
  824. {
  825. MessageBox.Show("Число не 4-х значное. Перевод в систему невозможен");
  826. return false;
  827. }
  828. }
  829. }
  830. return false;
  831. }
  832. }
  833. }