Informática y
Programación
Mario Poza 2ºBA
Problemas, algoritmos y programas
●
El término informática viene del francés informatique
(Philippe Dreyfus, 1962), que es un acrónimo de
information y automatique.
●
Conjunto de conocimientos científicos y técnicas que
hacen posible el tratamiento automático de la información
por medio de ordenadores.
Problemas, algoritmos
y programas
●
Los ordenadores son máquinas que ejecutan algoritmos.
●
No están diseñados para una tarea concreta
●
Pero hay que saber: – cómo conseguir que un ordenador
realice una tarea concreta – cuáles son las tareas que puede
realizar un ordenador
●
Un ordenador es un ejemplo de mecanismo: una máquina que,
una vez puesta en marcha, realiza una tarea de manera
automática, en un cierto intervalo de tiempo y después se
detiene.
Problemas, algoritmos y programas
●
Un ordenador es un mecanismo digital de propósito
general, que se convierte en un mecanismo para un uso
específico cuando procesa un algoritmo determinado.
●
El algoritmo o secuencia de instrucciones especifica las
acciones que ha de ejecutar y en qué orden para
completar una tarea determinada.
●
La ejecución o procesamiento de un algoritmo supone la
transformación de una información de entrada o datos en
una información de salida o resultados
Problemas,
algoritmos y programas
●
No todos los problemas se pueden resolver utilizando un
ordenador. Sólo aquellos que puedan resolverse de forma
mecánica, es decir, mediante una secuencia de instrucciones u
operaciones que se puedan llevar a cabo de manera
“automática” pueden resolverse utilizando un ordenador.
●
Son los llamados problemas computacionales o algorítmicos,
como por ejemplo los relacionados con el cálculo numérico, el
tratamiento de palabras o la representación gráfica.
Problemas, algoritmos y programas
●
Los problemas deben definirse de forma general y precisa,
evitando ambigüedades.
●
Por ejemplo, el siguiente enunciado: “Determinar la raíz
cuadrada positiva de un número n” no es lo
suficientemente preciso.
●
“Determinar la raíz cuadrada positiva de un número n,
entero no negativo, cualquiera”.
Problemas, algoritmos
y programas
●
Definiciones de Algoritmo Secuencia finita de
instrucciones, reglas o pasos que describen de manera
precisa las operaciones que un ordenador ha de ejecutar
para llevar a cabo una tarea en un tiempo finito “The Art of
Computer Programming”
Problemas, algoritmos y programas
●
Ejemplos de algoritmos son las secuencias de reglas
básicas que utilizamos para realizar operaciones
aritméticas: sumas, restas, productos y divisiones.
●
Son algoritmos porque definen de manera precisa los
pasos a seguir para encontrar la solución en un tiempo
finito.
Problemas, algoritmos y programas
• Según Donald E. Knuth , un algoritmo ha de ser:
– Finito: ha de llevarse a cabo en un tiempo finito, es decir, el algoritmo ha de
acabar necesariamente tras un número finito de pasos.
– Preciso: ha de estar definido de forma exacta y precisa, sin ambigüedades.
– Efectivo: las reglas o instrucciones puede ejecutarlas una persona haciendo uso
de papel y lápiz.
– General: un algoritmo debe resolver toda una clase de problemas y no un
problema aislado particular.
– Entradas y salidas: un programa puede tener varias entradas o ninguna, sin
embargo, al menos debe tener una salida, el resultado que se desea obtener
Programas y la actividad de la  programación
•Un procesador es cualquier entidad capaz de interpretar y ejecutar un cierto
repertorio de instrucciones.
•Un programa es uno o más algoritmos escritos con una notación precisa para
que puedan ser ejecutados por un procesador (ordenador).
•La programación es la actividad de resolución de problemas por ordenador.
Programas y la actividad de la  programación
Un lenguaje de programación es una notación, conjunto de reglas y definiciones que
determinan tanto lo que se puede escribir en un programa (y el procesador puede
interpretar) como el resultado de la ejecución de dicho programa por el procesador.
Un proceso es un algoritmo o programa en ejecución caracterizado por una sucesión
de estados.
Estado de un programa es un conjunto de valores en un momento determinado que
determina el grado de progreso de un proceso.
Programas y la actividad de la  programación
Cómputo es la transformación del estado del programa al ejecutarse una o más
instrucciones. Instrucción es una expresión formada por números y letras que indica, en
una computadora, la operación que debe realizar y los datos correspondientes.
Dato es cualquier información dispuesta de manera adecuada para su tratamiento por
un ordenador..
Programas y la actividad de la  programación 
• La tarea de la programación en aplicaciones reales de cierta envergadura es bastante
compleja.
• Según la complejidad del problema a resolver podemos hablar de:
– Programación a pequeña escala: nº reducido de líneas de programa,
intervención de una sola persona. Por ejemplo, un programa para ordenar listas.
– Programación a gran escala: muchas líneas de programa, equipo de
programadores.
Por ejemplo, el desarrollo de un sistema operativo.
Programas y la actividad de la  programación 
Los programas tienen un ciclo de vida en el que de manera simplificada podemos distin
guir dos etapas:
‐ Desarrollo Creación inicial y validación de la aplicación I
‐ Desarrollo Creación inicial y validación de la aplicación II
‐ Mantenimiento Correcciones y cambios a partir del desarrollo inicial II
‐ Mantenimiento Correcciones y cambios a partir del desarrollo inicial
Lenguajes y modelos de programación
• Los orígenes de los lenguajes de programación se encuentran en las máquinas de
cálculo.
• Los primeros diseños de máquinas de cálculo provienen de Blaise Pascal y de
Gottfried Leibniz.
• Pero es Charles Babbage quien realiza el primer diseño de máquina analógica para
computar, primero la máquina diferencial y después la máquina analítica.
Lenguajes y modelos de programación
• A nivel máquina, un programa es una sucesión de palabras expresadas en código
binario (secuencia de 0s y 1s), en posiciones consecutivas de memoria que
representan instrucciones o datos. Es el lenguaje máquina.
• Ejemplo: c = a * b
• Es evidente que los programas escritos en lenguaje máquina resultan ilegibles.
• Los lenguajes ensambladores hacen uso de mnemónicos e identificadores para
instrucciones y datos.
• Los dos son lenguajes tan cercanos a la máquina que se conocen como lenguajes de
bajo nivel.
Lenguajes y modelos de programación
• Frente a los lenguajes de bajo nivel tenemos a los lenguajes de alto nivel que:
– disponen de operadores y estructuras más cercanas a las humanas, lo que
permite al programador dar órdenes no ambiguas al computador.
– son más seguros que el código máquina y ayudan a no cometer errores
evidentes.
– el código es transportable (independiente de la máquina).
– el código es más legible.
Lenguajes y modelos de programación
• Estructurado significa que la estructura del texto del programa ha de ayudar a
entender qué hace el programa.
• Las estructuras de control de un programa sólo deben tener un punto de entrada y un
punto de salida.
• La programación estructurada mejora:
– la productividad de los programadores,
– la legibilidad del código resultante.
• La ejecución de un programa estructurado progresa de forma disciplinada en vez de
saltar de un sitio a otro de forma impredecible.
• Gracias a ello, los programas: resultan más fáciles de probar, se pueden leer más
fácilmente y se pueden modificar con mayor comodidad.
Lenguajes y modelos de programación
• En programación estructurada sólo se emplean tres tipos de instrucciones:
– Secuencia: conjunto de sentencias que se ejecutan en orden (sentencias de
asignación y llamadas a métodos).
– Selección: elige qué sentencias se ejecutan en función de una condición (estructuras
de control condicional if-then- else y switch).
– Iteración: estructuras de control repetitivas que repiten un conjunto de instrucciones
(bucles while, do…while, for).
Compiladores e intérpretes
• Hay dos maneras de traducir un programa escrito en un lenguaje de alto nivel a
lenguaje máquina: la interpretación y la compilación.
• En la interpretación se traduce a lenguaje máquina cada instrucción del lenguaje de
alto nivel, una a una, en tiempo de ejecución.
• En la compilación se traducen (compilan) mediante un programa (compilador) todas
las instrucciones del lenguaje a lenguaje máquina, previamente a su ejecución.
La programación orientada a objetos
• Es un nuevo modelo de programación de gran relevancia e implantación desde los
años 90 del siglo XX.
• Aporta mejoras para el desarrollo de programas iguales o más importantes que las
que aportó la programación estructurada cuando apareció.
• El elemento principal de un programa orientado a objetos es la clase.
• Una clase determina completamente el comportamiento y las características de sus
componentes.
• Las instancias particulares de las clases se denominan objetos.
• En la POO un programa se entiende como un conjunto de objetos que interactúan
entre sí.
• La POO facilita la reutilización de código y la ocultación de detalles irrelevantes
(abstracción).
El lenguaje Java
• Es un lenguaje orientado a objetos.
• Un programa en Java consta de una o más clases interdependientes.
• Cabe destacar que resulta muy apropiado para programar tareas relacionadas con la
World Wide Web.
• Los programas Java que se ejecutan a través de la red se denominan applets.
• La ejecución de los programas Java es independiente 100% de la plataforma.
• Incluso ya compilados. No necesitan ninguna adaptación.
El lenguaje Java
• El secreto reside en la Máquina Virtual Java o Java Virtual Machine (JVM).
• La JVM es una extensión del sistema real en el que se trabaja, que permite ejecutar el
código resultante de un programa Java ya compilado, independientemente de la
plataforma en que se esté utilizando.
• La JVM es un programa compilado a lenguaje máquina que sí depende de cada
plataforma o arquitectura.
• Por tanto, es necesario disponer de una JVM para cada sistema o plataforma sobre la
que queramos trabajar.
• Todo navegador dispone de una JVM, de ahí la universalidad de su uso.
El lenguaje Java
• Compilación y ejecución en Java
El lenguaje Java
Ejemplos de programas
Pascal:
C:
Elementos del entorno 
de  programación
• Depuradores
• Gdb
• Valgrind
• Generador de documentacion:
• javadoc
• Doxygen
• Sistemas operativos:
• Windows
• MS-DOS
• Mac OS
• Solaris
• Linux
•Editores. IDEs
•Eclipse
•BlueJ
•NetBeans
•Visual Studio
•Vi
•Emacs
•Interfaz Gráfica de Usuario: Escritorio
•GNOME
•KDE
•Base de datos
•MySQL
•PostgreSQL
•SQLite
•ORACLE
•Java DB
•Servicios Web y Navegadores
•Apache
•Apache TomCat
•Firefox
•Google Chrome
•Internet Explorer
•Konqueror
•Safari

Presentacion info

  • 1.
  • 2.
    Problemas, algoritmos yprogramas ● El término informática viene del francés informatique (Philippe Dreyfus, 1962), que es un acrónimo de information y automatique. ● Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores.
  • 3.
    Problemas, algoritmos y programas ● Losordenadores son máquinas que ejecutan algoritmos. ● No están diseñados para una tarea concreta ● Pero hay que saber: – cómo conseguir que un ordenador realice una tarea concreta – cuáles son las tareas que puede realizar un ordenador ● Un ordenador es un ejemplo de mecanismo: una máquina que, una vez puesta en marcha, realiza una tarea de manera automática, en un cierto intervalo de tiempo y después se detiene.
  • 4.
    Problemas, algoritmos yprogramas ● Un ordenador es un mecanismo digital de propósito general, que se convierte en un mecanismo para un uso específico cuando procesa un algoritmo determinado. ● El algoritmo o secuencia de instrucciones especifica las acciones que ha de ejecutar y en qué orden para completar una tarea determinada. ● La ejecución o procesamiento de un algoritmo supone la transformación de una información de entrada o datos en una información de salida o resultados
  • 5.
    Problemas, algoritmos y programas ● Notodos los problemas se pueden resolver utilizando un ordenador. Sólo aquellos que puedan resolverse de forma mecánica, es decir, mediante una secuencia de instrucciones u operaciones que se puedan llevar a cabo de manera “automática” pueden resolverse utilizando un ordenador. ● Son los llamados problemas computacionales o algorítmicos, como por ejemplo los relacionados con el cálculo numérico, el tratamiento de palabras o la representación gráfica.
  • 6.
    Problemas, algoritmos yprogramas ● Los problemas deben definirse de forma general y precisa, evitando ambigüedades. ● Por ejemplo, el siguiente enunciado: “Determinar la raíz cuadrada positiva de un número n” no es lo suficientemente preciso. ● “Determinar la raíz cuadrada positiva de un número n, entero no negativo, cualquiera”.
  • 7.
    Problemas, algoritmos y programas ● Definicionesde Algoritmo Secuencia finita de instrucciones, reglas o pasos que describen de manera precisa las operaciones que un ordenador ha de ejecutar para llevar a cabo una tarea en un tiempo finito “The Art of Computer Programming”
  • 8.
    Problemas, algoritmos yprogramas ● Ejemplos de algoritmos son las secuencias de reglas básicas que utilizamos para realizar operaciones aritméticas: sumas, restas, productos y divisiones. ● Son algoritmos porque definen de manera precisa los pasos a seguir para encontrar la solución en un tiempo finito.
  • 9.
    Problemas, algoritmos y programas • Según DonaldE. Knuth , un algoritmo ha de ser: – Finito: ha de llevarse a cabo en un tiempo finito, es decir, el algoritmo ha de acabar necesariamente tras un número finito de pasos. – Preciso: ha de estar definido de forma exacta y precisa, sin ambigüedades. – Efectivo: las reglas o instrucciones puede ejecutarlas una persona haciendo uso de papel y lápiz. – General: un algoritmo debe resolver toda una clase de problemas y no un problema aislado particular. – Entradas y salidas: un programa puede tener varias entradas o ninguna, sin embargo, al menos debe tener una salida, el resultado que se desea obtener
  • 10.
    Programas y la actividad de la  programación •Un procesador escualquier entidad capaz de interpretar y ejecutar un cierto repertorio de instrucciones. •Un programa es uno o más algoritmos escritos con una notación precisa para que puedan ser ejecutados por un procesador (ordenador). •La programación es la actividad de resolución de problemas por ordenador.
  • 11.
    Programas y la actividad de la  programación Un lenguaje deprogramación es una notación, conjunto de reglas y definiciones que determinan tanto lo que se puede escribir en un programa (y el procesador puede interpretar) como el resultado de la ejecución de dicho programa por el procesador. Un proceso es un algoritmo o programa en ejecución caracterizado por una sucesión de estados. Estado de un programa es un conjunto de valores en un momento determinado que determina el grado de progreso de un proceso.
  • 12.
    Programas y la actividad de la  programación Cómputo es latransformación del estado del programa al ejecutarse una o más instrucciones. Instrucción es una expresión formada por números y letras que indica, en una computadora, la operación que debe realizar y los datos correspondientes. Dato es cualquier información dispuesta de manera adecuada para su tratamiento por un ordenador..
  • 13.
    Programas y la actividad de la  programación  • La tareade la programación en aplicaciones reales de cierta envergadura es bastante compleja. • Según la complejidad del problema a resolver podemos hablar de: – Programación a pequeña escala: nº reducido de líneas de programa, intervención de una sola persona. Por ejemplo, un programa para ordenar listas. – Programación a gran escala: muchas líneas de programa, equipo de programadores. Por ejemplo, el desarrollo de un sistema operativo.
  • 14.
    Programas y la actividad de la  programación  Los programas tienenun ciclo de vida en el que de manera simplificada podemos distin guir dos etapas: ‐ Desarrollo Creación inicial y validación de la aplicación I ‐ Desarrollo Creación inicial y validación de la aplicación II ‐ Mantenimiento Correcciones y cambios a partir del desarrollo inicial II ‐ Mantenimiento Correcciones y cambios a partir del desarrollo inicial
  • 15.
    Lenguajes y modelos de programación • Los orígenesde los lenguajes de programación se encuentran en las máquinas de cálculo. • Los primeros diseños de máquinas de cálculo provienen de Blaise Pascal y de Gottfried Leibniz. • Pero es Charles Babbage quien realiza el primer diseño de máquina analógica para computar, primero la máquina diferencial y después la máquina analítica.
  • 16.
    Lenguajes y modelos de programación • A nivelmáquina, un programa es una sucesión de palabras expresadas en código binario (secuencia de 0s y 1s), en posiciones consecutivas de memoria que representan instrucciones o datos. Es el lenguaje máquina. • Ejemplo: c = a * b • Es evidente que los programas escritos en lenguaje máquina resultan ilegibles. • Los lenguajes ensambladores hacen uso de mnemónicos e identificadores para instrucciones y datos. • Los dos son lenguajes tan cercanos a la máquina que se conocen como lenguajes de bajo nivel.
  • 17.
    Lenguajes y modelos de programación • Frente alos lenguajes de bajo nivel tenemos a los lenguajes de alto nivel que: – disponen de operadores y estructuras más cercanas a las humanas, lo que permite al programador dar órdenes no ambiguas al computador. – son más seguros que el código máquina y ayudan a no cometer errores evidentes. – el código es transportable (independiente de la máquina). – el código es más legible.
  • 18.
    Lenguajes y modelos de programación • Estructurado significaque la estructura del texto del programa ha de ayudar a entender qué hace el programa. • Las estructuras de control de un programa sólo deben tener un punto de entrada y un punto de salida. • La programación estructurada mejora: – la productividad de los programadores, – la legibilidad del código resultante. • La ejecución de un programa estructurado progresa de forma disciplinada en vez de saltar de un sitio a otro de forma impredecible. • Gracias a ello, los programas: resultan más fáciles de probar, se pueden leer más fácilmente y se pueden modificar con mayor comodidad.
  • 19.
    Lenguajes y modelos de programación • En programaciónestructurada sólo se emplean tres tipos de instrucciones: – Secuencia: conjunto de sentencias que se ejecutan en orden (sentencias de asignación y llamadas a métodos). – Selección: elige qué sentencias se ejecutan en función de una condición (estructuras de control condicional if-then- else y switch). – Iteración: estructuras de control repetitivas que repiten un conjunto de instrucciones (bucles while, do…while, for).
  • 20.
    Compiladores e intérpretes • Hay dosmaneras de traducir un programa escrito en un lenguaje de alto nivel a lenguaje máquina: la interpretación y la compilación. • En la interpretación se traduce a lenguaje máquina cada instrucción del lenguaje de alto nivel, una a una, en tiempo de ejecución. • En la compilación se traducen (compilan) mediante un programa (compilador) todas las instrucciones del lenguaje a lenguaje máquina, previamente a su ejecución.
  • 22.
    La programación orientada a objetos • Es unnuevo modelo de programación de gran relevancia e implantación desde los años 90 del siglo XX. • Aporta mejoras para el desarrollo de programas iguales o más importantes que las que aportó la programación estructurada cuando apareció. • El elemento principal de un programa orientado a objetos es la clase. • Una clase determina completamente el comportamiento y las características de sus componentes. • Las instancias particulares de las clases se denominan objetos. • En la POO un programa se entiende como un conjunto de objetos que interactúan entre sí. • La POO facilita la reutilización de código y la ocultación de detalles irrelevantes (abstracción).
  • 24.
    El lenguaje Java • Es unlenguaje orientado a objetos. • Un programa en Java consta de una o más clases interdependientes. • Cabe destacar que resulta muy apropiado para programar tareas relacionadas con la World Wide Web. • Los programas Java que se ejecutan a través de la red se denominan applets. • La ejecución de los programas Java es independiente 100% de la plataforma. • Incluso ya compilados. No necesitan ninguna adaptación.
  • 25.
    El lenguaje Java • El secretoreside en la Máquina Virtual Java o Java Virtual Machine (JVM). • La JVM es una extensión del sistema real en el que se trabaja, que permite ejecutar el código resultante de un programa Java ya compilado, independientemente de la plataforma en que se esté utilizando. • La JVM es un programa compilado a lenguaje máquina que sí depende de cada plataforma o arquitectura. • Por tanto, es necesario disponer de una JVM para cada sistema o plataforma sobre la que queramos trabajar. • Todo navegador dispone de una JVM, de ahí la universalidad de su uso.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    Elementos del entorno  de  programación • Depuradores • Gdb •Valgrind • Generador de documentacion: • javadoc • Doxygen • Sistemas operativos: • Windows • MS-DOS • Mac OS • Solaris • Linux
  • 31.
    •Editores. IDEs •Eclipse •BlueJ •NetBeans •Visual Studio •Vi •Emacs •InterfazGráfica de Usuario: Escritorio •GNOME •KDE •Base de datos •MySQL •PostgreSQL •SQLite •ORACLE •Java DB
  • 32.
    •Servicios Web yNavegadores •Apache •Apache TomCat •Firefox •Google Chrome •Internet Explorer •Konqueror •Safari