Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Libro. Algoritmos y Programación en Pascal, Apuntes de Ingeniería Industrial

Asignatura: Fundamentos de informática, Profesor: Adolfo Muñoz Orbañanos, Carrera: Ingeniería de Tecnologías Industriales, Universidad: UniZar

Tipo: Apuntes

2015/2016

Subido el 23/08/2016

cristinaz97
cristinaz97 🇪🇸

4.4

(7)

2 documentos

1 / 555

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Libro. Algoritmos y Programación en Pascal y más Apuntes en PDF de Ingeniería Industrial solo en Docsity!

Crist´obal Pareja Flores

Manuel Ojeda Aciego

Angel Andeyro Quesada´

Carlos Rossi Jim´enez

Algoritmos y Programaci´on

en Pascal

´Indice

Presentaci´on

Este libro trata sobre m´etodos de resoluci´on de problemas mediante el desa- rrollo de algoritmos y estructuras de datos, desde el principio y paso a paso, y su materializaci´on en programas de computador. Desde luego, no es el primer libro sobre este tema; de hecho, ha habido en los ´ultimos quince a˜nos un gran aluvi´on de textos sobre algoritmos y sobre programaci´on. La raz´on para ello ha sido sin lugar a dudas doble: por un lado, la difusi´on que estos temas han tenido y siguen teniendo, integr´andose en los estudios m´as diversos; por otro, la evoluci´on que est´a experimentando el desarrollo de algoritmos y programas, pasando de ser un arte (reinventado por cada programador a base de t´ecnicas personales, estrechamente vinculadas con su lenguaje de programaci´on) a una actividad m´as cient´ıfica, metodol´ogica y disciplinada. Por consiguiente, resulta necesario aclarar cu´al es el enfoque adoptado en este libro. Examinando la bibliograf´ıa existente actualmente sobre programaci´on a un nivel introductorio permite afirmar las siguientes conclusiones:

  • Una parte importante de los libros existentes han adoptado un enfoque pr´actico puro, no metodol´ogico, que es el m´as tradicional, y a´un subsiste en demasiados libros. Se confunde la ense˜nanza de la programaci´on con la de un lenguaje concreto, ofreciendo muchas veces un mero “manual de referencia” del lenguaje elegido. Bajo el atractivo de los llamativos resultados inmediatos (programas que funcionan), este enfoque ignora la base conceptual y metodol´ogica necesaria, y propicia los peores h´abitos de programaci´on, que son adem´as dif´ıciles de erradicar.
  • Otra postura extrema se centra en el an´alisis y desarrollo de soluciones algor´ıtmicas puras, de forma independiente de cualquier lenguaje de pro- gramaci´on. Esta independencia permite ignorar las peculiaridades de los lenguajes reales, yendo a los conceptos; sin embargo, esa independencia de los lenguajes de programaci´on es a nuestro entender innecesaria e inconve- niente en los primeros pasos, ya que obliga al aprendiz de la programaci´on a estudiar aparte los detalles concretos del lenguaje de programaci´on con que necesariamente debe desarrollar sus pr´acticas.

Presentaci´on xxi

En resumidas cuentas, este libro va dirigido a aqu´ellos que desean introdu- cirse en la programaci´on, con una base s´olida, con una buena metodog´ıa de dise˜no y desarrollo de programas correctos y con h´abitos disciplinados desde una perspectiva realista y pragm´atica. Se presentan las t´ecnicas con un cierto ni- vel de abstracci´on para identificar los conceptos esenciales e independientes del lenguaje de programaci´on empleado, y al mismo tiempo se aterriza expresando estas t´ecnicas en un lenguaje concreto. El lenguaje escogido para estas implementaciones ha sido Pascal. Esta elec- ci´on se debe a que este lenguaje es simple y tiene una sintaxis sencilla, que hace que sea f´acil de aprender, y al mismo tiempo es lo bastante completo como para plasmar las diferentes t´ecnicas y m´etodos necesarios en programas de com- plejidad media-alta. Esto lo hace una herramienta pedag´ogica id´onea para el aprendizaje de la programaci´on. A todo esto hay que sumar las numerosas im- plementaciones existentes y su accesibilidad, as´ı como su evoluci´on y continua puesta al d´ıa para permitir t´ecnicas de programaci´on actuales (por ejemplo, mo- dular u orientada a los objetos) y su gran difusi´on y aceptaci´on en el ´ambito acad´emico.

Organizaci´on del libro

El libro est´a estructurado en siete partes. En cada una de ellas se estudian las t´ecnicas y mecanismos nuevos, conceptualmente primero, detallando luego su tratamiento en Pascal y, finalmente, compaginando ambas facetas con el as- pecto metodol´ogico. Cada tema se ha dividido en varios cap´ıtulos para evitar una excesiva fragmentaci´on. En cada cap´ıtulo se ha incluido una lista de ejerci- cios propuestos de dificultad aproximadamente creciente. Al final de cada tema se desarrolla un ejemplo completo pensado para mostrar a la vez los aspectos m´as destacados del mismo, as´ı como unas pocas referencias comentadas que se sugieren como lecturas complementarias o de consulta.

Contenido

El contenido se ha seleccionado partiendo de las directrices se˜naladas en [DCG+89] y [Tur91]. Incluye los contenidos cursos CS1 y CS2 [GT86, KSW85] salvo los aspectos de organizaci´on de computadores, que se estudian en [PAO94], de los mismos autores que este libro. En el primer tema se presentan, entre otros, los conceptos esenciales de algo- ritmo, dato y programa. Se introduce el lenguaje Pascal y la estructura de los programas escritos en ´el, as´ı como los elementos b´asicos del lenguaje. Se incluyen

xxii Presentaci´on

algunos programas sencillos, y se adelantan la t´ecnica descendente de dise˜no de programas y algunos apuntes sobre la correcci´on. El segundo tema se dedica a la programaci´on estructurada. Se pone espe- cial ´enfasis en el dise˜no descendente o por refinamientos sucesivos partiendo de especificaciones escritas en pseudoc´odigo, y se muestra c´omo compaginar esta t´ecnica con la derivaci´on de programas correctos. En el tercer tema se estudian los subprogramas. Al igual que en el tema anterior, se detalla c´omo enfocar la correcci´on en el uso de esta t´ecnica. Se concluye con un cap´ıtulo de introducci´on a la recursi´on. En la mayor´ıa de los programas no basta con los tipos de datos b´asicos, sino que es necesario que el programador defina otros m´as complejos. A ello se dedica el cuarto tema. El quinto tema estudia las t´ecnicas propias de la gesti´on de memoria din´amica. Se justifica su necesidad, y se presenta su principal aplicaci´on, que es la definici´on de estructuras de datos recursivas. El sexto tema introduce tres aspectos avanzados: la programaci´on con tipos abstractos de datos, el coste de los algoritmos y los principales esquemas de dise˜no de algoritmos. Aunque, ciertamente, su estudio en profundidad rebasa un primer curso, es frecuente introducir –o siquiera mencionar– sus ideas b´asicas. Por supuesto, siempre es altamente recomendable consultar otras referencias (nosotros mismos las seleccionamos para cada tema), pero tambi´en es cierto que el alumno se ve obligado con frecuencia a usar varios textos b´asicos para cubrir diferentes partes de la materia. Justamente, estos ´ultimos cap´ıtulos se incluyen para que el lector interesado se pueda asomar a ellos sin verse obligado a consultar los cap´ıtulos introductorios de otros libros. Finalmente se incluyen tres ap´endices: en el primero se introducen un par de aspectos complementarios para un primer curso de programaci´on (el paso de subprogramas como par´ametros y el uso de variables aleatorias); el segundo es un prontuario de uso del entorno integrado de desarrollo Turbo Pascal; y el tercero indica algunos detalles de Turbo Pascal en que se separa del est´andar, pero que son de uso frecuente.

Notaci´on empleada

En la lectura de este texto se encontrar´an fragmentos escritos en distintos lenguajes:

  • En castellano puro, donde se ha usado este tipo de letra.
  • En Pascal, para lo que se ha elegido el teletipo, salvo las palabras reser- vadas, que van en negrita.