using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace kursach3 { /// /// Логика взаимодействия для MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } public void ClearTextBox() { lblFirst.Text = ""; lblSecond.Text = ""; lblAction.Text = ""; lblResult.Text = ""; } private void btnClear_Click(object sender, RoutedEventArgs e) { ClearTextBox(); } private void btnPlus_Click(object sender, RoutedEventArgs e) { lblAction.Text = "+"; } private void btnMinus_Click(object sender, RoutedEventArgs e) { lblAction.Text = "-"; } private void btnMult_Click(object sender, RoutedEventArgs e) { lblAction.Text = "*"; } private void btn8642_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblFirst.Text); string[] arr = s.Split('.'); int dvoich; int vosmerich; int b; int c; if (proverkaSimv4(Convert.ToString(lblFirst.Text))) { b = int.Parse(Convert.ToString(arr[2])); c = int.Parse(Convert.ToString(arr[1])); string chetverich = ""; do { chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich); b /= 4; } while (b > 0); string shesterich = ""; do { shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich); c /= 6; } while (c > 0); dvoich = int.Parse(Convert.ToString(arr[3])); vosmerich = int.Parse(Convert.ToString(arr[0])); lblFirst.Text = string.Concat(Convert.ToString(vosmerich, 8), '.', shesterich, '.', chetverich, '.', Convert.ToString(dvoich, 2)); } } private void btn8642Back_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblFirst.Text); string[] arr = s.Split('.'); if (proverkaSimv8(Convert.ToString(lblFirst.Text))) { char[] arr2 = arr[3].ToCharArray(); int res = 0; for (int i = 0; i < arr2.Length; i++) { res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1)); } char[] arr3 = arr[2].ToCharArray(); int res2 = 0; for (int i = 0; i < arr3.Length; i++) { res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1)); } char[] arr4 = arr[1].ToCharArray(); int res3 = 0; for (int i = 0; i < arr4.Length; i++) { res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1)); } char[] arr5 = arr[0].ToCharArray(); int res4 = 0; for (int i = 0; i < arr5.Length; i++) { res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1)); } lblFirst.Text = String.Concat(res4, '.', res3, '.', res2, '.', res); } } private void btn10_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblSecond.Text); string[] arr = s.Split('.'); if (proverkaSimv8(Convert.ToString(lblSecond.Text))) { char[] arr2 = arr[3].ToCharArray(); int res = 0; for (int i = 0; i < arr2.Length; i++) { res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1)); } char[] arr3 = arr[2].ToCharArray(); int res2 = 0; for (int i = 0; i < arr3.Length; i++) { res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1)); } char[] arr4 = arr[1].ToCharArray(); int res3 = 0; for (int i = 0; i < arr4.Length; i++) { res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1)); } char[] arr5 = arr[0].ToCharArray(); int res4 = 0; for (int i = 0; i < arr5.Length; i++) { res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1)); } lblSecond.Text = String.Concat(res4, '.', res3, '.', res2, '.', res); } } private void btn10Back_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblSecond.Text); string[] arr = s.Split('.'); int dvoich; int vosmerich; int b; int c; if (proverkaSimv4(Convert.ToString(lblSecond.Text))) { b = int.Parse(Convert.ToString(arr[2])); c = int.Parse(Convert.ToString(arr[1])); string chetverich = ""; do { chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich); b /= 4; } while (b > 0); string shesterich = ""; do { shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich); c /= 6; } while (c > 0); dvoich = int.Parse(Convert.ToString(arr[3])); vosmerich = int.Parse(Convert.ToString(arr[0])); lblSecond.Text = string.Concat(Convert.ToString(vosmerich, 8), '.', shesterich, '.', chetverich, '.', Convert.ToString(dvoich, 2)); } } private void btnAnswer10_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblSecond.Text); string ss = Convert.ToString(lblFirst.Text); string[] arr = s.Split('.'); string[] arr6 = ss.Split('.'); string first; string second; string operation = Convert.ToString(lblAction.Text); if (proverkaSimv8(Convert.ToString(lblSecond.Text))) { char[] arr2 = arr[3].ToCharArray(); int res = 0; for (int i = 0; i < arr2.Length; i++) { res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1)); } char[] arr3 = arr[2].ToCharArray(); int res2 = 0; for (int i = 0; i < arr3.Length; i++) { res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1)); } char[] arr4 = arr[1].ToCharArray(); int res3 = 0; for (int i = 0; i < arr4.Length; i++) { res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1)); } char[] arr5 = arr[0].ToCharArray(); int res4 = 0; for (int i = 0; i < arr5.Length; i++) { res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1)); } second = string.Concat(res4, res3, res2, res); first = string.Concat(arr6[0], arr6[1], arr6[2], arr6[3]); switch (operation) { case "+": lblResult.Text = Addition(first, second); break; case "-": lblResult.Text = Substraction(first, second); break; case "*": lblResult.Text = Multiplication(first, second); break; default: break; } } } private void btnAnswer8642_Click(object sender, RoutedEventArgs e) { String s = Convert.ToString(lblSecond.Text); string ss = Convert.ToString(lblFirst.Text); string[] arr = s.Split('.'); string[] arr6 = ss.Split('.'); string first; string second; string answer; String sss; string[] arr7; int dvoich; int vosmerich; int b; int c; string operation = Convert.ToString(lblAction.Text); if (proverkaSimv8(Convert.ToString(lblSecond.Text))) { char[] arr2 = arr[3].ToCharArray(); int res = 0; for (int i = 0; i < arr2.Length; i++) { res += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr2[i])) * Math.Pow(2, arr2.Length - i - 1)); } char[] arr3 = arr[2].ToCharArray(); int res2 = 0; for (int i = 0; i < arr3.Length; i++) { res2 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr3[i])) * Math.Pow(4, arr3.Length - i - 1)); } char[] arr4 = arr[1].ToCharArray(); int res3 = 0; for (int i = 0; i < arr4.Length; i++) { res3 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr4[i])) * Math.Pow(6, arr4.Length - i - 1)); } char[] arr5 = arr[0].ToCharArray(); int res4 = 0; for (int i = 0; i < arr5.Length; i++) { res4 += Convert.ToInt32(Convert.ToInt32(Convert.ToString(arr5[i])) * Math.Pow(8, arr5.Length - i - 1)); } second = string.Concat(res4, res3, res2, res); first = string.Concat(arr6[0], arr6[1], arr6[2], arr6[3]); answer = string.Concat(res4 + arr6[0], '.', res3 + arr6[1], '.', res2 + arr6[2], '.', res + arr6[3]); switch (operation) { case "+": answer = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3])); break; case "-": answer = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3])); break; case "*": answer = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3])); break; } sss = answer; arr7 = sss.Split('.'); if (proverkaSimv4(Convert.ToString(answer))) { b = int.Parse(Convert.ToString(arr7[2])); c = int.Parse(Convert.ToString(arr7[1])); string chetverich = ""; do { chetverich = string.Concat(Convert.ToInt32(b % 4), chetverich); b /= 4; } while (b > 0); string shesterich = ""; do { shesterich = string.Concat(Convert.ToInt32(c % 6), shesterich); c /= 6; } while (c > 0); dvoich = int.Parse(Convert.ToString(arr7[3])); vosmerich = int.Parse(Convert.ToString(arr7[0])); lblResult.Text = string.Concat(Convert.ToString(vosmerich, 8), shesterich, chetverich, Convert.ToString(dvoich, 2)); } } } private bool proverkaSimv4(string lb_str) { string proverkasimv = Convert.ToString(lb_str); if(proverkasimv.Contains("..")) { MessageBox.Show("Неверный формат"); return false; } else { if (proverkasimv.Length == 7) { return true; } else if (lb_str.Contains("")) { MessageBox.Show("Первое число не указано"); } else if (lb_str.Length > 7 || lb_str.Length < 6) { MessageBox.Show("Можно использовать только 4-х значные числа"); } } return false; //11 13 21 1001 } private bool proverkaSimv8(string lb_str) { string proverkasimv = Convert.ToString(lb_str); if (proverkasimv.Contains("..")) { MessageBox.Show("Неверный формат"); return false; } else { if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7) { return true; } else if (lb_str.Contains("")) { MessageBox.Show("Второе число не указано"); } else if (lb_str.Length > 14 || lb_str.Length < 8) { MessageBox.Show("Можно использовать только 4-х значные числа"); } } return false; } private bool proverkaSimv108(string lb_str, string lb_str2) { string proverkasimv = Convert.ToString(lb_str); string proverkasimv2 = Convert.ToString(lb_str2); if (proverkasimv.Contains("..") && proverkasimv2.Contains("..")) { MessageBox.Show("Неверный формат"); return false; } else { if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7 && proverkasimv2.Length <=14 && proverkasimv2.Length >= 7 || proverkasimv.Length == 7 && proverkasimv2.Length == 7) { return true; } else if (proverkasimv.Contains("")) { MessageBox.Show("Первое число не указано"); } else if (lb_str.Contains("")) { MessageBox.Show("Второе число не указано"); } else if (lb_str.Length > 14 || lb_str.Length < 8) { MessageBox.Show("Можно использовать только 4-х значные числа"); } } return false; } public static string Addition(string first, string second) { try { return (Convert.ToInt32(first) + Convert.ToInt32(second)).ToString(); } catch { return ""; } } public static string Substraction(string first, string second) { try { return (Convert.ToInt32(first) - Convert.ToInt32(second)).ToString(); } catch { return ""; } } public static string Multiplication(string first, string second) { try { return (Convert.ToInt32(first) * Convert.ToInt32(second)).ToString(); } catch { return ""; } } } }