cc102 introduccion a la programaciÓn

20
INTRODUCCIÓN A LA Curso: Introducción a la programació Universidad de Guadalajara Centro Universitario de los Valles Guía/ Antología 2001

Upload: firsttitimania1914

Post on 31-Jul-2015

35 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CC102 INTRODUCCION A LA PROGRAMACIÓN

Curso:

INTRODUCCIÓN A LA PROGRAMACION

2001

Curso: Introducción

a la programació

Universidad de Guadalajara

Centro Universitario de los Valles

Guía/ Antología

2001

Page 2: CC102 INTRODUCCION A LA PROGRAMACIÓN

1

Contenidos

Irwin Jonathan Magallán H.Luz [email protected]

Supervisión Técnico-Pedagógica

Dr. Víctor Manuel Rosario Muñoz

Lic. Gustavo Castro García

Edición

Centro de Autoedición del Centro Universitario de los Valles

INTRODUCCIÓN A LA PROGRAMACION

Curso:

Guía/Antologia

2001

Curso:

Introducción a la

programació

Universidad de Guadalajara

Centro Universitario de los Valles

Page 3: CC102 INTRODUCCION A LA PROGRAMACIÓN

2

Directorio

Dr. Víctor Manuel González Romero Rector General de la Universidad de Guadalajara Dr. Misael Gradilla Damy Vicerrector Ejecutivo de la Universidad de Guadalajara Lic. José Trinidad Padilla López Secretario General de la Universidad de Guadalajara Dr. Adolfo Espinoza de los Monteros Cárdenas Coordinador Ejecutivo del Campus Universitario de los Valles Dr. Víctor Manuel Rosario Muñoz Secretario Académico del Campus Universitario de los Valles

Page 4: CC102 INTRODUCCION A LA PROGRAMACIÓN

3

Contenido

Pagina Introducción 5 Presentación 6 Unidad 1 Elementos de la programación 7 Unidad 2 Programación estructurada 9 Unidad 3 La codificación en la programación estructurada 13 Unidad 4 Computabilidad 15 Caso integrador 18 Bibliografía 19

Page 5: CC102 INTRODUCCION A LA PROGRAMACIÓN

4

Introducción

Para justificar los contenidos de los módulos de Programación

en lenguajes estructurados tenemos que considerar varias cuestiones. Por una parte, estos módulos son el punto de partida hacia el mundo informático, permitiendo una familiarización íntima con las primeras palabras, conceptos y elementos del sistema informático.

Normalmente el alumno que se involucra en un ciclo formativo de informática no ha mantenido contacto anterior con la rama, el lenguaje informático e incluso algunos, no han encendido nunca una computadora. Debido a esto, se elaboro esta guía de aprendizaje y una antología, con una serie de temas y ejercicios de enseñanza-aprendizaje donde se te invita a que participes activamente en los diferentes módulos donde se te expondrán temas como pseudocódigo, diagramas de flujo, estructuras de control, los pasos a seguir para la construcción de programas de computo entre otros, todo esto partiendo de un nivel cero.

El alumno es el encargado de elaborar sus propios esquemas de conocimiento teniendo como base la antología y los ejercicios de la guía para alcanzar un aprendizaje a partir de una sucesión de experiencias que permitan contrastar sus propias ideas y modificar los conocimientos de partida. Por el contrario, el profesor controla el proceso de este barco planificando actividades que constaten el interés del alumno así como motivarle a confrontar sus contenidos de procedimientos en diferentes contextos y ámbitos con la consiguiente previsión de situaciones.

Es difícil establecer un patrón común para todos los alumnos puesto que cada uno asimila las ideas y las enlaza según la destreza y rapidez en la captación de las mismas.

Pero para esto se diseñó esta guía para que tú como alumno puedas aprender a tu ritmo, pero durante el ciclo se te pedirá que entregues trabajos, los cuales deben de cumplir con la candelarización que tu asesor establezca.

Page 6: CC102 INTRODUCCION A LA PROGRAMACIÓN

5

Presentación Esta guía de estudio fue creada y diseñada para ti estudiante de la Lic. en Informática para ofrecerte un programa sencillo y detallado acerca de las nociones, que debes comprender y asimilar sobre la programación estructurada, iniciando con el lenguaje C como ingreso al mundo de la programación y de la informática, con el fin de que con este lenguaje puedas empezar a manejar y comprender cualquier lenguaje de programación, Con las herramientas básicas que se te van a mostrar a lo largo de esta guía, podrás realizar el caso integrador que se te ofrece al final y así reafirmes tus habilidades como programador. Este material se ha elaborado con la finalidad de que tus inicios como programador sean motivados con un ambiente agradable y sencillo, esperando que desarrollen tu interés en el conocimiento y manejo de software. Recuerda que como todas las cosas requieren dedicación y mucha práctica; para que tu puedas, en este caso, dominar la programación, y así puedas crear y desarrollar tus propias técnicas en la programación en cualquier tipo de lenguaje en el que desees desarrollar tus programas. Al finalizar este curso se espera que tu estudiante puedas desarrollar programas sencillos, aplicando todas las herramientas expuestas dentro de las actividades que se recomiendan realizar en cada uno de los módulos. Objetivo General Comprenderás al final de este los conceptos básicos de la programación, algoritmos y conceptos de un programa; la formación de los algoritmos en pseudocódigo y su uso e implementación en un lenguaje de programación. Perfil de ingreso: El alumno debe de tener conocimientos en las áreas de matemáticas, precálculo y lógica; interés por el diseño, programación e implementación de sistemas de información, deseos de construir sistemas para empresas independiente del tamaño de estas, siendo estos sistemas a medida o en dado caso hacer paqueterías a nivel comercial, gusto por la computación y su entorno.

Page 7: CC102 INTRODUCCION A LA PROGRAMACIÓN

6

Perfil de egreso: El alumno conocerá y manejará las ideas y conceptos básicos de la programación estructurada, diseñará programas en un entorno de texto, pero con las nociones suficientes para poder empezar a manejar cualquier lenguaje de programación visual u orientado a objetos, ya que contará con las bases necesarias para conocer la forma en que se comporta un lenguaje de programación. Lógica de construcción del conocimiento y aprendizaje: Actividad preliminar: En ella iniciarás con un ejemplo donde se te pide que apliques alguna actividad diaria para que empieces a relacionarte con las actividades de cada modulo. Actividades para el aprendizaje: En ellos se te propondrá que relices los ejercicios basados en la información que se te presenta en la antología. Actividad integradora: En este apartado se te pedirá que lleves acabo algunos ejercicios conforme a lo aprendido en el modulo. Esto te ayudara a realizar el caso integrador (así que realízalo lo mejor posible). Caso integrador: En el caso integrador utilizarás las herramientas mostradas durante el curso. Para esto se te propondrá en cada uno de los módulos, el desarrollo y cohesión de los conocimientos adquiridos para la realización de las actividades integradoras y con esto poder concretar el caso integrador que se entregará al final del curso. Nota: Se te recomienda que leas antes el caso integrador para poder desarrollarlo durante todo el curso, y final de este ciclo solo tengas que afinar algunos detalles en el mismo.

Page 8: CC102 INTRODUCCION A LA PROGRAMACIÓN

7

Modulo 1.

Objetivo de Aprendizaje

Objetivos de aprendizaje: 1.- Comprenderá el uso de las herramientas y técnicas para desarrollar programas correctos y legibles e identificar cada una de las fases de su desarrollo.

Contenido temático:

1.1 Fases de la creación de un programa. 1.2 Herramientas para construir programas.

Actividad preeliminar

1) Enumera paso a paso las actividades que realizas comúnmente desde que despiertas hasta que te duermes.

2) Define sin consultar que importancia tiene el orden y

seguimiento de las actividades. 1.1 Fases de la creación de un programa.

Actividades para el aprendizaje:

1) Con la actividad anterior trata de relacionarla con la definición de un programa.

ELEMENTOS DE LA PROGRAMACIÓN.

1 UUnniiddaadd

Page 9: CC102 INTRODUCCION A LA PROGRAMACIÓN

8

Con la lectura López R. Leobardo Programación estructurada un enfoque algorítmico, Alfaomega, México D.F. 1ra. ED. 1997 p281). Paginas 19 a 24, capitulo I. realiza las siguientes actividades:

1) Realiza una síntesis de los siguientes conceptos y

relaciónalos con tus actividades diarias.

a. Programa b. Programación c. Lenguaje de programación d. Algoritmo

2) Explica y enumera las fases de la creación de un

programa (proceso de programación).

3) Realiza un mapa conceptual de las fases de creación de un programa.

1.2 Herramientas para construir programas.

Actividades para el aprendizaje:

Con la Lectura Joyanes Aguilar Luis Fundamentos de la programación Algoritmos y estructura de datos, , McGrawHill, 2da. Edición, Paginas 46 a 62, realiza las siguientes actividades. 1) Define cada una de las herramientas para construir

programas 2) Localiza y define que es un diagrama de flujo. 3) Define con tus propias palabras cada uno de los símbolos del

diagrama de flujo.

4) Define el concepto de pseudocódigo y explica su función. 5) Tomando en cuenta actividad preeliminar 1 desarrolla cada

una de las herramientas para construir programas.

Actividad integradora: Elabora el diagrama de flujo y el pseudocódigo de las actividades que debes realizar al comprar cualquier tipo de artículo, tomando en cuenta el hecho de que tienes que buscar y elegir el tipo y tamaño del articulo, la búsqueda de la tienda, como se va a pagar (tarjeta de crédito o efectivo), etc...., usando todo lo que te ofrecen estas herramientas.

Page 10: CC102 INTRODUCCION A LA PROGRAMACIÓN

9

:

Objetivos de aprendizaje 1.- Comprenderá y aplicará los métodos básicos de diseño de un programa estructurado, así como su realización, prueba y documentación.

Contenido temático:

2.1Creación de programas en pseudocódigo (Secuenciación, selección, iteración). 2.2 Módulos y subrutinas. 2.3 Técnicas de diseño descendentes. 2.4 Documentación y pruebas de programas.

Actividad preliminar

1) Tomando en cuenta la lista de actividades que enumeraste en la actividad preliminar 1 del módulo 1, realiza en pseudocódigo esas actividades pero en modo real, es decir, si te levantas tarde que haces, si no tomaste el camión o no arranca el automóvil entonces..., señalando lo que harías en caso de no cumplirse la primera siendo esta tu segunda opción o opciones si estas se pueden presentar.

2) Realiza nuevamente la actividad anterior pero genéralo por

partes, por ejemplo la acción de levantarte implica el despertar, quitarte la sabana, ponerte zapatos, etc., siendo este un procedimiento, genera el pseudocódigo por módulos (bañarte, desayunar, ir a tomar el camión, etc..)

PROGRAMACIÓN ESTRUCTURADA 2

UUnniiddaadd

Page 11: CC102 INTRODUCCION A LA PROGRAMACIÓN

10

2.1 Creación de programas en pseudocódigo (secuenciación, selección, iteración)

Actividades para el aprendizaje: Con la lectura (Fundamentos de la programación Algoritmos y estructura de datos, Luis Joyanes Aguilar, McGrawHill, 2da. Edición)paginas 100 a 135 realiza las siguientes actividades: 1) Define las estructuras de control. 2) Genera en pseudocódigo los diferentes tipos de estructuras

de control. 3) Presenta un ejemplo de tu vida cotidiana con cada una de las

estructuras de control (secuenciación, selección e iteración). 2.2 Módulos y subrutinas. Actividades para el aprendizaje:

Con la lectura (Estructura de datos, Algoritmos, abstracción y objetos, Luis Joyanes Aguilar, McGrawHill, 1ra. Edición, México D.F., 1998, P.855) paginas 86 a 87 realiza las siguientes actividades: 1) Realiza una síntesis de los conceptos de módulos y

subrutinas. 2) Define cuál es la función de un modulo en la programación.

3) Representa la actividad preeliminar 1 de este modulo en un

diseño modular.

4) Explica cual es la función principal de las subrutinas o procedimientos.

Page 12: CC102 INTRODUCCION A LA PROGRAMACIÓN

11

2.3 Técnicas de diseño descendentes (TOP - DOWN).

Actividades para el aprendizaje:

Con la lectura (Fundamentos de la programación Algoritmos y estructura de datos, Luis Joyanes Aguilar, McGrawHill, 2da. Edición) pagina 99 realiza las siguiente actividades: 1) Elabora una síntesis del concepto del modelo descendente. 2) Define cual es la diferencia o similitud que hay entre la

relación de un modulo y el diseño descendente.

3) Realiza la actividad preeliminar en diseño descendente (top-down).

2.4 Documentación y prueba de programas.

Actividades para el aprendizaje:

Con la lectura (Estructura de datos, Algoritmos, abstracción y objetos, Luis Joyanes Aguilar, McGrawHill, 1ra. Edición, México D.F., 1998, P.855)paginas 35 a38 realiza las siguiente actividades: 1) Explica cual es la función principal de la documentación 2) Elabora una síntesis de la documentación interna y la

documentación externa.

3) La documentación esta dirigida para tres tipos de personas, enumera cada una de estas y describe cual es la función que debe cumplir la documentación en cada una de ellas.

4) Realiza un cuadro sinóptico con el ejercicio 2.

5) Diseña un mapa conceptual con los diferentes símbolos que

se usan en los programas para representar la documentación interna.

6) Realiza un cuadro comparativo entre la documentación

interna y la documentación externa.

Page 13: CC102 INTRODUCCION A LA PROGRAMACIÓN

12

Con la lectura (Estructura de datos, Algoritmos, abstracción y objetos, Luis Joyanes Aguilar, McGrawHill, 1ra. Edición, México D.F., 1998, P.855) paginas 42 a 46 realiza las siguientes actividades: 1) Cual es la función mas importante que cumplen las pruebas

en la codificación de un programa?.

2) Cuando ocurre la prueba del programa?

3) Genera un mapa conceptual sobre que errores pueden surgir durante las pruebas.

4) Realiza una síntesis de los errores en un programa.

Actividad integradora: Describe la documentación necesaria para un programa donde se realiza una suma interactiva de números primos, teniendo como condición que se le va dar entrada a cualquier número (primo o no primo) y el programa debe de seleccionar los números primos para ser sumados, pueden tener acceso n cantidad de números separados por el signo de suma, cualquier otro tipo de símbolo no será aceptado y al final de este, muestre una lista de los números que no son primos y otra de los números primos.

Page 14: CC102 INTRODUCCION A LA PROGRAMACIÓN

13

Objetivos de aprendizaje:

Aplicara los conceptos y técnicas de programación estructurada codificando programas sencillos en cuando menos 3 lenguajes de programación, diferentes de c.

Contenido temático:

3.1 Estructuras fundamentales de control. 3.2 Módulos y subrutinas. 3.3 Manejo de archivos. 3.4 Codificación de un diseño completo. Ya que se realizo una introducción en la unidad anterior a todos los conceptos que se te proporcionan en el contenido temático de esta unidad se te pide lo siguiente:

Actividad preliminar

1) Realiza en pseudocódigo una de tus actividades diarias pero verificándola paso a paso, esto, para estar conciente de que se esta realizando conforme a lo planeado.

Actividades para el aprendizaje: Conforme a las lecturas tituladas Tutorial básico a turbo pascal, Basic (http://usuarios.tripod.es/ncabanes/basic1.html) y la paginas con la siguiente dirección http://www.cesga.es:8800/cursos/f90/sec1/cap1/frame_tema1_cap1_1.html el cual hace referencia al Tutorial básico de fortran realiza las siguientes actividades:

LA CODIFICACIÓN EN LA PROGRAMACIÓN ESTRUCTURADA

3UUnniiddaadd

Page 15: CC102 INTRODUCCION A LA PROGRAMACIÓN

14

1) Realiza un documento donde expongas cuales son las

diferencias y similitudes que encontraste en los diferentes leguajes de programación (mínimo una cuartilla).

2) Elabora un mapa conceptual de cómo hacen acceso a los

archivos en los leguajes de programación, como pascal, Basic y Fortran.

3) Elabora toda la documentación requerida para el problema

que se te expone mas adelante, el cual deberás programarlo en los siguientes lenguajes de programación estructurados.

1. Pascal 2. Fortran 3. Basic

Problema: Diseña un programa que te sume todos los números primos que se encuentren en una lista (insertada por un usuario).

Actividad integradora: Elabora un documento donde describas las estructuras de control, módulos y subrutinas y manejo de archivos en los lenguajes de programación siguientes: pascal, Basic y Fortran.

Page 16: CC102 INTRODUCCION A LA PROGRAMACIÓN

15

Objetivos de aprendizaje:

Comprender las ideas básicas de la teoría de la Computabilidad Contenido temático:

4.1 El concepto de algoritmo: la maquina de turing. 4.2 Lenguajes formales y autómatas.

Actividad preliminar

1) Genera un ejemplo de alguna actividad que realices para resolver un problema, tratando de generarla como si estuvieras realizando un programa, es decir, comprobando si la actividad que realices es la mejor , si lo que estas usando es lo adecuado, o si tienes otros caminos a seguir dependiendo del problema, etc., (básate en los ejemplos de las lecturas)

4.1 El concepto de algoritmo: la maquina de turing

Actividades para el aprendizaje: Con la lectura (Fundamentos de la programación Algoritmos y estructura de datos, Luis Joyanes Aguilar, McGrawHill, 2da. Edición,) paginas 4 a 5 realiza las siguientes actividades:

1) Define el concepto de algoritmo. 1) Diseña un algoritmo de una de tus actividades laborales

COMPUTABILIDAD 4 UUnniiddaadd

Page 17: CC102 INTRODUCCION A LA PROGRAMACIÓN

16

Con la lectura (Lenguajes de programación, Diseño e Implementación, Terrence W. Pratt, Marvin V. Zelkowitz, 3ra. ED.) paginas 409 a 415 realiza las siguientes actividades:

1) Cual es la función principal de un algoritmo.

2) Define el funcionamiento de la maquina de turing y realiza una

síntesis de su modo de operación.

3) Como se relaciona la maquina de turing con un autómata?. 4.2 Lenguajes formales y autómatas

Actividades para el aprendizaje: Conforme a la lectura titulada apuntes de lenguajes y autómatas con la siguiente dirección http://www.itz.edu.mx/~1veyna/automatas/unidad2 realiza las siguientes actividades

1) Define el concepto de lenguajes formales.

2) Los leguajes formales tienen una función, descríbela y explica cual es la relación que existe entre un lenguaje formal y la programación.

3) Realiza un cuadro sinóptico de las características de los

lenguajes formales.

4) Realiza una síntesis de los autómatas. 5) Resuelve el siguiente problema: Sea L={ab, aa, baa}. ¿Cuál

de las siguientes cadenas pertenece a L*?: a) abaabaaabaa, b) aaaabaaaa, c) baaaaabaaaab, d) baaaaabaa.

Actividad integradora:

6) Se considera el lenguaje L formado por las palabras sobre el alfabeto {a,b,c} en las que cada par de aes consecutivas va seguido por al menos tres letras, de las cuales las tres primeras o bien no son aes (ninguna de ellas) o la segunda es una a, en cuyo caso la primera y la tercera no lo son y además son iguales entre sí.

Page 18: CC102 INTRODUCCION A LA PROGRAMACIÓN

17

Determinar mediante un diagrama los siguientes enunciados:

1. un autómata finito no determinista que acepte al lenguaje L;

2. un autómata finito determinista que acepte al lenguaje L;

3. el autómata finito determinista mínimo que acepte al lenguaje L;

4. una expresión regular que defina al lenguaje L.

7) ¿Cuáles de las palabras 00, 01001, 10010, 000 y 0000 son aceptadas por el siguiente autómata finito no determinista?

q00

0,1

1

1

q1 q0,

Page 19: CC102 INTRODUCCION A LA PROGRAMACIÓN

18

Caso integrador Se tiene una máquina de refrescos la cual solo acepta monedas de 1,2,5 y 10 pesos, el precio de cada refresco es de 4.50 $ Problema: Al momento de introducir la moneda la máquina debe reconocer qué moneda se esta introduciendo y si ésta o la suma de éstas cubren el importe exacto del refresco, si no, la máquina podrá hacer las siguientes acciones según sea el caso:

1) La maquina deberá estar inicializada en Cero, es decir, no regresará cambio si es que se excede el precio del importe del refresco.

2) Deberá regresar cambio si es que se insertó mas dinero que el importe total del refresco.

3) Tendrá un registro en un archivo donde tenga almacenadas las monedas que residen en la máquina, mostrando la cantidad total de cada denominación de moneda.

Actividades

1. Desarrolla el funcionamiento de esta máquina con diagramas de flujo y pseudocódigo.

2. Realiza la codificación del programa de la máquina

expendedora de refresco en lenguaje c estructurado (recuerda que el lenguaje c también se puede desarrollar orientado a objetos lo cual no es valido para este ciclo).

3. Elabora toda la documentación necesaria.

4. Desarrolla el autómata para esta maquina.

Page 20: CC102 INTRODUCCION A LA PROGRAMACIÓN

19

Bibliografía:

Joyanes, Aguilar Luis; Fundamentos de programación, Algoritmos y estructuras de datos, Segunda Edición, Mcgraw Hill.

Lopez ,R Leobardo.; Programación Estructurada, Un enfoque algoritmo, Alfaomega, 1ra ED. México D.F. 1997,P281.

Terrence W. Pratt, Marvin V. Zelkowitz; Lenguajes de programación, Diseño e implementación, Tercera Edición Prentice may.

Joyanes Aguilar Luis, Zahonero Martinez Ignacio, Estructura de datos, Algoritmos, abstracción y objetos, Mcgraw Hill, Madrid 1998, P 857.

Luis, Programación en C++, Algoritmos, estructuras de datos y objetos, Mcgraw Hill, 1ra Edición, Madrid 2000, P 710.

Páginas en Internet: http://www.caminantes.net/web/informatica/turing.htm http://148.247.2.21/red/logica/node4.html http://148.247.2.21/red/logica/node6.html Http://www.unizar.es/ccuz/doc_tec/ccuz28.pdf http://luda.unam.mx/cursoc1/c/tema2/progc01.html http://usuarios.tripod.es/ncabanes/basic1.htm http://www.cesga.es:8800/F90 http://www.itz.edu.mx/~lveyna/automatas/unidad3.htm