Introduccion a la programacion

 

Embed or link this publication

Popular Pages


p. 1

capítulo 1 introducción a la programación 1.1 un ejemplo con el fin de exponer una noción de lo que es programar veamos el siguiente ejemplo suponga que un familiar suyo estuvo de viaje visitó japón y le trajo de presente un robot que solamente atiende a los dos siguientes tipos de ordenes avanzar x centímetros girar x grados una secuencia de ellas es posible dárselas al robot para que recorra un camino determinado si queremos indicarle al robot la carita feliz de color turquesa que aparece en la figura 1.1 que se desplace hasta donde está el objetivo debemos de algún modo decirle lo que debe hacer si suponemos que cada rectángulo de la cuadricula tiene diez centímetros de lado las ordenes le dariamos a nuestro alegre amigo para alcanzar el objetivo podrian ser algo como código 1 ejemplo de instrucciones para llegar al objetivo 1 2 3 4 avanzar 70cm girar 90 grados a la izquierda avanzar 250cm avanzar 80 cm aunque ahora es posible darle algunas instrucciones a las máquinas mediante la voz por ahora se las daremos a la antigua escribiendolas 1

[close]

p. 2

2 1.1 un ejemplo figura 1.1 un robot para hacerlo debe existir algún tipo de teclado que nos permita digitarlas la ordenes se graban para que se ejecuten una a una si el robot toma las instrucciones dadas anteriormente relizará un recorrido como el mostrado en la figura 1.2 lo que se acaba de hacer es programar la programación de sistemas reales no difiere mucho de lo aquí mostrado bueno posiblemente se tengan a la mano más instrucciones y un sistema que no se llame smile figura 1.2 ejecución de intrucciones.

[close]

p. 3

1 introducción a la programación preliminar 18 de febrero de 2008 3 1.2 sistemas programables algoritmos y programas hoy en día las computadoras ya sean de propósito general o especifico están por todas partes teléfonos electrodomésticos aviones etc y realizan tareas de todo tipo desde reproducir vídeo hasta controlar trayectorias de disparo de tanques todas esas máquinas de cómputo requieren como cualquier máquina que se enciendan y sean controladas para realizar una realizar una tarea específica la diferencia entre una computadora y un tractor sin computadora de abordo es que al tractor lo controla una persona y a la computadora lo que denominamos un programa también llamado software las computadoras son un ejemplo de sistemas básados en programa almacenado todos estos sistemas poseen un procesador central cuya actividad de una forma simple puede resumirse a 1 obtener una instrucción 2 determinar que instrucción es 3 ejecutar la instrucción 4 ir al paso número 1 el conjunto de instrucciones que se desea que el sistema ejecute se almacena en algun tipo de memoria ram o rom dependiendo del sistema por ejemplo muchos de los microcontroladores el programa se almacena en rom mientras que en las computadoras los programas son cargados a memoria ram por el sistema operativo para su ejecución en la figura 1.3 se muestra un ejemplo de estructura de un sistema basado en procesador todo programa comienza con idea algo que se quiere hacer generalmente ese algo resulta como solución a un problema específico la solución de un problema requiere el diseño de un algoritmo algoritmo palabra que proviene del nombre de un matemático y astrónomo árabe al-khôwarizmi del sigo ix que escribio un tratado sobre la manipulación de números y ecuaciones llamado kitab al-jabr w almugabala un algoritmo es una secuencia ordenada de pasos no ambiguos expresados en lenguaje natural que conducen a la solución de un problema dado los algoritmos deben cumplir con algunas características:

[close]

p. 4

4 1.2 sistemas programables algoritmos y programas figura 1.3 sistema basado en procesador preciso indica el orden de realización de cada uno de los pasos definido si a un algoritmo se le suministra varias veces los mismos datos los resultados deben ser los mismos finito el algoritmo debe terminar en algún momento los algoritmos son soluciones abstractas a problemas ellos generalmente son codificados en un lenguaje de programación y luego traducidos para que una computadora los pueda ejecutar y solucionar entonces un problema real los algoritmos son independientes del lenguaje de programación y de la máquina que lo ejecute una analogia de la vida real [joyanes1989 la receta de un plato de cocina puede expresarse en ingles frances o español e indicará la misma preparación independientemente del cocinero lenguaje de programación son conjuntos de instruccines con que se pueden escribir los algoritmos para que un sistema lo ejecute existen múltiples tipos de lenguajes de programación lenguaje de máquina es un lenguaje compuesto por códigos binarios que un sistema puede ejecutar directamente los programas ejecutables son precisamente secuencias de instrucciones en lenguaje de máquina un ejemplo de intrucciones en lenguaje de máquina es 0011 0000 0001 0101 0001 0011 las anteriores intrucciones le indican a un procesador que sume dos datos y que luego multipliquen ese resultado por otro las instrucciones en lenguaje de máquina estan compuestas de un código que

[close]

p. 5

1 introducción a la programación preliminar 18 de febrero de 2008 5 identifica la instrucción opcode y uno o varios operandos o referencias a los mismos depende del tipo de procesador sobre la cual se esté programando intel motorola atmel etc cada uno de ellos tiene códigos de operación diferentes lenguajes ensambladores escribir programas funcionales en lenguaje de máquina es una tarea que pocas personas desean hacer pues es muy propenso a errores y tedioso por ello a alguien se le ocurrío asociar símbolos o mnemonicos a las instrucciones que una máquina podia realizar por ejemplo en algun lenguaje ensamblador las instrucciones en lenguaje de máquina antes mencionadas quedarían add [0 [1 mul [1 [3 para convertir los programas en lenguaje ensamblador a código de máquina se usa un programa llamado ensamblador lenguajes de alto nivel son lenguajes que tienen conjuntos de instruccines similares a las palabras del idioma ingles o algún otro que son más fáciles de entender por los seres humanos en c las instrucciones para hacer lo que hicimos en lenguaje de máquina y ensamblador serían res a+b c existen muchos lenguajes que se pueden llamar de alto nivel basic pascal fortran lenguaje c comparado con el lenguaje ensamblador es de alto nivel pero tiene la característica de permitir acceder a muchos de los recursos de hardware disponibles en un sistema por lo que mucho lo clasifican como lenguaje de nivel medio para convertir los programas escritos en un lenguaje de alto nivel en codigo de máquina se tienen las siguientes opciones · intérpretes en los lenguajes interpretados cuando se ejecuta un programa cada instrucción se traduce a lenguaje de máquina y a continuación se ejecuta ejemplos de lenguajes interpretados son matlab python smalltalk.

[close]

p. 6

6 1.2 sistemas programables algoritmos y programas · compiladores traducen completamente los programa fuente a lenguaje de máquina ejemplos de lenguajes compilados son c/c pascal fortran cobol · híbridos en los últimos años aparece una especie de lenguajes que combinan las dos opciones anteriores existe un compilador que traduce el código fuente en un código intermedio que es ejecutado por un programa especial denominado máquina virtual ejemplos de esto son java y los lenguajes de la plataforma .net de microsoft 1.2.1 el proceso de traducción como se había mencionado antes cuando se tiene un algoritmo listo es posible programarlo en algún lenguaje de programación con el fin de ejecutarlo en una computadora para ello es necesario traducirlo a código de máquina el proceso de generación de un programa puede dividirse en los siguientes pasos 1 se escribe el algoritmo en algún lenguaje de programación en un editor de texto y se guarda en un archivo 2 se utiliza un compilador para generar el ejecutable en este paso si existen errores de sintaxis el compilador genera un mensaje de aviso en la figura 1.4 se muestra esquematicamente el proceso de traducción de un programa escrito en un lenguaje de alto nive a código entendible por una máquina 1.2.2 un poco de historia de los lenguajes de programación según lo que se dice fue charles babage a mediados del sigo xix el que creo el primer lenguaje de programación dicho lenguaje era para una máquina diseñada por él llamada la máquina analítica como compañera de babage estaba ada byron considerada como la primera persona que escribio un programa la máquina de babage solo se construyó alrededor de un siglo después la primera computadora la eniac se programaba directamente modificando el hardware de la misma mediante cables luego se usaron las ideas de babage y se relizaban programas utilizando tarjetas perforadas.

[close]

p. 7

1 introducción a la programación preliminar 18 de febrero de 2008 7 figura 1.4 traducción de un programa en la decada de los 50 surgen los primeros ensambladores simbólicos no era necesario indicar explicitamente las direcciones de memoria si no que podiamos usar variables para referirnos a ellas en los 60 aparece la programación estructurada comienza el uso de instrucciones de control de flujo de alto nivel if else while etc que empiezan a remplazar el uso del goto funciones y procedimientos algunos de los lenguajes que aparecieron en esa epoca son fortran iv cobol lisp algol 60 basic simula-67 precursor de lo que fue más adelante la programación orientada a objetos entre otros en los 70 surge el diseño orientado a los tipos abstratos de datos y con ello lenguajes que permitian implementar aplicaciones así diseñadas pascal prolog lenguaje b lenguaje c nuestro querido amigo modula-2 en los 80 entra en escena la programación orientada a objetos y el languaje smalltalk-80 c object-pascal oberon ada no orientado a objetos del todo en los años noventas la revolución de las interfaces de usuario junto con la yá en carrera programación orientada a objetos hacen que los lenguajes y entornos de programación permitan el desarrollo de aplicaciones controladas por eventos y aparecen lenguajes-entornos como visual-

[close]

p. 8

8 1.2 sistemas programables algoritmos y programas basic delphi y el lenguaje java en el año 2000 microsoft lanza la plataforma .net con varios lenguajes en ella entre los que se encuentra c un lenguaje orientado a objetos y componentes del que hablaremos alguna páginas adelante 1.2.3 fases del desarrollo de sofware construir cualquier cosa requiere de un cierto proceso un orden no debemos pintar una pared antes de levantarla no podemos despúes de terminar una casa que fue planeada para ser de un piso convertila en un edificio el proceso de crear un programa no es la excepción existen muchos textos en los cuales se exponen las fases del desarrollo de software utilizando como referencia a [booch1996 es posible indicar que la solución de problemas mediante programas de computadora creación de un producto de software puede dividirse en las siguientes fases análisis diseño implementación pruebas implantación mantenimiento análisis aquí se asegura de que el problema esté completamente especificado y que se comprende completamente me parece muy util citar la siguiente espcificación de un problema [bronson2000 escriba un programa que proporcione la información que necesitamos acerca de los círculos termínelo para mañana -la gerencia espero que ninguno de los lectores haya dejado de leer para sentarse en su computadora para trabajar en su lenguaje favorito una revisión rápida a la especificación del anterior problema nos indica que es vaga pues no

[close]

p. 9

1 introducción a la programación preliminar 18 de febrero de 2008 9 se expresa de manera precisa qué es lo que se necesita a cerca de los círculos digamos que usted recibe la solicitud y mañana le lleva al gerente un programa que calcula el área un círculo dado su radio pero el el gerente le dice no yo lo que quería era un programa que calculara el perímetro no le vaya a decir esto a su jefe pero el problema fue que no le especificaron los requirimientos del programa en últimas el análisis proporciona un modelo de la forma en la que un sistema se comporta diseño si el programa lo que tiene que hacer es una sola cosa en esta fase se diseña el algoritmo que realiza el proceso si es un programa de mayor tamaño aquí se crea la arquitectura a usar para la implementación y se establecen las políticas tácticas comunes implementación se realiza la implementación del programa en un lenguaje o lenguajes de programación pruebas se corroborar que cumple con los requisitos implantación llevar el sistema a los clientes mantenimiento los programas del mundo real generalmente deben evolucionar con el tiempo con el fin de no volverse obsoletos con el tiempo por ello es necesario actualizarlos cada cierto tiempo 1.2.4 qué se necesita para programar la programación no es solo conocer un lenguaje y escribir aplicaciones existen varios tipos de conocimiento necesarios que hacen que programar no sea solamente un arte sino que sea algo sistematico dentro de los conocimientos necesarios en la formación en esta área podemos citar [villalobos2005 modelaje análisis y especificación de problemas algorítmica diseño de algoritmos tecnología y programación lenguajes de programación modelaje etc herramientas de programación editores compiladores depuradores gestores de proyectos etc.

[close]

p. 10

10 1.3 algoritmos procesos de software división del proceso de programar en etapas claras ciclo de vida del programa formatos entregables estandares de documentación y codificación técnicas de pruebas técnicas de programación y metodologías estrategias y guías que ayudan a crear un programa como se hacen las cosas elementos estructurales y arquitecturales estructura de la aplicación resultante en terminos del problema y elementos del mundo del problema funciones objetos componentes servicios modelos etc la forma de la solución responsabilidades y protocolos de comunicaciónes se recomienda hacer que la formación en programación ataque los elementos citados de manera uniforme pero esto es más fácil decirlo que hacerlo 1.3 algoritmos -todo tipos de dato variables expresiones funciones 1.4 ejercicios 1 escriba un algoritmo para preparar una taza de café 2 escriba un algoritmo para realizar una llamada telefónica desde un teléfono público 3 suponga que las instrucciones del robot smile en lengueje de máquina son opcode operando 0000 0001 no tiene 0000 0010 no tiene 0000 0011 xxxx xxxx cm significado rotar 90 grados a la derecha rotar 90 a la izquierda avanzar x centímetros cuadro 1.1 instrucciones de smile.

[close]

p. 11

1 introducción a la programación preliminar 18 de febrero de 2008 11 escriba el progarama que aparece en 1 en lenguaje de máquina usando la tabla anterior necesita convertir los valores de centímetros a binario 4 inventese una instrucción para tomar un objeto y escriba un programa ir por el objetivo tomarlo y regresar a la posición de origen 5 dado que la instrucción avanzar tiene un operando que es de 8 bits de longitud el máximo número de centímetros que se puede avanzar es de 255 28 escriba un programa para avanzar 325 centímetros en línea recta 6 escriba un algoritmo para intercambiar el contenido de dos tazas de cafe suponga que tiene una tercera taza disponible para realizar el proceso cada taza debe enjuagarse antes de recibir contenido nuevo 7 escriba un algoritmo para encotrar el número más pequeño de un conjunto de tres 8 escriba un algoritmo para encontrar el número de veces que aparece le letra a en una oración.

[close]

p. 12

12 1.4 ejercicios

[close]

p. 13

capítulo 2 introducción al lenguaje c -¿cómo en pleno siglo 21 y nos vamos a gastar un capítulo en ese personaje del jurásico -si el lenguaje c es como una gran arma uno puede destruir casi cualquier cosa con ella pero se puede volar los pies si no es cuidadoso vamos a ver las características básicas del lenguaje que nos permitan implementar algoritmos básicos 2.1 ¿por qué lenguaje c una razón es por que no sé pascal y la otra es por que es un lenguaje muy útil en tareas de programación de sistemas embebidos aunque tal y como se muestra en la figura 2.1 no es lo único que se puede hacer con él lenguaje c tiene sus orígenes en un lenguaje llamado bcpl desarrollado por martin richards el cual fue la base para el lenguaje b creado por ken thomsom un los años setenta un nuevo sistema operativo quería salir a la luz pero el lenguaje disponible en ese momento era el ensamblador para el dec-pdp11 el cúal dada la magnitud del proyecto no era la mejor opción entonces dennis ritchie mezclo el dichoso lenguaje ensamblador con el lenguaje b y nació el lenguaje c 13

[close]

p. 14

14 2.2 herramientas necesarias figura 2.1 programas hechos en c lenguaje c tiene características muy especiales la sintaxis es muy chick con muy pocas palabras reservadas 27 del estándar de kerningan ritchie 5 del estándar ansi compararlas por ejemplo con 159 del basic de ibm ah por si no recuerda el sistema operativo que estaba en fase embrionaria era unix fue el primer sistema operativo con compiladores de c 2.2 herramientas necesarias para implementar los ejemplos que vamos a realizar en este capítulo se puede utilizar cualquier compilador de c que cumpla con el estándar ansi c sin embargo vamos a utilizar una versión de windows del famoso gcc el mingw para usar mingw existen básicamente dos opciones usarlo desde linea de comandos o desde un entorno de desarrollo que simplifique el proceso de compilación enlazado y depuración hay varios entornos de de desarrollo para trabajar con las herramientas mingw entre los que podemos citar devc eclipse ultimate y code blocks en las siguientes figuras podemos observar capturas de pantalla de algunos de ellos:

[close]

p. 15

2 introducción al lenguaje c preliminar 18 de febrero de 2008 15 figura 2.2 eclipse para c/c figura 2.3 code blocks.

[close]

Other Publications

Comments

no comments yet

YOUBLISHER
About
What Others Say
Sitemap
Impressum

PUBLISHERS
Login
Signup
Tutorials
FAQ
Support

BUSINESS
Overview
Advertising
Support

DEVELOPERS
API

LEGAL
Report a Copyright Violation
Copyright FAQ
Terms of Use
Privacy Policy