Inicio >> Docencia >> Titulación >> Asignaturas/Cursos >> Presentación
           --

Programación (12504)


Presentación Grupos Recursos Bibliografía Exámenes Avisos

Objetivos de la asignatura

Conocer un lenguaje de programación. Adquirir la capacidad de construir programas basados en los conceptos de Programación Estructurada.

Contenidos

1. Introducción a los lenguajes de programación. Concepto de programa fuente, programa objeto y programa ejecutable. Entornos no integrados de desarrollo. Recursos en la Web. Concepto de editor, compilador y enlazador. Entor nos integrados de desarrollo. Depuración y depuradores. Recursos en la web.

2. Recursos de programación.
Presentación del sistema operativo Unix. Presentación del lenguaje C. El programa "Hola, Mundo". Compilación del programa. Concepto de bibliotecas de funciones. Uso de archivos de encabezado. Breve introducción a los distintos archivos de encabezado disponibles en C. Necesidad de su estudio. Las páginas man. Uso local y a través de la Web.

3. Herramientas básicas del lenguaje. Primeros programas. Variables. Tipos de datos. Las funciones elementales de entrada/salida (printf("cómo escribir", "qué escribir") y scanf("cómo leer, " dónde guardar lo leído")). Tipos de datos atómicos. Tipos numéricos enteros y de coma flotante. Tipos alfanuméricos: caracteres y cadenas. Operadores aritméticos, lógicos y relacionales. Parám etros de la línea de órdenes: concepto y utilización. Imposibilidad de crear grandes programas empleando una sola función o bloque de código. Una solución: la descomposición en funciones.

4. Subprogramas. Declaración de una función: prototipos, implementación y llamadas. Parámetros formales y parámetros actuales o reales. Alcance de una variable. Variables locales y globales. Variables static. El problema de las variables globales. Solución: variables locales. El problema de las variables locales. Solución: paso de parámetros. Paso de parámetros por valor y por referencia. Concepto básico de función recursiva o autorrecurrente. Cálculo de un factorial. Concepto de compilación por separado. make y makefile. Necesidad de tomar decisiones y repetir acciones. Solución: las sentencias de control.

5. Estructuras de control alternativas, repetitivas y selectivas. Construcción de programas "reales", dotados de menús y opciones. El problema de conio. Solución del problema mediante la funciónsystem(). El problema de getch() en MS-DOS. El problema de getch() en Unix. Solución del problema mediante directrices de compilación condicional. Importancia de la compatibilidad de código fuente. Presentación de la utilidad make. Inviabilidad de los tipos atómicos para resolver problemas con grandes cantidades de datos. Ejemplo: cálculo matricial y vectorial (3x3). Solución: los tipos de datos estructurados homéneos.

6. Tipos de datos estructurados homogéneos. Listas, tablas y matrices. Nomenclatura (declaración de punteros adecuados para su uso). Cálculo matricial elemental. Productos escalares y vectoriales. Las cadenas como lis tas de caracteres. Funciones de tratamiento de cadenas. Estudio de string.h. Inviabilidad del uso de listas y tablas de tipos atómicos para abordar el problema de las bases de datos. Solución: los tipos estructurados inhomogéneos.

7. Tipos de datos estructurados inhomogéneos. Tipos de datos basados en struct; creación de nuevos tipos de datos. Concepto de union. Listas, tablas y matrices de estructuras. Bases de datos: concepto de altas, bajas, informes y modificaciones. Bases de datos implementadas mediante listas estáticas. Ordenación: uso de la función quicksort(). Falta de flexibilidad de las variables estáticas para reutilizar la memoria. Limitaciones de las variables estáticas. Solución : las variables dinámicas.

8. Asignación dinámica de memoria. Estudio de calloc(), malloc(), realloc() y free(). Aplicaciones:
          * Listas, tablas y matrices dinámicas (de tipos atómicos)
          * Listas, tablas y matrices dinámicas (de tipos estructurados)
          * Listas de punteros (que apuntan a listas de tipos atómicos)
          * Listas de punteros (que apuntan a listas de tipos estructurados)
          * Listas simplemente enlazadas
          * Listas doblemente enlazadas
      Necesidad de almacenar información a largo plazo. Solución: uso de un sistema de archivos.

9. Manejo de archivos. Concepto de acceso secuencial y de acceso directo. Apertura, lectura, escritura y cierre de archivos. Las funciones fpen(), fclose(), fprintf(), fscanf(), fr ead() yfwrite(). Archivos binarios. Aplicación a bases de datos. Archivos de texto: archivos encolumnados y delimitados. Uso de strtok(). Importación y exportación de datos. Conveniencia de una granularidad más adecuada para la construcción de módulos reutilizables. Solución: programación orientada a objetos.

10. Programación avanzada. Concepto y aplicaciones de los punteros de función. Un paso más: programación orientada a objetos. Concepto de clase. Concepto de método. El lenguaje C++. El programa "Hola, Mundo" en C++. El lenguaje Java. El programa "Hola, Mundo" en Java. Relación de esta asignatura con otras de la titulación.

Metodologías

Clases teóricas y prácticas, complementadas con Seminarios y/o conferencias.

Evaluación

Examen teórico-práctico y realización de trabajos.

Profesorado
José Rafael García-Bermejo Giner
Correo electrónico
Otros datos

Créditos: 6.0 (5.0 T + 1.0 P) , Primer cuatrimestre , Troncal , Número de grupos de teoría: 1 , Acceso a la plataforma virtual

Ingeniería Técnica en Informática de Sistemas (Plan 1997) Primer curso
Códigos Unesco
120311 Logicales de ordenador

Áreas de Conocimiento
Lenguajes y Sistemas Informáticos
---
Identificarse Accesibilidad
Idioma inglés
Advertencia sobre la información contenida en esta aplicación Web
© 2024 Departamento de Informática y Automática - Universidad de Salamanca
Webmaster: Correo electrónico
Versión Móvil
[Contenido semántico de esta página]
Member of Informatics Europe Acerca de