principios basicos de la programación

Upload: armandora

Post on 08-Jan-2016

10 views

Category:

Documents


0 download

DESCRIPTION

PARA MICROCONTROLADORES

TRANSCRIPT

PRINCIPIOS BASICOS DE LA PROGRAMACINA. Problema y anlisis de datosUn problema en la computacin es una tarea propuesta para solucin que puede ser solucionado por medio de la computadora utilizando un programa. Programar es automatizar y definir una serie de procesos para resolver un problema y obtener un resultado final.Anlisis de datos es una metodologa cuyo objetivo es la coleccin, comprensin, tratamiento y modificacin de los datos de diferente tipo.Tipos de datos. Cada problema procesa datos de distintos tipos: Numricos: por ejemplo, para cuentas bancarias, temperaturas; Alfanumricos: por ejemplo, para nombres y direcciones; Lgicos: utilizados en el diseo de un circuito; etc.B. Metodologa para la solucin de problemas utilizando computadoraCuando tiene un problema y necesita solucionarlo utilizando la computadora debe seguir los siguientes pasos:1. Definir el problema - Definir que desea que realice la computadora2.- Analizar el problema - Definir: Los datos de entrada Cul es la informacin que se desea producir (salida). Los mtodos y formulas necesarios para procesar los datos.3. Disear el algoritmo o el diagrama de flujoLas caractersticas de un buen algoritmo son: Tener un punto particular de inicio. Ser definido, no permitir dobles interpretaciones. Ser general, es decir, soportar la mayora de las variantes que se puedan representar en la en la definicin del problema. Ser finito en tamao y tiempo de ejecucin.4. Escribir el programaDe acuerdo a la lgica del diagrama de flujo o pseudocdigo debe escribir una serie de instrucciones detalladas, en un cdigo reconocible por la computadora. A esta serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel5. Compilar y depurar el programaCompilar el programa significa traducir el programa de un lenguaje de alto nivel al lenguaje de la mquina, para que la maquina pueda entender las instrucciones y ejecutarlos. Existen muchos compiladores. Por ejemplo en el lenguaje C se utiliza el estndar de Sun. El tcc es el compilador. El compilador GNU de C es gcc, el cual es bastante popular y est disponible en varias plataformas.Existen tambin compiladores equivalentes de C++ los cuales usualmente son nombrados como cc. Por ejemplo, Sun provee CC y GNU gcc. El compilador de GNU es tambin denotado como g++. Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del programa. El proceso de identificar y eliminar errores de un programa para que funcione correctamente sin errores se le llama depuracin (debugging).Si existen obvios errores en el programa (tales como palabras mal escritas, caracteres no tecleados u omisiones de punto y coma), el compilador se detendr y los reportara. Desde luego podra haber errores lgicos que el compilador no podr detectar. Cuando el compilador ha terminado con xito, la versin del programa ya est compilada y ejecutable.6. Ejecutar el programaEl siguiente paso es correr el programa ejecutable. En algunos lenguajes se utiliza la opcin run (ejecutar). Por ejemplo para correr un ejecutable escrito en el lenguaje C o C++ en DOS, simplemente se escribe el nombre el archivo. Al ejecutar el programa normalmente se mostrara algn resultado en la pantalla. En este paso, podra haber errores en tiempo de ejecucin (run-time errors), tales como divisin por cero, o bien, podran hacerse evidentes al ver que el programa no produce la salida correcta.Si lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y ejecutarlo nuevamente.7. Elaborar la documentacinLa documentacin es la gua o comunicacin escrita que nos ayuda a comprender como usar un programa para facilitar sus futuras modificaciones. Puede presentarse en diferentes formas como procedimientos, dibujos o diagramas. La documentacin se divide en tres partes: Documentacin Interna - Comentarios o mensajes que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso. Documentacin Extena - Contiene la descripcin del problema, el nombre del autor, el algoritmo (diagrama de flujo o pseudocdigo), diccionario de datos, cdigo fuente (programa), etc. Manual del Usuario Describe paso a paso la forma en que funciona el programa, con el fin de que el usuario obtenga el resultado deseado.7. MantenimientoSe lleva acabo despus de terminar el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.C. Lenguaje de programacinUn lenguaje de programacin es un conjunto de smbolos, caracteres y reglas (programas) que permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que dan la posibilidad de realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica (comparacin y almacenamiento) recuperacin, etc.Los lenguajes de programacin se clasifica en: Lenguajes de la mquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria ms pequea, el bit (digito binario 0 o 1). Ocho bits forman un byte. Los lenguajes de la maquina dependen de ella y pueden utilizarse slo en el tipo de computadora para cual estn escritos. Ejemplo: 01100011, 01011110, 10100100.

Lenguaje de bajo nivel (Ensamblador): En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas.El cdigo representa normalmente datos e instrucciones para manipularlos. Un modo ms fcil de comprender el cdigo maquina es dando a cada instruccin un mnemnico. Los lenguajes de bajo nivel permiten crear programas muy rapidos y compactos, pero que a menudo son difciles de aprender. Cabe destacar que los programas escritos en un lenguaje de bajo nivel son especficos para cada procesador. Si se lleva el programa a otra mquina con diferente arquitectura de procesador se debe reescribir el programa desde el principio.

Lenguaje de alto nivel: Los lenguajes de programacin de alto nivel (VISUAL BASIC, C, C++, PASCAL, BASIC, FORTRAN, COBOL y otros) son aquellos en los que las instrucciones o sentencias para la computadora son escritas con palabras similares al lenguaje humano (en general en ingls), lo que facilitan la escritura y comprensin del programa. Existe tambin una relacin compleja entre los lenguajes de alto nivel y el cdigo mquina.Cada programa debe traducirse del lenguaje de programacin (de alto nivel) al lenguaje de la computadora (mquina). Esto se hace a travs de compiladores (traductores) que transforman el programa de un lenguaje de ms alto nivel a lenguaje mquina para que la computadora pueda comprenderlo y ejecutarlo.

Intrpretes y compiladores: la traduccin de una serie de instrucciones en lenguaje ensamblador (el cdigo fuente) a un cdigo maquina (o cdigo objeto) se realiza normalmente por un programa especial llamado compilador. La traduccin de un cdigo fuente de alto nivel a un cdigo maquina tambin se realiza utilizando compilador ms complejo llamado interprete o traductor. Un compilador crea una lista de instrucciones de cdigo maquina llamado cdigo objeto, basndose en un cdigo fuente.El cdigo fuente resultante es un programa rpido y listo para funcionar, pero que puede hacer que falle la computadora si no est bien diseado. Los intrpretes son ms lentos que los compiladores ya que no producen un cdigo objeto, sino el cdigo fuente por lnea.Cada lnea se traduce a cdigo mquina y se ejecuta. Cuando la lnea se lee por segunda vez, como en el caso de los programas en que se reutilizan partes del cdigo, debe compilarse de nuevo. Aunque este proceso es ms lento, es menos susceptible de provocar fallas en la computadora.Debajo se muestra la transformacin del lenguaje fuente (de alto nivel) al lenguaje objeto (mquina).1. Lenguaje fuente2. Lenguaje objeto3. Librera y lenguaje ensamblador4. Vnculos5. Programa ejecutable1111

5342222

D. Qu es un programa?El procesamiento de datos tiene tres pasos:1. Entrada Los datos entran a travs del teclado, ratn, escner, otras computadoras, etc. En el caso de los microcontroladores sern los push button, dip switch, sensores e interruptores en general.2. Procesamiento Los datos se utilizan para hacer los clculos y/o cambios correspondientes, se transforman y se almacenan despus. Esto lo realiza el microcontrolador internamente manipulando sus bancos de memoria.3. Salida El resultado en forma de datos poder verse a travs de la pantalla, impresora, enviarse a otra computadora, etc.en el caso de los microcontroladores sern leds, lmparas indicadoras, bocinas, motores, lcds, matrices de leds, etc.Un programa es un conjunto de instrucciones escritas en un determinado lenguaje ( po ejemplo: COBOL, C++, VISUAL BASIC,etc) que dirigen a la computadora para la ejecucin de una serie de operaciones, con el objeto de resolver un problema que se ha definido previamente.Elementos de un programa: Datos(variables) Instrucciones o sentencias (cdigo o funciones)Las variables son los bloques bsicos para la construccin de un programa y las instrucciones (sentencias) le indican a la computadora que hacer con el programa. Tambin puede usar comentarios, estas notas permitirn tener un programa claro y fcil de entender.Al igual que en una construccin se pide el material antes para poder comenzar. En un programa debe declarar las funciones antes de usarlas.

E. AlgoritmosLa palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre la manipulacin de nmeros y ecuaciones en el siglo IX.Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir para dar solucin a un problema especfico. Es un procedimiento matemtico o lgico para lograr un fin determinado. Antes de escribir el programa debe tener muy claro el algoritmo que mostrara los pasos a seguir para resolver el problema. Los algoritmos tienen una entrada de datos, un procedimiento a seguir y una salida de datos.Un algoritmo debe contener instrucciones de control que nos permitan decirles al procesador paso a paso que hacer y cuando terminar la tarea.Por qu necesitamos algoritmos? Los problemas complejos deben ser divididos en partes ms simples. Cada problema simple puede ser solucionado aparte. Utilizando algoritmos se puede ver ms claro la ruta para solucionar el problema que nos ahorra tiempo.Caractersticas de los algoritmosLos algoritmos deben ser: Claros en su definicin. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Precisos e indicar el orden de realizacin de cada paso. Finitos y terminar despus un cierto nmero de pasos.

Representacin de algoritmosExisten diversas formas de representan algoritmos. Dentro de las comunes se encuentran los diagramas de flujo y el pseudocdigo. Cada uno tiene sus ventajas y desventajas, todo depende del gusto de la persona que aplica el algoritmo.F. Qu es un diagrama de flujo?El diagrama de flujo (flow chart) es la representacin grfica de un algoritmo y muestra los algoritmos de una manera clara y comprensible.Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora) se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalizacin. Los elementos que se emplean para los diagramas son los siguientes:SmboloFuncin

Inicio

Inicio de una secuencia (programa o subrutina).

Salida

Encendido o controlar las salidas, por ejemplo LED, motores, sirenas, etc.

Proceso

Comandos de proceso, por ejemplo, subrutinas, retrasos, etc.

Decisin

Comprobacin de las entradas, por ejemplo, interruptores (digitales) o sensores (analgico / digital).

Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones

A

Conector dentro de la pgina. Representa la continuidad del diagrama dentro de la misma pagina

Fin

Fin de una secuencia (programa o subrutina).

Ejemplo. El diagrama de flujo siguiente ilustra un sencillo programa para controlar una barrera automtica de vehculos en un aparcamiento.Las especificaciones del sistema de control son los siguientes:1. Un sensor detecta un vehculo que se aproxima.2. Pin 1 comprueba si hay entrada del sensor.En caso afirmativo...3. Salida 0 levanta la barrera.4. Un segundo sensor detecta que el vehculo se aleja de la barrera.5. Pin 2 comprueba si hay entrada del sensor.En caso afirmativo...6. Salida 2 reduce la barrera.

G. Qu es un pseudocdigo?El pseudocdigo se encuentra a un solo paso de transformarse en un lenguaje de programacin. A diferencia de un diagrama de flujo no es grafico sin embargo puede leerse y es igual de comprensible. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar.El pseudocdigo es la parte de programa que puede ser utilizada en un programa real. No puede ser compilado ni ejecutado, es simplemente un paso para elaborar el cdigo final. La ventaja del pseudocdigo es que permite al programador utilizarlo en varios cdigos sin la necesidad de escribirlo nuevamente.Ventajas de utilizar un pseudocdigo a un diagrama de flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin H. Qu es un cdigo?El cdigo puede ser:1) Un conjunto de instrucciones para la computadora2) Un conjunto de smbolos, por ejemplo el cdigo ASCII. El cdigo contiene la informacin en una forma apropiada para la comunicacin y el procesamiento.Tipos de cdigos1. Binario - Cdigo utilizado en la computadora donde toda la informacin es Representada con dos dgitos = 0 o = 1. Un Bit = 1 o 0. Un Byte = 8 bits.2. Decimal - Cdigo donde la informacin se representa con 10 dgitos del 0 al 9.3. Octal - En l la informacin se representa con 8 dgitos del 0 al 7.4. Hexadecimal Cdigo en el cual la informacin se representa con 16 dgitos del 0 al 9 y con las letras de la A a la F.

I. Tipos de estructuras algortmicas

La estructura es el modo en que se pueden agrupar y organizar las acciones de un programa.Las estructuras algortmicas son:A. Simples o secuencialesB. CondicionalesC. CclicasA. Las estructuras secuenciales contienen: Asignacin Procesamiento SalidaLa estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso.La secuencia es la ms simple y la ms comn de todas las estructuras y constituye la esencia de toda tarea programada. Las estructuras secuenciales se componen de: la secuencia independiente y la secuencia dependiente.Pasos de una secuencia:1. Un conjunto de acciones que se ejecutan por una vez al comienzo del proceso, llamado proceso inicial. Generalmente consiste en la apertura de archivos, ubicacin en un lugar determinado del conjunto, inicializacin de variables, impresin de encabezados de pgina, etc.2. Un conjunto de acciones que se ejecutan a continuacin, llamado proceso central. Entre las acciones de este grupo siempre se incluye una estructura de iteracin que se ocupa de la lectura de un dato y su procesamiento cuenta, acumulacin, operacin matemtica, etc.3. Un conjunto de acciones que se ejecutan por nica vez al final del proceso, al que llamaremos proceso final. Generalmente consiste en cierre de archivo, informe de resultados, impresin de la pgina, etc.InicioAccion1Accion2..

Fin

Inicio

Proceso

Inicio

B. Las estructuras condicionales contienen: Asignacin Procesamiento La operacin del programa cambia dependiendo de una condicin SalidaLas estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn que se requiera. Existen dos tipos bsicos de estructuras condicionales: las simples y las mltiples. Simples: la estructura condicional simple se les conoce como tomas de decisin. Estas tomas de decisin tienen la siguiente forma:Decisin

Falso VerdaderoProcesoSi entoncesAccion(es)Fin-si

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin.Se presenta de la siguiente forma:DecisinProceso1Proceso2

Si entoncesAccion(es)SinoAccion(es)Fin-si

No si Condicionales Mltiples: Las estructuras de comparacin multiples, son tomas de decisin especializada que permiten comparar una variable contra distinta posibles resultados, ejecutando para cada caso una serie de instrucciones especficas. Hay dos formas comunes:Si entoncesAccion(es)Si noSi entoncesAccion(es)Si noAccion(es)Fin-siFin-si

Proceso3Proceso2Decisin2Decisin1Proceso1

No si

Casos variableOp1: Accion(es)Op2:Accion(es)..OpN:Accion(es)Fin-casosOpcion1Opcion4casoOpcion2Opcion3

C. Estructuras cclicas Para - Siempre (For Next) Hacer Mientras .Repetir (Do whileLoop) Hacer Hasta Repetir (Do Until.Loop)