anexo 1 codificacion binaria y decimal sistema binario

29
ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO Los números se pueden expresar en distintos sistemas de numeración, como es sabido el más usual es el sistema en base 10, en este sistema llamado decimal se interpretan las cifras como coeficientes de un polinomio en potencias de 10, lo cual se ilustra a continuación: 0 0 1 1 10 10 10 10 . | d d d D n n Donde los dígitos n d a 0 d constituyen el número en base 10, un ejemplo claro para ilustrar esta nomenclatura es el siguiente, tómese como ejemplo el número 1482, en base 10 se puede representar de la siguiente manera: 0 1 2 3 10 2 10 9 10 4 10 1 1482 Los coeficientes del polinomio son las cifras 1, 4, 8 y 2, el anterior número en base 10 se interpreta de la siguiente manera: un millar más cuadro centenas más nueve decenas más dos unidades. En el sistema decimal se trabaja con cifras de 0 al 9, para el caso del sistema binario la base es 2, por lo que existen solo dos posibles coeficientes el cero y el uno, en este orden de ideas la interpretación de un número en base 2 es la siguiente: 0 0 1 1 2 2 2 2 . | b b b B n n De esta manera el número 010011 en base dos se interpreta como la cantidad: 10 0 1 2 3 4 5 2 | 19 2 1 2 1 2 0 2 0 2 1 2 0 | 010011 Para identificar la base en la cual se codifica el número se define el subíndice de la misma, habitualmente se trabaja en base 10 por lo cual se omite el subíndice;

Upload: others

Post on 11-Apr-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

ANEXO 1 CODIFICACION BINARIA Y DECIMAL

SISTEMA BINARIO

Los números se pueden expresar en distintos sistemas de numeración, como es

sabido el más usual es el sistema en base 10, en este sistema llamado decimal

se interpretan las cifras como coeficientes de un polinomio en potencias de 10, lo

cual se ilustra a continuación:

0

0

1

110 101010.| dddD n

n

Donde los dígitos nd a 0d constituyen el número en base 10, un ejemplo claro

para ilustrar esta nomenclatura es el siguiente, tómese como ejemplo el número

1482, en base 10 se puede representar de la siguiente manera:

0123 1021091041011482

Los coeficientes del polinomio son las cifras 1, 4, 8 y 2, el anterior número en base

10 se interpreta de la siguiente manera: un millar más cuadro centenas más nueve

decenas más dos unidades. En el sistema decimal se trabaja con cifras de 0 al 9,

para el caso del sistema binario la base es 2, por lo que existen solo dos posibles

coeficientes el cero y el uno, en este orden de ideas la interpretación de un

número en base 2 es la siguiente:

0

0

1

12 222.| bbbB n

n

De esta manera el número 010011 en base dos se interpreta como la cantidad:

10

012345

2 |19212120202120|010011

Para identificar la base en la cual se codifica el número se define el subíndice de

la misma, habitualmente se trabaja en base 10 por lo cual se omite el subíndice;

Page 2: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

se debe aclarar que los coeficientes id de la representación decimal se denominan

dígitos y a los coeficientes ib de la binaria se les llama BITS.

Los sistemas decimal y binario son solo dos representaciones de la infinidad de

representaciones existentes (hexadecimal, octal, entre otras), en general estas

fórmulas se acoplan para cantidades enteras, pese a esto conviene considerar

casos puntuales, por ejemplo para representar la cantidad 28,35 se debe hacer

de la siguiente manera.

2101 10510310810235.28

La notación matemática anterior se lee como dos decenas más 8 unidades más 3

décimas más 5 centésimas; en general una cantidad como 28.35 se descompone

en dos partes: la parte entera a la izquierda de la coma (28) y la parte fraccionaria

a la derecha de la misma (.35) la cual representa una cantidad menor que 1, la

parte de la derecha contiene los coeficientes elevados a las potencias no

negativas y la parte fraccionaria que contiene las potencias negativas, Lo anterior

no significa que solo se puedan utilizar potencias positivas y negativas en la

representación decimal, por ejemplo en base dos la cantidad 2|10.11 tiene parte

entera 2|11 y una parte fraccionaria 2|10.0 , la cantidad representada en decimal

es :

10

2101 |5.302

112202.1212.1

En la representación anterior se puede observar que la cantidad 102 |3 =|11 y

102 |5.0|10. , según lo anterior las cantidades indicadas por las partes enteras y

fraccionarias no se modifican al cambiar la base.

Una formula general que puede describir un número G en base b es la siguiente:

nppb gggggG 101|

Según lo anterior cualquier valor en base decimal es:

pi

ni

i

i bgD 10|

El funcionamiento de los computadores actuales se basa en el uso del sistema de

numeración binario.

Conversiones

Page 3: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Las conversiones permiten obtener las cifras correspondientes a una misma

cantidad en distintas bases. En informática la conversión más usada es la decimal

a binario y viceversa, a continuación se describen las dos metodologías.

Nota: Al realizar una conversión se debe tener en cuenta que la cantidad

representada no cambia, lo que se modifica es la forma en la que se simboliza

dicha cantidad.

Page 4: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

BINARIO A DECIMAL

Como se explicó anteriormente dado un numero en base dos es fácil hallar su

equivalente decimal aplicando la formula (), es decir realizando la suma sucesiva

en potencias de dos, por ejemplo el numero 2|1 equivale a 021 que es el 1 en

base 10.

DECIMAL A BINARIO

El paso de decimal a binario es más estructurado, teniendo en cuenta que la

mayoría de los números a los que se cambia de base cuentan con una parte

entera y decimal; en primer lugar para las cantidades enteras se debe dividir el

numero sucesivamente por dos, los residuos de las divisiones leídos en forma

ascendente conforman el numero en binario, tal como se muestra en la figura ()

en la cual se representa el numero 10|210 en base 2, si se utiliza la formula() se

puede confirmar que el numero en base 2 equivale a 10|210 ,

Page 5: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Potencia Decimal Binario 02 1 1 12 2 10 22 4 100 32 8 1000 42 16 10000 52 32 100000 62 64 1000000 72 128 10000000 82 256 100000000 92 512 1000000000 102 1024 10000000000

210

0 105

1 52

0 26

0 13

6 1

0

2

3

1

2

2

2

2

2

2

1

1 0 1 0 0 1 0

Figura X.X : Método de la división secuencial para la conversión de base 10 a base 2.

Page 6: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Para casos de números enteros la conversión resulta mucho más cómoda, por

ejemplo para pasar a binario el número 18 en base 10 basta con observar que

416|20 10 y por tanto igual a 24 22 por lo que la representación en binario

resulta )2)2)2 |10100|100|10000 ; es decir )2)10 |10100|18

DECIMAL EN FRACCIONARIOS A BINARIO

Los números fraccionarios pueden cambiarse con facilidad de base 10 a 2, en este

caso se deben calcular los coeficientes de una suma con exponentes negativos. A

diferencia del cambio de base para los números enteros se debe utilizar el método

de la multiplicación, para ilustrar mejor el método considere el número

)10)10 |375,12|6875,0 que tiene parte entera igual a 1, esto significa que el

número )10|6875,0 contiene la primera potencia negativa de dos que es

)10)10

1 |5,0|2 . Este 1 se toma como parte de la expresión binaria. El proceso

continúa tomando la parte decimal restante y volviendo a multiplicar por dos, este

paso se repite hasta que desaparezcan todos los decimales. En la siguiente tabla

se muestra el cambio de base de la cantidad fraccionaria elegida

Cantidad Cantidad X 2 Parte entera Parte fraccionaria

0,6875 1,375 1 0,375

0,375 0,75 0 0,75

0,750 1,5 1 0,5

0,5 1 1 0

Los coeficientes fraccionarios de esta representación se obtienen de la columna

#3, de este modo se tiene que )2)10 |1011,0|6875,0 , en conclusión basta con

comprobar que el valor encontrado es igual a la suma de potencias 43210 2121202120 es igual al valor )10|6875,0 .

Page 7: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

En el cambio de base de cantidades decimales enteros a binarias se toman los

residuos de las divisiones secuenciales mientras que para las cantidades

fraccionarias se toman las partes enteras de las multiplicaciones resultantes.

Page 8: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

CODIFICACIÓN DE NUMEROS BINARIOS

Para representar un número entero positivo con un conjunto de bits se puede usar

la codificación binaria (de hecho es la más utilizada), de esta manera si se

disponen registros de 18 celdas es posible almacenar números entre el

262143120 18 ely . Si el número de celdas aumenta por ejemplo a 20, es

posible ampliar el intervalo representable desde 1048575120 20 elhasta ; se

debe resaltar que los computadores actuales tienen un límite en lo que se refiere

al ancho de los registros.

La representación en binario es fácil de entender e implementar, para utilizar esta

codificación en los números negativos se debe reservar la celda que esté más a

la izquierda, de esta manera el 1 o el 0 podrían representar una cantidad positiva

o negativa, algunas de las convenciones de números de positivos y negativos se

presenta a continuación:

Modo signo valor absoluto: Se aparta la celda que se encuentre más a la

izquierda, los números positivos se identifican con el 0 y para los negativos un

valor de 1.

e 262143120 18 ely 262143120 18 ely 262143120 18 ely

Donde S simboliza el bit del signo y Va la representación en base dos, en general

para un número de bits en el papel de n se pueden representar los enteros

comprendidos en el intervalo 12),12( 11 nn , para este sistema de

.

S Va

Figura x.x : Representación signo-valor absoluto

Page 9: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

codificación se debe tener en cuenta que hay dos ceros, 0...000 y el negativo

0...001 .

Complemento a 1: Como en el método anterior se reserva el primer bit para el

signo, para el resto de codificación si el número es positivo se utiliza la

codificación en base 2 en convencional y si el número es negativo se utiliza el

complemento bit a bit del valor absoluto, en otras palabras se cambia base 2 el

valor absoluto y se intercambian el 1 por el 0 y viceversa.

Para un número de bits en el papel de n se pueden representar los enteros

comprendidos en el intervalo 12),12( 11 nn , para este sistema de

codificación se debe tener en cuenta que hay dos ceros, 0...000 y el negativo

0...001 .

Complemento a 2: Los dos sistemas anteriores presentan inconsistencias al

momento de realizar sumas y restas mediante circuitos lógicos, por lo cual se

plantea el presente método, con este los números positivos se presentan de igual

manera que en el signo-valor absoluto, pero los números negativos se representan

sumándole 1 al complemento a 1, los números de bits que se pueden representar

los enteros comprendidos en el intervalo 12,2 11 nn , como se puede concluir

del lado de los negativos hay un número más debido a que solo existe un cero

0...000 el cual usa el espacio de un numero positivo, el numero 12 n tiene

siempre una única representación 0...01 el cual corresponde al cero negativo en

los métodos anteriores.

NUMEROS FRACCIONARIOS

En el sistema decimal los números no enteros se representan en una serie de

potencias negativas, estos números se pueden representar en binario (como se

ha explicado anteriormente), para este ejemplo se considera el número )2|11,100 el

cual indica la cantidad )10

21012 |75,425,05,042121202021 .

En los equipos de cómputo actuales se plantea el problema de la representación

del punto fraccionario y de interpretarlo, por esto se plantean posibles soluciones

para este inconveniente:

Page 10: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Punto Fijo: En esta representación se apartan las celdas que contienen la parte

entera en base 2 y las demás para la fraccionaria, a partir de esta última celda se

debe multiplicar los coeficientes por las potencias negativas.

En la codificación con punto fijo se tienen reservadas p+1 celdas para la parte

entera y q para la fraccionaria, para este caso no se contempla el problema del

signo.

En una computadora de punto fijo el número de coeficientes fraccionarios q es fijo

por la propia construcción de los circuitos y no se puede cambiar. Esto es un

problema pues no se puede trabajar con números muy dispares (por ejemplo

25000.0 y 0.0003). Para comprender esta afirmación piense que n=p+q+1 es un

número prefijado por la tecnología del momento, hace años se utilizaban

computadoras con n=8 de forma casi exclusiva. Con el paso del tiempo se ha

avanzado pasando por n=16, n=32 y recientemente n=64. En cualquier caso si se

decide incrementar q eso conlleva un decremento de p y viceversa. Debido a esto

este sistema de punto fijo se usa poco en la actualidad.

PUNTO FLOTANTE

El numero N que se va a representar se calcula en función de los parámetros M y

E de forma que EMN 2 , la primera cantidad se denomina mantisa y la segunda

E del exponente. Para tener mayor claridad sobre el método se toma como base la

codificación decimal.

1202 12 22 q2p2

Figura xx, Número de bits para la representación punto fijo

Page 11: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Para ajustar el número se utiliza la NORMALIZACIÓN, la cual consiste en

seleccionar la mantisa y el exponente de forma que cumplan con lo especificado,

el objetivo de este método elegir la mantisa y el exponente de las posibles

soluciones, una normalización frecuente consiste en asegurar que la mantisa no

tenga parte entera y que su primer coeficiente fraccionario sea diferente de nulo.

Page 12: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

ESTADÍSTICAS DE EVOLUCIÓN.

Id Genetico: AG-0000000005

Resolucion: 17

Tamano Poblacion: 20

Numero Generaciones: 100

Prob Cruce: 40,00%

Prob Mutacion: 10,00%

Alamacen Maximo: 6.000,00

Capital Maximo: $8.500.000.000,0

27176 30466 38408 13736 60155 $906.483.008,00La mejor combinación obtenida es la siguiente: La mejor aptitud obtenida fue:

Capital máximo usado: $7.251.936.768,00 El espacio máximo usado es: 5.807,12 m^3

Referencia Costo Unitario Costo Mantener Inventario Costo Preparacion Volumen Unitario Demanda Punto Reorden

CCVV444444 $35.000,00 $8.750,00 $260,00 0,0 46.806 8.000

XAADDD5555 $10.500,00 $2.625,00 $50,00 0,1 42.866 6.000

ZA2010112 $850,00 $212,00 $8,50 0,0 59.384 20.000

CE0000001 $17.000,00 $4.250,00 $130,00 0,1 28.297 2.000

PAA987563 $95.000,00 $23.750,00 $60,00 0,0 85.307 10.000

EstadisticaEvolucion

16/04/2013 3:01:51 p. m. 1

Page 13: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

ANEXO 5 CODIGO FUENTEVISUAL C# ALGORITMO GENETICO

ObjEncabezado = new AGeneticoM { IdDocumento = txtDocumento.Text, FechaCreacion = txtFechaCreacion.Value, CapitalMaximo = rseCapitalMaximo.Value, AlamacenMaximo = rseAlamacenMaximo.Value, NumeroGeneraciones = Convert.ToInt32(rseNumeroGeneraciones.Value), TamanoPoblacion = Convert.ToInt32(rseTamañoPoblacion.Value), Resolucion = Convert.ToInt32(rseResolucion.Value), ProbCruce = rseCruce.Value, ProbMutacion = rseMutacion.Value, }; prbGenetico.Maximum = ObjEncabezado.NumeroGeneraciones; prbGenetico.Value1 = 0; ActualizaBarras(0); string varCorrida = txtDocumento.Text +'.'+ DateTime.Now.ToLongTimeString(); ///// genero la poblacion inicial ControladorGenentico.FuncionPoblacionIncial(ObjEncabezado, ListaDetalle, varCorrida); ControladorGenentico.FuncionEvaluacion(varCorrida, 1); //// arranca ciclo evolutivo for (int i = 1; i <= ObjEncabezado.NumeroGeneraciones; i++) { ControladorGenentico.FuncionSeleccion(varCorrida, i, ObjEncabezado.TamanoPoblacion); ControladorGenentico.FuncionReproduccion(varCorrida, i, ObjEncabezado, ListaDetalle); ControladorGenentico.FuncionMutacion(varCorrida, i, ObjEncabezado, ListaDetalle); ControladorGenentico.FuncionNuevaGeneracion(varCorrida, i, ObjEncabezado, ListaDetalle); ActualizaBarras(i); } varCorrida = "La corrida numero " + varCorrida+ " Culmino con Exito."; MessageBox.Show(varCorrida, ReutilizabeTool.LlamaMensajes("Info"), MessageBoxButtons.OK, MessageBoxIcon.Information); prbGenetico.Visible = false;

Page 14: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Cedi.DataAccesEntities; namespace Cedi.Business { public class ControladorRfid { public ControladorRfid() { // // TODO: Add constructor logic here // } #region Impresiones de tags RFID. /// <summary> /// IMprime un Tag Rfid /// </summary> /// <param name="">int IdBarra,string Ean13, string Descripcion,string Prefijo, int Consecutivo, string Impresora</param> /// <returns></returns> /// public static string ImprimirRFID(int IdBarra,string Referencia, int catidad, decimal precio, string CodigoBarras, string Descripcion,string Prefijo, int Consecutivo, string Impresora, int Tipo) { string varBandera = ""; string nombreImpresora = Impresora; if (nombreImpresora == "") { throw new Exception("No se ha definido el nombre de la impresora en los parámetros de configuración.\n Para definirlos vaya a Administración --> Configuración"); } //Obtiene encabezado de la impresión //int idImpresion = this.RegistraImpresion(usuario, observaciones); CImpresora objImpresora = new CImpresora(nombreImpresora); //Se calcula digito de control del ean13 //int digitoControl = objImpresora.CalcularDigitoControl("EAN13", codigo); //codigo = codigo + digitoControl.ToString(); string codigo = CodigoBarras; //DataTable dt = new DataTable(); //dt.Columns.Add("Codigo"); //dt.Columns.Add("Resultado"); //dt.Columns.Add("EPC"); string[] values = new string[3]; string codigoRFID = ""; //Objeto utilizado para obtener el codigo epc EPC objEPC = new EPC(); //Imprime y guarda la info de lo impreso try

Page 15: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

{ //Se calcula el codigo EPC correspondiente codigoRFID = objEPC.Encode(codigo, EPC.EPCEncoding.SGTIN96, Prefijo.Length, 1, Consecutivo); objImpresora.ImprimirRFID(codigoRFID, codigo, Descripcion, Referencia, catidad, precio); Consecutivo += 1; //Guarda lo impreso en una tabla //objEPC.GetEPC(codigoRFID, codigo) OBTIENE CODIGO EPC //Actualiza valor del consecutivo tipo =1 ean13 2 ean14 varBandera = ActualizarConsecutivo(IdBarra, Consecutivo, Tipo, codigoRFID); SImpresionTagRfid ObjRegistro = new SImpresionTagRfid { Tipo = Tipo, CodigoBarras = CodigoBarras, EpcCode = objEPC.GetEPC(codigoRFID, codigo), RfidCode = codigoRFID, IdUsuario = 1, }; varBandera = InsertaRegistroImpre(ObjRegistro); } catch (Exception ex) { varBandera = "Error de ls sistema :" + ex.ToString(); } return varBandera; } /// <summary> /// Actualiza Consecutivo de impresion /// </summary> /// <param name="">int IdActu, int Consecutivo, int Tipo, string Epc</param> /// <returns></returns> /// private static string ActualizarConsecutivo(int IdActu, int Consecutivo, int Tipo, string Epc) { string varBandera = ""; varBandera = ManejadorRfid.ActualizaConsecutivo(Tipo, IdActu, Consecutivo, Epc); return varBandera; } /// <summary> /// Inserta Registro del tag impreso Impre /// </summary> /// <param name="">SImpresionTagRfid ObjInserta</param> /// <returns></returns> /// private static string InsertaRegistroImpre(SImpresionTagRfid ObjInserta) { string varBandera = ""; varBandera = ManejadorRfid.InsertaRegistroImpre(ObjInserta); return varBandera; }

Page 16: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

/// <summary> /// Inserta Registro dd lectura rfid /// </summary> /// <param name="">SImpresionTagRfid ObjInserta</param> /// <returns></returns> /// private static string InsertaRegistroLectura(SRegistroLecturaRfid ObjInserta) { string varBandera = ""; varBandera = ManejadorRfid.InsertaRegistroLectura(ObjInserta); return varBandera; } /// <summary> /// Obtene una lista de la lectura rfid apartir del Documento variable y diferente cada vez que se abre una ventana. /// </summary> /// <param name="">No Parametro</param> /// <returns></returns> /// public static List<SRegistroLecturaRfid> ListaRegistroLectura(string varDocumento) { List<SRegistroLecturaRfid> ListaRegistroLectura = ManejadorRfid.ListaRegistroLectura(varDocumento,"",1); return ListaRegistroLectura; } /// <summary> /// Verificca si existe un registro. /// </summary> /// <param name="">No Parametro</param> /// <returns></returns> /// public static bool VerificaRegistroLectura(string varDocumento, string varEpc) { bool retorno = false; List<SRegistroLecturaRfid> ListaRegistroLectura = ManejadorRfid.ListaRegistroLectura(varDocumento, varEpc, 2); if (ListaRegistroLectura.Count > 0) { retorno = true; } return retorno; } /// <summary> /// verifica el codigo epc y las cantidades que se le asignaran. /// </summary> /// <param name="">No Parametro</param> /// <returns></returns> /// public static List<SImpresionTagRfid> ListaImpresion(string varEpc) { List<SImpresionTagRfid> ListaRegistroLectura = ManejadorRfid.ListaImpresion(varEpc); return ListaRegistroLectura; } /// <summary>

Page 17: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

/// Inserta registro de lectura tag epc. /// </summary> /// <param name="">No Parametro</param> /// <returns></returns> /// public static string InsertaRegistroLectura(List<SRegistroLecturaRfid> ListaRegistro) { string varBandera = ""; try { foreach (SRegistroLecturaRfid varInse in ListaRegistro) { bool VarVerifica = ControladorRfid.VerificaRegistroLectura(varInse.Documento, varInse.EpcLectura); if (VarVerifica == false) { SRegistroLecturaRfid ObjRegistro = new SRegistroLecturaRfid { CodigoBarra = varInse.CodigoBarra, Documento = varInse.Documento, EpcLectura = varInse.EpcLectura, }; varBandera = ManejadorRfid.InsertaRegistroLectura(ObjRegistro); } } } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } #endregion } }

Page 18: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cedi.DataAccesEntities { public class ManejadorAgenetico { static ManejadorAgenetico() { } #region Documento Algoritmo Genetico. /// <summary> /// Obtiene una lista del encabezado del documento. /// </summary> /// <param name="">int vPlu.</param> /// <returns></returns> /// public static List<AGeneticoM> ListaEncabezado(int varTipo, string @IdGenetico) { CediEntitiesModel context = new CediEntitiesModel(); List<AGeneticoM> ListaEncabezado=new List<AGeneticoM>(); switch (varTipo) { case 1: ListaEncabezado = (from AGeneticoM in context.AGeneticoMs where AGeneticoM.IdDocumento == @IdGenetico select new AGeneticoM { IdDocumento = AGeneticoM.IdDocumento, Anulado = AGeneticoM.Anulado, Impreso = AGeneticoM.Impreso, FechaCreacion = AGeneticoM.FechaCreacion, Resolucion = AGeneticoM.Resolucion, TamanoPoblacion = AGeneticoM.TamanoPoblacion, NumeroGeneraciones = AGeneticoM.NumeroGeneraciones, ProbCruce = AGeneticoM.ProbCruce, ProbMutacion = AGeneticoM.ProbMutacion, AlamacenMaximo = AGeneticoM.AlamacenMaximo, CapitalMaximo = AGeneticoM.CapitalMaximo, }).ToList(); break; default: ListaEncabezado = (from AGeneticoM in context.AGeneticoMs select new AGeneticoM

Page 19: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

{ IdDocumento = AGeneticoM.IdDocumento, Anulado = AGeneticoM.Anulado, Impreso = AGeneticoM.Impreso, FechaCreacion = AGeneticoM.FechaCreacion, Resolucion = AGeneticoM.Resolucion, TamanoPoblacion = AGeneticoM.TamanoPoblacion, NumeroGeneraciones = AGeneticoM.NumeroGeneraciones, ProbCruce = AGeneticoM.ProbCruce, ProbMutacion = AGeneticoM.ProbMutacion, AlamacenMaximo = AGeneticoM.AlamacenMaximo, CapitalMaximo = AGeneticoM.CapitalMaximo, }).ToList(); break; } return ListaEncabezado; } /// <summary> /// Obtiene una lista del detalle del documento. /// </summary> /// <param name="">string IdGenetico.</param> /// <returns></returns> /// public static List<AGeneticoD> ListaDetalle(int @Tipo, string @IdGenetico) { CediEntitiesModel context = new CediEntitiesModel(); List<AGeneticoD> ListaDetalle = (from AGeneticoD in context.AGeneticoDs where AGeneticoD.IdDocumento == @IdGenetico select new AGeneticoD { IdDetalle = AGeneticoD.IdDetalle, IdDocumento = AGeneticoD.IdDocumento, Referencia = AGeneticoD.Referencia, CostoUnitario = AGeneticoD.CostoUnitario, CostoMantenerInventario = AGeneticoD.CostoMantenerInventario, CostoPreparacion = AGeneticoD.CostoPreparacion, VolumenUnitario = AGeneticoD.VolumenUnitario, Demanda = AGeneticoD.Demanda, PuntoReorden = AGeneticoD.PuntoReorden, }).ToList();

Page 20: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

return ListaDetalle; } /// <summary> /// Inserta un nuevo registro del encabezado del documento en el sistema. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AGeneticoM </param> /// <returns></returns> /// public static string InsertaEncabezado(AGeneticoM ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { varBandera = context.ProcGenConsecutivo(1); AGeneticoM Inserta = new AGeneticoM(); Inserta.IdDocumento =varBandera; Inserta.FechaCreacion = ObjInserta.FechaCreacion; Inserta.CapitalMaximo = ObjInserta.CapitalMaximo; Inserta.AlamacenMaximo = ObjInserta.AlamacenMaximo; Inserta.NumeroGeneraciones = ObjInserta.NumeroGeneraciones; Inserta.ProbCruce=ObjInserta.ProbCruce; Inserta.ProbMutacion=ObjInserta.ProbMutacion; Inserta.TamanoPoblacion = ObjInserta.TamanoPoblacion; Inserta.Resolucion = ObjInserta.Resolucion; context.Add(Inserta); context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta registro del encabezado del documento. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AGeneticoM </param> /// <returns></returns> /// public static string UpdateEncabezado(AGeneticoM ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { AGeneticoM Inserta = context.AGeneticoMs.FirstOrDefault(p => p.IdDocumento == ObjInserta.IdDocumento); Inserta.IdDocumento = ObjInserta.IdDocumento; Inserta.FechaCreacion = ObjInserta.FechaCreacion; Inserta.CapitalMaximo = ObjInserta.CapitalMaximo; Inserta.AlamacenMaximo = ObjInserta.AlamacenMaximo; Inserta.NumeroGeneraciones = ObjInserta.NumeroGeneraciones; Inserta.TamanoPoblacion = ObjInserta.TamanoPoblacion; Inserta.ProbCruce = ObjInserta.ProbCruce; Inserta.ProbMutacion = ObjInserta.ProbMutacion;

Page 21: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Inserta.Resolucion = ObjInserta.Resolucion; context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta un nuevo registro del detalle documento en el sistema. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AGeneticoM </param> /// <returns></returns> /// public static string InsertaDetalle(AGeneticoD ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { AGeneticoD Inserta = new AGeneticoD(); Inserta.IdDetalle= ObjInserta.IdDetalle; Inserta.IdDocumento = ObjInserta.IdDocumento; Inserta.Referencia = ObjInserta.Referencia; Inserta.CostoUnitario = ObjInserta.CostoUnitario; Inserta.CostoMantenerInventario = ObjInserta.CostoMantenerInventario; Inserta.CostoPreparacion = ObjInserta.CostoPreparacion; Inserta.VolumenUnitario = ObjInserta.VolumenUnitario; Inserta.Demanda = ObjInserta.Demanda; Inserta.PuntoReorden = ObjInserta.PuntoReorden; context.Add(Inserta); context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta registro del encabezado del documento. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AGeneticoM </param> /// <returns></returns> /// public static string UpdateDetalle(AGeneticoD ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { AGeneticoD Inserta = context.AGeneticoDs.FirstOrDefault(p => p.IdDetalle== ObjInserta.IdDetalle); Inserta.IdDetalle = ObjInserta.IdDetalle; Inserta.IdDocumento = ObjInserta.IdDocumento;

Page 22: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Inserta.Referencia = ObjInserta.Referencia; Inserta.CostoUnitario = ObjInserta.CostoUnitario; Inserta.CostoMantenerInventario = ObjInserta.CostoMantenerInventario; Inserta.CostoPreparacion = ObjInserta.CostoPreparacion; Inserta.VolumenUnitario = ObjInserta.VolumenUnitario; Inserta.Demanda = ObjInserta.Demanda; Inserta.PuntoReorden = ObjInserta.PuntoReorden; context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Obtiene una lista Evaluacion. /// </summary> /// <param name="">int vPlu.</param> /// <returns></returns> /// public static List<ProcInformeEvolucionResultSet0> ListaEvaluacion(int @Tipo, string @Corrida) { CediEntitiesModel context = new CediEntitiesModel(); List<ProcInformeEvolucionResultSet0> ListaEvaluacion = context.ProcInformeEvolucion(@Tipo, @Corrida).ToList(); return ListaEvaluacion; } /// <summary> /// Inserta Evaluacion para la generacion. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AEvaluacion </param> /// <returns></returns> /// public static string InsertaEvaluacion(AEvaluacion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { AEvaluacion Inserta = new AEvaluacion(); Inserta.Documento = ObjInserta.Documento; Inserta.Corrida = ObjInserta.Corrida; Inserta.Generacion = ObjInserta.Generacion; Inserta.AptitudMedia = ObjInserta.AptitudMedia; Inserta.SumaAptitud = ObjInserta.SumaAptitud; Inserta.MejorAptitud = ObjInserta.MejorAptitud; Inserta.IdMejorAp = ObjInserta.IdMejorAp; Inserta.MejorCombinacion = ObjInserta.MejorCombinacion; context.Add(Inserta); context.SaveChanges(); } catch (Exception e) {

Page 23: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

varBandera = e.ToString(); } return varBandera; } /// <summary> /// Actualiza Evaluacion para la generacion. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AEvaluacion </param> /// <returns></returns> /// public static string UpdateEvaluacion(AEvaluacion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { AEvaluacion Inserta = context.AEvaluacions.FirstOrDefault(p => p.Corrida == ObjInserta.Corrida && p.Generacion == ObjInserta.Generacion); Inserta.Documento = ObjInserta.Documento; Inserta.Corrida = ObjInserta.Corrida; Inserta.Generacion = ObjInserta.Generacion; Inserta.AptitudMedia = ObjInserta.AptitudMedia; Inserta.SumaAptitud = ObjInserta.SumaAptitud; context.Add(Inserta); context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta los individuos generados aleatoriamente. /// </summary> /// <param name="ObjInserta">ObjInserta tipo AGeneticoM </param> /// <returns></returns> /// public static string InsertaCombinaciones(ACombinacion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { ACombinacion Inserta = new ACombinacion(); Inserta.Documento = ObjInserta.Documento; Inserta.Corrida = ObjInserta.Corrida; Inserta.Combinacion = ObjInserta.Combinacion; Inserta.SumaCombinacion = ObjInserta.SumaCombinacion; Inserta.BinarioCombinacion = ObjInserta.BinarioCombinacion; Inserta.Aptitud = ObjInserta.Aptitud; Inserta.Generacion = ObjInserta.Generacion; Inserta.Puntuacion = ObjInserta.Puntuacion; Inserta.PuntuacionAcumulada = ObjInserta.PuntuacionAcumulada; context.Add(Inserta);

Page 24: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Obtiene una lista de combinaciones por Documento /// </summary> /// <param name="">string Documento</param> /// <returns>List<ACombinacion> </returns> /// public static List<ACombinacion> ListaDocumentosCorridas(string varDocumento) { CediEntitiesModel context = new CediEntitiesModel(); List<ACombinacion> ListaDocumentosCorridas = (from ACombinacion in context.ACombinacions where ACombinacion.Documento == varDocumento select new ACombinacion { Documento = ACombinacion.Documento, Corrida = ACombinacion.Corrida, }).Distinct().ToList(); return ListaDocumentosCorridas; } /// <summary> /// Obtiene una lista de combinaciones por generacion y corrida /// </summary> /// <param name="">string corrida, int Generacion</param> /// <returns>List<ACombinacion> </returns> /// public static List<ACombinacion> ListaCombinacionEval(string corrida) { CediEntitiesModel context = new CediEntitiesModel(); List<ACombinacion> ListaCombinacion = (from ACombinacion in context.ACombinacions where ACombinacion.Corrida == corrida select new ACombinacion { IdCombinaciones = ACombinacion.IdCombinaciones, Documento = ACombinacion.Documento, Corrida = ACombinacion.Corrida, Combinacion = ACombinacion.Combinacion,

Page 25: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

SumaCombinacion = ACombinacion.SumaCombinacion, BinarioCombinacion = ACombinacion.BinarioCombinacion, Aptitud = ACombinacion.Aptitud, Generacion = ACombinacion.Generacion, Restricion1 = ACombinacion.Restricion1, Restricion2 = ACombinacion.Restricion2, Restricion3 = ACombinacion.Restricion3, Restricion4 = ACombinacion.Restricion4, }).ToList(); return ListaCombinacion; } /// <summary> /// Obtiene una lista de combinaciones por generacion y corrida /// </summary> /// <param name="">string corrida, int Generacion</param> /// <returns>List<ACombinacion> </returns> /// public static List<ACombinacion> ListaCombinacion(string corrida, int Generacion) { CediEntitiesModel context = new CediEntitiesModel(); List<ACombinacion> ListaCombinacion = (from ACombinacion in context.ACombinacions where ACombinacion.Corrida == corrida && ACombinacion.Generacion == Generacion select new ACombinacion { IdCombinaciones=ACombinacion.IdCombinaciones, Documento = ACombinacion.Documento, Corrida = ACombinacion.Corrida, Combinacion = ACombinacion.Combinacion, SumaCombinacion = ACombinacion.SumaCombinacion, BinarioCombinacion = ACombinacion.BinarioCombinacion, Aptitud = ACombinacion.Aptitud, Generacion = ACombinacion.Generacion, }).ToList(); return ListaCombinacion; } /// <summary> /// Obtiene una lista de seleccionados por generacion y corrida

Page 26: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

/// </summary> /// <param name="">string corrida, int Generacion</param> /// <returns>List<ACombinacion> </returns> /// public static List<ASeleccion> ListaSeleccion(string corrida, int Generacion) { CediEntitiesModel context = new CediEntitiesModel(); List<ASeleccion> ListaSeleccion = (from ASeleccion in context.ASeleccions where ASeleccion.Corrida == corrida && ASeleccion.Generacion == Generacion select new ASeleccion { IdReproducirse = ASeleccion.IdReproducirse, Documento = ASeleccion.Documento, Corrida = ASeleccion.Corrida, Combinacion = ASeleccion.Combinacion, IdCombinacion = ASeleccion.IdCombinacion, Binario = ASeleccion.Binario, NumeroReproduciones = ASeleccion.NumeroReproduciones, Generacion = ASeleccion.Generacion, SeleccionadoCruce=ASeleccion.SeleccionadoCruce, }).ToList(); return ListaSeleccion; } /// <summary> /// Inserta los seleccionados. /// </summary> /// <param name="ObjInserta">ObjInserta tipo ASeleccion </param> /// <returns></returns> /// public static string InsertaSeleccionados(ASeleccion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { ASeleccion Inserta = new ASeleccion(); Inserta.Documento = ObjInserta.Documento; Inserta.Corrida = ObjInserta.Corrida; Inserta.Combinacion = ObjInserta.Combinacion; Inserta.IdCombinacion = ObjInserta.IdCombinacion; Inserta.NumeroReproduciones = ObjInserta.NumeroReproduciones; Inserta.Binario = ObjInserta.Binario; Inserta.Generacion = ObjInserta.Generacion; Inserta.Mutado = ObjInserta.Mutado; context.Add(Inserta); context.SaveChanges(); }

Page 27: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta los seleccionados. /// </summary> /// <param name="ObjInserta">ObjInserta tipo ASeleccion </param> /// <returns></returns> /// public static string UpdateSeleccion(ASeleccion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { ASeleccion Inserta = context.ASeleccions.FirstOrDefault(p => p.Corrida == ObjInserta.Corrida && p.Generacion == ObjInserta.Generacion && p.IdCombinacion == ObjInserta.IdCombinacion); Inserta.Documento = ObjInserta.Documento; Inserta.Corrida = ObjInserta.Corrida; Inserta.Combinacion = ObjInserta.Combinacion; Inserta.IdCombinacion = ObjInserta.IdCombinacion; Inserta.NumeroReproduciones = ObjInserta.NumeroReproduciones; Inserta.Binario = ObjInserta.Binario; Inserta.Generacion = ObjInserta.Generacion; Inserta.SeleccionadoCruce = ObjInserta.SeleccionadoCruce; Inserta.Mutado = ObjInserta.Mutado; context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta los seleccionados. /// </summary> /// <param name="ObjInserta">ObjInserta tipo ASeleccion </param> /// <returns></returns> /// public static string UpdateCombinacionesRestricciones(ACombinacion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { ACombinacion Inserta = context.ACombinacions.FirstOrDefault(p => p.Corrida == ObjInserta.Corrida && p.IdCombinaciones == ObjInserta.IdCombinaciones); Inserta.Aptitud = ObjInserta.Aptitud; Inserta.Restricion1 = ObjInserta.Restricion1; Inserta.Restricion2 = ObjInserta.Restricion2; Inserta.Restricion3 = ObjInserta.Restricion3;

Page 28: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

Inserta.Restricion4 = ObjInserta.Restricion4; context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta los seleccionados. /// </summary> /// <param name="ObjInserta">ObjInserta tipo ASeleccion </param> /// <returns></returns> /// public static string UpdateCombinaciones(ACombinacion ObjInserta) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { ACombinacion Inserta = context.ACombinacions.FirstOrDefault(p => p.Corrida == ObjInserta.Corrida && p.IdCombinaciones == ObjInserta.IdCombinaciones); Inserta.Aptitud = ObjInserta.Aptitud; Inserta.Puntuacion = ObjInserta.Puntuacion; Inserta.PuntuacionAcumulada = ObjInserta.PuntuacionAcumulada; context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera; } /// <summary> /// Inserta los log. /// </summary> /// <param name="ObjInserta">ObjInserta tipo ASeleccion </param> /// <returns></returns> /// public static string InsertaLog(string suces) { string varBandera = ""; CediEntitiesModel context = new CediEntitiesModel(); try { Log Inserta = new Log(); Inserta.Suceso = suces; context.Add(Inserta); context.SaveChanges(); } catch (Exception e) { varBandera = e.ToString(); } return varBandera;

Page 29: ANEXO 1 CODIFICACION BINARIA Y DECIMAL SISTEMA BINARIO

} #endregion } }