Tema 1 Algoritmos y  Programas Programación básica Profesora: Magdalena Aguilar-Álvarez
Algoritmo Universidad Hispanoamericana Programación básica 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
Programa Universidad Hispanoamericana Programación básica 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
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 Hispanoamericana Programación básica
Lenguaje de programación Universidad Hispanoamericana Programación básica 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
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 x86 mov eax,1;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro  ebxint 80h; llama a la interrupción 80h (80h = 128 sistema decimal)   Universidad Hispanoamericana Programació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(&quot;\nIngrese un argumento al programa\n&quot;);/*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 Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programación básica Clasificación de los lenguajes de programación
Fases de desarrollo de un programa Universidad Hispanoamericana Programación básica Fases 1. Análisis del problema 7. Documentación 2. Diseño del algoritmo 3. Compilación 6. Depuración 5. Verificación 4. Ejecución
1. Análisis del problema Universidad Hispanoamericana Programación básica Creatividad Atención máxima a los requerimientos del usuario 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
2. Diseño Universidad Hispanoamericana Programación básica División del problema en subproblemas Definir orden lógico de operaciones 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
3. Compilación Universidad Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programación básica forma de representar gráficamente los detalles algorítmicos de un proceso multifactorial
Diagrama de flujo de datos Universidad Hispanoamericana Programación básica
Lenguaje de programación PASCAL Universidad Hispanoamericana Programació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 PASCAL Características Universidad Hispanoamericana Programació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 PASCAL Características Universidad Hispanoamericana Programació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 PASCAL Características Universidad Hispanoamericana Programació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ón Incorpora librería de objetos (Turbo Visión) Tiene una completa estructura de aplicaciones En 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 PASCAL Características Universidad Hispanoamericana Programació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 Hispanoamericana Programació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 Hispanoamericana Programación básica
Muchas gracias

Tema1

  • 1.
    Tema 1 Algoritmosy Programas Programación básica Profesora: Magdalena Aguilar-Álvarez
  • 2.
    Algoritmo Universidad HispanoamericanaProgramación básica 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
  • 3.
    Programa Universidad HispanoamericanaProgramación básica 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
  • 4.
    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 Hispanoamericana Programación básica
  • 5.
    Lenguaje de programaciónUniversidad Hispanoamericana Programación básica 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
  • 6.
    Clasificación de loslenguajes 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 x86 mov eax,1;mueve a al registro eax el valor 1 xor ebx, ebx ;pone en 0 el registro ebxint 80h; llama a la interrupción 80h (80h = 128 sistema decimal) Universidad Hispanoamericana Programación básica
  • 7.
    Clasificación de loslenguajes 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(&quot;\nIngrese un argumento al programa\n&quot;);/*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 Hispanoamericana Programación básica
  • 8.
    Clasificación de loslenguajes 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 Hispanoamericana Programación básica
  • 9.
    Según el paradigmade 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 Hispanoamericana Programación básica Clasificación de los lenguajes de programación
  • 10.
    Fases de desarrollode un programa Universidad Hispanoamericana Programación básica Fases 1. Análisis del problema 7. Documentación 2. Diseño del algoritmo 3. Compilación 6. Depuración 5. Verificación 4. Ejecución
  • 11.
    1. Análisis delproblema Universidad Hispanoamericana Programación básica Creatividad Atención máxima a los requerimientos del usuario 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
  • 12.
    2. Diseño UniversidadHispanoamericana Programación básica División del problema en subproblemas Definir orden lógico de operaciones 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
  • 13.
    3. Compilación UniversidadHispanoamericana Programació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
  • 14.
    4. Ejecución UniversidadHispanoamericana Programació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
  • 15.
    5. Verificación UniversidadHispanoamericana Programació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)
  • 16.
    6. Depuración UniversidadHispanoamericana Programació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
  • 17.
    7. Documentación UniversidadHispanoamericana Programació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.
  • 18.
    Diagrama de flujode datos Universidad Hispanoamericana Programación básica forma de representar gráficamente los detalles algorítmicos de un proceso multifactorial
  • 19.
    Diagrama de flujode datos Universidad Hispanoamericana Programación básica
  • 20.
    Lenguaje de programaciónPASCAL Universidad Hispanoamericana Programació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
  • 21.
    Lenguaje de programaciónPASCAL Características Universidad Hispanoamericana Programació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.
  • 22.
    Lenguaje de programaciónPASCAL Características Universidad Hispanoamericana Programació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
  • 23.
    Lenguaje de programaciónPASCAL Características Universidad Hispanoamericana Programació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ón Incorpora librería de objetos (Turbo Visión) Tiene una completa estructura de aplicaciones En 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
  • 24.
    Lenguaje de programaciónPASCAL Características Universidad Hispanoamericana Programació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.
  • 25.
    ¿Porqué PASCAL? UniversidadHispanoamericana Programació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.
  • 26.
    Comunicación Usuario –Programador / Analista Universidad Hispanoamericana Programación básica
  • 27.