PDF de programación - Algoritmos y programas

Imágen de pdf Algoritmos y programas

Algoritmos y programasgráfica de visualizaciones

Publicado el 19 de Junio del 2019
368 visualizaciones desde el 19 de Junio del 2019
1,3 MB
141 paginas
Creado hace 8a (06/11/2010)
Algoritmos y programas

Algoritmo

Secuencia ordenada de pasos que resuelve un problema concreto.

Características
- Corrección

(sin errores).

- Precisión

(ausencia de ambigüedades).

- Repetitividad

(solución genérica de un problema dado).

- Finitud

(número finito de órdenes no implica finitud).

- Eficiencia

(temporal [tiempo necesario] y espacial [memoria utilizada])

Programa

Implementación de un algoritmo en un lenguaje de programación

Datos de
entrada

Programa
Instrucciones

Datos de
salida

Conjunto ordenado de instrucciones
indicándole las operaciones o tareas que ha de realizar para resolver un
problema.

que se dan al ordenador

Introducción a la Programación

- 1 -

© Fernando Berzal

Lenguajes de programación

Una instrucción es un conjunto de símbolos que representa una orden
para el ordenador: la ejecución de una operación con datos.

Las instrucciones se escriben en un lenguaje de programación:

- Se forman con símbolos tomados de un determinado repertorio

(componentes léxicos)

- Se construyen siguiendo unas reglas precisas (sintaxis)

Lenguaje máquina
El único que entiende directamente la CPU del ordenador
ß Depende del modelo de ordenador
ß Repertorio de instrucciones reducido (operaciones muy elementales)
ß Muy difícil programar en él (en binario, con cadenas de ceros y unos)

Lenguaje ensamblador
Equivalente al lenguaje máquina, cada línea de código se traduce en
una instrucción para la máquina.
Le asocia mnemónicos a las operaciones que entiende la CPU
ß Repertorio de instrucciones reducido (operaciones muy elementales)
ß Programas difíciles de entender

Lenguajes de alto nivel
Permiten que el programador exprese el procesamiento de datos de
forma simbólica, sin tener en cuenta los detalles específicos de la
máquina.
Independientes del modelo de ordenador
Proporcionan un mayor nivel de abstracción

Introducción a la Programación

- 2 -

© Fernando Berzal

Ejemplos de lenguajes de programación de alto nivel

FORTRAN (FORmula TRANslation)
© 1957, IBM (John Backus)
Orientado a la resolución de problemas científicos y técnicos
COBOL (COmmon Business Oriented Language)
© 1959, Codasyl (Committee on Data System Languages)
Aplicaciones comerciales de gestión
LISP (LISt Processing)
© 1959, John McCarthy (MIT)
Procesamiento de datos no numéricos (usado en IA)
BASIC (Beginner’s All-purpose Symbolic Instruction Code)
© 1964, John Kemeny & Thomas Kurtz (Darmouth College)
Lenguaje interactivo para principiantes
Simula
© 1967, Ole-Johan Dahl & Krysten Nygaard (Noruega)
Primer lenguaje de programación orientada a objetos
Pascal
© 1971, Niklaus Wirth
Lenguaje estructurado diseñado para aprender a programar
C
© 1972, Denis Ritchie (Bell Labs)
Lenguaje pequeño, flexible y eficiente
Smalltalk
© 1972, Alan Kay (Xerox PARC)
Origen de los interfaces WIMP (Windows, Icons, Mouse & Pull-down menus)
PROLOG (PROgramming in Logic)
© 1972, Alain Colmerauer (Universidad de Marsella)
Basado en Lógica (usado en IA)
Ada
© 1980, US Department of Defense
Basado en Pascal, muy usado en aplicaciones militares

Introducción a la Programación

- 3 -

© Fernando Berzal

C++
© 1983, Bjarne Stroustroup (AT&T Bell Labs)
Extensión de C que permite la programación orientada a objetos
Java
© 1995, Sun Microsystems
Similar a C++, aunque más sencillo de aprender y usar.
C#
© 2000, Microsoft Corporation
Alternativa de Microsoft a Java, muy similar a éste

Clasificación de los lenguajes de programación de alto nivel

• Lenguajes imperativos:

Los programas indican al ordenador de forma inequívoca los
pasos a seguir para la resolución de un problema.

o Programación estructurada:

La estructura del texto del programa debe auxiliarnos para
entender la función que realiza
: estrategia “divide y
vencerás” (la resolución de un problema s e divide en tareas
y, éstas, en subtareas).
Ejemplos: C, Pascal, Fortran...

o Programación orientada a objetos:

que basa la estructura de un

Estilo de programación
programa en módulos deducidos de los tipos de objetos que
manipula (en lugar de basarse en las tareas que el sistema
debe realizar).
Ejemplos: Smalltalk, C++, Java, C#...

• Lenguajes declarativos (funcionales y lógicos):

Los programas se implementan como conjuntos de funciones (o
reglas lógicas) cuya evaluación nos dará el resultado deseado.
Ejemplos: LISP, PROLOG...

Introducción a la Programación

- 4 -

© Fernando Berzal

Evolución de los lenguajes de programación:

Lenguajes imperativos

Introducción a la Programación

- 5 -

© Fernando Berzal

Evolución de los lenguajes de programación:

Lenguajes declarativos

Introducción a la Programación

- 6 -

© Fernando Berzal

Traductores

Los traductores transforman programas escritos en un lenguaje de alto
nivel en programas escritos en código máquina:

Tipos de traductores
Compiladores
Generan un programa ejecutable a partir del código fuente

Intérpretes
Van analizando, traduciendo y ejecutando las instrucciones del
programa una a una. No se traduce una instrucción hasta que la
ejecución de la anterior haya finalizado.

Herramientas de programación

Editores, depuradores, profilers...

˜ IDEs (entornos integrados de desarrollo)

Ejemplos Microsoft Visual Studio .NET

Borland C++Builder/Delphi
Eclipse


Introducción a la Programación

- 7 -

© Fernando Berzal

Eclipse, un IDE para Java (http://www.eclipse.org)

Microsoft Visual Studio .NET, un IDE para la plataforma .NET

Introducción a la Programación

- 8 -

© Fernando Berzal

Desarrollo de aplicaciones informáticas:
Ciclo de vida del software
El ciclo de vida de una aplicación comprende las siguientes etapas:
Planificación

Delimitación del ámbito del proyecto, estudio de viabilidad, análisis de riesgos,
estimación de costos, planificación temporal y asignación de recursos.

Análisis (¿qué?): Elicitación de requisitos.

Descripción clara y com pleta de qué es lo que se pretende,
incluyendo la presentación de los resultados que se desean obtener
(formato de las salidas) y la forma en que se va a utilizar la
aplicación (interfaz de usuario)

Diseño (¿cómo?): Estudio de alternativas

§ Diseño arquitec tónico: Organización de los distintos módulos

que compondrán la aplicación (diseño arquitectónico).

§ Diseño detallado : Definición de los algoritmos necesarios para

implementar la aplicación en lenguaje natural, mediante
diagramas de flujo o en pseudocódigo [lenguaje algorítmico].

Implementación:

Adquisición de componentes, creación de los módulos de la
aplicación en un lenguaje de programación e integración de los
recursos necesarios para que el sistema funcione.

Depuración y pruebas:

Comprobación del funcionamiento de la aplicación
Pruebas de unidad y de integración, pruebas alfa, pruebas beta, test de aceptación.
§ Verificación (si se está realizando lo que se pretendía)
§ Validación (si se realiza lo correcto).

Explotación: Uso y mantenimiento

§ Mantenimiento correctivo: Corrección de defectos o errores.
§ Mantenimiento adaptativo: Adaptación de la aplicación a nuevas

circunstancias e inclusión de nuevas prestaciones.

Introducción a la Programación

- 9 -

© Fernando Berzal

Introducción a la programación



Java

La plataforma de programación Java

Historia
La máquina virtual Java
Herramientas de programación en Java

Aplicaciones y applets

Aplicación de ejemplo
Applet de ejemplo
Fases en la creación y ejecución de programas en Java

Características clave de Java

Mitos y realidades

La plataforma Java

• La máquina virtual Java

(JVM: Java Virtual Machine)

Imprescindible para poder ejecutar aplicaciones Java.

• Las bibliotecas estándar de Java

(Java Application Programming Interface = Java API)

Amplia colección de componentes.

• El lenguaje de programación Java

Para escribir aplicaciones.

Introducción a la Programación: Java

- 11 -

© Fernando Berzal

Historia de Java

Hay versiones distintas sobre el origen, concepción y

desarrollo de Java, desde la que dice que éste fue un proyecto que
estuvo durante mucho tiempo por distintos departamentos de Sun
sin que nadie le prestara atención hasta la más difundida, que
presenta a Java como un lenguaje pensado para pequeños
electrodomésticos:

Hace algunos años, Sun Microsystems decidió intentar introducirse en el

mercado de la electrónica de consumo y desarrollar programas para pequeños
dispositivos electrónicos. Sun decidió crear una filial, denominada FirstPerson Inc..
El mercado inic ialmente previsto para los programas de FirstPerson eran los

equipos domésticos: microondas, tostadoras y, fundamentalmente, televisores
interactivos. En este mercado, dada la falta de pericia de los usuarios, se requerían unos
interfaces mucho más cómodos e intuitivos que los sistemas de ventanas del momento.

James Gosling decidió que las ventajas aportadas por la eficiencia de C++ no

compensaban el gran coste de la prueba y depuración de aplicaciones C++.
Gosling
había estado trabajando en un lenguaje de programación que él había llamado Oak, el
cual, aún partiendo de la sintaxis de C++, intentaba remediar las deficiencias que iba
observando.

El primer proyecto en que se aplicó este lenguaje recibió el nombre de proyecto
Green y consistía en un sistema de control completo de los aparatos electrónicos y el
entorno de un hogar.

Para ello se construyó un ordenador experimental denominado *7

(Star Seven). El sistema presentaba una interfaz basada en la
representación de la casa de forma animada y el control
cabo mediante una pantalla sensible al tacto. En el sistema aparecía
Duke, la mascota de Java.

se llevaba a

Posteriormente, se aplicó a otro proyecto de V oD (Video On Demand) en el que
se empleaba como interfaz para la televisión interactiva. Ninguno de estos proyectos se
convirtió nunca en un sistema comercial.

Cuando en Sun se dieron cuenta de que a corto plazo la televisión interactiva no

iba a ser un gran éxito, urgieron a FirstPerso
  • Links de descarga
http://lwp-l.com/pdf16148

Comentarios de: Algoritmos y programas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad