informe

44
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS INGENIERIA EN DISEÑO INDUSTRIAL PROGRAMACION I TEMA: Suma y resta de números binarios Grupo: Caplicúas Integrantes: Johana Atiaja 1

Upload: krliithoz-piiyuyiim

Post on 16-Dec-2015

102 views

Category:

Documents


0 download

DESCRIPTION

informe

TRANSCRIPT

UNIVERSIDAD CENTRAL DEL ECUADORFACULTAD DE CIENCIAS FISICAS Y MATEMATICASINGENIERIA EN DISEO INDUSTRIALPROGRAMACION I

TEMA:Suma y resta de nmeros binarios

Grupo:Caplicas

Integrantes:Johana Atiaja Diego Caguasango Jorge Cifuentes Jonathan Delgado Mauricio Lucero Vctor Pachar

Tabla de contenidoObjetivos3Objetivo general3Marco Terico4Sistema Binario4Lenguaje C8Visual Basic10Desarrollo12Conceptos fundamentales12Anlisis14Suma15Resta16Algoritmo en el lenguaje de Visual Basic17Algoritmo en el lenguaje C20Algoritmo en el lenguaje de Java24Conclusiones26Recomendaciones27C Programming Language (2nd Edition By B. W. Kernighan & D. M. Ritchie)28Anexos28

IntroduccinA lo largo de la historia el hombre se ha visto en la obligacin de realizar un nmero de tareas para sus necesidades cotidianas y laborales. Con el tiempo la tecnologa ha tenido un desarrollo notable donde la programacin tiene un rol importante para beneficio del hombre, porque? Programar es disear, codificar,depurar y mantener un proceso llamado algoritmo el cual es una secuencia de pasos ordenados para realizar una actividad. De tal manera programar ayuda para la sistematizacin de tareas que el hombre podra realizarlas de forma manual, pero con un ahorro significativo de tiempo.

La programacin no solo sustituye el trabajo fsico, sino tambin el intelectual ya que hoy en da existen algoritmos capaces de clculos complejos que tienen la posibilidad de procesar y generar datos para el beneficio humano.

La facultad de adaptar ese potencial de las computadoras a las necesidades del hombre, generando distintos procesos automticos que obtienen resultados es de gran utilidad en campos como laborar, industrial, tecnolgico, esttico, ldico, etc.

En fin, la programacin est presente en todos los sistemas u objetos tecnolgicos como por ejemplo robots, celulares, consolas de juegos, etc; ya que ella es la que se encarga de sistematizar el proceso para que el robot realice una orden o para que el celular ingrese a una aplicacin e interacte en la misma.

Objetivos

Objetivo general

Crear una algoritmo, que realice las operaciones de suma y resta en nmeros binarios usando un algoritmo que controle todos los parmetros que se necesitan para realizar estas operaciones que son diferentes a los nmeros normales.

Objetivos especficos

Analizar el funcionamiento del programa para plasmarlo en un pseudocdigo el cual sea til al realizar la programacin.

Usar los conocimientos aprendidos en clase como son ciclos repetitivos, condicionantes, men de opciones, vectores, etc.

Dominar los tres lenguajes de programacin como son Visual Basic, C y en Java, los cuales se diferencian principalmente en estructura ms no en concepto.

Marco Terico

Sistema Binario

El antiguo matemtico indio Pingala present la primera descripcin que se conoce de un sistema de numeracin binario en el siglo tercero antes de nuestra era, lo cual coincidi con su descubrimiento del concepto del nmero cero.

Una serie completa de 8 trigramas y 64 hexagramas (anlogos a 3 bits) y nmeros binarios de 6 bits eran conocidos en la antigua China en el texto clsico del I Ching. Series similares de combinaciones binarias tambin han sido utilizadas en sistemas de adivinacin tradicionales africanos, como el If, as como en la geomancia medieval occidental.

Un arreglo binario ordenado de los hexagramas del I Ching, representando la secuencia decimal de 0 a 63, y un mtodo para generar el mismo fue desarrollado por el erudito y filsofo Chino Adgart en el siglo XI.

En 1605 Francis Bacon habl de un sistema por el cual las letras del alfabeto podran reducirse a secuencias de dgitos binarios, las cuales podran ser codificadas como variaciones apenas visibles en la fuente de cualquier texto arbitrario.

El sistema binario moderno fue documentado en su totalidad por Leibniz, en el siglo XVII, en su artculo "Explication de l'Arithmtique Binaire". En l se mencionan los smbolos binarios usados por matemticos chinos. Leibniz utiliz el 0 y el 1, al igual que el sistema de numeracin binario actual.

En 1854, el matemtico britnico George Boole public un artculo que marc un antes y un despus, detallando un sistema de lgica que terminara denominndose lgebra de Boole. Dicho sistema desempeara un papel fundamental en el desarrollo del sistema binario actual, particularmente en el desarrollo de circuitos electrnicos.

Lenguaje Java

Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principio de los aos 90s.

En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclut a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde".

Con la ayuda de otros ingenieros, empezaron a trabajar en una pequea oficina en Sand Hill Road en Menlo Park, California. Y as interrumpi todas las comunicaciones regulares con Sun y trabaj sin descanso durante 18 meses.

Intentaban desarrollar una nueva tecnologa para programar la siguiente generacin de dispositivos inteligentes, en los que Sun vea un campo nuevo a explorar. Crear un lenguaje de programacin fcil de aprender y de usar.

En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Gosling intent primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se aadan y eliminaban caractersticas a C++), pero lo abandon para crear un nuevo lenguaje desde cero al que llamo Oak (roble en ingls, segn la versin ms aceptada, por el roble que vea a travs de la ventana de su despacho).

El resultado fue un lenguaje que tena similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta.

Ms tarde, se cambiara el nombre de Oak a Java, por cuestiones de propiedad intelectual, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban caf (Java es nombre de un tipo de caf, originario de Asia), aunque otros afirman que el nombre deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. En Agosto de 1991Oak ya corra sus primeros programas.

Para 1992, el equipo ya haba desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo parecido a una PDA, cuyo nombre vena de la combinacin de teclas del telfono de la oficina del Proyecto Green que permita a los usuarios responder al telfono desde cualquier lugar.

Por su parte, el presidente de la compaa Sun, Scott McNealy, se dio cuenta de forma oportuna y estableci el Proyecto Verde como una subsidiaria de Sun.

Despus de mostrar a Scott McNealy y Bill Joy los prototipos de bajo nivel del sistema, continan con el desarrollo, incluyendo sistema operativo, Green OS; el lenguaje Oak, las libreras, alguna aplicacin bsica y el hardware, hasta que el 3 de septiembre de 1992 se termina el desarrollo y con ello el Proyecto Verde.

De 1993 a 1994, el equipo de Naughton se lanz en busca de nuevas oportunidades en el mercado, mismas que se fueron dando mediante el sistema operativo base.

La incipiente subsidiaria fracas en sus intentos de ganar una oferta con Time-Warner, sin embargo el equipo concluy que el mercado para consumidores electrnicos smart y las cajas Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto verde fue amortizada por la compaa Sun a mediados de 1994.

Afortunadamente, el cese del Proyecto Verde coincidi con el nacimiento del fenmeno mundial WEB. Al examinar las dinmicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente.

Patrick Naughton procedi a la construccin del lenguaje de programacin Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostracin a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto.

Con el paso del tiempo HotJava se convirti en un concepto prctico dentro del lenguaje Java y demostr que podra proporcionar multiplataformas para que el cdigo pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.

Una de las caractersticas de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para despus ejecutarlo localmente y as lograr soluciones dinmicas en computacin acordes al rpido crecimiento del ambiente WEB.

El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versin alpha de Java, que en ese momento solo corra en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador ms utilizado de Internet.

Con la segunda alpha de Java en Julio, se aade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95.

En enero de 1995 Sun forma la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologa Java, y as trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versin 1.0 del JDK.

Netscape Communications decide apoyar a Java applet en Netscape Navigator 2.0. Ese fue el factor clave que lanz a Java a ser conocido y famoso. Y como parte de su estrategia de crecimiento mundial y para favorecer la promocin de la nueva tecnologa, Java Soft otorg permisos para otras compaas para que pudieran tener acceso al cdigo fuente y al mismo tiempo mejorar sus navegadores.

Tambin les permita crear herramientas de desarrollo para programacin Java y los facultaba para acondicionar mquinas virtuales Java (JVM), a varios sistemas operativos.

Muy pronto las licencias o permisos contemplaban prestigiosas firmas como: IBM, Microsoft, Symantec, Silicon Graphics, Oracle, Toshiba y Novell.

Los applets Java (basados en JDK 1.02) son apoyados por los dos ms populares navegadores web (Nestcape Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de software estn construyendo Software 100% puro JAVA, por ejemplo el Corel Office que actualmente est en versin Beta.

Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dlares en capital disponible de recursos tales como la Fundacin Java, un fondo comn de capital formado el verano pasado por 11 compaas, incluyendo Cisco Systems, IBM, Netscape y Oracle.

Hoy en da, puede encontrar la tecnologa Java en redes y dispositivos que comprenden desde Internet y superordenadores cientficos hasta porttiles y telfonos mviles; desde simuladores de mercado en Wall Street hasta juegos de uso domstico y tarjetas de crdito: Java est en todas partes. (Adelfa 213-A, Villa de las Flores, Len Guanajuato, 16 de agosto de 2013)

Lenguaje C

El lenguaje C es un lenguaje de propsito general desarrollado en los laboratorios Bell en 1972. Sus creadores son Dennis Ritchie y Ken Thompson, surge para cubrir las carencias del lenguaje B desarrollado en 1967 por Martin Richards, el lenguaje B tena un manejo de tipos muy dbil. C entonces incorpora algunas ideas de B pero hace ms fuerte el control de tipos le agrega definiciones de estructura y algunos operadores extra entre otras cosas. Los cambios efectuados fueron utilizados por los primeros usuarios de UNIX. Luego con el lenguaje C se desarrollaron el kernel y otras aplicaciones de UNIX. En 1980 C cobra mayor popularidad gracias al surgimiento de versiones comerciales del lenguaje. En 1980 el grupo ANSI desarrolla ANSI C que es la versin estndar de C propuesta por el grupo. C se convierte en el lenguaje de mayor aceptacin por parte de los programadores por que hace una conjugacin en lenguaje de alto nivel y lenguaje mquina. Posteriormente ANSI desarrolla C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. El lenguaje C++ es un lenguaje hbrido. Posteriormente se aadieron facilidades de programacin genrica, que se sum a los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programacin multiparadigma. Actualmente existe un estndar, denominado ISO C++, al que se han adherido la mayora de los fabricantes de compiladores ms modernos. Existen tambin algunos intrpretes, tales como ROOT.

Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales. Actualmente muchas empresas se dedican a vender el compilador del lenguaje C, dos de estos imperios son: Microsoft visual C++, Borland C++, Builder .La mayora de los compiladores actuales soportan la programacin en C Estndar, C Orientado a objetos y La Programacin Visual. Algunos de las C existentes son: Quick C, C++, Turbo C, Turbo C ++, Borland C, Borland C++, Microsoft C aplicaciones creadas en el lenguaje C++.Existen muchas aplicaciones desarrolladas en el lenguaje C++. Entre las cuales podemos mencionar Facebook, Google, Unix, Office, Mac, YouTube, AutoCAD.

Entre otras aplicaciones que se han realizado en el lenguaje de programacin C++ IDs ms utilizados para programar en el lenguaje C++, Ultimate++, RAD multiplataforma para C++. Para Windows y Linux. Zinjai hecho en castellano para Windows y Linux. CodeLite es una solucin ligera y compatible con Windows, Linux y Mac OS X. Code Blocks es otra completa solucin gratis para Windows, Linux y Mac OS X. Anjuta DevStudio es un IDE para C/C++ especialmente para Gnome en Linux. Eclipse famoso por su creacin como entorno por excelencia para Java, pero que tambin soporta C y C++ adems funciona en Linux, Windows y Mac Os X gracias que est hecho en Java. Geany un entorno GTK2 para Windows. GNAT Programming Studio es multiplataforma para Windows, Linux, Solaris y Mac Os X. Adems de gratis hace uso de los compiladores de GNU. Kdevelop es el entorno IDE para KDE por excelencia con soporte para muchos lenguajes de programacin. MonoDevelop aunque est pensado para .NET y C# soporta C++ y funciona en Linux, Windows y Mac OS X. Pelles C es un entorno para programar en C que es freeware y pensado para desarrollar para Windows y Pocket PC. Qt Creator es un IDE multiplataforma para C++ que utiliza los compiladores GNU en Linux y Mac OS X, MinGW en Windows. Ahora lo controla Nokia. Sun Studio Express pensado para C, C++ y Fortran y compatible con Solaris, Open Solaris y Linux. Microsoft Visual Studio Express es una versin de desarrollo y gratis del IDE de Bill Gates para programar en sus lenguajes Visual Basic, C#, C++, Solo para Windows. Sharp developes un IDE de cdigo abierto para C# y VB.NET. wxDev, C++ es un IDE gratis para el lenguaje Dev-C++, para Windows.

NetBeans IDE tambin soporta C y C++ adems de Java, Ruby, PHP entre otros. RELO C/C++ es un IDE de cdigo abierto para desarrollo en Windows con MingW32 y compiladores Borland C++. Quincy es un sencillo entorno de desarrollo gratis para C y C++ en Windows. Borland C++ versin 5.5 del compilador disponible para descargar gratis para Windows. Solo el compilador no el IDE, pero merece la pena. BVRDE es un entorno de desarrollo para C y C++ para Windows NT. Un poco antiguo. SallyIDE es un sencillo IDE para C++ bajo Windows. SmallIDE es un entorno de desarrollo fcil para usar con el compilador Borland C++. Xcode es el conjunto de utilidades de desarrollo para Mac OS X con IDE y versiones modificadas de los compiladores GNU GCC y soporte para C, C++, Fortran, Objetive-C, Objetive C++, Java, Apple Script, Python y Ruby, entre otros lenguajes con mdulos adicionales.(Mc. Ricardo Acosta Das, 02 de Abril de 2003)

Visual Basic

B.A.S.I.C. significa: Beginners All-purpose Symbolic Instruction Code, traduciendo esto sera:Cdigo de instrucciones de uso universal para principiantes.Basic es un lenguaje de programacin que acta como un intermediario entre el operador y el computador. Mediante el vocabulario y las reglas Basic, se le ordena al computador lo que se quiere que haga y el PC transforma estas instrucciones para poder ejecutarlas. Otros lenguajes de programacin que pueden emplearse son el Pascal, Fortan y Ensamblador. BASIC es traducido a cdigo binario,tambinse puede escribir programas en cdigo binario pero es muy difcil por eso crearon el Basic.

BASIC es un lenguaje de programacin desarrollado por los estadounidenses John Kemeny y Thomas Kurtz en el Dartmouth College.La versin original del lenguaje Basic fue creada en el ao 1964, ganndose unaenorme popularidad gracias sobre todo a dos implementaciones, Tiny BASIC y Microsoft BASIC, que convirtieron a este lenguaje en la primera lengua franca de los microordenadores. Otras importantes implementaciones han sido CBASIC (BASIC Compilado), Integer y Applesoft BASIC (para el Apple II), GW-BASIC (para computadoras personales), Turbo BASIC (de Borland) y Microsoft QuickBASIC. El lenguaje ha cambiado en el transcurso de los aos puesnaci con el objetivo de servir como lenguaje para aquellas personas que deseaban introducirse por primera vez en el mundo de la programacin, y luego fue sufriendo modificaciones, hasta que en 1978 se estableci el Basic estndar.

Ms adelante, en 1987, lleg una de las versiones ms populares del lenguaje: el viejo y querido QuickBasic, una joya de oro de los tiempos del MS-DOS, con la cual muchosse develaron ms de una noche. Las primeras versiones eran interpretadas y no estructuradas. Las ms recientes son estructuradas y, a menudo, compiladas. En esos tiempos, BASIC sola ensearse a los programadores principiantes porqueera fcil de utilizar y de comprender, y adems porque contiene los mismos conceptos fundamentales que muchos otros lenguajes considerados ms difciles, como Pascal, C y COBOL, las cuales a su vez, eran muy populares entre los programadores, mientras que haba una especie de desprecio hacia Basic, por tratarse de un lenguaje para principiantes.

En contraste, hace poco ms de 26 aos, el proceso de construir una sencilla aplicacin basada en Microsoft Windowssola ser algo complicado, difcil y largo. Hasta aqu, todo eran oscuras pantallas de texto y aplicaciones de consola.Con la llegada de Windows, todo resulto muy diferente. Es as que, construir estas aplicaciones ricas en grficosno era un proceso trivial antes de la introduccin de Visual Basic 1.0 en mayo de 1991. Las antiguas aplicaciones de MS-DOS mucho distaban ya de las modernas y visuales de Windows, pero, claro, hacer aplicaciones para ese nuevo sistema operativo era un real privilegio, que muy pocos estudiosos de la programacin en C podan experimentar.

Ese ao, Visual Basic 1.0 vio la luz, y revolucion el desarrollo de aplicaciones para Windows, especialmente por su facilidad y por la rapidez con la que permite crearlas. Siempre escucho comentar que desde esos tiempos, usando Visual Basic, los programadores podamos, por primera vez, implementar aplicaciones de Windows en un ambiente intuitivo y grfico, simplemente arrastrando controles sobre un formulario. Si bien muchas personas hicieron de Visual Basic una realidad, un empelado de Microsoft, llamado Alan Cooper, fue considerado el verdadero padre del lenguaje. Hoy con ms de 14 aos del lenguaje en el mercado, Alan es considerado una eminencia.

Inicialmente, Visual Basic fue pensado para ser un producto muy tctico. Microsoft tena varias iniciativas en el desarrollo que lideraba Visual Basic 1.0, todas fueron pensadas para convertirse en las herramientas de programacin a largo plazo, estratgicas, grficas y orientadas a objetos. Como siempre ocurre con los productos en su versin 1.0, el equipo de Visual Basic 1.0 fue forzado a cortar caractersticas de su larga lista de ideas para entregar realmente el producto al mercado. Consecuentemente, la primera versin incluy poco ms que la tecnologa Embedded Basic que haba sido desarrollada originalmente en Microsoft QuickBasic 4.0 (el cdigo p y compilador de Microsoft) y una herramienta compiladora de diseo simple originalmente diseada para Windows 3.0 pero que nunca fue utilizada para tal fin. Aproximadamente 12 meses despus, el desarrollo y mejora de la versin 1.0 comenz, Microsoft sac al mercado una herramienta desarrolladora para cubrir la exigencia en ese momento del mercado cuyo nombre en clave fue Thunder (Trueno).

Desde este inicio bastante desfavorable vino un resultado igualmente difcil de comprender: un impacto en la industria informtica tan profundo que cambi para siempre el curso del desarrollo del software y cre una explosin en el mercado de las aplicaciones de Windows. Diez aos ms tarde, parece muy obvio-pero en esa poca, cuando solamente un pequeo y selecto grupo de personas, era capaz de desarrollar aplicaciones para Windows, Visual Basic 1.0 represent un cambio gigantesco en el diseo de aplicaciones.

Innegablemente radical en su puesta en prctica, implementacin y capacidades, Visual Basic 1.0 se propag a travs de la comunidad en cuestin de pocos meses. Poco despus del shock inicial de fiebre por Visual Basic, un pequeo pero fuerte grupo de seguidores comenz a transformar las bibliotecas de cdigo que tenan con sus caractersticas, mtodos y eventos, y a exponerlos como componentes de Visual Basic llamados VBXs, o los controles personalizados. Despus de poco tiempo, la produccin de estos componentes reutilizables creci de una comunidad especializada a una industria que creca de vendedores de controles, y ayud a Visual Basic a pasar de ser un logro de software a convertirse en un descubrimiento tecnolgico. (Dulmar Torrado, UFPSO, 06 de abril de 2011)

Desarrollo

Conceptos fundamentales

Visual Basic. Es una aplicacin y un lenguaje de programacin desarrollados por Alan Cooper para Microsoft. Facilita la creacin de programas grficos. Visual Basic, como su nombre lo indica, utiliza una interfaz totalmente visual, permite crear aplicaciones de forma rpida, especialmente para prototipos. (Definicin ABC, 24 de agosto de 2007)

Visual Studio. Es un lenguaje de programacin diseado para crear diversas aplicaciones, se trata de lenguajes eficaces, que presentan seguridad de tipos y estn orientados a objetos.Permiten a los desarrolladores crear aplicaciones Windows, web y mviles. (Zator System, 02 de julio de 2013)Java NetBeans IDE. Es un entorno de desarrollo integrado (IDE), modular, de base estndar (normalizado), escrito en el lenguaje de programacin Java. El proyecto NetBeans consiste en unIDE de cdigo abiertoy unaplataforma de aplicacin, las cuales pueden ser usadas como una estructura de soporte general para compilar cualquier tipo de aplicacin. (Oracle, 24 de Enero de 2006)Tipo de dato. Es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qu valores pueden tomar y qu operaciones se pueden realizar. Los tipos de datos comunes son: enteros, nmeros de coma flotante (decimales), cadenas alfanumricas, fechas, horas, colores, etc. (Fernando Berzal, 19 de Mayo de 2014)

Condicionante. En programacin, a la expresin lgica de una instruccin alternativa doble, o simple, tambin se le denomina condicin. Las condiciones tambin se utilizan en los bucles. (Mario R. Rancel, 16 de Enero de 2010)

Bucle. Tambin llamado instruccin de control repetitiva(o iterativa) permite ejecutar una o ms instrucciones varias veces, es decir, permite ejecutar un bloque de instrucciones repetidamente, escribindolas una sola vez en el algoritmo (o programa), reduciendo de este modo el cdigo del mismo. A los bucles tambin se los conoce como ciclos o lazos. (Diccionario Manual de la Lengua Espaola Vox. 2007 Larousse Editorial, S.L.)

Arreglo. Es una coleccin de datos del mismo tipo. Sirve para manejar un nmero n de elementos en comn, ya sea de tipos definidos por el lenguaje, (int,float,String, etc) as como aquellos definidos por el programador. (Victor Minango, 15 de Octubre de 2011)Switch case. Es una estructura de control empleada en programacin, se utiliza para agilizar la toma de decisiones mltiples, trabaja de la misma manera que lo haran sucesivos if, if else o until anidados, as como combinaciones propias de determinados lenguajes de programacin. El switch favorece la legibilidad y rapidez en la programacin. (Fernando Valdivia, 18 de Septiembre de 2003)Cadena de caracteres. En programacin, una cadena de caracteres, palabras, ristra de caracteres o frase (string en ingls) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto anlogas a una frmula o a una oracin. En general, una cadena de caracteres es una sucesin de caracteres (letras, nmeros u otros signos o smbolos). (Oscar Cajamarca, 30 de Febrero de 2008)

Librera. Es un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen cdigo y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de stos. Esto permite que el cdigo y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la mayora de stas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces o LINK) entre s a travs de un proceso conocido como enlace (o link), que por lo general es realizado por un software denominado enlazador o linker. (Steven Vera, 22 de Abril de 2009)

El programa

Sistema Binario. Sistema numrico que slo utiliza dos dgitos diferentes, 0 y 1, en lugar de diez en el sistema decimal. Es la base en los campos de ciencia de las computadoras y en electrnica, ya que los dispositivos electrnicos pueden representar fcilmente dos estados distintos, en lugar de diez estados. Los dgitos 0 y 1 se pueden representar por condiciones encendido/apagado en un circuito de conmutacin electrnica, o por ausencia/presencia de magnetizacin de un "chip" de memoria, un disco, o una cinta.

Anlisis

Los nmeros binarios se ingresan por medio de cadenas las cuales hay que tener en cuenta el nmero de bits (dgitos del nmero binario) de un nmero es mayor al otro, de tal manera que se rellene de ceros el nmero de menor nmero de bits, desde izquierda a derecha para que no se altere el valor del nmero. Una vez igualados los dos nmeros binarios se procede a hacer la comparacin de derecha a izquierda depende si la operacin es suma o resta.

Suma

En la suma de nmeros binarios tenemos la siguiente tabla:

Como en los nmeros binarios no se puede colocar nmeros mayores a uno, de esta manera cuando se suma 1 + 1 colocamos como resultado el 0 y tenemos un acarreo con el nmero uno que se lo toma en cuenta en la siguiente comparacin.

Ejemplo:

Resta

En la resta de los nmeros binarios tenemos la siguiente tabla:

De igual manera que en la suma tenemos un acarreo, pero esta vez cuando tenemos 0-1 el resultado es 1 pero tenemos un acarreo de 1 que lo llevamos a restar a la siguiente comparacin.

Ejemplo:

Algoritmo en el lenguaje de Visual Basic

Sub Calculadora()Dim cadena2 As StringDim ch As StringDim cadena3 As StringDim ch2 As StringDim i As IntegerDim vector(10) As IntegerDim vector2(10) As IntegerDim vector2md(10) As IntegerDim result(20) As IntegerDim j As IntegerDim dim1 As IntegerDim dim2 As IntegerWorksheets("Hoja1").Cells(1, 1).Value = ("Calculadora Numeros Binarios")Worksheets("Hoja1").Cells(2, 1).Value = ("Numero 1")Worksheets("Hoja1").Cells(3, 1).Value = ("Numero 2")Worksheets("Hoja1").Cells(4, 1).Value = ("Resultado Suma")Worksheets("Hoja1").Cells(5, 1).Value = ("Resultado Resta")MsgBox ("SUMA Y RESTA DE NUMEROS BINARIOS")cadena2 = InputBox("Ingrese el numero:")For i = 1 To Len(cadena2) ch = Mid(cadena2, i, 1) vector(i) = Val(ch)Next idim1 = icadena3 = InputBox("Ingrese el numero:")For i = 1 To Len(cadena3) ch = Mid(cadena3, i, 1) vector2(i) = Val(ch)Next idim2 = ij = 0For i = 0 To dim1 - 1 If (i < (dim1 - dim2)) Then vector2md(i) = 0 Else vector2md(i) = vector2(j) j = j + 1 End IfNext

For i = 1 To Len(cadena2) Worksheets("Hoja1").Cells(2, i + 1).Value = ("" & vector(i))Next iFor i = 1 To Len(cadena2) Worksheets("Hoja1").Cells(3, i + 1).Value = ("" & vector2md(i))Next iDim acarreo As Integeracarreo = 0For i = dim1 - 1 To o Step -1 If (acarreo = 1) Then vector(i) = vector(i) + acarreo If (vector(i) = 2) Then acarreo = 1 vector(i) = 0 End If End If result(i + 1) = vector(i) + vector2md(i) If (result(i + 1) = 2) Then acarreo = 1 result(i + 1) = 0 Else acarreo = 0 End IfNextIf (acarreo = 1) Then result(0) = 1Else result(0) = 0End IfFor i = 1 To dim1 Worksheets("Hoja1").Cells(4, i + 1).Value = ("" & result(i))Next iDim acarreo2 As IntegerDim result2(20) As Integeracarreo2 = 0For i = dim1 - 1 To o Step -1 If (acarreo2 = 1) Then vector(i) = vector(i) - acarreo2 If (vector(i) = 0) Then vector(i) = 0 Else If (vector(i) 0) Then vector(i) = 1 End If End If End If result2(i + 1) = vector(i) - vector2md(i) If (result2(i + 1) = -1) Then acarreo2 = 1 result2(i + 1) = 1 Else If (result2(i + 1) = 1) Then acarreo2 = 0 result2(i) = 1 Else If (result2(i + 1) = 0) Then acarreo2 = 0 result2(i) = 0 End If End If End IfNextIf (acarreo2 = 1) Then result2(0) = 0Else result(0) = 0End IfFor i = 1 To dim1 Worksheets("Hoja1").Cells(5, i + 1).Value = ("" & result2(i))Next iEnd Sub

Algoritmo en el lenguaje C

// ConsoleApplication10.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "cstdlib"#include #include #include #include

int _tmain(int argc, _TCHAR* argv[]){char cadena2[30], cadena3[20];int cadena[20], cdena[20], cdenamd[20], result[50],i,j,dim = 0,dim2,dim3 = 0,dim4;printf("SUMA Y RESTA DE NUMERO BINARIOS");printf("\n");printf("--------------------------------");printf("\n");printf("Porfavor ingrse el primer numero a operar \n");gets_s(cadena2);dim = strlen(cadena2);for ( i = 0; i < dim ; i++){if (cadena2[i] == 48){cadena[i] = 0;}else{cadena[i] = 1;}}dim2 = i;printf("Porfavor ingrse el segundo numero a operar \n");gets_s(cadena3);dim3 = strlen(cadena3);for ( i = 0; i < dim3 ; i++){if (cadena3[i] == 48){cdena[i] = 0;}else{cdena[i] = 1;}}dim4 = i;j = 0;for ( i = 0; i < dim2; i++){if (i < (dim2 - dim4)){cdenamd[i] = 0;}else{cdenamd[i] = cdena[j];j++;}}for (i = 0; i < dim; i++){printf("%d", cadena[i]);}printf("\n");for ( i = 0; i < dim2; i++){printf("%d", cdenamd[i]);}printf("\n");int acarreo = 0;for (i = (dim2 - 1); i >= 0; i--){if (acarreo == 1){cadena[i] = cadena[i] + acarreo;if (cadena [i] ==2){acarreo = 1;cadena[i] = 0;}}result[i + 1] = cadena[i] + cdenamd[i];if (result[i+1] == 2){acarreo = 1;result[i + 1] = 0;}else{acarreo = 0;}}if (acarreo == 1){result[0] = 1;}else{result[0] = 0;}for ( i = 0; i < dim2+1; i++){printf("%d", result[i]);}printf("\n");int acarreo2 = 0;int result2[50];for (i = (dim2 - 1); i >= 0; i--){if (acarreo2 == 1){cadena[i] = cadena[i] - acarreo2;if (cadena[i] == 0){cadena[i] = 0;}else{cadena[i] = 1;}}result2[i + 1] = cadena[i] - cdenamd[i];if (result2[i + 1] == -1){acarreo2 = 1;result2[i + 1] = 1;}else{acarreo2 = 0;}}if (acarreo2 == 1){result2[0] = 0;}else{result2[0] = 0;}for (i = 0; i < dim2+1; i++){printf("%d", result2[i]);}getchar();getchar();return 0;}

Algoritmo en el lenguaje de Java

public static void main(String[] args) { String cadena2 = new String(); String cadena3 = new String(); int cadena[] = new int [20]; int cdena[] = new int [20]; int cdenamd[] = new int [20]; int result[] = new int [20]; int i, dim, dim2; Scanner dato = new Scanner(System.in);System.out.print("ingrese el nmero");cadena2 = dato.nextLine(); for (i=0; i < cadena2.length(); i++ ) { if (cadena2.charAt(i)== 48) { cadena[i]=0; } else{ cadena[i]=1; } } dim=i; System.out.print("ingrese el nmero");cadena3 = dato.nextLine(); for (i=0; i < cadena3.length(); i++ ) { if (cadena3.charAt(i)== 48) { cdena[i]=0; } else cdena[i]=1;

} dim2=i; int j=0; for (i=0;i