Guia docente 2017_18
Escola de Enxeñaría de Telecomunicación
Grado en Ingeniería de Tecnologías de Telecomunicación
 Asignaturas
  Programación I
   Contenidos
Tema Subtema
Tema 1: El algoritmo y los lenguajes de programación. 1. El algoritmo y sus distintas representaciones: diagrama de flujo, seudocódigo, lenguaje natural.
2. Implementación del algoritmo mediante un lenguaje de programación. Paradigmas de programación: La programación modular y la programación estructurada.
3. El lenguaje C y la función main(). Código fuente y código objeto. El compilador y el intérprete.
4. Ejercicios de entrada/salida: interfaz persona-ordenador. Los ficheros de entrada/salida estándar: stdin, stdout. La directiva #include<stdio.h>. Funciones de biblioteca.
Tema 2: La gramática y elementos básicos
del lenguaje C.
1. El alfabeto. Derivaciones recursivas de secuencias sintácticamente válidas. Identificadores, números. Constantes simbólicas: La directiva #define y macros. Uso del calificador const.
2. Variables y sus atributos: nombre, valor, dirección, tipos. La variable puntero. Declaración de variables simples y punteros:
los operadores de dirección & y de referencia *
3. El operador sizeof. Operadores aritméticos. El operador de asignación. Conversión automática de tipos y mediante el operador cast.
4. Notación sintáctica para expresiones e instrucciones. Instrucción simple e instrucción compuesta.
Tema 3: Instrucciones secuenciales, iterativas
y de selección
1. Evaluación de expresiones con operadores relacionales y operadores booleanos.
2. Instrucciones de selección: switch, if, if anidado. El operador ternario (?:).
3. Las instrucciones iterativas y su importancia en la programación modular: while, do while y for. Instrucciones break y continue.
Tema 4: Variables indexadas 1. Declaración de tipo de variables indexadas (Arrays).
Asignación de memoria para arrays multidimensionales.
2. Arrays unidimensionales y punteros: aritmética de
punteros. Arrays de caracteres: El carácter de fin de cadena..
3. Los arrays de longitud variable en el estándar C99.
4. Asignación dinámica de memoria a arrays de una y 2 dimensiones: las funciones malloc( ), calloc( ), realloc( ).
Tema 5: Funciones 1. Declaración y definición de funciones. Variables locales, estáticas y globales. Valor de retorno de una función.
2. Parámetros actuales y parámetros formales. Paso de parámetros por valor y por referencia: uso de punteros. Paso de parámetros por línea de comando a la función main().
3. Elaboración y uso de bibliotecas de funciones. Funciones de biblioteca que gestionan arrays de caracteres.
4. Compilación modular. Las directivas condicionales en un fichero de cabecera.
5. Funciones recursivas: ventajas y desventajas.
Tema 6: Variables tipo struct 1. Variables tipo struct: declaración global. Campos de un struct. Punteros a struct. Los operadores . (punto) y -> (flecha).
2. El struct y un puntero a struct como parámetro y valor de retorno de una función.
3. El typedef con declaraciones no triviales.
4. Estructuras más complejas: struct anidados, array de struct.
5. Gestión dinámica en creación de listas lineales, listas circulares, árboles.
6. Inserción y remoción de variables en una lista.
Tema 7: Ficheros 1. Ficheros de texto: funciones fopen( ), fclose( ).
2. Diferentes funciones de entrada/salida para ficheros: fprintf (), fscanf(), fgets(), feof().
3. Las funciones con acceso directo al fichero.
4. Manejo de la información entre ficheros y listas.
5. Estructura de los nodos en listas enlazadas de forma simple.
6. Paso de ficheros a lista y viceversa.
Universidade de Vigo            | Reitoría | Campus Universitario | C.P. 36.310 Vigo (Pontevedra) | España | Tlf: +34 986 812 000