Upload
uh
View
1.734
Download
0
Embed Size (px)
Citation preview
Tema 1Algoritmos y Programas
Programación básica
Profesora:Magdalena Aguilar-Álvarez
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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.
Diagrama de flujo de datos
Universidad HispanoamericanaProgramación básica
forma de representar gráficamente los detalles algorítmicos de un
proceso multifactorial
Diagrama de flujo de datos
Universidad HispanoamericanaProgramación básica
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
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.
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
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
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.
¿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.
Comunicación Usuario – Programador / Analista
Universidad HispanoamericanaProgramación básica
Muchas gracias