private Par Mult(Par A, Par B) { Par C = new Par(); Par D = new Par(); C.name = "C"; C.value = new int[] { 0, 0 }; D.name = "D"; D.value = new int[] { 0, 0 }; while (!Zero(A)) { C = Inc(C); A = Dec(A); } while (!Zero(C)) { while (!Zero(B)) { A = Inc(A); D = Inc(D); B = Dec(B); } while (!Zero(D)) { B = Inc(B); D = Dec(D); } C = Dec(C); } return(A); }
private Par Soma(Par A, Par B) { while (!Zero(B)) { A = Inc(A); B = Dec(B); } return(A); }
private bool Zero(Par X) { if (X.value[1] == 0) { return(true); } else { return(false); } }
private Par Initialize(Par par) { Par reg = new Par(); reg.name = par.name; reg.value = new int[] { 0, 0 }; while (par.value[1] != 0) { txtConsole.AppendText("Inicializando o registrador " + reg.name + " // valor atual: " + reg.value[1] + "\n" + Environment.NewLine); Dec(par); Inc(reg); } txtConsole.AppendText("Registrador " + reg.name + " inicializado como: " + reg.value[1] + "\n" + Environment.NewLine); return(reg); }
private void btnMult_Click(object sender, EventArgs e) { txtConsole.Text = ""; Par A = new Par(); A.name = "A"; A.value = new int[] { 0, Convert.ToInt32(txtA.Text) }; Par B = new Par(); B.name = "B"; B.value = new int[] { 0, Convert.ToInt32(txtB.Text) }; A = Initialize(A); B = Initialize(B); var result = Mult(A, B); txtConsole.AppendText("-- Multiplicação finalizada --" + "\n" + Environment.NewLine); txtConsole.AppendText("Resultado: [" + result.value[0] + "," + result.value[1] + "]\n" + Environment.NewLine); }
private Par Sub(Par A, Par B) { while (!Zero(B)) { if (Zero(A)) { A.value[0] = 1; while (!Zero(B)) { Inc(A); Dec(B); } return(A); } else { Dec(A); Dec(B); } } return(A); }
private Par Dec(Par par) { txtConsole.AppendText("Reg" + par.name + " Dec(" + par.value[1] + "), seu valor agora é: " + (par.value[1] - 1) + "\n" + Environment.NewLine); par.value[1]--; return(par); }