Manual Introduccion A La Programacion
Manual Introduccion A La Programacion
VERSIN 7.0
Pgina 1 de 88
Colaboraron en el presente manual: Versin 5.3 Enrique Castillo Jefe de Carrera sede Osorno Jorge Douglas Asesor de la DAI MCP Luis Flores Docente sede de uoa CCNA Luis Aguirre Tapia Jefe de Carrera Sede Copiap Carlos Dides Asesor de la DAI CCNA Lidia Herrera Mateluna Jefe de Carrera sede de Via del Mar Versin 5.4 Adrian Anex M. Asesor de la DAI Leonardo Bolton Montalva Director de rea Versin 5.5 Ernesto Ramos V. Docente Sede La Serena Versin 6.0 Miguel Ortega Docente Sede uoa Versin 7.0 Mara E. Seplveda Berrocal Docente Sede Santiago Sur
Derechos Reservados Titular del derecho: INACAP N de inscripcin en el Registro de Propiedad Intelectual #............... de fecha .............. INACAP 2009. Pgina 2 de 88
i.
Introduccin
El objetivo de la asignatura Introduccin a la Programacin es introducir en forma progresiva y sistemtica una correcta metodologa para que los alumnos de la Carrera Ingeniera en Informtica dominen las tcnicas de la programacin de computadores. Este manual esta confeccionado con el propsito de servir de gua para el desarrollo de la asignatura. Las materias aqu tratadas corresponden a lo indicado en el Programa Oficial de Inacap por lo que debern ser tratadas en clases en su totalidad y siguiendo los lineamientos que aqu se indican. Se debe tener en cuenta que la Asignatura Introduccin a la Programacin est orientada esencialmente a la metodologa, por lo tanto, se persigue que el alumno adquiera los conocimientos necesarios para desarrollar programas utilizando mtodos precisos, claros y eficientes. La orientacin de las tcnicas de solucin de problemas no debe estar orientada hacia ningn lenguaje de programacin en especial, hasta la unidad 2. Desde la unidad 3 en adelante, la sintaxis a usar para el desarrollo de algoritmos debe ser la correspondiente al lenguaje C. ii. Estructura del manual
El manual est dividido en unidades. Al final de cada una de ellas se dejan algunos Ejercicios propuestos para entregrselos a los alumnos o desarrollarlos en clases. Todos los ejercicios estn solucionados al final del manual iii. Nomenclatura
Con el objeto de estandarizar la nomenclatura utilizada en la resolucin de problemas mediante un pseudolenguaje nico a nivel nacional, se han adoptado las siguientes normas:
Todas las palabras claves de los algoritmos son en ingles. Ejemplo: While , If, End, Read, Print, Open, Close, Select, etc Todas las variables deben ser declaradas. Se utilizan solamente dos tipos de variables: numricas y alfanumricas.
El prefijo para declarar las variables numricas es num y para las variables alfanumricas, char. Se debe anteponer al nombre de la variable Ejemplos:
La asignacin de variable utiliza el smbolo := El signo igual = slo se debe utilizar como operador relacional de igualdad El ndice menor de un arreglo es 1 Los comentarios se identifican anteponiendo el smbolo # Pgina 3 de 88
iv. Ejemplos y ejercicios Se ha incorporado una gran cantidad de ejemplos de algoritmos. Al final de cada unidad se han propuesto una serie de ejercicios cuya solucin se ha desarrollado al final del manual. Dado que el proceso de revisin de esos ejercicios no alcanz a ser optimizado, se hace indispensable que los docentes revisen la sintaxis y la lgica de los algoritmos antes de utilizarlos como material didctico. Los errores descubiertos deberan comunicarse a la DAI para la modificacin del manual.
Pgina 4 de 88
2.5.5. Operadores................................................................................................................Pg.37 2.5.6. Tipo de Expresiones.............................................................................................Pg.43 OBJETIVO 2.6: DESARROLLAR ALGORITMOS QUE INCLUYEN MANEJO DE VARIABLES, ENTRADA, SALIDA Y ESTRUCTURAS DE CONTROL 2.6.1. Concepto de Instrucciones..........................................................................................Pg.46 2.6.2. Clasificacin de las Instrucciones...............................................................................Pg.46 2.6.3. Estructura de los algoritmos en pseudolenguaje.........................................................Pg.46 2.6.4. Nomenclatura de instrucciones que se utilizarn en pseudolenguaje.........................Pg.46 2.6.5. Estructuras de Seleccin.............................................................................................Pg.48 2.6.6. Instrucciones de Control de Repeticin......................................................................Pg.56 2.6.7. Formas Comunes de Estructuras de repeticin...........................................................Pg.57
Pgina 6 de 88
UNIDAD 1: ANALISIS DE PROBLEMAS Y PROCESAMIENTO DE DATOS OBJETIVO 1.1: RESOLVER METODOLOGA DE POLYA PROBLEMAS GENERALES APLICANDO LA
Uno de los aspectos ms importantes a considerar en el proceso de resolucin de problemas es conseguir una representacin mental del problema. Esto implica tener una visin general del problema que hace mucho ms fcil entender sus caractersticas y singularidades. Los datos importantes son identificados y relacionados entre s. Al modelado del problema se le llama tambin espacio del problema. A continuacin se presenta un ejemplo para ilustrar cmo normalmente se representa un problema en nuestra mente: Un autobs parte del terminal en la maana. Se detiene en la primera parada y recoge 5 personas. Sigue hasta la prxima parada y all suben 6 personas. Contina hasta la siguiente parada y suben 4 personas. En la prxima parada, suben 5 personas y se bajan 3. En la siguiente parada, suben 5 personas y se bajan 4. En la parada siguiente, suben 6 personas y se baja 1. La prxima vez, suben 3 personas y se bajan 2. La vez siguiente, se bajan 2 personas y no sube nadie. En la siguiente parada nadie espera por el autobs, de manera tal que este no se detiene. Finalmente, el autobs llega al terminal.
Cuntas paradas hay en la ruta del autobs?
La tendencia ms comn es calcular cuntas personas llegan a la parada final, cuntas subieron o cuntas bajaron, pero muy pocos estn en condiciones de indicar cuntas paradas hay en la ruta del autobs debido a que seleccionaron la informacin numrica como dato importante y la representaron internamente en la forma de operaciones aritmticas. En trminos de los procesos involucrados en resolucin de problemas, esto sucede porque la meta del problema no est bien definida a pesar de que hay datos numricos explcitos precisos. El nfasis sobre el nmero de personas que suben y bajan del autobs hace posible que los estudiantes piensen que tienen que hacer algo con esos datos y, en tal sentido, construyen una meta la cual se representa como el logro de una cantidad total. Esta decisin conduce a los estudiantes a seleccionar cierta informacin como relevante (nmero de personas que suben y bajan del autobs) e ignorar otra (nmero de paradas del autobs). 1.1.1. Las estrategias de resolucin de problemas Las estrategias para resolver problemas se refieren a las operaciones mentales utilizadas para pensar sobre la representacin de las metas y los datos, con el fin de transformarlos para obtener una solucin. Las estrategias para la resolucin de problemas incluyen los mtodos heursticos, los algoritmos y los procesos de pensamiento divergente. 1.1.1.a . Los mtodos heursticos Son estrategias generales de resolucin y reglas de decisin utilizadas por los solucionadores de problemas, basadas en la experiencia previa con problemas similares. Estas estrategias Pgina 7 de 88
indican las vas o posibles enfoques a seguir para alcanzar una solucin pero, no garantiza la solucin del problema. 1.1.1.b. Los algoritmos Los algoritmos son procedimientos especficos que sealan paso a paso la solucin de un problema y que garantizan el logro de una solucin. Un procedimiento algortmico es una sucesin de acciones que hay que realizar, completamente prefijada. Su correcta ejecucin lleva a una solucin segura del problema como por ejemplo, realizar una raz cuadrada, pegar un botn, preparar una taza de caf, hacer sopaipillas, etc. El algoritmo garantiza la obtencin de lo que nos proponemos. De esta manera, el algoritmo se diferencia del heurstico en que este ltimo constituye slo una buena apuesta, ya que ofrece una probabilidad razonable de acercarnos a una solucin. Por lo tanto, es aceptable que se utilicen los procedimientos heursticos en vez de los algortmicos cuando no conocemos la solucin de un problema. 1.1.1.c. Los procesos de pensamiento divergente Los procesos de pensamiento divergente permiten la generacin de enfoques alternativos a la solucin de un problema y estn relacionados principalmente con la inspiracin y la creatividad. La adquisicin de habilidades para resolver problemas ha sido considerada como el aprendizaje de sistemas de produccin que involucran tanto el conocimiento declarativo como el procedimental. Existen diversos procedimientos que pueden facilitar o inhibir la adquisicin de habilidades para resolver problemas, entre los cuales se pueden mencionar: Ofrecer representaciones metafricas. Permitir la verbalizacin durante la solucin del problema. Hacer preguntas. Ofrecer ejemplos. Ofrecer descripciones verbales. Trabajar en grupo. Utilizar auto-explicaciones.
Existen mtodos bien definidos y desarrollados para lograr una resolucin efectiva de problemas. Uno de estos mtodos es el desarrollado por George Polya destacado Doctor en Matemtica, nacido en Hungra en 1887, el que fue publicado inicialmente en la Universidad de Princeton en 1945 y finalmente en su libro "How to Solve It" en 1957. Las sugerencias de Polya para responder a la pregunta Cmo plantear y resolver problemas?, son las siguientes: Entender el problema. (reconociendo qu se pregunta.) Idear un plan. (respondiendo a lo que se pide.) Realizar el plan. (desarrollando el resultado de la respuesta.) Mirar hacia atrs. (controlando qu hace y dice el resultado)
Pgina 8 de 88
Entender el problema. Consiste en identificar qu se pide de modo completamente independiente de las diversas condiciones que pueden ser impuestas y limitaciones constatables en el problema. Se deben considerar aspectos como:
1.1.2.a