27
Tema 1 Algoritmos y Programas Programación básica Profesora: Magdalena Aguilar-Álvarez

Tema1

  • Upload
    uh

  • View
    1.603

  • Download
    0

Embed Size (px)

DESCRIPTION

Algoritmos y programas

Citation preview

Page 1: Tema1

Tema 1Algoritmos y Programas

Programación básica

Profesora:Magdalena Aguilar-Álvarez

Page 2: Tema1

Algoritmo

1

del latín, dixit algorithmus y del matemático persa kenvorrio) es una lista bien definida, ordenada y finita de operaciones

que permite hallar la solución a un

problema

3

Método para resolver un problema,

mediante la combinación de

pasos que se realizan en

determinado orden de forma precisa

2

Dado un estado inicial y una

entrada, a través de pasos

sucesivos y bien definidos se llega a

un estado final, obteniendo una

solución

Universidad HispanoamericanaProgramación básica

Page 3: Tema1

Programa

1

secuencia no ambigua, finita y

ordenada de instrucciones

que han de seguirse para resolver un problema

3

técnicas de programación

•programación estructurada •programación modular •programación orientada a objetos (POO) •programación declarativa

2

suelen subdividirse en partes menores (módulos), así la

complejidad algorítmica de

cada una de las partes sea menor

que la del programa completo

Universidad HispanoamericanaProgramación básica

Page 4: Tema1

Pseudocódigo

Pseudocódigo = falso lenguaje

serie de palabras léxicas y gramaticales referidos a los lenguajes de programación

sin llegar a la rigidez de la sintaxis de estos ni a la fluidez del lenguaje coloquial

permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo.

Forma parte de las distintas herramientas de la ingeniería de software.

Es, netamente, lenguaje de tipo informático.

Ejemplos:

asigne a x el valor de y x := y

Universidad HispanoamericanaProgramación básica

Page 5: Tema1

Lenguaje de programación

1

conjunto de símbolos y reglas

sintácticas y semánticas que

definen su estructura y el

significado de sus elementos y expresiones

3

permite al programador especificar de

manera precisa sobre qué datos debe operar una

computadora, cómo deben ser almacenados o

transmitidos y las acciones debe tomar bajo una

variada gama de circunstancias.

2

Es utilizado para controlar el

comportamiento físico y lógico de

una máquina

Universidad HispanoamericanaProgramación básica

Page 6: Tema1

Clasificación de los lenguajes de programación

Según su nivel de abstracción

Lenguajes de bajo nivel

se acercan al funcionamiento de una computadora

El lenguaje de más bajo nivel por excelencia es el código máquina

A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.

Ejemplo:;Lenguaje ensamblador, sintaxis Intel para procesadores x86mov eax,1;mueve a al registro eax el valor 1xor ebx, ebx ;pone en 0 el registro ebxint 80h; llama a la interrupción 80h (80h = 128 sistema decimal)

Universidad HispanoamericanaProgramación básica

Page 7: Tema1

Clasificación de los lenguajes de programación

Según su nivel de abstracción

Lenguajes de medio nivel

Tienen ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

Ejemplo:/*Lenguaje C*/ /*declaración de las funciones estandars de entrada y salida*/#include <stdio.h> int main(int argc, char **argv){ char *p; /*creamos un puntero a un byte*/ if(argc == 1) { printf("\nIngrese un argumento al programa\n");/*imprimimos el texto*/ return 1; } p = 0x30000 /*el puntero apunta a 0x30000 */ *p = argv[1][0] /*el primer caracter del primer argumento lo copiamos a la posición 0x30000 */ return 0;}

Universidad HispanoamericanaProgramación básica

Page 8: Tema1

Clasificación de los lenguajes de programación

Según su nivel de abstracción

Lenguajes de alto nivel

•normalmente fáciles de aprender •están formados por elementos de lenguajes naturales, como el inglés. •Esta forma de trabajar puede dar la sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos.

Ejemplo: {Lenguaje Pascal} program suma; var x,s,r:integer; {declaración de las variables} begin {comienzo del programa principal} writeln('Ingrese 2 números enteros');{imprime el texto} readln(x,s); {lee 2 números y los coloca en las variables x y s} r:= x + s; {suma los 2 números y coloca el resultado en r} writeln('La suma es ',r); {imrpime el resultado} readln; end.{termina el programa principal}

Universidad HispanoamericanaProgramación básica

Page 9: Tema1

Según el paradigma de programación

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software.

El paradigma imperativo o por procedimientos es considerado el más común y está representado, por ejemplo, por el C o por BASIC.

El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.

El paradigma lógico, un ejemplo es PROLOG. El paradigma orientado a objetos. Un lenguaje completamente orientado a

objetos es Smalltalk.

Universidad HispanoamericanaProgramación básica

Clasificación de los lenguajes de programación

Page 10: Tema1

Fases de desarrollo de un programa

Universidad HispanoamericanaProgramación básica

Fases

1. Análisis del problema7. Documentación

2. Diseño del algoritmo

3. Compilación

6. Depuración

5. Verificación

4. Ejecución

Page 11: Tema1

1. Análisis del problema

Comunicación entre el programador y el usuario

Usuario conoce el problema pero no la solución informática

Programador conoce la tecnología pero no el problema

Definir el problema con el máximo posible de detalle

Definir claramente las entradas y salidas del programa

Universidad HispanoamericanaProgramación básica

Creatividad

Atención máxima a los

requerimientos del usuario

Page 12: Tema1

2. Diseño

Determinar cómo hace el programa lo que se requiere

Dividir el problema en subproblemas

Identificar las operaciones

Definir los objetos (datos, información)

Programación modular, diseño descendente, orden lógico

Universidad HispanoamericanaProgramación básica

División del problema en

subproblemas

Definir orden lógico de

operaciones

Page 13: Tema1

3. Compilación

Universidad HispanoamericanaProgramación básica

Traducción a código fuente

Genera un ejecutable

Traducción a código fuente

Utiliza un intérprete de lenguaje

Consiste en generar el código objeto equivalente al programa fuente

Su objetivo es generar un archivo ejecutable a partir de lo programado

Sólo se genera código objeto cuando el programa fuente está libre de errores de análisis

Page 14: Tema1

4. Ejecución

Universidad HispanoamericanaProgramación básica

Programa que se ejecuta en el computador

Dar seguimiento a resultados reales

vs. esperados

Tiempo de ejecución (Runtime en inglés)

intervalo de tiempo en el que un programa se ejecuta en un sistema operativo

Se debe dar seguimiento a las tareas que debe realizar vs resultados en ejecución

entorno de ejecución (runtime environment en inglés) es un estado que suministra servicios de software para procesos o programas mientras se está ejecutando Cierta depuración de programas sólo puede realizarse (o ser más eficiente o precisa) cuando se realiza en ejecución

Page 15: Tema1

5. Verificación

Universidad HispanoamericanaProgramación básica

Comprobación del algoritmo

Prueba o testing

Comprobar que el algoritmo realice las tareas planeadas

Ejecución manual, incluso en papel

Tomar rango de datos significativos

Labor de prueba o testing

Herramientas: Diagramas de flujo de datos, pseudocódigo, Nassi-Schneiderman (Chapin)

Page 16: Tema1

6. Depuración

Universidad HispanoamericanaProgramación básica

Herramientas para depuración y revisión sistemática del código

fuente

Requiere paciencia, imaginación e intuición

Depuración de programas es el proceso de identificar y corregir errores de programación

se le conoce como debugging, ya que se asemeja a la eliminación de bichos (bugs)

existen técnicas para la revisión sistemática del código fuente y medios para la detección de errores (debuggers)

También existen facilidades integradas en los sistemas lower CASE y en los ambientes de desarrollo integrado

Sigue siendo una actividad manual, que desafía la paciencia, la imaginación y la intuición del programador

Page 17: Tema1

7. Documentación

Universidad HispanoamericanaProgramación básica

Interna y externa

Documento de guía para futuras

actualizaciones o desarrollos del sistema

Se divide en interna y externa

La interna incluye el código del programa, y los comentarios

La externa incluye listado del programa fuente

También explicaciones de cálculos y especificación de datos,

Manual de usuario, mantenimiento, descripción del problema, DFD, Variables, etc.

Page 18: Tema1

Diagrama de flujo de datos

Universidad HispanoamericanaProgramación básica

forma de representar gráficamente los detalles algorítmicos de un

proceso multifactorial

Page 19: Tema1

Diagrama de flujo de datos

Universidad HispanoamericanaProgramación básica

Page 20: Tema1

Lenguaje de programación PASCAL

Universidad HispanoamericanaProgramación básica

Desarrollado por el profesor suizo Niklaus Wirth a finales de los años 60

Muy utilizado para enseñar la programación de manera disciplinada y

sistemática

Lenguaje de programación de alto nivel, apareción en 1968, ya para 1982 se estandarizó su uso.

Existen varias versiones: UCSD, Blue Label Pascal, Turbo Pascal y para Turbo Pascal versión 5, Borland Int., agregó programación orientada a objetos a Pascal

Page 21: Tema1

Lenguaje de programación PASCALCaracterísticas

Universidad HispanoamericanaProgramación básica

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:

El código esta dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.

El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.

Page 22: Tema1

Lenguaje de programación PASCALCaracterísticas

Universidad HispanoamericanaProgramación básica

Riqueza en tipos de datos

Definidos por el lenguaje Definidos por el usuario

Producción por los compiladores de código Ejecutables rápidos y eficientes

Page 23: Tema1

Lenguaje de programación PASCALCaracterísticas

Universidad HispanoamericanaProgramación básica

En 1988 se lanza la versión 5.0 En 1989 se lanza la versión 5.5 Programación orientada a objetos Se decía que era la programación del futuro En1991 se lanza la versión 6.0 Perfecciona el entorno de programaciónIncorpora librería de objetos (Turbo Visión)Tiene una completa estructura de aplicacionesEn 1992 se presenta la última versión de Turbo Pascal 7.0 Añade nuevas propiedades del lenguaje Mejora la biblioteca Turbo Visión 2.0

Page 24: Tema1

Lenguaje de programación PASCALCaracterísticas

Universidad HispanoamericanaProgramación básica

Es, sin lugar a dudas, una herramienta de programación potente, fácil de utilizar e idónea para aprendizaje de

profesionales o aficionados a la programación.

Page 25: Tema1

¿Porqué PASCAL?

Universidad HispanoamericanaProgramación básica

• sintaxis y estructuras de programación sencillas y parecidas a otros lenguajes más modernos, soporta estructuras de datos más habituales

• Modelo francés: es mejor que el alumno aprenda los fundamentos de la programacióna, al incorporarse al entorno laboral, podrá comprender cualquier lenguaje que utilicen en la empresa donde vaya a trabajar, porque conoce los fundamentos, no se le dificulta aprender cualquier lenguaje de programación.

Modelo norte americano: alumno aprende a manejar una tecnología en concreto, que se esté utilizando en un entorno empresarial. Estas tecnologías no siempre son las más didácticas, sino las más utilizadas.

Cuando se incorpora al trabajo en la empresa, sabe ya el lenguaje de programación utilizado. Problema: Solo se conoce una tecnología y sólo sabe hacer las cosas en ese entorno. Si cambia el lenguaje o cualquier cosa sobre las que han aprendido, posiblemente se vean más perdidos y les cueste mucho más esfuerzo reciclarse.

Page 26: Tema1

Comunicación Usuario – Programador / Analista

Universidad HispanoamericanaProgramación básica

Page 27: Tema1

Muchas gracias