panchohxc Posted May 1, 2011 Report Share Posted May 1, 2011 Construír una máquina que permita realizar la suma, resta, multiplicación y división de dos números enteros y que funcione como comando, de modo que se invoque como ejemplo: * SUMA 123 321 + sumará 123 más 321, entregando el resultado RESTA 321 123 + Restará 321 menos 123, entregando el resultado MULTILICA 432 14 + Multiplicará 432 por 14, entregando el resultado DIVIDA 8 2 + Divida 8 por 2, entregando el resultado Una de las formas de solucionar el desafío esta en utilizar tablas de sumar, restar, multiplicar y dividir. Para comenzar explicaremos que es una tabla de sumar, consideremos la tabla siguiente: Tabla de SUMA 0 1 2 3 4 5 6 7 8 9 0 0 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 0 2 2 3 4 5 6 7 8 9 0 1 3 3 4 5 6 7 8 9 0 1 2 4 4 5 6 7 8 9 0 1 2 3 5 5 6 7 8 9 0 1 2 3 4 6 6 7 8 9 0 1 2 3 4 5 7 7 8 9 0 1 2 3 4 5 6 8 8 9 0 1 2 3 4 5 6 7 9 9 0 1 2 3 4 5 6 7 8 Esta tabla nos sirve para la suma y define una matriz TABLA[i,j] la cual se puede utilizar con el fin de realizar las sumas sin utilizar las operaciones de suma, de la siguiente manera: Se deberá considerar que la tabla mostrada de suma TablaSumar tiene toda la información necesaria, allí tenemos en el vector columna definido por TablaSumar[i,0], el VectorB, en cambio el VectorA está en el vector fila TablaSumar[0,j], así nos podemos mover en la tabla anterior, luego leemos en dos vectorres VectorA, VectorB y el resultado lo dejamos en vector SUMA.AB que tiene la longitud de la longitud del mayor vector más uno. Veamos el pseudo código preliminar, considerando la matriz, los vectores que tienen índice cero el dígito de mayor peso : * Leer VectorA * Leer VectorB * RESTO=0 * Contador=Si(Longitud(VectorA)>Longitud(VectorB);Longitud(VectorA);Longitud(VectorB)) * Si(Longitud(VectorA)>Longitud(VectorB)): Para i=Longitud(VectorB) hasta Longitud(VectorA) hacer: + VectorB[i+1]=0 FinPara * De otro modo Si(Longitud(VectorB)>Longitud(VectorA)): Para i=Longitud(VectorA) hasta Longitud(VectorB) hacer: + VectorA[i+1]=0 FinPara * Mientras Contador sea mayor que CERO hacer: Si RESTO==0: + RESTO=Si(TablaSumar[(VectorA[Contador]),(VectorB[Contador])])>TablaSumar[(VectorB[Contador]),0];0;1) De otro modo Si RESTO==1: + VectorA[Contador]=TablaSumar[VectorA[Contador],1] + RESTO=0 + Si VectorA[Contador]==0: # RESTO=1 SUMA.AB[Contador]=TablaSumar[(VectorA[Contador]),(VectorB[Contador])] Contador-- * PRINT SUMA.AB[0,1,...n] lo que se en Python es lo mas basico que hay, y se supone que con ese material devo hacer la calculadora, haber si alguien me explica para que sirven cada codigo salu2 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now