1 u1. introducción a la programación 1.programación 2.lenguajes de programación 3.fases en el...

48
1 U1. Introducción a la U1. Introducción a la programación programación 1. 1. Programación Programación 2. 2. Lenguajes de programación Lenguajes de programación 3. 3. Fases en el desarrollo de Fases en el desarrollo de programas. programas. 4. 4. Estrategias de resolución de Estrategias de resolución de problemas problemas 5. 5. Elementos de un lenguaje de Elementos de un lenguaje de programación programación 6. 6. Entornos de desarrollo Entornos de desarrollo 7. 7. Ejecución de un programa Ejecución de un programa

Upload: severiano-mejia

Post on 23-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

11

U1. Introducción a la U1. Introducción a la programaciónprogramación

1.1. ProgramaciónProgramación2.2. Lenguajes de programaciónLenguajes de programación3.3. Fases en el desarrollo de programas.Fases en el desarrollo de programas.4.4. Estrategias de resolución de Estrategias de resolución de

problemasproblemas5.5. Elementos de un lenguaje de Elementos de un lenguaje de

programaciónprogramación6.6. Entornos de desarrolloEntornos de desarrollo7.7. Ejecución de un programaEjecución de un programa8.8. Interfaz gráfica de usuarioInterfaz gráfica de usuario

Page 2: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

22

AlgoritmoAlgoritmo

1 . Programación

Algoritmo Algoritmo Palabra que proviene del nombre Palabra que proviene del nombre de un matemático y astrónomo árabe de un matemático y astrónomo árabe Al-Al-Khôwarizmi Khôwarizmi del sigo IX, que escribió un tratado del sigo IX, que escribió un tratado sobre la manipulación de números y sobre la manipulación de números y ecuaciones llamado ecuaciones llamado Kitab al-jabr Kitab al-jabr w’almugabala.w’almugabala.

Page 3: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

33

AlgoritmoAlgoritmo

1 . Programación

Un algoritmo es una secuencia ordenada de Un algoritmo es una secuencia ordenada de pasos, no ambiguos, expresados en lenguaje pasos, no ambiguos, expresados en lenguaje natural que conducen a la solución de un natural que conducen a la solución de un problema dado. Los algoritmos deben cumplir problema dado. Los algoritmos deben cumplir con algunas características:con algunas características:

– Preciso. Indica el orden de realización de cada uno de los pasos.Preciso. Indica el orden de realización de cada uno de los pasos.

– Definido. Si a un algoritmo se le suministra varias veces los mismosdatos Definido. Si a un algoritmo se le suministra varias veces los mismosdatos los resultados deben ser los mismos.los resultados deben ser los mismos.

– Finito. El algoritmo debe terminar en algún momento.Finito. El algoritmo debe terminar en algún momento.

Ejemplos. Calculo de la raíz cuadrada, sumar dos números, recetas de cocina, …

Page 4: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

44

ProgramaciónProgramación

1 . Programación

Se llama Programación a la implementación de un algoritmo en un determinado lenguaje de programación, para realizar un programa.

Programa es una secuencia de instrucciones que una computadora puede interpretar y ejecutar.

Las computadoras son un ejemplo de Las computadoras son un ejemplo de sistemas basados en sistemas basados en programa almacenadoprograma almacenado, todos estos sistemas poseen un , todos estos sistemas poseen un procesador central, cuya actividad de una forma simple puede procesador central, cuya actividad de una forma simple puede resumirse a:resumirse a:

1. Obtener una instrucción.1. Obtener una instrucción.

2. Determinar que instrucción es.2. Determinar que instrucción es.

3. Ejecutar la instrucción3. Ejecutar la instrucción

4. Ir al paso número 14. Ir al paso número 1

Page 5: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

55

Estructura de un Estructura de un ordenadorordenador

1 . Programación

El conjunto de instrucciones que se desea que el sistema El conjunto de instrucciones que se desea que el sistema ejecute se almacena en algún tipo de memoria, RAM, por el ejecute se almacena en algún tipo de memoria, RAM, por el sistema operativo.sistema operativo.

Page 6: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

66

Sistema OperativoSistema Operativo

1 . Programación

Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación.

Page 7: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

77

Lenguajes de Lenguajes de programaciónprogramación

2 . Lenguajes de programación

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.

Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.

Page 8: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

88

HistoriaHistoria

2 . Lenguajes de programación

Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.

Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador.

Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.

Page 9: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

99

HistoriaHistoria

2 . Lenguajes de programación

A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar la computadora central IBM 704, desarrollando el lenguaje Fortran.

El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957.

Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.

En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática de gestión.

Page 10: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1010

HistoriaHistoria

2 . Lenguajes de programación

Lista de los lenguajes de programación:Lista de los lenguajes de programación:

http://es.wikipedia.org/wiki/Anexo:Lenguajes_de_programaci%C3%B3n

Page 11: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1111

Paradigmas de Paradigmas de programaciónprogramación

2 . Lenguajes de programación

Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que únicamente trata de resolver uno o varios problemas claramente delimitados.

Es un estilo de programación empleado. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software.

Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.

Page 12: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1212

Paradigmas de Paradigmas de programaciónprogramación

2 . Lenguajes de programación

Imperativo o por procedimientos: es considerado el más común y está representado, por ejemplo, por C, BASIC o Pascal

Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.

Lógico: está representado por Prolog. Este es otro caso del paradigma declarativo.

Modular, en su vertiente gráfica estaría como Pure Data o Max.

Orientado a objetos: está representado por Smalltalk y Java, un lenguaje completamente orientado a objetos.

Page 13: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1313

Ciclo de vidaCiclo de vida

3 . Fases en el desarrollo de un programa

Page 14: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1414

Análisis del problemaAnálisis del problema

3 . Fases en el desarrollo de un programa

En esta fase debemos especificar cuáles son los requisitos a los que se debe dar solución desde el programa a realizar.

El problema debe estar completamente especificado y se entiende perfectamente.

Debe responder a la pregunta ¿Qué queremos resolver de forma clara?

Ejemplo. Escribir un programa para sumar dos números.

¿Este enunciado esta perfectamente especificado?

Page 15: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1515

Diseño y verificaciónDiseño y verificación

3 . Fases en el desarrollo de un programa

En esta fase pasamos a establecer el diseño de una de las posibles soluciones al problema, mediante un algoritmo.

Si el problema es muy complejo se establecen las ideas generales de diseño, la arquitectura de la solución

Básicamente debemos responder a la pregunta ¿Cómo resolvemos el problema?

Se trata de buscar soluciones. Usando un método que sea correcto. Ejemplo. Resolver el problema de multiplicar dos números

enteros usando el método de la multiplicación rusa.

Page 16: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1616

Codificación o Codificación o implementación implementación

3 . Fases en el desarrollo de un programa

En esta fase se implementa el diseño del algoritmo mediante un lenguaje de programación .

Una vez hemos realizado la codificación pasamos a la fase de prueba y validación del programa.

Antes de esto como ya habíamos comentado hay que traducir el código a lenguaje máquina, a este proceso se le denomina compilación.

Para poder traducir el programa a código máquina primero tendremos que depurarlo sintácticamente. Aunque sobre este tema hay varios enfoques que veremos a continuación.

Page 17: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1717

CompilaciónCompilación

3 . Fases en el desarrollo de un programa

La compilación consiste en coger los ficheros fuente que conforman un programa y, línea por línea, traducir cada instrucción de alto nivel por varias instrucciones en código máquina que realicen lo que la instrucción de alto nivel expresa.

Si se repite esa traducción para todas las líneas del código fuente, obtendremos un conjunto de instrucciones máquina. Grabando esas instrucciones máquina en un fichero que contiene una estructura interna que un determinado sistema operativo es capaz de entender, obtenemos un fichero binario ejecutable, o simplemente, "un ejecutable".

Page 18: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1818

InterpretaciónInterpretación

3 . Fases en el desarrollo de un programa

A diferencia del compilador, el intérprete no produce una traducción a código máquina.

El intérprete intenta realizar "al vuelo" lo que se expresa en los ficheros fuente.

Cuando un programa es interpretado, el proceso que se sigue es el siguiente: el intérprete obtiene una instrucción del fichero fuente y la realiza inmediatamente.

Repitiendo esta secuencia para todas las líneas, el intérprete realiza lo que los ficheros fuente expresan... es decir, ejecuta el programa.

Programas escritos en lenguajes como C o Pascal prácticamente siempre se compilan, y otros como Perl o Python prácticamente siempre se interpretan.

Page 19: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

1919

El enfoque de máquina El enfoque de máquina virtualvirtual

3 . Fases en el desarrollo de un programa

La filosofía de la máquina virtual es la siguiente: el código fuente se compila, detectando los errores sintácticos, y se genera una especie de ejecutable, con un código máquina dirigido a una CPU imaginaria. A esta especie de código máquina se le denomina código intermedio, lenguaje intermedio, p-code, o byte-code (según quién nos lo cuente).

Como esa CPU imaginaria no existe, para poder ejecutar ese ejecutable, se construye un intérprete. Este intérprete es capaz de leer cada una de las instrucciones de código máquina imaginario y ejecutarlas en una CPU real. A este intérprete se le denomina máquina virtual.

Page 20: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2020

El enfoque de máquina El enfoque de máquina virtualvirtual

3 . Fases en el desarrollo de un programa

Page 21: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2121

Verificación y depuraciónVerificación y depuración

3 . Fases en el desarrollo de un programa

En esta fase es donde se buscan errores producidos en las fases anteriores y se eliminan.

Hay que tratar de diferenciar entre los errores de compilación que son errores sintácticos y los errores de ejecución que son semánticos.

Por último es importante establecer un buen juego de pruebas con la finalidad de verificar que el programa funciona bien para todos los casos.

Page 22: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2222

Documentación y Documentación y mantenimientomantenimiento

3 . Fases en el desarrollo de un programa

En la fase de documentación se creará la documentación del programa realizado, tanto técnica como a nivel de usuario (manuales).

Esta fase es muy importante tanto para el usuario final como para posteriores ampliaciones.

En la fase de mantenimiento iremos ampliando las funcionalidades del programa. Siempre hay algo que mejorar.

Page 23: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2323

Ejemplos de algoritmosEjemplos de algoritmos

3 . Fases en el desarrollo de un programa

Escribir un algoritmo para encontrar el número mas pequeño de un conjunto de tres.

Escribir un algoritmo para encontrar el número de veces que aparece la letra “a” en una oración.

Escribir un algoritmo para subir el volumen un fichero de sonido digital.

Escribir un algoritmo para dibujar figuras geométricas en un lienzo.

Escribir un algoritmo para sumar dos números.

Page 24: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2424

Estrategias: datos y resultadosEstrategias: datos y resultados

4 . Estrategias de resolución de problemas

Para resolver problemas mediante la programación hay que tener en cuenta las fases plateadas en el apartado anterior.

Lo primero es determinar o identificar los Datos y los Resultados.

Un programa no es mas que una transformación, de manera que a partir de unos datos llegamos a unos resultados realizando cálculos intermedios.

DATOSRESULTADOSINTERMEDIOS

RESULTADOS

transformación

Page 25: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2525

Estrategias: datos y resultadosEstrategias: datos y resultados

4 . Estrategias de resolución de problemas

Es importante identificar los datos, resultados intermedios y resultados finales. En programación orientada a objetos estos serán Objetos y sus transformaciones se realizarán a través de la ejecución de métodos.

Ejemplo: suma. Datos: dos números enteros, x, y, Resultado: un número entero z. Los datos al ser enteros pertenecen a la clase de los enteros y sobre esos elementos podemos realizar una serie de métodos u operaciones como es la + o la – o la * o la /…..

DATOSRESULTADOSINTERMEDIOS

RESULTADOS

transformación

DATOSRESULTADOSINTERMEDIOS

transformación

Page 26: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2626

Estrategias: interfaz básica o Estrategias: interfaz básica o gráficagráfica

4 . Estrategias de resolución de problemas

Para obtener del exterior (del usuario o de otro programa) los datos deberemos diseñar un protocolo con el usuario. Es un acuerdo para que usuario y programa se entiendan y se comuniquen.

Para que el programa se comunique con el exterior, esto es con un programa o con un usuario se debe diseñar también un protocolo de comunicación de resultados.

Todo lo que concierne con la forma que tiene que tener esa comunicación entre el programa y el exterior se denomina Interfaz que puede ser gráfica o no

RESULTADOSDATOS transformación

Interfaz InterfazUsuario Usuario

Page 27: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2727

Estrategias: lógica e interfazEstrategias: lógica e interfaz

4 . Estrategias de resolución de problemas

Es importante separar lo más posible lo que es la interfaz del programa y su lógica (que es el cálculo que realiza).

La interfaz puede ser gráfica como los programas de utilidades que usamos habitualmente, textual si recuperamos los datos mediante líneas de comandos o física (custom) si usamos sensores para introducir datos o sacar resultados.

En cualquier caso SEPARAR LA LÓGICA DE LA INTERFAZ.

RESULTADOSDATOS LógicaInterfaz InterfazUsuario Usuario

Page 28: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2828

SecuenciaciónSecuenciación

4 . Estrategias de resolución de problemas

La estrategia mas usada para resolver un problema y la más simple es la secuenciación. Esto supone que para la resolución de un problema con cierto grado de dificultad lo que hacemos es descomponerlo en una serie de pasos mas sencillos, pero no necesariamente básicos.

Ejemplo. Para limpiar una casa:– 1.- limpiar la cocina– 2.- limpiar comedor– 3.- limpiar dormitorio– 4.- limpiar baño

Ejemplo. Limpiar cocina– 1.- Limpiar fogones– 2.- fregar– 3.- recoger fregada– 4. limpiar banco– 5.- barrer suelo– 6.- fregar suelo

Page 29: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

2929

IDEA: AnidaciónIDEA: Anidación

4 . Estrategias de resolución de problemas

Cada una de las estrategias que habitualmente usamos se pude combinar con ella misma y con el resto de estrategias.

Page 30: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3030

Subcontratación: Subcontratación: subprogramaciónsubprogramación

4 . Estrategias de resolución de problemas

Partes de la resolución de un problema se puede subcontratar a otros objetos o entidades siempre que hayamos pactado los protocolos y condiciones.

Ejemplo: limpiar la cocina la podemos subcontratar a una entidad especializada, le pasamos los utensilios de limpieza y nos devuelve la cocina limpia.

En programación esto se refiere al uso de LIBRERÍAS, la idea es delegar la resolución de parte del problema a esas entidades externas. Ahora bien hay que saberse los protocolos de comunicación con ellas.

En programación se refiere al diseño de métodos (también llamados funciones y procedimientos) por parte del programador con la finalidad de ser reutilizados, la idea es una librería pero la hacemos nosotros para nuestras necesidades

Page 31: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3131

Análisis por casos Análisis por casos

4 . Estrategias de resolución de problemas

Dependiendo que los datos o resultados intermedios tengan o no unas propiedades resolvemos de una forma o de otra.

Ejemplo: Atravesar un semáforo– Si esta rojo entonces pasar– Sino esperar

Esta estrategia se suele denominarCondicional o análisis por casos.

Page 32: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3232

IDEA: AnidaciónIDEA: Anidación

4 . Estrategias de resolución de problemas

Cada una de las estrategias que habitualmente usamos se pude combinar con ella misma y con el resto de estrategias.

Page 33: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3333

Repetición Repetición

4 . Estrategias de resolución de problemas

Repetir una serie de veces una instrucción mientras se cumpla una determinada condición de los resultados intermedios.

Repetir una serie de veces una instrucción hasta que se cumpla una determinada condición de los resultados intermedios.

Ejemplo: hacer una tortilla de 18 huevos– 1)tomar un huevo– 2)Batirlo– 3) repetir 1 y 2 hasta que no queden huevos– Verter la mezcla en una sartén con aceite– Darle la vuelta– Sacar y dejar en un plato

Page 34: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3434

Recursividad Recursividad

4 . Estrategias de resolución de problemas

Se trata de resolver un problema usando para ello un caso mas sencillo del mismo.

En matemáticas esta estrategia se usa mucho para definir funciones una de las clásicas es la función factorial donde:n! = n*(n-1)! Si n>1n!=1 si n=0 o n=1

Es un concepto que parece casi mágico: “resolver un problema con el mismo problema”

De forma intuitiva esta forma de trabajar nosotros también la usamos.

Ejemplo: Para ir de valencia a madrid–- Vas a Alcorcón y una vez allí coges la nacional I.

El ir a Alcorcón es un caso mas sencillo del mismo problema

Page 35: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3535

EstrategiasEstrategias

4 . Estrategias de resolución de problemas

Page 36: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3636

Estructuras de datos: datos Estructuras de datos: datos simples simples

5 . Elementos de un lenguaje de programación

Como organizamos o estructuramos los datos de un programa.

En el modelo orientado a Objetos, todo son objetos esto es: datos, datos intermedios y resultados y estos tienen una estructura simple o compleja.

DATOS SIMPLES: Tipoprimitivo

bits Mínimo Máximo Tipoenvoltorio

boolean 1 - - Booleanchar 16 Unicode_0 Unicode_216-

1Character

byte 8 -128 127 Byteshort 16 -215 215-1 short

int 32 -231 231-1 Integerlong 64 -263 263-1 Longfloat 32 IEEE754 IEEE754 Float

double 64 IEEE754 IEEE754 Doublevoid - - - void

Page 37: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3737

Estructuras de datos Estructuras de datos

5 . Elementos de un lenguaje de programación

Identificadores 

– Letras, dígitos, '_' y '$'. El primer carácter no puede ser un dígito. Se distingue entre letras mayúsculas y minúsculas.

Declaración de variables–  La declaración de variables simples se realiza especificando un tipo de dato

simple seguido de una lista separada por comas de identificadores.

 int var1, var2;

char ch1,cha2=’a’;

double d1=3.0, d2;  – Puede inicializarse una variable como resultado de una expresión 

float f1=2.0, f2=3.0+f1; – Todo identificador que se use debe estar declarado (excepto reservadas).

–  El ámbito de una variable se extiende textualmente desde el punto en que se declara hasta el final del bloque al que pertenece la declaración.

Page 38: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3838

Estructuras de datos Estructuras de datos

5 . Elementos de un lenguaje de programación

La variable tendrá espacio reservado en memoria durante el tiempo que se ejecute el bloque en el cual ha sido declarada. 

Ejemplo  

{

int x ;

x=10;

{

int y= 20;

x=y*2;

}

// y ya no sería válido en este bloque, x si

}

Dentro de un bloque las variables pueden ser declaradas en cualquier momento.

Page 39: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

3939

Estructuras de datos Estructuras de datos

5 . Elementos de un lenguaje de programación

Constantes . Uso de la palabra final final int i = 34;

  Conversión de tipos . La conversión de tipos se realizan de

forma automática siempre que los tipos sean compatibles (siempre que el tamaño de ambos lo permita), es lo que se denomina ensanchamiento. 

int x=2;

long y=x;

 

Si queremos realizar la asignación contraria, estrechamiento o casting, tenemos que indicar el tipo de dato al que se ha de convertir el valor entre paréntesis.int a;

byte b;

b=(byte)a;

Page 40: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4040

Estructuras de datos Estructuras de datos

5 . Elementos de un lenguaje de programación

Vectores y Matrices. Cuando se crea un vector o matriz, su tamaño es fijo y no se puede modificar. 

Los vectores y matrices son objetos, y sus elementos pueden ser de cualquier tipo o clase. Este puede ser creado en la declaración o bien usando el operador new: int numeros[];

float matriz[][];

 

numeros = new int[12]

// Un array de 12 enteros cuyo índice va de 0 a 11.

matriz= new float[2][3]

//Una matriz de 0 a 1 fila y de 0 a 2 columnas.

 

int v[] = {9,3,5};

Es posible obtener el número de elementos de una matriz mediante el acceso a la variable length., v.length tendrá el valor 3.

 

Page 41: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4141

Expresiones Expresiones

5 . Elementos de un lenguaje de programación

Expresiones y operadores 

Expresión = colección de operandos (variables y literales) y operadores. Toda expresión posee siempre un tipo.

 Tipos de expresiones–Aritméticas: Operandos y el resultado numéricos.Operadores posibles: +, -, *, /, %Todos aplicables a enteros y reales (excepto %, sólo a enteros).Prioridades: - (signo negativo), *, /, %, + y -. –Asignación: Ambos tipos compatibles. Los numéricos son siempre compatibles (de todas formas, mejor usar el casting).a = a+2; a += 2; (-=, *=, /=, %=, etc...)Autoincremento (y decremento) ++a y a++. 

Page 42: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4242

Expresiones Expresiones

5 . Elementos de un lenguaje de programación

 Tipos de expresiones–Relacionales: Comparan expresiones del mismo tipo, devolviendo un resultado lógico.En general, por orden de prioridad <, >, <=, >=, (con la misma); == y != con menos.Todos tiene menor prioridad que los operadores aritméticos.

–Lógicos: Devuelven valores lógicos.! (not), & (and), | (or), ^ (xor), && y || (and y or cortocircuito). La precedencia es menor que la de los ops. relacionales. –Sobre bits: Resultados son siempre secuencias de bits.˜ (complemento a 1), & (and bit a bit), | (or bit a bit), ^ (xor bit a bit), << (desplaz. a izq.), >> (deplaz. a der. con bit de signo) y >>> (deplaz. a der. con ceros). –Condicional: Expresion_logica ? valor1 : valor2; int a = x>y ? x: 0;

 

Page 43: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4343

Estructuras de control Estructuras de control

5 . Elementos de un lenguaje de programación

Sentencias de controlSelección simple 

if (x<0) x = -x;

 

if (i>=0) System.out.println ("Positivo");

else System.out.println ("Negativo"); Selección compuesta 

switch (exp) {

case valor1: inst1;

inst2;

break;

case valor2: inst1;

inst2;

break;

default: ins1;

ins2;}

Page 44: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4444

Estructuras de control Estructuras de control

5 . Elementos de un lenguaje de programación

Repetición

While (Expresion_booleana) sentencias;

 

do sentencias while (Expresion_booleana);

 

for (inicializacion; Expresion_booleana; Sentencia) Sentencias;

 

for (i = 0; i<10; i++) v[i]=0;

Page 45: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4545

IDE IDE

6 . Entornos de desarrollo

Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en:

– un editor de código, – un compilador, – un depurador y – un constructor de interfaz gráfica.

Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

Page 46: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4646

IDE IDE

6 . Entornos de desarrollo

Algunos entornos son compatibles con múltiples lenguajes de programación, como Visual Studio (soporta más de 50 lenguajes diferentes), Eclipse o NetBeans , ambos basados en Java; o MonoDevelop, basado en C#.

También puede incorporarse la funcionalidad para lenguajes alternativos mediante el uso de plugins. Por ejemplo, Eclipse y NetBeans tienen plugins para C, C++, Ada, Perl, Python, Ruby y PHP, entre otros; o

Visual Studio que soporta no solo múltiples lenguajes si no también múltiples dispositivos como móviles Windows Phone, tabletas Windows 8 o consolas como Xbox.

Page 47: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4747

Procesos Procesos

7 . Ejecución de un programa

A un programa en ejecución se le denomina Proceso. Para que un programa se pueda ejecutar previamente debe

haber sido compilado (salvo el caso de lenguajes interpretados).

En Java la primera instrucción que se ejecuta es la primera instrucción que aparece en el método main.

Ejemplo. Hola Mundo en Java.

public class Hello { public class Hello {

public static void main(String[] args) { public static void main(String[] args) {

System.out.println("Hola mundo"); } }System.out.println("Hola mundo"); } }

Estudiar la ejecución de este programa en el IDE BlueJ.

Page 48: 1 U1. Introducción a la programación 1.Programación 2.Lenguajes de programación 3.Fases en el desarrollo de programas. 4.Estrategias de resolución de problemas

4848

Ejemplos Ejemplos

7 . Ejecución de un programa

Sumar dos números enteros. import java.util.*;

public class Sumar {

 

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n1, n2;

System.out.print("Introduzca primer numero: ");

n1 = sc.nextInt();

System.out.print("Introduzca segundo numero: ");

n2 = sc.nextInt();

System.out.println("suma: “, n1+n2);