Top Banner
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.
33

Programacion Lineal

Dec 08, 2014

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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: Programacion Lineal

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