Page 1
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 1 de 33
Escuela de Informática
Guía de Estudio
Nombre de la asignatura : Programación Lineal
Carga académica : 4 créditos
Modalidad : Semipresencial
Clave : INF-319
Pre-requisito : INF-214
Fecha de elaboración : Septiembre, 2007
Responsable de elaboración : Lic: José Uribe
Revisión : Lic. Martha Escaño
Directora de Producción de Medios
: Lic. José Uribe
Director Escuela de Informática
Modificaciones:
1ª: Fecha: Responsable:
2ª: Fecha: ____________ Responsable:
3ª: Fecha : ____________ Responsable: ______________________
Septiembre, 2007
*Guía en Proceso de Revisión.
Page 2
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 2 de 33
Saludos Presidente del Consejo.
El Modelo Educativo de Unicaribe (MEDUC), fundamentado en una educación abierta
y a distancia, demanda el uso de diversas herramientas para el aprendizaje,
principalmente para estimular y orientar el estudio independiente. Esta guía de estudio
es una de esas herramientas. No tiene pretensiones de sustituir al docente, sino de
complementar su labor. La guía de estudio tampoco limita el espacio de búsqueda del
estudiante, sino que le sirve de apoyo en esa búsqueda y le facilita el acceso al
conocimiento a partir de un conjunto de actividades que le propone. Por esta razón,
considero que la implementación de este instrumento será de gran ayuda para el y la
estudiante y contribuirá a un aprendizaje de mayor calidad.
Dr. José Andrés Aybar Sánchez
Presidente del Consejo.
Page 3
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 3 de 33
Mensaje a los y las Estudiantes
Índice
Esta Guía de Estudio de la asignatura Programación Lineal, se ha elaborado
pensando en ustedes, estudiantes de UNICARIBE. He tratado de organizar
actividades con sus orientaciones para facilitar el aprendizaje en la metodología
semipresencial y a distancia. Es necesario entender que este documento solo
puede convertirse en una Guía para el aprendizaje, si es asumido como tal por
ustedes.
Para lograr los aprendizajes esperados es obligatoria la realización de las
actividades indicadas en el desarrollo de esta guía, para lo cual se requiere del
manejo de las fuentes que se recomiendan en el programa de la asignatura y en
cada una de las unidades.
Lic. José Uribe
Prof. Ing. Francisco V. Féliz Vallejo
Marzo, 2005
Page 4
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 4 de 33
Índice
Saludos Presidente del Consejo……………………………………………………2
Saludos a los Estudiantes………………………………………………………….3
Indíce………………………………………………………………………………4
Característica de la Guía…………………………………………………………...6
Descripción de la Materia…………………………………………………… ……7
Justificación…………………………………………………………………… ….7
Objetivo……………………………………………………………………… …...8
Habilidades y Destrezas que se logran con la materia………………………… …8
Relación con las demás Materias………………………………………………….9
Contenidos………………………………………………………………………...9
UNIDAD I: Fundamentos del Lenguaje C.
Propósitos Específicos…………………………………………………………….10
Contenidos………………………………………………………………………...10
Actividad Preliminar………………………………………………………………11
Actividad para el Aprendizaje……………………………………………………..11
Actividades Complementaria………………………………………………………12
UNIDAD II: Arreglo.
Propósitos Específicos……………………………………………………………..13
Contenidos…………………………………………………………………………13
Actividad Preliminar……………………………………………………………….13
Actividad para el Aprendizaje……………………………………………………..14
Actividades Complementarias……………………………………………………..14
UNIDAD III: Archivos.
Propósitos Específicos……………………………………………………………..16
Contenidos…………………………………………………………………………16
Actividad Preliminar……………………………………………………………….16
Actividad para el Aprendizaje……………………………………………………..16
Actividades Complementarias……………………………………………………..17
Page 5
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 5 de 33
UNIDAD IV: Técnicas de Ordenación, Búsqueda e Intercelación.
Propósitos Específicos……………………………………………………………..18
Contenidos…………………………………………………………………………18
Actividad Preliminar……………………………………………………………….18
Actividad para el Aprendizaje……………………………………………………..18
Actividades Complementarias……………………………………………………..18
UNIDAD V: Uso de Estructuras de Datos Lineales y no Lineales.
Propósitos Específicos……………………………………………………………..20
Contenidos…………………………………………………………………………20
Actividad Preliminar……………………………………………………………….20
Actividad para el Aprendizaje……………………………………………………..21
Actividades Complementarias……………………………………………………..21
Programación…………………………………………………………………..….23
Metodología……………………………………………………………………….24
Tutoría en un Campo Virtual……………………………………………………...24
Bibliografía Básica…………………………………………………………….…..25
Bibliografía Complementaria……………………………………………………...27
Prácticas…………………………………………………………………………...27
Autoevaluación……………………………………………………………………28
Programa…………………………………………………………………………..29
Page 6
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 6 de 33
Caracterización de la Guía
Esta Guía de Estudio está dirigida a los y las estudiantes de UNICARIBE que cursan la
asignatura Programación Lineal. Su propósito es ayudar en el proceso de aprendizaje,
mediante la organización y orientación de actividades que propicien aprendizajes
significativos. No sustituye al docente-acompañante, a los libros ni al programa, sino
que se convierte en una herramienta al servicio de éstos.
La Guía está organizada por unidades de acuerdo con el programa de la asignatura. En
cada unidad se incluyen las siguientes secciones:
- Propósitos Específicos
- Contenidos
- Actividades Preliminares
- Actividades de Aprendizaje
- Actividades Complementarias
En este documento se presenta, además, una programación de los encuentros, la
descripción de la metodología para desarrollar los encuentros, una bibliografía básica y
una complementaria para toda la asignatura, las practicas y una autoevaluación.
Page 7
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 7 de 33
Descripción de la materia
La materia Programación Lineal (clave INF-319) ofrece un panorama sobre las técnicas
de programación, las estructuras de datos lineales y no lineales, el manejo de archivo y
los métodos de ordenación, búsqueda e intercalación tanto en memoria como en disco;
esta asignatura busca estimular al estudiante sobre los aspectos, conceptos y la
implementación de estos conocimientos en el lenguaje C. Además, se aprenderá a
programar en el lenguaje C.
Justificación
La potencia y flexibilidad de un lenguaje de programación están directamente
relacionadas con las estructuras de datos que puede manejar. Cuando una aplicación
particular requiere una estructura de datos no soportada por el lenguaje de
programación, se torna complicado el trabajo de programación; esta es la razón por la
que se hace necesario el aprendizaje de un lenguaje de programación como C y además,
estudiar las implementaciones de estructuras de datos y algoritmos en él.
El estudiante esta encargado de construir su conocimiento teniendo como recursos la
bibliografía básica y complementaria, tutoriales, apuntes colgados en el campus virtual
y los ejercicios que se asignarán durante el transcurso de la asignatura para alcanzar un
aprendizaje a partir de una sucesión de experiencias que permitan contrastar sus propias
ideas y modificar los conocimientos iniciales. Por el contrario, el profesor dirige el
proceso de aprendizaje planificando actividades que despierten el interés del estudiante
así como motivarle durante todo el trayecto.
Es difícil establecer un patrón de enseñanza común para todos los estudiantes ya que
cada uno asimila las ideas y las enlaza según la destreza y rapidez del ritmo propio para
captar las ideas.
Esta guía está diseñada para que el estudiante aprenda a su ritmo, pero en el transcurso
de la misma se asignarán trabajos, que deben ser entregados en la fecha establecida por
el profesor.
Page 8
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 8 de 33
Objetivos
• Aprender a utilizar la metodología de la programación en modo texto para la
creación de aplicaciones de propósito particular y general.
• Desarrollar la capacidad para practicar una conducta investigativa en la
adquisición de conocimientos para la resolución de problemas utilizando un
computador y un lenguaje de programación como C.
Habilidades y destrezas que se lograrán con la materia
• Aprender las características fundamentales del lenguaje C.
• Cómo crear aplicaciones con el lenguaje C.
• Utilizar las técnicas de ordenación e implementarlas en el lenguaje C.
• Comprender el manejo dinámico de memoria en el lenguaje C.
• Comprender la forma de crear programas que manejen archivos en C.
• Aprender a escribir programas de aplicación en C.
Page 9
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 9 de 33
Relación con las demás materias
La materia Programación Lineal se imparte en el Sexto cuatrimestre del programa de la
carrera de informática, consta de 4 créditos (3 teóricos y 1 práctico).
Al impartirse esta asignatura en el sexto cuatrimestre, debe asumirse que la misma es
pre-requisito obligatorio (aunque no esta especificado explícitamente en el pensum) de
las demás asignaturas del área de conocimiento especializado de la carrera y que serán
estudiadas con posterioridad a ella, ver tabla 1.
Materia Cuatrimestre Créditos
Programación I Séptimo 3
Base de datos Octavo 3
Programación II Octavo 3
Inteligencia artificial Octavo 3
Programación III Noveno 4
Programación IV Décimo 4
Seminario de informática Décimo segundo 4
Tabla 1. Materias relacionadas con Programación Lineal
Contenidos:
En esta sección se detalla el contenido de clase de esta guía para la materia
Programación Lineal. El programa está organizado en cinco unidades. En la primera
unidad se estudian los fundamentos del lenguaje C.
En la unidad dos se tratan los arreglos; la unidad tres ofrece un panorama sobre el
manejo de archivos; la unidad cuatro trata sobre las técnicas de ordenación y búsqueda y
la última unidad trata sobre las estructuras de datos lineales y no lineales.
Page 10
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 10 de 33
Unidad 1. Fundamentos del Lenguaje C.
En esta unidad se motiva al estudio y aprendizaje de la materia Programación Lineal,
aquí se estudian los conceptos fundamentales del Lenguaje C.
1.1Propósitos Específicos.
1.1.1 Aprender a utilizar variables para almacenar datos en los programas.
1.1.2 Aprender a utilizar variables y operadores para manipular los datos
1.1.3 Conocer los diferentes tipos de datos
1.1.4 Aprender como capturar y desplegar información
1.1.5 Utilizar funciones y operadores matemáticos en formulas
1.1.6 Escribir expresiones condicionales
1.1.7 Usar la instrucción if para controlar el flujo de ejecución del programa basado en
una condición
1.1.8 Usar la instrucción switch para seleccionar una opción de varias condiciones
1.1.9 Usar la instrucción for para ejecutar instrucciones un número determinado de
veces
1.1.10 Usar la instrucción while para ejecutar instrucciones mientras se cumple una
condición.
1.1.11 Utilizar las técnicas de programación estructurada y crear módulos o
subprogramas y definir procedimientos y funciones.
1.1.12 Aumentar la eficiencia de programación para crear funciones y procedimientos.
1.1.13 Utilizar argumentos para pasar valores a las funciones y procedimientos
1.2Contenidos.
1.2.1 Breve historia del lenguaje C.
1.2.2 Variables, constantes y tipos de datos.
1.2.3 Operadores.
1.2.4 Instrucciones de Entrada y Salida
1.2.5 Estructuras de control
1.2.6 Procedimientos y funciones
Page 11
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 11 de 33
1.3 Actividad preliminar.
1.3.1 Conseguir el compilador de Turbo C.
1.4 Actividades para el aprendizaje.
1.4.1 Con la lectura de los Capítulos 3, 4 y 5 de la bibliografía básica: Joyanes, Luis y
Zahonero Martínez, Ignacio: Programación en C, realice las siguientes
actividades:
1. Explica la estructura de un programa en C.
2. Explica la importancia de la función main.
3. Explica cómo se utilizan las funciones definidas por el usuario.
4. Explica las diferentes formas de poner comentarios dentro de un programa en C.
5. Explica el proceso completo para crear un programa en C.
6. Explica los distintos errores que pueden ocurrir en el desarrollo de un programa en
C.
7. Explica en qué consisten las directivas del preprocesador.
8. Explica qué son las declaraciones globales.
9. Hacer un resumen de las siguientes palabras claves:
asm Enum signed
auto Extern sizeof
break Float static
case For struct
char Goto switch
const If typedef
continue Int union
default Long unsigned
do Register void
double Return volatile
else Short while
10. Explica las diferentes reglas de sintaxis del lenguaje C.
Page 12
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 12 de 33
1.5 Actividades complementarias:
1.5.1 Hacer un programa en C que genere e imprima los números de fibbonaci del 1 al
100.
1.5.2 Hacer un programa en C que calcule la media de una lista de números positivos,
terminados con un número negativo
1.5.3 Hacer un programa en C que acepte un numero por teclado y determine si el
numero es primo.
1.5.4 ¿Cuál es la salida del siguiente segmento de programa?
for(cuenta=1; cuenta<5; cuenta++)
printf(“%d ”, (2 * cuenta));
1.5.5 Escribir un programa que dibuje el rectángulo siguiente:
* * * * * * * * * * *
* *
* *
* *
* * * * * * * * * * *
1.5.6
La relación entre los lados (a,b) de un triángulo y la hipotenusa (h) viene dada
por la fórmula a2
+ b2
= h2
1.5.7 Escribir un programa que lea la longitud de los lados y calcule la hipotenusa.
1.5.8 Calcular el área de un triángulo mediante la fórmula:
Área = (p(p-a)(p-b)(p-c))1/2
Donde p es el semiperímetro, p=(a + b +c) / 2, siento a, b, c los tres lados del
triángulo.
1.5.9 Construir un programa que calcule e imprima el producto, cociente entero y
resto de dos números de tres cifras.
Page 13
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 13 de 33
Unidad 2. Arreglos.
En esta unidad se trata el tema del manejo de los arreglos, los tipos de arreglos y las
operaciones que se pueden realizar sobre los mismos en el lenguaje C.
2.1 Propósitos Específicos:
2.1.1 Estudiar los arreglos: concepto, tipos, uso e importancia en el procesamiento de
datos.
2.1.2 Analizar soluciones a problemas utilizando arreglos.
2.1.3 Comprender el manejo de arreglo en el lenguaje C.
2.1.4 Aprender las instrucciones en C para declarar e inicializar arreglos.
2.1.5 Aprender las estructuras de control para procesar arreglos.
2.2 Contenidos.
2.2.1 Conceptos de Arreglos y tipos
2.2.2 Arreglos unidimensionales: los vectores
2.2.3 Operaciones con vectores
2.2.4 Arreglos de varias dimensiones (Matrices / Tablas)
2.2.5 Arreglos multidimensionales
2.2.6 Almacenamiento de los arreglos en memoria
2.3 Actividad preliminar:
2.3.1 Identificar los campos contenido en la cédula de identidad y electoral.
2.3.2 Identificar los campos del formulario de inscripción.
Page 14
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 14 de 33
2.4 Actividades para el aprendizaje:
2.4.1 Con la lectura del Capítulos 6, 7 y 9 de la bibliografía básica: Joyanes, Luis y
Zahonero Martínez, Ignacio: Programación en C, realice las siguientes
actividades:
1. Explica cómo se manejan los arreglos en C y cuál es la sintaxis para declararlos.
2. Explica en qué consiste el uso de arreglos como parámetros.
3. Explica en qué consiste el algoritmo de la burbuja
4. Explica cómo se define una estructura en C y cuál es su importancia
5. Explica la sintaxis para acceder y almacenar datos en una estructura.
6. Explica el uso de estructura como parámetros.
2.5 Actividades complementarias:
2.5.1 Hacer las respectivas estructuras de las actividades preliminares de esta unidad.
2.5.2 Escribir un programa que lea el arreglo
4 7 1 3 5
2 0 6 9 7
3 1 2 6 4
Y lo escriba
4 2 3
7 0 1
1 6 2
3 9 6
5 7 4
2.5.3 Dado el siguiente arreglo
4 7 -5 4 9
0 3 -2 6 -2
1 2 4 1 1
6 1 0 3 -4
Escribir un programa que encuentre la suma de todos los elementos que no
pertenecen a la diagonal principal.
2.5.4 Escribir una función que invierta el contenido de n números enteros. El primero
se vuelve el último; el segundo, el penúltimo, y así sucesivamente.
Page 15
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 15 de 33
2.5.5 Escribir una función a la cual se le pasa una fecha (día, mes y año), así como un
número de días para ser sumados a esta fecha. La función calcula la nueva fecha
y la visualiza.
2.5.6 Los resultados de las últimas elecciones para sindico del distrito han sido los
siguientes:
Colegio Candidato A Candidato B Candidato C Candidato D
1 194 48 206 45
2 180 20 320 16
3 221 90 140 20
4 432 50 821 14
5 820 61 946 18
Escribir un programa que haga las siguientes tareas:
2.5.7 Imprimir la tabla anterior con cabeceras incluidas
2.5.8 Calcular e imprimir el número total de votos recibidos por cada candidato y el
porcentaje del total de votos emitidos. Asimismo, visualizar el candidato más
votado.
2.5.9 Si algún candidato recibe más del 50 por ciento de los votos, el programa
imprimirá un mensaje declarándole ganador.
2.5.10 i ningún candidato recibe más del 50 por ciento de los datos, el programa debe
imprimir el nombre de los dos candidatos más votados, que serán los que pasen
a la segunda vuelta de las elecciones.
2.5.11 Escribir un programa que lea una línea de caracteres, y visualice la línea de tal
forma que las vocales sean sustituidas por el carácter que más veces se repite en
la línea.
2.5.12 Escribir un programa que lea un número y lo imprima en letras, por ejemplo: si
el número introducido es: 251; el programa debe imprimir: Doscientos cincuenta
y uno.
Page 16
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 16 de 33
Unidad 3. Archivos
En esta unidad se estudia el manejo de archivos en el lenguaje C.
3.1 Propósitos Específicos:
3.1.1 Repasar los conceptos fundamentales de los archivos.
3.1.2 Comprender el manejo de archivos en C.
3.1.3 Aprender las instrucciones para procesar archivos en C.
3.1.4 Aprender a crear programas en C que utilicen archivos para procesar datos.
3.2 Contenidos:
3.2.1 Introducción al manejo de archivos
3.2.2 Organización de archivos
3.2.3 Operaciones con archivos
3.2.4 Gestión de archivos
3.2.5 Mantenimiento de archivos
3.2.6 Procesamiento de archivos secuenciales
3.2.7 Procesamiento de archivos directos
3.2.8 Procesamiento de archivos secuenciales indexados
3.3 Actividad preliminar:
Hacer un listado de todos los campos que se encuentran en el documento CEDULA DE
IDENTIDAD
3.4 Actividades para el aprendizaje:
3.4.1 Con la lectura del Capitulo 14 y 15 de la bibliografía básica: Joyanes, Luis y
Zahonero Martínez, Ignacio: Programación en C, realice las siguientes
actividades:
1. Hacer un resumen de los siguientes conceptos:
Archivo Organización
secuencial
Tipos de acceso
Nombre lógico Nombre físico Base de datos
Campo Registro Clave
Bloque Buffer Soporte
Organización directa Organización directa Organización
secuencial indexada
2. Explica cada una de las operaciones que se pueden hacer sobre los archivos en C.
Page 17
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 17 de 33
3.5 Actividades complementarias:
3.5.1 Con las actividades preliminares de la unidad 2 hacer los siguientes programas:
Un programa con menú en C que tenga las siguientes opciones:
1 Entrada de datos
2 Consulta de datos.
3 Salir
Se debe hacer un programa por cada actividad.
3.5.2 Una sección tiene 20 estudiantes y cada estudiante tiene tres calificaciones por
encuentro. Almacenar los datos en un archivo, dejando espacio para dos notas
más (dos encuentros restantes). Incluir un menú de opciones, para agregar más
estudiantes, desplegar los datos de un estudiante, introducir nuevas notas y
calcular la nota final.
3.5.3 Se desea escribir una carta de felicitación navideña a los empleados de una
empresa X. El texto de la carta se encuentra en el archivo CARTA.TXT. El
nombre y dirección de los empleados se encuentran en el archivo binario
EMPLEADO.DAT, como una secuencia de registros con los campos nombre,
dirección, etc. Escribir un programa que genere un archivo de texto por cada
empleado, la primera línea contienen el nombre, la segunda está en blanco, la
tercera la dirección y en la quinta empieza el texto contenido en el archivo
CARTA.TXT.
Page 18
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 18 de 33
Unidad 4. Técnicas de Ordenación, Búsqueda e Intercalación.
En esta unidad se estudian las técnicas de ordenación, búsqueda e intercalación y su
implementación en el lenguaje C.
4.1 Propósitos Específicos:
4.1.1 Estudiar y aprender los diferentes métodos de ordenación de datos.
4.1.2 Estudiar y aprender las técnicas de búsquedas.
4.1.3 Implantar los diferentes algoritmos de ordenación en C.
4.1.4 Implantar las técnicas de búsquedas en C.
4.2 Contenidos:
4.2.1 Introducción.
4.2.2 Ordenación.
4.2.3 Búsqueda.
4.2.4 Intercalación.
4.2.5 Fusión externa.
4.2.6 Archivos ordenados.
4.2.7 Fusión de archivos.
4.2.8 Partición de archivos.
4.2.9 Clasificación de archivos
4.3Actividad preliminar:
4.3.1 Investigar los diferentes algoritmos de ordenación y determinar cuál es el más
rápido
4.4Actividades para el aprendizaje:
4.4.1 Con la lectura del Capitulo 10 de la bibliografía básica: Joyanes, Luis y
Zahonero Martínez, Ignacio: Programación en C, realice las siguientes
actividades:
1. Explica en qué consiste el algoritmo de búsqueda secuencial
2. Explica cómo funciona el algoritmo de ordenación de la burbuja.
3. Explica cómo funciona el algoritmo de ordenación por inserción.
4. Explica cómo funciona el algoritmo de ordenación QuickSort.
5. Explica cómo funciona el algoritmo de ordenación HeapSort.
6. Explica cómo funciona el algoritmo de ordenación Shell.
7. Explica cómo funciona el algoritmo de intercalación.
Page 19
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 19 de 33
4.5 Actividades complementarias:
4.5.1 Escribir una función sort que ordene un conjunto de n cadenas en orden
alfabético.
4.5.2 Hacer un programa en C que acepte de entrada un arreglo de N elementos
enteros y lo ordene utilizando el algoritmo de la burbuja. El programa debe
imprimir el arreglo antes de ordenarlo y el arreglo ya ordenado.
4.5.3 Hacer un programa en C que acepte de entrada un arreglo de N elementos
enteros y lo ordene utilizando el algoritmo de inserción. El programa debe
imprimir el arreglo antes de ordenarlo y el arreglo ya ordenado.
4.5.4 Hacer un programa en C que acepte de entrada un arreglo de N elementos
enteros y lo ordene utilizando el algoritmo Quicksort. El programa debe
imprimir el arreglo antes de ordenarlo y el arreglo ya ordenado.
4.5.5 Hacer un programa en C que acepte de entrada un arreglo de N elementos
enteros y lo ordene utilizando el algoritmo HeapSort. El programa debe
imprimir el arreglo antes de ordenarlo y el arreglo ya ordenado.
4.5.6 Hacer un programa en C que acepte de entrada un arreglo de N elementos
enteros y lo ordene utilizando el algoritmo Shell. El programa debe imprimir el
arreglo antes de ordenarlo y el arreglo ya ordenado.
Page 20
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 20 de 33
Unidad 5. Uso de Estructuras de datos Lineales y no lineales.
En esta unidad se estudian las estructuras de datos dinámicas lineales y no lineales y la
manera de implantarlos en el lenguaje C.
5.1 Propósitos Específicos:
5.1.1 Comprender como implantar los Punteros, Listas, Pilas y Colas en C.
5.1.2 Usar las estructuras dinámicas para las soluciones de problemas.
5.1.3 Comprender cómo utilizar los Árboles en C.
5.1.4 Utilizar los árboles binarios para la organización y clasificación de los datos en
C.
5.1.5 Comprender el concepto de Grafo y cómo programarlo en C.
5.2 Contenidos:
5.2.1 Estructura dinámicas lineales de datos.
5.2.2 Puntero.
5.2.3 Listas.
5.2.4 Pilas.
5.2.5 Colas.
5.2.6 Estructura de datos no lineales.
5.2.7 Árboles.
5.2.8 Árbol Binario.
5.2.9 Grafos
5.3 Actividad preliminar:
5.3.1 Investigar cómo se pueden aplicar cada uno de los conceptos de esta unidad.
Page 21
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 21 de 33
5.4Actividades para el aprendizaje:
5.4.1 Con la lectura de la Parte III de la bibliografía básica: Joyanes, Luis y Zahonero
Martínez, Ignacio: Programación en C, realice las siguientes actividades:
1. Hacer un resumen de los siguientes conceptos:
Pila Lista Cola
Listas enlazadas Puntero Nodo
Listas circulares Listas doblemente
enlazadas
Árbol
Árbol Binario Grafo
2. Explica cómo se manejan los punteros en C.
5.5 Actividades complementarias:
5.5.1 Explicar por qué cada una de las siguientes estructuras no es un árbol binario.
Page 22
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 22 de 33
5.5.2 Considere el árbol siguiente:
a) ¿Cuál es su altura?
b) ¿Está el árbol equilibrado? ¿Por qué?
c) Listar todos los nodos hoja.
d) ¿Cuál es el predecesor inmediato (padre) del nodo U?
e) Listar los hijos del nodo R.
f) Listar los sucesores del nodo R.
Page 23
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 23 de 33
Programación
Programación Lineal es una materia mensual que consta de 4 créditos: 3 de teoría y 1
de práctica. Un crédito equivale a 10 horas de estudio (García Aretio, 1997), lo que
implica unas 40 horas de estudio en total a lo largo de los 5 encuentros semanales para
la materia.
Se puede ver la programación de los encuentros en la tabla 2. Cada encuentro consta de
4 horas continuas y se divide en 3 horas para la exposición de la teoría y 1 hora,
aproximadamente, para la práctica, que se solapa con el estudio de la teoría (para
aprovechar mejor los conocimientos impartidos).
Encuentro 1 2 3 4 5
Horas 3 2 2 2 3
Teoría
Tem
a
Fundam
entos
del
lenguaje C
.
Arreglos.
Técnicas
de
ordenación,
búsqueda
e
intercalación.
Archivos.
Uso de E
structuras
de datos lineales y
no lineales.
Horas 1 2 2 2 1
Práctica
Desarrollo del trabajo Final
Tabla 2. Programación de los encuentros
Page 24
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 24 de 33
Metodología
• Investigación
• Exposición de los contenidos teóricos por parte de los estudiantes.
• Para cada encuentro los estudiantes deben haber leído previamente el material de la
bibliografía básica. Se harán exámenes cortos de control de lectura al inicio de la clase,
y / o de retroalimentación al final de la clase.
• Durante los encuentros se reforzarán los conceptos leídos por el estudiante y se
realizarán algunos ejemplos. Se fomentará la participación de los estudiantes mediante
la realización de preguntas y ejercicios en clase que serán planteados por el docente.
• Tutoría virtual a través del campus virtual www.unicaribe.net
• Análisis de información accesible en Internet.
• Asignación de trabajos prácticos para ser realizados fuera de los encuentros.
• Prácticas en el laboratorio de cómputo.
• Presentación de un trabajo final, incluyendo todos los temas especificados en el
contenido descrito anteriormente.
Tutoría en el campus virtual
El acceso se realiza a través del enlace www.unicaribe.net.
A cada estudiante se le asignará un Usuario y una Clave particular para acceder al
campus, para esto el estudiante necesitará una cuenta de correo electrónico.
Page 25
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 25 de 33
Bibliografía Básica
En el caso de una materia como Programación Lineal, existe una gran variedad de libros
que pueden ser elegidos para el estudio de la misma. En esta asignatura en concreto, han
primado los aspectos metodológicos, que imponen la utilización de un libro en la
enseñanza a distancia (EAD) fácil de “digerir” por el lector, y por ello los libros de texto
escogido son los siguientes:
Joyanes, Luis y Zahonero Martínez, Ignacio:
Programación en C, McGraw-Hill, Madrid, 2da
Edición, 2005
El libro está diseñado para que sirva de
referencia y guía de estudio para un primer
curso de introducción a la programación, con
una segunda parte que puede servir como una
introducción a las estructuras de datos, todo ello
utilizando C, y, en particular, la versión estándar
ANSI C.En la obra no solamente se busca
describir la sintaxis de C, sino y sobre todo,
mostrar las características más sobresalientes
del lenguaje, a la vez que se enseñan técnicas de
programación estructurada.
Además este volumen esta editado en español y
por una casa editora que garantiza la
distribución en República Dominicana.
Deshpande, P. S. y Kakde, O. G.: C & Data
Structures, Dreamtech, USA, 2003
Page 26
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 26 de 33
Este libro trata de manera clara la mayoría de
los conceptos del programa de clase. Este libro
contiene muchos ejemplos resueltos sobre los
diferentes temas tratados en la asignatura.
El único inconveniente es que este libro esta
editado en inglés.
Page 27
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 27 de 33
Bibliografía Complementaria
• Joyanes, Luis y Zahonero Martínez, Ignacio: Programación en C: Metodología y
estructura de datos, McGrawHill, Madrid, 2001
• Crawford, Tony y Prinz, Peter: C: In a Nutshell, O’Really, USA, 2005
Prácticas
La materia requiere la presentación de un trabajo final que deberá ser entregada en el
quinto encuentro. El enunciado del mismo será dictado por el docente de la materia y
estará disponible en el campus virtual.
Las prácticas deben ser entregada en la fecha especificada y aquellos estudiantes que no
cumplan con este requisito, podrán presentarla más tarde, pero solo se evaluara la
misma con un sesenta por ciento de su valor (60%).
Page 28
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 28 de 33
AutoEvaluación
Materia: Programación Lineal
Clave: INF-319
Nombre completo:
1. Interés demostrado: Lectura (seleccione el que mejor aplique)
• He leído y estudiado plenamente todos los documentos de la materia
(programa, guía y materiales bibliográficos de la asignatura)
• He leído “someramente” los documentos
• No he leído aun los documentos
2. Trabajos prácticos
Nombre de la práctica Problemas /
dificultad
Fecha entrega
3. Calificación del aprendizaje y desempeño en la materia según la siguiente
escala: (1-Muy bueno 2-Bueno 3-Aceptable 4-Regular)
Interés demostrado:
Participación:
Trabajos prácticos:
4. Observación
Page 29
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 29 de 33
Programa de Asignatura
Nombre de la asignatura : Programación Lineal
Carga académica : 4 créditos
Modalidad : Semi-presencial
Clave : INF-319
Pre-requisito : INF-214
Fecha de elaboración : Julio, 2001
Responsable de elaboración : Lic. Rosanny Ramírez
Presentado a : Lic. José Alberto Uribe
Director Escuela de Informática
Modificaciones:
1ª: Fecha : Mayo, 2007___ Responsable: Rosanny Ramirez_______
2ª: Fecha : ____________ Responsable: ______________________
3ª: Fecha : ____________ Responsable: ______________________
CONTENIDO:
Justificación
Propósitos
Contenido de unidades
Metodología
Evaluación
Bibliografía
Page 30
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 30 de 33
1. JUSTIFICACIÓN
La potencia y flexibilidad de un lenguaje de programación están directamente
relacionadas con las estructuras de datos que puede manejar. Cuando una aplicación
particular requiere una estructura de datos no soportada por el lenguaje de
programación, se torna complicado el trabajo de programación; esta es la razón por la
que se hace necesario el aprendizaje de un lenguaje de programación como C y además,
estudiar las implementaciones de estructuras de datos y algoritmos en él.
2. PROPOSITOS
2.1 Generales
• Que el estudiante aprenda los conceptos, uso y técnicas fundamentales sobre el
manejo de estructuras de datos lineales y no lineales.
• Que aprenda a codificar en un lenguaje de medio nivel como lo es C. Aprender a
utilizar los diferentes métodos de ordenación.
3. CONTENIDO
Unidad I: Fundamentos del Lenguaje C.
Propósitos Específicos:
Aprender a utilizar variables para almacenar datos en los programas.
Aprender a utilizar variables y operadores para manipular los datos
Conocer los diferentes tipos de datos.
prender como capturar y desplegar información
Utilizar funciones y operadores matemáticos en formula
Escribir expresiones condicionales.
Usar la instrucción if para controlar el flujo de ejecución del programa
basado en una condición.
Usar la instrucción switch para seleccionar una opción de varias condiciones.
Usar la instrucción for para ejecutar instrucciones un número determinado de veces.
Usar la instrucción while para ejecutar instrucciones mientras se cumple una
condición.
Utilizar las técnicas de programación estructurada y crear módulos o subprogramas
y definir procedimientos y funciones..
Aumentar la eficiencia de programación para crear funciones y procedimientos.
Utilizar argumentos para pasar valores a las funciones y procedimientos
Contenido.
1.1 Breve historia del lenguaje C.
Page 31
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 31 de 33
1.2 Variables, constantes y tipos de datos.
1.3 Operadores.
1.4 Instrucciones de Entrada y Salida.
1.5 Estructuras de control.
1.6 Procedimientos y funciones
Unidad II: Arreglos
Propósitos Específicos:
Estudiar los arreglos: concepto, tipos, uso e importancia en el procesamiento de
datos.
Analizar soluciones a problemas utilizando arreglos.
Comprender el manejo de arreglo en el lenguaje C.
Aprender las instrucciones en C para declarar e inicializar arreglos.
Aprender las estructuras de control para procesar arreglos.
Contenido.
Conceptos de Arreglos y tipos.
Arreglos unidimensionales: los vectores.
Operaciones con vectores.
Arreglos de varias dimensiones (Matrices / Tablas)
Arreglos multidimensionales.
Almacenamiento de los arreglos en memoria
Unidad III: Archivos.
Propósitos Específicos:
3.1.1 Repasar los conceptos fundamentales de los archivos.
3.1.2 Comprender el manejo de archivos en C.
3.1.3 Aprender las instrucciones para procesar archivos en C.
3.1.4 Aprender a crear programas en C que utilicen archivos para procesar datos.
Contenidos.
3.1 Introducción al manejo de archivos.
3.2 Organización de archivos.
Page 32
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 32 de 33
3.3 Operaciones con archivos.
3.4 Gestión de archivos.
3.5 Mantenimiento de archivos.
3.6 Procesamiento de archivos secuenciales.
3.7 Procesamiento de archivos directos.
3.8 Procesamiento de archivos secuenciales indexados.
Unidad IV: Técnicas de Ordenación, Búsqueda e Intercalación
Propósitos Específicos:
4.1.1 Estudiar y aprender los diferentes métodos de ordenación de datos.
4.1.2 Estudiar y aprender las técnicas de búsquedas.
4.1.3 Implantar los diferentes algoritmos de ordenación en C.
4.1.4 Implantar las técnicas de búsquedas en C.
Contenido.
4.1 Introducción.
4.2 Ordenación.
4.3 Búsqueda.
4.4 Intercalación.
4.5 Fusión externa.
4.6 Archivos ordenados.
4.7 Fusión de archivos.
4.8 Partición de archivos.
4.9 Clasificación de archivos.
Unidad V: Uso de Estructuras de datos Lineales y no lineales
Propósitos Específicos:
5.1.1 Comprender como implantar los Punteros, Listas, Pilas y Colas en C.
5.1.2 Usar las estructuras dinámicas para las soluciones de problemas.
5.1.3 Comprender cómo utilizar los Árboles en C.
5.1.4 Utilizar los árboles binarios para la organización y clasificación de los datos en
C.
5.1.5 Comprender el concepto de Grafo y cómo programarlo en C.
Contenido.
5.1 Estructura dinámicas lineales de datos.
Page 33
UNIVERSIDAD DEL CARIBE
Vicerrectoría de Desarrollo
Dirección Producción de
Medios para el Aprendizaje
Código
GDE-INF-319
Programación Lineal
Septiembre, 2007
Versión No. 1
______________________
Página 33 de 33
5.2 Punteros.
5.3 Listas.
5.4 Pilas.
5.5 Colas.
5.6 Estructura de datos no lineales.
5.7 Árboles.
5.8 Árbol Binario.
5.9 Grafos
4. METODOLOGÍA
Investigación. Trabajos prácticos. Exposiciones en el Aula. Prácticas en el laboratorio.
Presentación de un trabajo final, incluyendo todos los temas especificados en el
contenido descrito anteriormente.
6. EVALUACIÓN
Asistencia. Trabajos Prácticos. Exposiciones.
6. BIBLIOGRAFÍA
• Joyanes, Luis y Zahonero Martínez, Ignacio: Programación en C, McGraw-
Hill, Madrid, 2da
Edición, 2005.
• Deshpande, P. S. y Kakde, O. G.: C & Data Structures, Dreamtech, USA, 2003
• Joyanes, Luis y Zahonero Martínez, Ignacio: Programación en C: Metodología y
estructura de datos, McGrawHill, Madrid, 2001
• Crawford, Tony y Prinz, Peter: C: In a Nutshell, O’Really, USA, 2005
• Joyanes Aguilar, Luis: Fundamentos de Programación Algoritmos y
Estructuras de Datos, McGraw-Hill, México,2da
Edición,1999