Apunte de Introduccion a La Programacion

Download Apunte de Introduccion a La Programacion

Post on 22-Jul-2015

108 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<p>INTRODUCCIN A LA PROGRAMACIN</p> <p>Claudio Gutirrez-Soto Manuel Crisosto Muoz</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-Bo Agradecimientos</p> <p>Quiero agradecer de manera anticipada a los alumnos de introduccin a la programacin, de quienes esperamos recibir feedback para mejorar este apunte con el objeto de que en algn momento sea un texto de apoyo a la programacin. Segundo, quiero agradecer a mi colega y amigo Manuel Crisosto quien ha hecho importantes contribuciones con ejemplos y ejercicios, as como tambin para que este apunte llegue a mano nuestros alumnos. Adems quiero agradecer a mis colegas Pedro Campos y Christian Vidal por sus aportes en la preparacin de los certamenes as como de las clases.</p> <p>Claudio Gutirrez-Soto</p> <p>Pgina : 2 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-Bo</p> <p>Prlogo Estimados alumnos, el material que se presenta a continuacin est diseado para apoyar la asignatura de introduccin a la programacin que tienen como objetivo el lograr resolver problemas simples mediante un programa escrito en algn lenguaje de programacin. Como ustedes pondrn ver el conjunto de smbolos, instrucciones y estructuras presentes en un algoritmo o programa son fciles de identificar y aprender en relacin a su significado. La dificultad se presenta al intentar combinar lgicamente estas instrucciones y estructuras para que resuelvan un problema planteado. El objetivo general es resolver problemas bsicos a travs de la construccin de programas basados en algoritmos. Un algoritmo lo podemos definir como un conjunto de pasos lgicamente ordenados, escritos a travs de smbolos o en lenguaje natural. Lo podemos comparar con una receta de cocina, o con las instrucciones para armar un mueble, las instrucciones que vienen en un manual de un grabador de CD, por mencionar algunos ejemplos. La diferencia est en la precisin que deben tener cada una de las instrucciones de un algoritmo. Por ejemplo, no podemos indicar en un algoritmo, agregue sal a gusto, o apret esta tuerca pues son indicaciones poco precisas, que no pueden ser traducidas a una instruccin escrita en un lenguaje de programacin. En el diseo e implementacin de los algoritmos debemos indicar agregue 10 grs. de sal, o apret esta tuerca dando diez giros a la derecha. Es decir las instrucciones dadas en un algoritmo deben de ser precisas y no ambiguas. En este material desde el primer captulo se presentarn una serie de ejercicios resueltos. Le recomendamos que antes de ver el desarrollo de estos ejercicios, intenten resolver dichos ejercicios. Es una tarea progresiva, que se puede apoyar si siguen los siguientes pasos: 1. Entender lo que se esta solicitando que el algoritmo o programa resuelva. ENTENDER EL ENUNCIADO. 2. La mayora de los algoritmos o programas requiere que se le ingresen datos que sern transformados, convenientemente por el conjunto de instrucciones, en la salida que se esta solicitando. Es imprescindible poder identificar estos datos de entrada y la informacin de salida que se est solicitando. 3. Identificar las posibles restricciones o condiciones que se deben consideran para los datos de entrada. 4. Construccin del algoritmo o programa. Sin embargo, lo ms importante que podemos recalcar en la utilizacin de este libro, es que la adquisicin de la destreza para poder resolver un problema a travs de un algoritmo es paulatina y progresiva. Es decir, hay que ejercitar con el objeto de adquirir la lgica para resolver problemas. Esto es equivalente a las metas de un deportista, ellos se colocan metas y trabajan constantemente para alcanzarlas. Aqu ocurre de manera similar, debemos de adquirir la destreza a travs de ejercicios. En dicho caso, nuestra herramienta es el computador, compilador y simuladores asociados.</p> <p>Pgina : 3 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-Bo</p> <p>Parte 0: Introduccin.............................................................................................................5 Programa ..........................................................................................................................5 Algoritmo ...........................................................................................................................6 Variables ...........................................................................................................................6 Concepto de Ciclo ..............................................................................................................13 Ciclo Mientras (expresin) ..............................................................................................13 Ciclo Repetir (instrucciones) Mientras ............................................................................13 Ciclo Para (variables de control): ....................................................................................14 Ejercicios parte 0: Construccin de algoritmos ...............................................................19 Parte 1: Estructura e instrucciones bsicas en el lenguaje C.............................................20 Funcin printf() ................................................................................................................20 Comentarios....................................................................................................................21 Define..............................................................................................................................24 Incremento y Decremento.............................................................................................24 Operadores .....................................................................................................................25 Ejercicios.........................................................................................................................26 Parte 2: Estructura de Control. ...........................................................................................28 La estructura de control if................................................................................................28 Proposicin switch ..........................................................................................................34 Proposicin while ............................................................................................................38 Ejercicios parte 2: Ciclo while .........................................................................................41 Proposicin for ................................................................................................................42 Ejercicios parte 2 ciclos for .............................................................................................45 Proposicin do while ......................................................................................................46 PREGUNTAS DE CERTAMENES DE AOS ANTERIORES al 2008, REFERENTES AL MANEJO DE CICLOS Y EVALUACIONES LGICAS ...................................................47 Parte 3: Definicin de una funcin......................................................................................51 Pasaje de parmetros o argumentos ..............................................................................59 PREGUNTAS DE CERTAMENES DE AOS ANTERIORES al 2008, REFERENTES AL MANEJO DE FUNCIONES .............................................................................................61 Parte 4: Arreglos Unidimensionales ...................................................................................65 Inicializacin de arreglos.................................................................................................65 Cadenas o Strings...........................................................................................................67 Arreglos bidimensionales ................................................................................................69 Ejercicios Parte 4: Arreglos.............................................................................................72 PREGUNTAS DE CERTAMENES DE AOS ANTERIORES al 2008, REFERENTES AL MANEJO DE ARREGLOS, CADENAS Y MATRICES....................................................74 Parte 5: Estructuras ............................................................................................................82 Declaracin de Variables de tipo estructura ...................................................................83 Referencia a los elementos de una estructura................................................................83 Arreglos de estructuras ...................................................................................................84 Estructuras en las funciones ...........................................................................................85 Estructuras como parmetros de una funcin ................................................................85 Ejercicios parte 5: Estructuras ........................................................................................86 Parte 6: Punteros................................................................................................................89 Uso de typedef....................................................................................................................94 Soluciones a ejercicios planteados.....................................................................................95Pgina : 4 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-Bo</p> <p>PARTE 0: INTRODUCCINConceptos bsicos</p> <p>PROGRAMAUn programa computacional, en trminos simples, consiste en una serie de pasos lgicamente escritos que permiten resolver un problema determinado, que a partir de datos de entrada obtiene informacin til para la toma de decisiones. Aprender a programar consiste, por un lado, en conocer las distintas instrucciones que un determinado lenguaje de programacin tiene, y ms importante an, escribir un conjunto de instrucciones en forma lgica para que la ejecucin de estas instrucciones permita dar respuesta al problema planteado. No basta con conocer las instrucciones existentes, se debe adquirir la lgica que permite utilizarlas con un fin especfico. La mayora de los problemas que se resuelven en el transcurso de un curso de programacin viene especificada mediante un enunciado. Los pasos necesarios para poder construir un programa que de respuesta al enunciado lo podemos resumir de la siguiente manera: Entender el problema Buscar soluciones Elegir solucin Disear solucin Implementar solucin Validar solucin La siguiente figura simplifica los pasos anteriores, para esto supongamos que queremos construir un programa que permita resolver la ecuacin de primer grado.</p> <p>Pgina : 5 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-Bo</p> <p>Programa que permite resolver la ecuacin de primer grado</p> <p>ax+b=0 a ba0</p> <p>Algoritmo EC 1er Grado Variables a,b,x de tipo entero Inicio Escribir(Ingrese valores de EC) Leer (a,b) Si a = 0 entonces escribir (Error) sino Inicio x=-b/a Escribir (La solucin es:,x) Fin Escribir(Fin programa) Fin</p> <p>?</p> <p>x= -b / a</p> <p>#include int a,b,x; main() { printf(Ingrese valores de EC); scanf(%d %d,&amp;a,&amp;b); if a ==0 printf (error); else { x = -b / a; printf(La solucin es %d:,x); } printf(Fin programa); }</p> <p>El primer paso es entender que se est pidiendo, esto requiere de la mxima atencin, pues de lo contrario difcilmente el programa escrito responder al enunciado planteado. Una vez que se entiende el enunciado se debe poder definir cuales son los datos de entrada del programa y cual es la informacin de salida. Adems, se debe poder definir algunas restricciones, para este ejemplo que a debe ser distinto de cero. A continuacin se recomienda escribir un algoritmo que represente una aproximacin a la solucin final. Posterior a estos pasos se traduce el algoritmo a un lenguaje de programacin determinado.</p> <p>ALGORITMOUn algoritmo consiste en un procedimiento detallado, escrito en forma simblica o con lenguaje natural, para resolver un problema en pasos y en un tiempo finito. Algunas caractersticas de los algoritmos son: el algoritmo lleva desde un estado inicial a un estado final se especifican en base a operaciones bsicas que controlan las variables y el flujo del algoritmo el algoritmo recibe entradas y entrega salidas</p> <p>VARIABLESEn todo programa computacional se requiere almacenar temporalmente datos en posiciones especficas de la memoria del computador. Estos datos pueden ser ingresados por ejemplo desde teclado (datos de entrada), o ser datos intermedios producto de alguna transformacin (procesamiento) para producir la salida requerida (informacin). Los lenguajes de programacin utilizan diversos tipos de datos los cuales determinan la cantidad de memoria a ocupar en el computador. Entre estos datos tenemos:</p> <p>Pgina : 6 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-BoTipo de dato Entero Real o flotante Lgico Carcter Propsito Permite almacenar valores de tipo entero. Permite almacenar nmeros fraccionarios. Permite almacenar los valores lgicos de verdad, Verdadero o Falso. Permite almacenar cualquier carcter conocido.</p> <p>Para hacer uso de las posiciones de memoria donde se almacenan los datos se utilizan etiquetas o nombres. La etiqueta o nombre es un nemotcnico que se recomienda que sea significativo para el dato que se esta almacenando. Por ejemplo: si se requiere almacenar la suma de varios valores, conviene bautizar la posicin de memoria con el nombre suma, si se quiere calcular la ecuacin de primer grado, los datos de entrada conviene almacenarlos en las posiciones con nombre a, b; y el resultado de la evaluacin en x. Recordemos que para resolver un problema, se debe tener claro cuales son los datos de entrada y salida; adems de estos se pueden utilizar datos intermedios necesarios para el procesamiento. Todos estos datos se deben declarar, al inicio del programa o, como veremos ms adelante, al inicio de cada seccin del programa.</p> <p>Pgina : 7 Claudio Gutirrez-Soto, Manuel Crisosto,</p> <p>Introduccin a la Programacin Departamento de Sistemas de Informacin Universidad del Bo-BoLa forma en que se ejecutan las operaciones bsicas en un computador, es similar a lo que ocurre en nuestro cerebro. Por ejemplo, para sumar dos valores, los pasos bsicos son: Primero debemos pedirle a alguien que nos diga el primer valor. Luego de que conocemos este valor, debemos almacenarlo (para recordarlo despus) en una neurona (Suponemos que un valor se puede almacenar en una neurona). Ya conocemos el primer valor y est almacenado en nuest...</p>