sábado, 29 de octubre de 2011

Introducción a la Orientación a objetos

La orientación a objetos es una técnica de modelado de sistemas, que pueden ser o no computacionales.
Mediante la orientación a objetos se obtiene una representación del problema en cuestión, representación cercana a como ocurre en el mundo real. Es decir, estamos rodeados de objetos, alumno, profesor, escuela, estos objetos a su vez interactúan entre ellos para obtener servicios unos de otros. En la orientación a objetos se tienen también objetos similares a los de la realidad que también reciben y solicitan servicios unos de otros. Los objetos que se incluyen en el modelo dependen del problema que se está modelando, de su alcance, es decir, del “dominio del problema”.
Doug Rosenberg define el dominio del problema como “el área que abarcan las cosas y conceptos del mundo real relacionados con el problema que el sistema que se está diseñando resolverá.” [Rosenberg, 1999]
En teoría, las principales ventajas de los modelos orientados a objetos son:
·                     “El entendimiento del sistema es más fácil dado que la diferencia semántica entre el sistema y la realidad es reducida.”
·                     “Las modificaciones al modelo tienden a ser locales ya que frecuentemente afectan a una sola entidad, que está representada por un objeto.” [Jacobson, 1992]

Objetos

De manera informal, un objeto representa una entidad ya sea física, conceptual o software. Los objetos son cosas que tienen información, por ejemplo un auto en particular tiene placa, modelo, marca, tiene comportamiento, por ejemplo, avanza, retrocede. Los autos son similares entre sí y pueden agruparse, pertenecen a  la clase Autos

Entidad física : TRANSBORDADOR

Entidad conceptual: ORDEN DE COMPRA


Entidad de software: UN ARCHIVO


Un objeto puede representar algo concreto del dominio del problema como una computadora, un profesor o un trasbordador espacial. También puede representar un concepto como un proceso químico, una orden de compra, la historia crediticia, o la tasa de interés.
En los sistemas orientados a objetos, los objetos también pueden representar estructuras de software tales como listas ligadas, árboles binarios o archivos. Estos objetos no existen en el mundo real, es decir, no pertenecen al dominio del problema. Pero son creados para facilitar la implementación.
Formalmente, “un objeto es un concepto que representa una entidad individual, identificable, ya sea real o abstracta, con un rol bien definido en el dominio del problema” [Smith and Jockey referenciados por Booch 91], “un objeto tiene límites definidos y tiene: estado, comportamiento e identidad”
El estado de un objeto es una de las posibles condiciones en las que un objeto puede existir, normalmente cambia en el tiempo, es implementado por un conjunto de propiedades (atributos),  los valores de éstos, y las relaciones que el objeto puede tener con otros objetos.   Por ejemplo un vuelo puede tener los estados: vacío, abordando o en vuelo.
El comportamiento de un objeto define como actúa y reacciona un objeto, define cómo reacciona a solicitudes de otros objetos. Es modelado por el conjunto de mensajes a los que puede responder (operaciones que puede desempeñar). Por ejemplo en una simulación de un juego de béisbol hay un lanzador y una pelota. El lanzador no “lanza” la pelota, el comportamiento lanzar del lanzador le pide a la pelota que se mueva. La pelota sabe cómo moverse (con un poco de ayuda como la velocidad). Movimiento es una propiedad de la bola no del lanzador.
Cada objeto tiene una identidad única, incluso cuando se encuentra en el mismo estado que otro objeto. [Object- Oriented Modeling and Design, James Rumbaugh, et al., Prentice Hall, 1991, p 22]

Clases

Según Booch (1994), “una clase es un conjunto de objetos que comparten una estructura y un comportamiento común. Un objeto es una instancia de una clase”.
Jacobson describe a una clase como “una definición, una plantilla o molde para habilitar la creación de nuevos objetos y”…” describe la estructura interna de estos objetos. Objetos de la misma clase tienen la misma definición tanto para sus operaciones como para su estructura de información “.
Entonces, una clase es una descripción de un grupo de objetos que comparten propiedades comunes (atributos), comportamiento común (operaciones) y asociaciones con otros objetos.
Por ejemplo, mi auto estacionado frente al edificio es una instancia de la clase auto. La descripción genérica de “Auto” representa la clase de la cual se crean las instancias. El auto tiene una estructura: placa, número de motor, marca, modelo; tiene un comportamiento: avanzar, retroceder, estacionarse. Tiene asociaciones con otros objetos como el Dueño.
Otro ejemplo, la computadora en la cual esté usted trabajando es una instancia de la clase que describe a todas las computadoras personales, que podría llamarse “Computadora Personal”, tiene una estructura de información que incluye su marca, velocidad, espacio en disco, memoria, etc. Tiene comportamientos como encenderse, permanecer en espera, apagarse, bloquearse, aumentar la memoria, segmentar el disco duro, etc. Tiene asociaciones de agregación con otros objetos como el ratón o la impresora.

Diferencia entre objeto y clase

Una clase es una definición abstracta de un objeto. La clase define la estructura y el comportamiento de cada objeto de la clase. Sirve como una plantilla para crear objetos. Los objetos pueden agruparse en clases.
Por ejemplo, en la siguiente imagen tenemos 4 objetos. ¿Cuántas clases puede distinguir?
Dependiendo del problema del dominio se eligen las clases que convienen. Todas las siguientes son posibles clases para los objetos anteriores: Animales, Animales Salvajes, Animales Domésticos, Animales de Granja, Mamíferos, Felinos, Aparatos Electrónicos, Equipo de Cómputo, Aparatos Domésticos, etc.
Lineamientos para encontrar clases
Identificar adecuadamente las clases de un sistema y asignarles las responsabilidades de forma correcta es lo más importante de un proyecto de software y de él dependerá su éxito, su reusabilidad, claridad y mantenibilidad.
Las clases se encuentran en los documentos del proyecto, requerimientos, casos de uso, entrevistas con el cliente, experiencia en proyectos similares, etc.
De estas fuentes se obtienen los sustantivos relevantes. Después se van eliminando elementos de la lista siguiendo las siguientes reglas:
Eliminar duplicados
Eliminar sinónimos
Eliminar irrelevantes, ya sea fuera del contexto o sin significado para la aplicación en cuestión.
Eliminar términos vagos
Eliminar los que representan acciones (operaciones)
Eliminar los que representan características (atributos)
Eliminar nombres propios
Eliminar objetos (instancias de las clases)
Eliminar actores o entidades externas
Los términos elegidos deben sustantivos o frases sustantivas que sean pronunciables en singular.
Es importante mencionar que este es un proceso iterativo y que la primera lista no será la definitiva, debe regresarse a analizar el enunciado del problema y los documentos que se tengan a fin de buscar nuevas clases y repetir el ciclo de selección.
Por otro lado, no se debe ser exhaustivo ya que NUNCA se tendrá la lista perfecta y continuar más de lo debido en esta actividad lleva a lo que se conoce como “análisis parálisis”, unas dos horas al máximo debe ser suficiente para tener una buena  lista que en subsecuentes fases irá mejorando.
En UML  las clases se representan en alguna de las dos siguientes notaciones:

Clase
atributos
operaciones
   
Clase


Principales propiedades de los objetos
Según Booch (1994), sin las siguientes propiedades el modelo no es orientado a objetos.
Abstracción
La abstracción es la propiedad que permite representar las características esenciales de un objeto, aquellas relevantes sólo en el dominio del problema excluyendo las no esenciales.
Una abstracción se centra en la vista externa de un objeto, enfocándose en su comportamiento en vez de en su implementación. 
Encapsulamiento
“Toda la información de un objeto está almacenada dentro del mismo objeto y sólo puede ser manipulada cuando al objeto se le ordena que lleve a cabo alguna operación. El comportamiento y la información están encapsulados en el objeto. La única forma de realizar operaciones en el objeto es realizar operaciones en él. Los objetos, entonces soportan el concepto de ocultamiento de la información, esto es, ocultan su estructura interna de su alrededor. Cada una de las operaciones del objeto tiene como propósito algún comportamiento del mismo. No se necesita saber cómo está implementada alguna operación o cómo se representa la información, sólo necesitamos conocer las operaciones que tiene como interfaz para comunicarnos con él.”  [Jacobson, 1992]
Modularidad [Reyes Paredes, 2006]
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes (bajo acoplamiento).
El Módulo A depende del Módulo B si cualquier cambio en el Módulo B implica que el Módulo A también tenga que ser modificado. A veces se dice que el Módulo A es un cliente del Módulo B, o que el Módulo B actúa como servidor del Módulo A.
La dependencia a veces se conoce como acoplamiento. Un sistema con muchas dependencias tiene alto acoplamiento. Los buenos sistemas tienen bajo acoplamiento, porque en ese caso los cambios en una parte del sistema son menos probables de propagarse a través del sistema.
Ejemplos de módulos son clases, operaciones de las clases o paquetes de clases.
Generalización y Herencia
Técnica para permitir a las clases usar los métodos y los datos de una clase padre. Puede tener muchos niveles. A la clase padre se le conoce también como superclase o clase base, a la clase hijo se le llama también clase derivada o subclase.
La clase derivada tiene exactamente los mismos atributos y operaciones que la clase base además de mantener las mismas asociaciones con otras clases que tiene la superclase. Se puede decir que las subclases son especializaciones de su(s) padre(s).
Facilita el control de cambios y la reutilización.
Polimorfismo
Según Booch (1994), el polimorfismo se define como “Un concepto en la teoría de tipos, acorde con el cual un nombre (como la declaración de una variable) puede denotar objetos de diferentes clases que están relacionadas por una superclase común; entonces, cualquier objeto denotado por este nombre es capaz de responder a un conjunto común de operaciones en diferentes formas”.
Esto en otras palabras indica que quien solicita un servicio o invoca una operación no necesita saber la clase a la que pertenece la instancia a quien se lo solicita. Un ejemplo de implementación de polimorfismo ocurre si tenemos una clase padre llamada Figura a la que le declaramos una operación llamada calculaArea, Figura tiene dos subclases, Circulo y Rectángulo, ambas heredan la operación calculaArea, obviamente su implementación es distinta. En alguna parte del código puede encontrarse la invocación  x.calculaArea( ), donde no importa de que tipo es x, el compilador no lo sabe, no es sino hasta el momento de ejecución que se hará el ligado dinámico con la implementación correspondiente y se ejecutará el código que corresponda al tipo.
Otros ejemplos de polimorfismo ocurren cuando un método puede ofrecer diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado.
Persistencia
Es la habilidad de un objeto de existir más allá de la terminación del programa que lo creó. Permite el almacenamiento de datos en términos de objetos, por ejemplo los archivos son objetos.
Ventajas de la utilizar una metodología orientada a objetos
Los modelos más cercanos al mundo real, por lo que el diseño es más fácil y más rápido.
Los programas y modelos son más fáciles de entender y mantener, más adaptables a requerimientos cambiantes.
Facilitan reutilización aumentando la productividad
Cambios en los requerimientos no implican cambios masivos en el sistema en desarrollo ya que los objetos son unidades autocontenidas.
Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están ocultos.
Es más fácil crear nuevos tipos de objetos a partir de los ya existentes.
Aumentan la confiabilidad.
Son diseños robustos.

Conclusiones
Un sistema debe desarrollarse de forma que abarque la teoría de objetos.
Estos objetos se conocen como objetos del dominio
En conjunto, los objetos constituyen lo que se conoce como modelo del negocio o del dominio
Si el modelo se crea correctamente, el sistema es fácil de mantener.


“The most single important ability in object- oriented analysis and design is to skillfully assign responsibilities to software components”
“… a close second in terms of importance is finding suitable objects or abstractions”
* Craig Larman - autor of Applying UML & Patterns

Booch, Grady, 1994. Objected-Oriented Analysis And Design With Applications, 2nd Ed., Menlo Park, CA: Addison-Wesley.
Jacobson, Ivar. et al. 1992. Object Oriented Software Engineering: a Use Case Driven Approach. Addison Wesley Publishing Company.
Reyes Paredes, Arbis Percy. Conceptos y principios orientado a objetos. Consultado 18 de mayo de 2006. Tomado de: http://www.elguille.info/colabora/NET2005/Percynet_Conceptosyprincipiosorientadoaobjetos.htm

sábado, 17 de septiembre de 2011

UNIDAD 2 - ALGORITMIA Y HERRAMIENTAS LÚDICAS

UNIDAD 2 - ALGORITMIA Y HERRAMIENTAS LÚDICAS
TEMA 1: Conceptos básicos de algoritmia


  1. Que es algoritmia?
  2. Mencione las condiciones con las que debe cumplir la algoritmia.
  3. Realice un algoritmo que cumpla con todos los pasos anteriores.
  4. Cuales son los tipos de algoritmos y explíquelos.
  5. Cuales son las partes de un algoritmo y realice un ejemplo donde se vean claramente.
  6. Defina cada una de las características con las que debe cumplir un algoritmo
  7. Cuales son los elementos que nos sirven para la construcción de un algoritmo y de un ejemplo de cada uno de ellos.
En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y éste a su vez del matemático persa Al Juarismi es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.
Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.

Podemos encontrar muchas definiciones de algoritmo en los textos de programacion, todas ellas muy similares:

  • Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
  • Una secuencia de pasos que conducen a la realización de una tarea.
  • Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.
  • Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.
  • Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso.
  • Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema.
  • Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.
  • Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas.
  • Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos.
  • Un conjunto de símbolos y procedimientos usados en la realización de un cálculo.
Las definiciones mas completas o formales:
  • Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]
  • Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988]
  • Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]


EXISTEN DOS TIPOS:

ALGORITMOS COMPUTACIONALES: Los que realiza una computadora.
ALGORITMOS NO COMPUTACIONALES: Los que realiza el ser humano.

Caracteristicas:
Las características fundamentales que debe cumplir todo algoritmo son:
  • Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
  • Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
  • Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
  • Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
  • Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.

Un ejemplo de algoritmo puede ser:

INICIO
Num1=0, Num2=0, Multiplicacion=0
Escribir "Ingrese el numero 1", Leer Num1
Escribir "Ingrese el numero 2", Leer Num2
Multiplicacion=Num1*Num2
Escribir "La Respuesta Es: ", Multiplicacion
FIN

Tipos de algoritmos:

Las partes fundamentales de un algoritmo son:

Entradas:  Datos necesarios que requiere el proceso para ofrecer los resultados esperados.

Proceso:  Pasos necesarios para solucion del problema o situacion planteada.

Salida:  Resultados arrojados por el proceso como solucion.




Las características fundamentales que debe cumplir todo algoritmo son:

-Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

-Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

-Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos



http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php
http://es.wikipedia.org/wiki/Algoritmo
http://www.slideshare.net/Stephenson/fundamentos-de-algoritmia
http://edgardobuelvas0407.wordpress.com/generalidades/anexo-3-fundamentos-de-un-algoritmo/partes-y-elementos-para-la-construccion-de-un-algoritmo/



  • Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.







  • Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso




  • Los elementos para la construccion de un algoritmo son:

    Comandos
    Datos
    Variables
    Operadores


    Dado que un algoritmo es un conjunto de instrucciones elaboradas con la finalidad de resolver un problema, a continuación se describen los elementos que se utilizan en la construcción de una instrucción.

    Instrucción o sentencia
    Dependiendo del origen del material instruccional se habla de instrucción o sentencia; ésta, define una acción o un mandato que se debe realizar, esa acción o mandato se representa a través de un comando o lo que es lo mismo palabras reservadas de un lenguaje de programación en particular. Una instrucción esta compuesta por uno o más comandos (acción), datos, símbolos, variables o constantes y expresiones, que en conjunto representan una instrucción o sentencia.

    Ejemplo de instrucción: En la construcción de los programas se utiliza una instrucción por línea. Así mismo, se utiliza la identación, que no es más que la alineación de aquellas instrucciones dentro de las estructuras que las contienen de manera ordenada que permita visualizar el inicio y fin de cada bloque de instrucciones.

    Si ASISTIO =”SI” Entonces
    Leer Sueldo,
    Asignar Sueldo = Sueldo + HoraExtra
    Fin Si
    Donde:
    SI
    Representa una estructura condicional utilizada para establecer preguntas
    o programar ciertas condiciones
    ASISTIO
    Nombre de una Variable lógica que puede obtener sólo dos valores “SI”
    o “NO”. En el ejemplo se programa la condición de la variables cuando
    es “SI”
    ENTONCES
    Parte de la instrucción o estructura condicional
    LEER SUELDO
    Instrucción utilizando el comando cuya acción es la lectura de un campo
    o dato
    Asignar SUELDO=
    SUELDO+HORAEXTRA
    Instrucción de asignación, permite asignar o calcular el valor que adquirirá
    una variable
    Fin SI
    Cierra la estructura condicional Si –Entonces –Fin Si


    Comandos o palabras reservadas
    Todos los lenguajes, naturales o computacionales, tienen palabras que denotan una acción. Los comandos no son más que acciones que debe interpretar y ejecutar el computador. Cada comando conserva una sintaxis determinada, es decir la forma de utilizarlo. Los lenguajes computacionales tienen en su repertorio comandos dirigidos al procesamiento de archivos y datos, entre ellos: Leer, Calcular, Asignar, Clasificar, Imprimir.


    Datos
    Los datos son símbolos que se convierten en condiciones, hechos, situaciones o valores. Un dato puede significar un número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una medida, una palabra o una descripción. La importancia de los datos está en su capacidad de asociarse dentro de un contexto para convertirse en información. Es decir, por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no pueden afectar el comportamiento de quien los recibe. Para ser útiles, los datos deben convertirse en información que ofrezca un significado, conocimiento, ideas o conclusiones.


    TIPOS DE DATOS
    Como se describió anteriormente, un dato es un campo que puede convertirse en información.
    Existen datos simples (sin estructura) y compuestos (estructurados).
    Los datos simples son los siguientes
    - Numéricos (Reales, Enteros)
    - Lógicos
    - Carácter (Char, String)

    Los tipos de datos simples son:
    Tipos de datos
    Numéricos Lógicos Carácter
    Reales Enteros Char String
    Ejemplo. Ejemplos de tipos de datos simples
    Tipo de datos Características
    Ejemplos
    Numéricos Enteros

    Los números enteros son los números naturales positivos y negativos que conocemos.
    1
    2
    25
    146
    -456

    Numéricos Reales
    Los números reales, son los números que tienen
    parte decimal.
    0.56
    1.00
    25.13
    148.45
    -456.23

    Lógicos o boléanos
    Son aquellos datos cuyos únicos valores sólo pueden
    ser: Verdadero (V) o Falso (F), puede encontrarse,
    Verdadero (True) o Falso (False). Se utiliza
    para representar las opciones (si/no) a determinadas
    condiciones.
    Nacionalidad = “Venezolano”
    (S/N)?

    Carácter o Char
    Su valor lo comprenden todos los caracteres alfabéticos,
    mayúsculas y minúsculas (A – Z), numéricos
    (0 – 9) y símbolos especiales (#,@,%,&).

    Carácter String o cadena
    Su valor esta representado por un conjunto de caracteres.
    “Abril”
    “Reporte Anual de Fallas
    Técnicas”
    “1º de mayo, Día del
    Trabajador”

    • Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
    • Una secuencia de pasos que conducen a la realización de una tarea.
    • Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.
    • Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.
    • Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso.
    • Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema.
    • Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.
    • Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas.
    • Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos.
    • Un conjunto de símbolos y procedimientos usados en la realización de un cálculo.
    Las definiciones mas completas o formales:
    • Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]
    • Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988]
    • Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]

    viernes, 19 de agosto de 2011

    Taller

    TALLER


     Mostrar el proceso que se realizo para llegar a la respuesta.


    1. Para pasar de binario a decimal

    a) 11001                Solución: 25
    b) 1011011011       Solución: 731



    2⁹
    2⁸
    2⁷
    2⁶
    2⁵
    2⁴
    2⁰
    512
    256
    128
    64
    32
    16
    8
    4
    2
    1





    1
    1
    0
    0
    1
    16
    8
    1
    :
    25
    1
    0
    1
    1
    0
    1
    1
    0
    1
    1
    512
    128
    68
    16
    8
    2
    1
    :
    713





    2. Para pasar de decimal a binario

    a) 869                  Solución: 1101100101
    b) 8426                Solución: 10000011101010


    869
    2









    1
    434
    2


    0
    217
    2


    1
    108
    2


    0
    54
    2


    0
    27
    2


    1
    13
    2


    1
    6
    2


    0
    3
    2


    1
    1
    2









    1
    0









    8426
    2












    0
    4213
    2


    1
    2106
    2


    0
    1053
    2


    1
    526
    2


    0
    263
    2


    1
    131
    2


    1
    65
    2


    1
    32
    2


    0
    16
    2


    0
    8
    2


    0
    4
    2


    0
    2
    2

    0
    1













    1




    3. Para pasar de binario a octal

    a) 111010101        Solución: 725
    b) 1101101            Solución: 155

    1
    1
    1
    0
    1
    0
    1
    0
    1
    7
    2
    5



    0
    0
    1
    1
    0
    1
    1
    0
    1
    1
    5
    5



    4. Para pasar de octal a binario

    a) 2066                Solución: 010000110110
    b) 14276              Solución: 001100010111110

    0
    1
    0
    0
    0
    0
    1
    1
    0
    1
    1
    0
    2
    0
    6
    6



    0
    0
    1
    1
    0
    0
    0
    1
    0
    1
    1
    1
    1
    1
    0
    1
    4
    2
    7
    6






    5. Para pasar de binario a hexadecimal

    a) 110001000       Solución: 188
    b) 100010110       Solución: 116

    0
    0
    1
    1
    0
    0
    0
    1
    0
    0
    0
    1
    8
    8



    0
    0
    0
    1
    0
    0
    0
    1
    0
    1
    1
    0
    1
    1
    6




     6. Para pasar de hexadecimal a binario

    a) 86BF             Solución: 1000011010111111
    b) 2D5E            Solución: 0010110101011110

    1
    0
    0
    0
    0
    1
    1
    0
    1
    0
    1
    1
    1
    1
    1
    1
    8
    6
    B
    F



    0
    0
    1
    0
    1
    1
    0
    1
    0
    1
    0
    1
    1
    1
    1
    0
    2
    D
    5
    E




    7. Para pasar de octal a decimal

    a) 106                Solución: 70
    b) 742                Solución: 482


    1


    0


    6

    0
    0
    1
    0
    0
    0
    1
    1
    0




    7


    4


    2

    1
    1
    1
    1
    0
    0
    0
    1
    0



    2⁹
    2⁸
    2⁷
    2⁶
    2⁵
    2⁴
    2⁰
    512
    256
    128
    64
    32
    16
    8
    4
    2
    1

    0
    0
    1
    0
    0
    0
    1
    1
    0
    64
    4
    2
    :
    70

    1
    1
    1
    1
    0
    0
    0
    1
    0
    256
    128
    64
    32
    2
    :
    482







    8. Para pasar de decimal a octal:

    a) 236               Solución: 354
    b) 52746            Solución: 147012


    236
    2







    0
    118
    2


    0
    59
    2


    1
    29
    2


    1
    14
    2


    0
    7
    2


    1
    3
    2


    1
    1
    2







    1
    0



    0
    1
    1
    1
    0
    1
    1
    0
    0
    3
    5
    4









    <><>
    001100111000001010
    147012

    TAREA.


    Realizar la siguiente conversión y mostrar el proceso que tomaron para llegar a la respuesta.

     
    DECIMAL
    BINARIO
    OCTAL
    HEXADECIMAL
    100
    1100100
    144
    64
    1000
    1111101000
    1750
    3E8
    10000
    010011100010000
    23420
    2710
    1000000
    00011000011010100000
    303240
    186A0