|
@@ -0,0 +1,873 @@
|
|
|
+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 Praktika3
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// Логика взаимодействия для MainWindow.xaml
|
|
|
+ /// </summary>
|
|
|
+ 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 (proverkaSimv8forfirst(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 (proverkaSimv4forsecond(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 (proverkaSimv108(Convert.ToString(lblFirst.Text), 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]);
|
|
|
+ if (string.IsNullOrEmpty(operation))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Операция не выбрана");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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;
|
|
|
+ string ss;
|
|
|
+ string[] arr;
|
|
|
+ string[] arr6;
|
|
|
+ string answer;
|
|
|
+ String sss;
|
|
|
+ string[] arr7;
|
|
|
+ int dvoich;
|
|
|
+ int vosmerich;
|
|
|
+ int b;
|
|
|
+ int c;
|
|
|
+ string operation;
|
|
|
+ if (proverkaSimv108(Convert.ToString(lblFirst.Text), Convert.ToString(lblSecond.Text)))//Проверка на символы
|
|
|
+ {
|
|
|
+ s = Convert.ToString(lblSecond.Text);
|
|
|
+ ss = Convert.ToString(lblFirst.Text);
|
|
|
+ arr = s.Split('.');
|
|
|
+ arr6 = ss.Split('.');
|
|
|
+ operation = Convert.ToString(lblAction.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));
|
|
|
+ }
|
|
|
+ if (string.IsNullOrEmpty(operation))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Операция не выбрана");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ switch (operation)
|
|
|
+ {
|
|
|
+ case "+":
|
|
|
+ lblResult.Text = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+ case "-":
|
|
|
+ lblResult.Text = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+ case "*":
|
|
|
+ lblResult.Text = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (lblResult.Text.Length == 7)
|
|
|
+ {
|
|
|
+ sss = lblResult.Text;
|
|
|
+ arr7 = sss.Split('.');
|
|
|
+ if (proverkaSimv4(Convert.ToString(sss)))
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Число не 4-х значное. Перевод в систему невозможен");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool proverkaSimv4(string lb_str)
|
|
|
+ {
|
|
|
+
|
|
|
+ string proverkasimv = Convert.ToString(lb_str);
|
|
|
+ if (proverkasimv.Contains(".."))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if (string.IsNullOrEmpty(proverkasimv))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Первое число не указано");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < proverkasimv.Length; i++)
|
|
|
+ {
|
|
|
+ if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
|
|
|
+ {
|
|
|
+ if (proverkasimv.Length == 7)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (lb_str.Length > 7 || lb_str.Length < 6)
|
|
|
+ {
|
|
|
+ MessageBox.Show("Можно использовать только 4-х значные числа");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+
|
|
|
+ //11 13 21 1001
|
|
|
+ }
|
|
|
+ private bool proverkaSimv4forsecond(string lb_str)
|
|
|
+ {
|
|
|
+
|
|
|
+ string proverkasimv = Convert.ToString(lb_str);
|
|
|
+ if (proverkasimv.Contains(".."))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if (string.IsNullOrEmpty(proverkasimv))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Второе число не указано");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < proverkasimv.Length; i++)
|
|
|
+ {
|
|
|
+ if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
|
|
|
+ {
|
|
|
+ if (proverkasimv.Length == 7)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (lb_str.Length > 7 || lb_str.Length < 6)
|
|
|
+ {
|
|
|
+ MessageBox.Show("Можно использовать только 4-х значные числа");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ private bool proverkaSimv8(string lb_str)
|
|
|
+ {
|
|
|
+
|
|
|
+ string proverkasimv = Convert.ToString(lb_str);
|
|
|
+ if (proverkasimv.Contains(".."))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if (string.IsNullOrEmpty(proverkasimv))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Второе число не указано");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < proverkasimv.Length; i++)
|
|
|
+ {
|
|
|
+ if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
|
|
|
+ {
|
|
|
+ if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (lb_str.Length > 14 || lb_str.Length < 8)
|
|
|
+ {
|
|
|
+ MessageBox.Show("Можно использовать только 4-х значные числа");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ private bool proverkaSimv8forfirst(string lb_str)
|
|
|
+ {
|
|
|
+
|
|
|
+ string proverkasimv = Convert.ToString(lb_str);
|
|
|
+ if (proverkasimv.Contains(".."))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if (string.IsNullOrEmpty(proverkasimv))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Первое число не указано");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < proverkasimv.Length; i++)
|
|
|
+ {
|
|
|
+ if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.')
|
|
|
+ {
|
|
|
+ if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (lb_str.Length > 14 || lb_str.Length < 8)
|
|
|
+ {
|
|
|
+ MessageBox.Show("Можно использовать только 4-х значные числа");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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 (String.IsNullOrEmpty(proverkasimv))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Первое число не указано");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else if (String.IsNullOrEmpty(proverkasimv2))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Второе число не указано");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ for (int i = 0; i < proverkasimv.Length; i++)
|
|
|
+ {
|
|
|
+ for (int j = 0; j < proverkasimv2.Length; j++)
|
|
|
+ {
|
|
|
+ if (proverkasimv[i] >= '0' && proverkasimv[i] <= '9' || proverkasimv[i] == '.' && proverkasimv2[j] >= '0' && proverkasimv2[j] <= '9' || proverkasimv2[j] == '.')
|
|
|
+ {
|
|
|
+ if (proverkasimv.Length <= 14 && proverkasimv.Length >= 7 && proverkasimv2.Length <= 14 && proverkasimv2.Length >= 7 || proverkasimv.Length == 7 && proverkasimv2.Length == 7)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if (proverkasimv.Length > 14 || proverkasimv.Length < 6 && proverkasimv2.Length > 14 || proverkasimv2.Length < 6)
|
|
|
+ {
|
|
|
+ MessageBox.Show("Можно использовать только 4-х значные числа");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Неверный формат");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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 "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public bool btn8642_ClickTest(string chisloOne)
|
|
|
+ {
|
|
|
+ String s = chisloOne;
|
|
|
+ string[] arr = s.Split('.');
|
|
|
+ int dvoich;
|
|
|
+ int vosmerich;
|
|
|
+ int b;
|
|
|
+ int c;
|
|
|
+ if (proverkaSimv4(Convert.ToString(chisloOne)))
|
|
|
+ {
|
|
|
+ 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]));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool btn8642Back_ClickTest(string chisloOne)
|
|
|
+ {
|
|
|
+ String s = chisloOne;
|
|
|
+ string[] arr = s.Split('.');
|
|
|
+ if (proverkaSimv8forfirst(chisloOne))
|
|
|
+ {
|
|
|
+
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool btn10_ClickTest(string chisloTwo)
|
|
|
+ {
|
|
|
+ String s = chisloTwo;
|
|
|
+ string[] arr = s.Split('.');
|
|
|
+ if (proverkaSimv8(chisloTwo))
|
|
|
+ {
|
|
|
+
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool btn10Back_ClickTest(string chisloTwo)
|
|
|
+ {
|
|
|
+ String s = chisloTwo;
|
|
|
+ string[] arr = s.Split('.');
|
|
|
+ int dvoich;
|
|
|
+ int vosmerich;
|
|
|
+ int b;
|
|
|
+ int c;
|
|
|
+ if (proverkaSimv4forsecond(chisloTwo))
|
|
|
+ {
|
|
|
+ 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]));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool btnAnswer10_ClickTest(string chisloOne, string chisloTwo, string operations)
|
|
|
+ {
|
|
|
+ String s = chisloTwo;
|
|
|
+ string ss = chisloOne;
|
|
|
+ string[] arr = s.Split('.');
|
|
|
+ string[] arr6 = ss.Split('.');
|
|
|
+ string first;
|
|
|
+ string second;
|
|
|
+ string operation = operations;
|
|
|
+ if (proverkaSimv108(chisloOne, chisloTwo))
|
|
|
+ {
|
|
|
+ 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]);
|
|
|
+ if (string.IsNullOrEmpty(operation))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Операция не выбрана");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ switch (operation)
|
|
|
+ {
|
|
|
+ case "+":
|
|
|
+ lblResult.Text = Addition(first, second);
|
|
|
+ return true;
|
|
|
+ case "-":
|
|
|
+ lblResult.Text = Substraction(first, second);
|
|
|
+ return true;
|
|
|
+ case "*":
|
|
|
+ lblResult.Text = Multiplication(first, second);
|
|
|
+ return true;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ public bool btnAnswer8642_ClickTest(string chisloOne, string chisloTwo, string operations)
|
|
|
+ {
|
|
|
+ //Объявление переменных, массивов
|
|
|
+ String s;
|
|
|
+ string ss;
|
|
|
+ string[] arr;
|
|
|
+ string[] arr6;
|
|
|
+ string answer;
|
|
|
+ String sss;
|
|
|
+ string[] arr7;
|
|
|
+ int dvoich;
|
|
|
+ int vosmerich;
|
|
|
+ int b;
|
|
|
+ int c;
|
|
|
+ string operation;
|
|
|
+ if (proverkaSimv108(chisloOne, chisloTwo))//Проверка на символы
|
|
|
+ {
|
|
|
+ s = Convert.ToString(chisloTwo);
|
|
|
+ ss = Convert.ToString(chisloOne);
|
|
|
+ arr = s.Split('.');
|
|
|
+ arr6 = ss.Split('.');
|
|
|
+ operation = Convert.ToString(operations);
|
|
|
+
|
|
|
+ //Перевод второго числа в десятичную систему
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ if (string.IsNullOrEmpty(operation))
|
|
|
+ {
|
|
|
+ MessageBox.Show("Операция не выбрана");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ switch (operation)
|
|
|
+ {
|
|
|
+ case "+":
|
|
|
+ lblResult.Text = string.Concat(res4 + Convert.ToInt32(arr6[0]), '.', res3 + Convert.ToInt32(arr6[1]), '.', res2 + Convert.ToInt32(arr6[2]), '.', res + Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+ case "-":
|
|
|
+ lblResult.Text = string.Concat(res4 - Convert.ToInt32(arr6[0]), '.', res3 - Convert.ToInt32(arr6[1]), '.', res2 - Convert.ToInt32(arr6[2]), '.', res - Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+ case "*":
|
|
|
+ lblResult.Text = string.Concat(res4 * Convert.ToInt32(arr6[0]), '.', res3 * Convert.ToInt32(arr6[1]), '.', res2 * Convert.ToInt32(arr6[2]), '.', res * Convert.ToInt32(arr6[3]));
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (lblResult.Text.Length == 7)
|
|
|
+ {
|
|
|
+ sss = lblResult.Text;
|
|
|
+ arr7 = sss.Split('.');
|
|
|
+ if (proverkaSimv4(Convert.ToString(sss)))
|
|
|
+ {
|
|
|
+ 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]));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ MessageBox.Show("Число не 4-х значное. Перевод в систему невозможен");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|