lunes, 19 de marzo de 2012

Logica de programación ( Universidad Santo Tomas De Aquino)





 Marzo    15   2012



Programa:
lógica de programación







Profesor nestor pedraza 

 Estudiante Luis Felipe Sánchez sabogal
Codigo: 213 8325







Universidad Santo Tomas de Aquino
Año lectivo 2012-2013

SISTEMAS NUMÉRICOS


Sistema de números Binarios            ( 1, 0 )
Sistema de números Octales             ( 0, 1, 2, 3, 4, 5, 6, 7 )
Sistema de números Hexadecimal     ( 0, 1, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f )
Sistema de números Decimal            ( 0, 2, 3, 4, 5, 6, 7, 8, 9

                                                3                 2                  1               0
                           1000 = 1 x 10    +  0  x 10     +  0  x 10    + 1 x 10 
                                    = 1000  +  0  +  0  + 1 
                                    = 1001


Binarios Base 2 Dígitos ( 0 , 1 )
                                          
                                                                    3         2          1          0
                                                1000 = 1 x 2 + 0 x 2 + 0 x 2 + 1 x 2                                                                                        
                                                        = 8 + 0  + 0 + 1
                                                        = 9


CONVERSIÓN DE UN NUMERO DECIMAL A BINARIO


Para esta transformación es necesario tener en cuenta los pasos que mostraremos en el siguiente ejemplo: Transformemos el numero 42 a numero binario

1. Dividimos el numero 42 entre 2
2. Dividimos el cociente obtenido por 2 y repetimos el mismo procedimiento hasta que el cociente sea 1.
3. El numero binario lo formamos tomando el primer dígito el ultimo cociente, seguidos por los residuos obtenidos en cada división, seleccionándolos de derecha a izquierda, como se muestra en el siguiente esquema.


CONVERSIÓN DE UN NÚMERO DECIMAL FRACCIONARIO A UN NUMERO BINARIO


Para transformar un número decimal fraccionario a un numero binario debemos seguir los pasos que mostramos en el siguiente ejemplo: transformemos el numero 42,375.


1. la parte entera se transforma de igual forma que el ejemplo anterior.
2. La parte fraccionaria de la siguiente manera:


Multiplicamos por el numero 2 y tomamos la parte entera del producto que ira formando el numero binario correspondiente

Tomamos nuevamente la parte entera del producto, y la parte fraccionaria la multiplicamos sucesivamente por 2 hasta llegar a 0

Tomamos nuevamente la parte entera , y como la parte fraccionaria es 0, indica que se ha terminado el proceso.  El numero binario correspondiente a la parte decimal será la unión de todas las partes enteras, tomadas de las multiplicaciones sucesivas realizadas durante el transcurso del proceso , en donde el primer dígito binario corresponde a la primera parte entera , el segundo dígito a la segunda parte entera , y así sucesivamente hasta llegar al ultimo .Luego tomamos el numero binario , correspondiente a la parte entera , y el numero binario , correspondiente a la parte fraccionaria y lo unimos en un solo numero binario correspondiente a el numero decimal.





 
CONVERSIÓN DE UN NUMERO DECIMAL A UN OCTAL
1. Se toma el numero entero y se divide entre 8 repetidamente hasta que el dividendo sea menor que el divisor, para colocar entonces el numero 0 y pasar el dividendo a formar el primer dígito del numero equivalente en decimal
2. Se toma la parte fraccionaria del numero decimal y la multiplicamos por 8 sucesivamente hasta que el producto no tenga números fraccionarios
3. Pasamos la parte entera del producto a formar el dígito correspondiente
4. Al igual que los demás sistemas , el numero equivalente en el sistema decimal , esta formado por la unión del numero entero equivalente y el numero fraccionario equivalente.

Figura 10: Conversión de decimal a octal ladelec

CONVERSIÓN DE UN NUMERO OCTAL A BINARIO

La ventaja principal del sistema de numeración Octal es la facilidad conque pueden realizarse la conversión entre un numero binario y octal. A continuación mostraremos un ejercicio que ilustrará la teoría. Por medio de este tipo de conversiones, cualquier numero Octal se convierte a binario de manera individual. En este ejemplo, mostramos claramente el equivalente 100 111 010 en binario de cada numero octal de forma individual.

Figura 11: Conversión de octal a binario ladelec 


CONVERSIÓN DE UN NUMERO DECIMAL A UN NUMERO HEXADECIMAL


Convertir el numero 250.25 a Hexadecimal


1. Se toma la parte entera y se divide sucesivamente por el numero decimal 16 (base) hasta que el cociente sea 0
2. Los números enteros resultantes de los cocientes, pasarán a conformar el numero hexadecimal correspondiente, teniendo en cuenta que el sistema de numeración hexadecimal posee solo 16 símbolos, donde los números del 10 hasta el 15 tienen símbolos alfabéticos que ya hemos explicado
3. La parte fraccionaria del numero a convertir se multiplica por 16 (Base) sucesivamente hasta que el producto resultante no tenga parte fraccionaria
4. Al igual que en los sistemas anteriores, el numero equivalente se forma, de la unión de los dos números equivalentes, tanto entero como fraccionario, separados por un punto que establece la diferencia entre ellos.




Figura 12: Conversión de decimal a hexadecimal ladelec 




CONVERSIÓN DE UN NUMERO HEXADECIMAL A UN NUMERO DECIMAL


Como en los ejemplos anteriores este también nos ayudará a entender mejor este procedimiento: Convertir el numero hexadecimal 2B6 a su equivalente decimal.

1. Multiplicamos el valor de posición de cada columna por el dígito hexadecimal correspondiente.
2. El resultado del número decimal equivalente se obtiene, sumando todos los productos obtenidos en el paso anterior.

Figura 13: Conversión de hexadecimal a decimal ladelec 











domingo, 18 de marzo de 2012

Diagramas de flujo y Pseudocódigo

ENLACE A PAGINA PRINCIPAL

Diagrama de flujo

Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

Pseudocódigo

El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los |diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.
Así el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.

Sistemas formales

La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto dealgoritmo. Los modelos más comunes son la máquina de Turingmáquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.

Implementación

Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.

Variables

Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:
  1. Mediante una sentencia de asignación.
  2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

Ejemplo:
     ...
    i:=1;
    read(n);
    while i < n do begin
       (* cuerpo del bucle *)
       i := i + 1
    end;
     ...

Estructuras secuenciales

La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:
  1. Simples: Consiste en pasar un valor constante a una variable (a ← 15)
  2. Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a ← a + 1)
  3. Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b)
  4. De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a ← c + b*2/4).
Un ejemplo de estructura secuencial, como obtener la área de un triángulo:
Inicio 
...
    float b, h, a;
    printf("Diga la base");
    scanf("%f", &b);
    printf("Diga la altura");
    scanf("%f", &h);
    a = (b*h)/2;
    printf("El área del triángulo es %f", a)
...
Fin

Sistema Hexadecimal



[editar]

ENLACE A PAGINA PRINCIPAL

Operaciones en Sistema Hexadecimal

En el sistema hexadecimal, al igual que en el sistema decimal, binario y octal, se pueden hacer diversas operaciones matemáticas. Entre ellas se encuentra la resta entre dos números en sistema hexadecimal, la que se puede hacer con el método de complemento a 15 o también utilizando el complemento a 16. Además de éstas, debemos manejar adecuadamente la suma en sistema hexadecimal, explicada a continuación:

HexadecimalDecimal
A10
B11
C12
D13
E14
F15

Suma

  • 9 + 7 = 16 (16 – 16 = 0 y nos llevamos 1)
En este caso la respuesta obtenida, 16, no está entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida será 10 (sistema hexadecimal).
Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y números puede crear confusiones.

  • A + 6 = 16 (16 - 16 = 0 y nos llevamos 1)
Ocurre lo mismo que en el ejemplo anterior.

  • A + A = 20 ( 20 – 16 = 4 y nos llevamos 1)
La respuesta es 20 y no está entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida será 14 (sistema hexadecimal).
Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y números puede crear confusiones.

  • F + E = 29 ( 29 – 16 =D y nos llevamos 1)
La respuesta es 29 y no está entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida será 1D (sistema hexadecimal).
Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y números puede crear confusiones.
  • Ahora haremos una operación más complicada:
  • A + 2 = 12 (12 corresponde a C)
Ten en cuenta que puedes comprobar los resultados utilizando una calculadora científica.

[editar]Resta hexadecimal

[editar]Complemento C15

Podemos hacer la resta de dos números hexadecimales utilizando el complemento a 15. Para ello tendremos que sumar al minuendo el complemento a quince del sustraendo, y finalmente sumarle el bit de overflow (bit que se desborda).
Para entender la resta en complemento a 15 lo analizaremos con un ejemplo. Ésta es la resta que tenemos que resolver:
      A4FC9
    -   DE8
    —————————
     ¿?¿?¿?¿?
Primero tenemos que hacer que el minuendo y el sustraendo tengan la misma cantidad de números. Para ello, añadiremos ceros al sustraendo hasta que sean suficientes.
      A4FC9
    - 00DE8
    —————————
     ¿?¿?¿?¿?
Después, crearemos un nuevo número con la misma cantidad de números que el nuevo sustraendo. Como en el sistema hexadecimal el mayor número que tenemos es el 15, que corresponde a la letra F, tendremos que escribir la F tantas veces como números tiene el sustraendo.
      FFFFF
    - 00DE8
    —————————
      FF217
La resta se hace siguiendo las normas generales de la resta común. La diferencia obtenida se denomina el complemento a 15. Recuerda el valor correspondiente a cada letra al operar.
Ahora tendremos que sumar el minuendo y el complemento a 15 utilizando la suma en sistema hexadecimal, mencionada anteriormente.
      A4FC9
    + FF217
    —————————
     1A41E0
Con la suma obtenemos el resultado 1A41E0, pero no es la respuesta final. Te habrás dado cuenta que este nuevo número tiene más cifras que los números iniciales que teníamos que restar. Tenemos que quitar el número de la izquierda (en este caso, el 1) y sumarlo.
      A41E0
    +     1
    —————————
      A41E1
La respuesta es A41E1.
Ten en cuenta que puedes comprobar los resultados utilizando una calculadora científica.

[editar]Complemento C16

También podemos hacer la resta de dos números hexadecimales utilizando el complemento a 16, siguiendo un proceso similar que en el caso del complemento a 15. Para resolver la resta, tendremos que sumar al minuendo el complemento a dieciséis del sustraendo.
Para entender la resta en complemento a 16 lo analizaremos con el ejemplo anterior. Ésta es la resta que tenemos que resolver:
      A4FC9
    -   DE8
    —————————
     ¿?¿?¿?¿?
Primero tenemos que hacer que el minuendo y el sustraendo tengan la misma cantidad de números, al igual que ocurre en el proceso del complemento a 15.
Para ello, añadiremos ceros al sustraendo hasta que sean suficientes.
      A4FC9
    - 00DE8
    —————————
     ¿?¿?¿?¿?
Después, crearemos un nuevo número con la misma cantidad de números que el nuevo sustraendo.
Como en el sistema hexadecimal el mayor número que tenemos es el 15, que corresponde a la letra F, tendremos que escribir la F tantas veces como números tiene el sustraendo.
      FFFFF
    - 00DE8
    —————————
      FF217
La resta se hace siguiendo las normas generales de la resta común.
Ahora tenemos que sumarle 1 a la diferencia obtenida. Este paso es muy importante, ya que es la diferencia entre hacer la resta en complemento a 15 ó 16, y se suele olvidar fácilmente. Además, recuerda que estás sumando en sistema hexadecimal, siguiendo el mismo proceso explicado anteriormente.
      FF217
    +     1
    —————————
      FF218

A la diferencia obtenida y sumarle uno le denominaremos el complemento a 16.
Ahora tendremos que sumar el minuendo y el complemento a 16
      A4FC9
    + FF218
    —————————
     1A41E1
Con la suma obtenemos el resultado 1A41E1.
Te habrás dado cuenta que este nuevo número tiene más cifras que los números iniciales que teníamos que restas, cosa imposible en una resta (que la diferencia sea mayor que el minuendo y el sustraendo). Por eso, y estando en complemento a 16, tendremos que despreciar (eliminar) el número de la izquierda. En este caso es el 1.
La respuesta, por lo tanto, es A41E1.
En ambos casos la respuesta obtenida deberá ser la misma, ya que hemos resuelto la misma resta en sistema hexadecimal. Por lo tanto, podremos comprobar que hemos operado bien comparando las respuestas obtenidas en complemento a 15 y en complemento a 16 para una misma resta.
Además, ten en cuenta que puedes comprobar los resultados utilizando una calculadora científica.


Suma, Resta, Multiplicación y División en Sistema Octal


SISTEMA OCTAL

(SUMA)

Este sistema solo puede trabajar con los números
1, 2, 3, 4, 5, 6, 7






LA RESTA DEL SISTEMA OCTAL








MULTIPLICACIÓN EN SISTEMA OCTAL






DIVISIÓN EN SISTEMA OCTAL






















Sistema Binario

ENLACE A PAGINA PRINCIPAL


SUMA BINARIA


RESTA DE BINARIOS