Monday, March 30, 2015

ALGORITMOS Y ESTRUCTURAS DE DECISION

En matemáticaslógicaciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi) es un conjunto prescrito 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 multiplicación, para calcular el producto, 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 dosenteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.
Un programador se enfrenta al desarrollo de un programa con recursos y experiencia. En el diseño de un algoritmo no es en absoluto trascendente saber si lo que necesitamos es una estructura o una herramienta, pero sí será decisivo que conozcamos el recurso necesario, llámese como se llame.

Llamaremos estructura a una instrucción o conjunto de instrucciones que controlan el flujo del programa para que éste sea secuencial, alternativo o repetitivo. De ahí la denominación de estructura secuencial, estructura de decisión o estructura de repetición, que gráficamente podemos asociar a:

                            Esquema o estructura              Esquema o estructura                        Esquema o estructura
                                  secuencial                              de decisión                                 de repetición (bucle)



La potencia de los ordenadores se apoya, como es evidente, en la velocidad, pero también y de forma decisiva en las capacidades para decidir y repetir. En general, a una estructura de repetición se le conoce por “bucle” y así se puede decir “estamos en el bucle 7” ó “estamos en la iteración 7” en alusión a que se trata de la séptima repetición de un proceso.

Pasos para la estructura de decision:



  • Definir cual es la pregunta que se debe responder
  • Definir la condicion que expresa la pregunta que se debe responder
  • Definir que se debe hacer si la condicion es verdadera
  • Definir que se debe hacer si la condicion es falsa.

El ciclo o estructura de decision que abordamos para desarrollar nuestro primeros algoritmos es el ciclo SI.
Este consta de la siguiente estructura

SI  Condicion
          Instrucciones para cuando la condicion es verdadera
DE_LO_contrario
          Instrucciones para cuando la condicion es falsa
FIN(SI)

Ejm:

if (salario_actual < 1000);
    aumento=salario_actual*0.1;
else
    aumento=0;

end

Cybergrafia


  • http://es.wikipedia.org/wiki/Algoritmo
  • http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=317:estructuras-de-decision-secuencial-y-de-repeticion-en-programacion-esquema-algoritmico-cu00141a&catid=28:curso-bases-programacion-nivel-i&Itemid=59
  • http://www2.udearroba.co/course/view.php?id=544
INTRODUCCION A MATLAB

MATLAB® es el lenguaje de alto nivel y el entorno interactivo utilizado por millones de ingenieros y científicos en todo el mundo. Le permite explorar y visualizar ideas, así como colaborar interdisciplinarmente en procesamiento de señales e imagen, comunicaciones, sistemas de control y finanzas computacionales.
Puede emplear MATLAB en proyectos tales como modelizar el consumo de energía para redes eléctricas inteligentes, desarrollar algoritmos de control para vehículos hipersónicos, analizar datos climatológicos para visualizar el recorrido y la intensidad de los huracanes, y ejecutar millones de simulaciones para afinar la dosis óptima de los antibióticos.

Para nuestro caso, vamos a utilizar el lenguaje MATLAB, que es un compilador que recibe el codigo C++ y en el que se pueden crear infinidad aplicaciones, puedes hacer programas que hagan calculos estadisticos, contables o matematicos, ademas puedes crear interfaces graficas y muchas otras cosas interesantes, aunque obviamente necesitaran estudiar con detenimiento las normas y pautas para programar en Matlab y asi lograr todos estos desarrollos.

Aqui podemos ver un ejemplo de un codigo simple desarrollado en MATLAB
Este corto programa nos permite comparar dos numeros y nos informa cual es el mayor de ellos

A=input('ingrese A');
B=input('ingrese B');
if A>B;
    disp(A),disp('es mayor que'),disp(B);
else
    disp(B),disp('es mayor que'),disp(A);
end;

Estas son las ordenes necesarias para realizar un programa en MATLAB:
  • y=input(x):=nos toma lo que se digite y se lo asigna al nombre de la variable y lo que esta en el parentesis aparecera en la pantalla
  • if := es una estructura de decision que analizaremos despues con mas detenimiento

Cybergrafia:

http://www.mathworks.com/cmsimages/64848_wl_cc_logo_membrane_2002_wl.gif
http://es.mathworks.com/products/matlab/

Thursday, March 12, 2015

Algoritmia Basica

Para aprender a programar en cualquier lenguaje es necesario aprender las normas basicas que rigen los codigos que acepta un computador, es decir, el PSEUDOCODIGO, ya que este nos permite aprender a "hablar" con el computador, de tu a tu, y nos da las bases para crear nuevos programas y aplicaciones. Despues de esto, es solo elegir un compilador o lenguaje de programacion para aplicar tales conocimientos, y lo que cambiara sera, las palabras propias y los comandos unicos de cada lenguaje, pero las reglas del Pseudocodigo se seguiran aplicando.


Los pasos para crear un algoritmo son:


  • Analisis del problema
  • Diseño de la solucion
  • Construccion del algoritmo
  • Prueba de escritorio
La forma general para un algoritmo es:

Algoritmo nombre_del_algoritmo
          Definicion de variables
          INICIO
                 Instrucciones del programa
          FIN
FIN (nombre_del_algoritmo)

Las variables son los datos que vamos a utilizar en el desarrollo del algoritmo, estas pueden cambiar su valor y pertenecen a un tipo de dato concreto. Al declarar la variable se debe indicar a que tipo de dato pertenece.

Las variables pueden ser:
  • Numerica entera
  • Numerica real
  • Mensajes
  • Booleana
las variables seran tomadas por medio de la expresion LEA, con la cual asignaremos los valores a las variables declaradas anteriormente, y con el comando ESCRIBA podemos mostrar mensajes y valores al usuario.

A continuacion, podremos ver un ejemplo de un pseudocodigo simple:

Este es un algoritmo que pide al usuario que ingrese su nombre, para luego saludarlo

Algoritmo Saludo
        Variables:
               nombre_usuario: alfanumerico
        INICIO
               ESCRIBA("por favor, ingrese su nombre:")
               LEA(nombre_usuario)
               ESCRIBA("Hola,"nombre_usuario)
       FIN
Fin(Saludo)

Con el tiempo, podremos avanzar en la implementacion de algoritmos para solucionar problemas mas complejos cada vez. Veamos otro ejemplo:

Un empleador requiere calcular el salario neto de sus empleados, para esto requiere un programa que reciba el valor de la hora del empleado y el numero de horas que trabaja en un mes.
El programa debe mostrar el salario neto que debe pagar al empleado despues de restarle la retefuente del 10%.

ENTRADA
       numero_horas : entero
       valor_hora: virtual
SALIDA
       salario_neto: real
Algoritmo salario neto
      VARIABLES
               numero_horas: entero
               valor_hora: real
               salario_neto: real
               salario_bruto: real
              valor_retenido: real
      INICIO
             ESCRIBA("por favor ingrese numero de horas y valor")
             LEA(numero_horas,valor_hora)
            salario_bruto=numero_horas*valor_hora
            valor_retenido=salario_bruto*0.1
            salario_neto=salario_bruto-valor_retenido
            ESCRIBA("su salario neto es"salario_neto)
    FIN
FIN salario neto

Cybergrafia:
  • http://www2.udearroba.co/pluginfile.php/89453/mod_resource/content/0/Modulo_6/Estructuras_Algoritmos.pdf
  • https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidniI7PXK8A8-xWhaNAm9MRgRqQnxd0Y9o4qITS8BAQdajFi6ZHpYQ7_J4oynZ6Rwk5QTBc_8KJTDi050l_7rd2i9Zb9WsOtvKp165B-Iggti8SwiFOevJ5gol4dpApLa0VXrzqQ5Jzm4f/s1600/Image24011.gif
  • http://programadoraplicaciones.bichotoblog.com/wpcontent/uploads/2010/10/pseudocodigo1.png

HARDWARE SOFTWARE Y HUMANWARE

El HARDWARE es la parte fisica de un computador, es todo lo tangible lo que podemos tocar  y lo que nos permite la interaccion con la maquina.

El SOFTWARE es la secuencia logica de pasos que definen las operaciones para realizar cada tarea. tambien puede ser tomado como el conjunto de datos que se manipulan en el desarrollo de cada tarea.

El HUMANWARE  es el ser que interactua con la maquina, es quien le saca su valor y provecho, y no solo hablamos de un computador, sino de cual dispositivo creado para uso del hombre. Un ejemplo simple podria ser una maquina de cafe, en la cual el humanware es la persona que realiza correctamente la secuencia para la cual fue programada la maquina y obtiene un delicioso cafe de esta.

Las listas de instrucciones, los algoritmos y los programas son conceptos muy similares, pero dependen del contexto donde se usen.

Las secuencias logicas de pasos(software), en general, se representan como Listas de Instrucciones, ya que de este modo se permite definir un orden para los pasos y evaluar la coherencia de los mismos.

Las listas de instrucciones son un conjunto finito y ordenado de instrucciones destinadas a un ejecutante especifico. como por ejemplo una receta de cocina. Las listas son un concepto bastante amplio  que deja mucha libertad a quien las define, por eso la computacion usa ALGORITMOS.


De manera informal, el algoritmo es un conjunto predefinido de instrucciones o reglas bien definidas, ordanadas y finitas, que permiten realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute.

Cybergrafia

  • http://www.warner-robinson.com/wp-content/uploads/8898667-software-magnifying-glass-over-background-with-different-association-terms-vector-illustration.jpg
  • http://www.informatica-hoy.com.ar/imagenes-notas/2011/pc-hardware-0.jpg
  • http://www.carlospes.com/curso_de_algoritmos/imagenes/ejemplo_10_05.gif

SISTEMAS NUMERICOS

El sistema corriente de notación numérica que es utilizado hoy y en casi todo el mundo es la numeración arábiga. Este sistema fue desarrollado primero por los hindúes y luego por los árabes que introdujeron la innovación de la notación posicional; en la que los números cambian su valor según su posición. La notación posicional solo es posible si existe un número para el cero. El guarismo 0 permite distinguir entre 11, 101 y 1001 sin tener que agregar símbolos adicionales. Además todos los números se pueden expresar con sólo diez guarismos, del 1 al 9 más el 0. La notación posicional ha facilitado muchísimo todos los tipos de cálculos numéricos por escrito.



 En matemáticas, varios sistemas de notación que se han usado o se usan para representar cantidades abstractas denominadas números. Un sistema numérico está definido por la base que utiliza. La base de un sistema numérico es el número de símbolos diferentes o guarismos, necesarios para representar un número cualquiera de los infinitos posibles en el sistema.

A lo largo de la historia se han utilizado multitud de sistemas numéricos diferentes.

       La posición de una cifra indica el valor de dicha cifra en función de los  valores exponenciales de la base. En el sistema decimal, la cantidad representada por uno de los diez dígitos  -0, 1, 2, 3, 4, 5, 6, 7, 8 y 9-  depende de la posición del número completo.Este es el que utilizamos en la vida diaria y se cree que fue desarrollado en torno a la base 10 ya que todos tenemos 10 dedos en las manos, lo cual facilitaba a los antiguos el conteo con la ayuda de sus dedos.

Para convertir un número n dado en base 10 a un número en base b, se divide (en el sistema decimal) n por b, el cociente se divide de nuevo por b, y así sucesivamente hasta obtener un cociente cero.
Sistema binario
El sistema binario desempeña un importante papel en la tecnología de los ordenadores. Los números se pueden representar en el sistema binario como la suma de varias potencias de dos.
Ya que sólo se necesitan dos dígitos; el sistema binario se utiliza en ordenadores y computadoras.


Para hacer la conversion de nuestro sistema decimal al sistema binario, se tienen varias tecnicas, pero la mas simple es hacer divisiones consecutivas por 2 y tomar los residuos de tales divisiones como las cifras del numero binario(ya que este sistema cuenta solo con unos y ceros) pero estos deben tomarse para su posicion en la cifra final de atras hacia adelante, es decir el ultimo residuo en ser hallado va a ser el primer numero de la cifra binaria


Cybergrafia:

  • http://www.mat.uson.mx/~jldiaz/clip-1.2.SN.html
  • https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbZenWl9YwnG_5K2Gg4TBn_doo_23xhXwzeoAg9MRQa2yRDF_CWNqAaD45Q_dqj8IKAjiAwYXfCXrd2HG7ugJ_mL39tQICjTYHJvdhIj2q5KZr36FLJyZLE32ObvmMNItbjbAlqETUIDhV/s1600/Mapa_Sistemas_Numericos.jpg
  • https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNI6n41Hs5px5ZKqo-mUgxbwIoYqD4CEFGd8voWeunljHQGRnr0lbDkWci-yz5aqgtMhDNbtt8q1HTjPx09DI_ifMekyUqUlezRXbtO64PGxRhCYvnd9VTEoruxhFfSfMuupO_tnKG2iY/s1600/imagen+h.png
  • http://www.ladelec.com/imagenes/frac_a_bin.gif

ARQUITECTURA DEL COMPUTADOR

Arquitectura de Computadores

Estamos viviendo en una era que nos permite comunicarnos con gran facilidad y en la que podemos enterarnos de todo lo que pasa en cualquier lugar del mundo de forma casi inmediata, esta es la ERA DE LA INFORMACION, pero esta era no seria nada si no fuera por la invencion del computador u ordenador personal, porque aunque en el presente se cuente con smartphones y tablets para acceder a los contenidos de la web, todo inicio con la creacion del computador.



Ahora, que tanto conocemos de esta vital herramienta de la era  de la informacion en la que nos encontramos. Vamos a darle un vistaza general a la estructura del computador personal:


Los cinco elementos fundamentales que componen el hardware son: la unidad aritmético-lógica, la unidad de control, la memoria, la entrada, y la salida. La unidad aritmético-lógica realiza operaciones aritméticas y compara valores numéricos.





La unidad de control dirige el funcionamiento de la computadora recibiendo instrucciones del usuario y transformándolas en señales eléctricas que puedan ser comprendidas por los circuitos del ordenador. La combinación de la unidad aritmético-lógica y la unidad de control se denomina unidad central de procesamiento, o CPU (siglas en inglés = Central Process Unit). La memoria almacena instrucciones y datos. Las secciones de entrada y salida permiten respectivamente que la computadora reciba y envíe datos.


Pero en terminos mas simples el computador consta de un:

Monitor: que nos muestra los procesos que estamos desarrollando con el PC, en una pantalla

CPU: la cual contiene la Motherboard en la que esta incorporado el microprocesador que puede denominarse el cerebro del computador, el disco duro que sirve de memoria ROM, que es donde se almacena la informacion, y la memoria RAM que es la memoria volatil, es decir, por llamarla de alguna manera de corto plazo la cual, segun su capacidad nos mostrara las cosas con cierta velocidad.

En la CPU tambien se encuentran los puertos y buses que nos permiten conentar variedad de dispositivos para nuestra interaccion con el dispositivo, tales como puertos usb, c-rom y otros.

Teclado: Es un dispositivo de entrada que contiene las teclas que nos permite ingresar comandos a la cpu para accesar a las diferentes aplicaciones

Mouse: Es otro elemento de entrada que facilita en gran medida la interaccion con el PC, pero este no es del todo indispensable, ya que todo lo que se hace con el mouse se puede hacer con el teclado.

Esto es, a grandes rasgos como esta constituido un computador y sus principales elementos, y ya que todos sabemos la importancia que tiene este dispositivo para nuestras vidas, es importante tener al menos una idea de su arquitectura interna y externa.


Cybergrafia:

  • http://introsis-ufps.blogspot.com/p/21-arquitectura-de-computadores.html
  • http://www.ecured.cu/images/thumb/8/8a/Arquitectura_de_Computadora.jpg/260px-Arquitectura_de_Computadora.jpg
  • http://www.monografias.com/trabajos93/monografia-mantenimiento-computadoras/image001.jpg
  • http://es.wikipedia.org/wiki/Computadora
  • http://www.monografias.com/trabajos93/monografia-mantenimiento-computadoras/image001.jpg
  • http://es.wikipedia.org/wiki/Computadora

Tuesday, March 10, 2015

buenas tardes este es mi primer blog y lo cree para la clase de algoritmos de programacion de la universidad de antioquia