Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA:
Suma y resta de nmeros binarios
Grupo:
Caplicas
Integrantes:
Johana Atiaja
Diego Caguasango
Jorge Cifuentes
Jonathan Delgado
Mauricio Lucero
Vctor Pachar
Tabla de contenido
Objetivos............................................................................................................. 3
Objetivo general.............................................................................................. 3
Marco Terico...................................................................................................... 4
Sistema Binario.................................................................................................... 4
Lenguaje C.......................................................................................................... 8
Visual Basic....................................................................................................... 10
Desarrollo.......................................................................................................... 12
Conceptos fundamentales............................................................................. 12
Anlisis.............................................................................................................. 14
Suma.............................................................................................................. 15
Resta.............................................................................................................. 16
Algoritmo en el lenguaje de Visual Basic..........................................................17
Algoritmo en el lenguaje C................................................................................ 20
Algoritmo en el lenguaje de Java......................................................................24
Conclusiones..................................................................................................... 26
Recomendaciones............................................................................................. 27
Anexos.............................................................................................................. 28
Introduccin
A 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
3
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.
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.
Lenguaje Java
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.
La incipiente subsidiaria fracas en sus intentos de ganar una oferta con TimeWarner, 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.
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.
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.
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,
9
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
10
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.
12
13
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
14
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).
Desarrollo
Conceptos fundamentales
15
16
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.
17
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
Resta
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.
19
Ejemplo:
Next i
Dim acarreo As Integer
acarreo = 0
For 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 If
Next
If (acarreo = 1) Then
result(0) = 1
Else
result(0) = 0
End If
For i = 1 To dim1
Worksheets("Hoja1").Cells(4, i + 1).Value = ("" & result(i))
Next i
Dim acarreo2 As Integer
Dim result2(20) As Integer
acarreo2 = 0
For i = dim1 - 1 To o Step -1
If (acarreo2 = 1) Then
vector(i) = vector(i) - acarreo2
If (vector(i) = 0) Then
vector(i) = 0
22
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 If
Next
If (acarreo2 = 1) Then
result2(0) = 0
Else
result(0) = 0
End If
For i = 1 To dim1
Worksheets("Hoja1").Cells(5, i + 1).Value = ("" & result2(i))
Next i
End Sub
Algoritmo en el lenguaje C
23
{
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)
{
25
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
26
{
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;
}
Conclusiones
Concluimos que se puede transformar de una cadena de caracteres a un
arreglo unidimensional con valores en cada una de sus posiciones.
Determinamos que para igualar la dimensin de dos arreglos y operarlos
en el sistema binario se colocan ceros antes de la posicin inicial.
Confirmamos que los cdigos en los tres diferentes lenguajes de
programacin cambian solo en su nomenclatura y no en el concepto como
tal.
Recomendaciones
Es necesario hacer un anlisis previo a la programacin ya que de esta
manera podemos adquirir una visin ms clara del algoritmo.
En los programas de C y Java se debe colocar las respectivas libreras para
usar ciertas funciones que se necesite.
El algoritmo es necesario que este identado, es decir, cuando se use ciclos
repetitivos, condicionantes, funciones de opcin, lo que se encuentre
dentro de estos procesos debe estar a otra altura para que de esta manera el
cdigo sea ms entendible.
Bibliografa
http://www.importancia.org/programacion-informatica.php
Recuperado (17 de Julio de 2015)
http://yeyoserrano.blogspot.com/2013/04/importancia-de-laprogramacion-primero.html
Recuperado (19 de Julio de 2015)
http://www.taringa.net/posts/apuntes-ymonografias/8717309/Conceptos-Fundamentales-de-Programacion.html
30
Anexos
31
32
33
34
35
36