Lab Elementos de Computación May0 2007 Carrera Clave de Asignatura Descripción de Asignatura Créditos Pre-Requisito Ingenierías ING-202 Laboratorio de Elementos de Computación 5 Créditos CBM-103 (Calculo Diferencial) Objetivos primarios ♦ Dominar la codificación de algoritmos computacionales de nivel medio de complejidad, utilizando el lenguaje C. ♦ Dominar la creación de programas sencillos, del área de ingeniería, utilizando el lenguaje C. ♦ Dominar la aplicación de la programación a una gran variedad de problemas de la vida diaria. ♦ Dominar la esencia de los lenguajes estructurados de programación, para adentrarse en ellos con poco esfuerzo. Otros objetivos ♦ Proveer al estudiante conceptos generales de programación. ♦ Proveer una buena base para el desarrollo de programas en otros lenguajes estructurados. ♦ Aplicar lógica de programación a los conocimientos matemáticos previos. ♦ Aplicar buenas prácticas de programación a la solución de problemas. Habilidades y Contenidos Semana 1 Habilidades Contenido Semana 2 Habilidad Contenido Semana 3 Habilidad Contenido Semana 4 Habilidad Contenido Semana 5 Habilidad Contenido Pograma en C . Discriminar concepto de programa, su estructura y componentes. . Dominar redacción, compilación, ejecución, preservación, y reutilización de un programa C. . Dominar declaración, asignación, escritura y lectura de variables. . Dominar uso de operadores aritméticos, relacionales, lógicos, asignación incremento. Uso de & en scanf. Formatos de impresión %d, %f, %s. ♦ Estructura de un programa C: Comentarios (una y múltiples líneas), Inclusión librerías, Declaración de constantes simbólicas, Declaración de funciones y variables y globales, Función Main(), Declaración de variables locales, cuerpo. ♦ Componentes de un programa C: Constantes, Variables, Tipos, Modificadores de tipo, Rangos, Operadores (Aritméticos, Relacionales, Lógicos, Asignación, Incremento). ♦ Entorno de programación: Entrar, Salir, Salvar, Recuperar, Editar, Compilar, Ejecutar. Estructuras de control selectivas Dominar estructuras de control selectivas para lidiar con múltiples opciones. ♦ if simple. if compuesto (bloque de código). if con else. ifs anidados. if escalonado. ♦ switch: Estructura, variable de control, case, break, default. ♦ Librería math.h: sqr, sqrt, pow. Estructuras de control repetitivas Dominar estructuras de control repetitivas para manejar procesos intensivos. ♦ Ciclos: for, while, do-while. ♦ break, continue, exit. Vectores y tablas Dominar vectores y tablas para manejar grandes cantidades de datos. ♦ Vectores: De números (enteros, reales), tamaño, número de elementos usados, declaración, inicialización, subíndice, acceso a un elemento (asignación, lectura, escritura). ♦ Tablas: De números (enteros, reales), subíndices. ♦ Tablas de caracteres: Declaración, Inicialización, Acceso a una fila, filas escalonadas. Cadenas de caracteres Dominar cadenas de caracteres para procesar datos alfanuméricos. ♦ Dimensión de una variable. Variable sub-indicada. ♦ Cadena de caracteres: Declaración, inicialización, lectura, escritura, subíndice, acceso a un elemento (asignación, lectura, escritura). Terminador nulo. ING202-0X, Elementos de Computación Página 1 de 2 Lab Elementos de Computación May0 2007 Examen ♦ Caracteres ASCII. Conversión carácter dígito a número. ♦ Librería strings.h: strcpy, strcmp, strcat, substr, length. *** Primer parcial *** Semana 6 Habilidad Contenido Funciones Dominar funciones para abordar problemas de mayor complejidad. ♦ Reglas de ámbito de una función, Tipo. ♦ Función: Declaración (prototipo, parámetros), Invocación, Detalle. ♦ Parámetros: Paso por valor, Paso por referencia (escalares, vectores, tablas). ♦ ♦ Operadores de indirección: *, &, []. Semana 7 Estructuras Habilidad Dominar estructuras para crear tipos de datos a la medida. Contenido ♦ Estructura: Ámbito, Declaración (como tipo de dato). ♦ Variables estructura: Declaración, Inicialización, Tablas (arreglos). ♦ Operadores y acceso: Punto (., “near”), flecha (->, “far”). ♦ Acceso: Asignación, lectura, escritura, paso a una función. Semana 8 Archivos de datos persistentes Habilidad Dominar archivos de datos persistentes para abordar verdadero procesamiento de datos. Contenido ♦ Archivo: Tipos, Modos. ♦ Manejo de archivo: Apertura, cierre, lectura, escritura. ♦ Archivos y estructuras. ♦ Librería stdlib.h: FILE *fp, fopen, fclose, fread, fwrite. Examen *** Segundo Parcial *** Semana 9 Habilidad Contenido Semana 10 Recursos Fuentes Recursión Dominar recursividad como alternativa a la reiteración. ♦ Recursión. Compilador recursivo. Pila de recursión. Recursión versus reiteración. ♦ Ejemplos: Factorial. Búsqueda binaria. Torres de Hanoi. ** Examen Final *** ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ Calendario de actividades y evaluación. Entorno de programación: Software Dev-Cpp, de BloodShed Presentaciones PowerPoint (una por semana) Listado oficial de Ejercicios Propuestos Fundamentos de Programación: piensa en C; Osvaldo Cairó; Pearson Prentice Hall; 2006 (libro texto) www.ecabrera.wordpress.com (blug pro., eligio cabrera) \\labmicro\shared\Ecabrera\elementos (carpeta servidor del labMicro) www.projectEuler.net (página con problemas) http://acm.uva.es/problemset (página con problemas) ING202-0X, Elementos de Computación Página 2 de 2