La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Elementos de Programación

Presentaciones similares


Presentación del tema: "Elementos de Programación"— Transcripción de la presentación:

1 Elementos de Programación
Introducción Tipos de datos primitivos Variables y asignación Entrada y salida Operadores aritméticos Decisiones Iteración Desarrollo de programas Algoritmos Escuela Superior de Informática. UCLM

2 Elementos de programación - Introducción
Pasemos a ver los elementos básicos en programación El Capítulo 3 se centra en: tipos de datos declaración y uso de las variables operadores y expresiones decisiones y bucles (lazos) entrada y salida Escuela Superior de Informática. UCLM

3 Tipos de Datos Primitivos
Un tipo de dato es definido por un conjunto de valores y los operadores que pueden operar sobre ellos Cada valor almacenado en memoria se asocia con algún tipo de dato en particular. El lenguaje Java posee diversos tipos predefinidos, llamados tipos de datos primitivos. Las siguientes palabras reservadas representan ocho tipos primitivos diferentes. byte, short, int, long, float, double, boolean, char Escuela Superior de Informática. UCLM

4 Escuela Superior de Informática. UCLM
Valores Enteros Existen cuatro tipos de datos primitivos para los enteros. Difieren por la cantidad de memoria que requieren para ser guardados: Tipo byte short int long Memoria 8 bits 16 bits 32 bits 64 bits Valor Mínimo -128 -32,768 -2,147,483,648 < -9 x 1018 Valor Máximo 127 32,767 2,147,483,647 > 9 x 1018 Escuela Superior de Informática. UCLM

5 Valores en Punto Flotante
Hay dos tipos de valores en punto flotante (Reales): El tipo float almacena 7 dígitos significativos El tipo double almacena 5 dígitos significativos Valor Mínimo Aproximado -3.4 x 1038 -1.7 x 10308 Valor Máximo Aproximado 3.4 x 1038 1.7 x 10308 Tipo float double Memoria 32 bits 64 bits Escuela Superior de Informática. UCLM

6 Escuela Superior de Informática. UCLM
Caracteres Un valor char almacena un carácter simple del conjunto de caracteres Unicode Un conjunto de caracteres es una lista ordenada de caracteres El conjunto de caracteres Unicode utiliza 16 bits para representar cada carácter pudiendo representar 65,536 caracteres diferentes Unicode es un conjunto internacional de caracteres y contiene los caracteres y símbolos provenientes de muchas lenguas del mundo. Escuela Superior de Informática. UCLM

7 Escuela Superior de Informática. UCLM
Caracteres El conjunto de caracteres ASCII se utiliza aún en muchos lenguajes de programación. ASCII es un subconjunto de Unicode e incluye: Letras mayúsculas Letras minúsculas Signos de puntuación Dígitos Símbolos especiales Caracteres de control A, B, C, … a, b, c, … punto, punto y coma, … 0, 1, 2, … &, |, \, … retorno, tab, ... Escuela Superior de Informática. UCLM

8 Valores lógicos o Booleanos
Un valor boolean representa una condición verdadera o falsa Pueden usarse para representar dos estados cualesquiera como que un foco esté encendido o apagado Las palabras reservadas true y false son los únicos valores válidos para los datos booleanos. Escuela Superior de Informática. UCLM

9 Clases Contenedoras (Wrappers)
Para cada tipo de dato primitivo hay una clase contenedora que le corresponde. Por ejemplo: Las clases contenedoras son útiles en situaciones en las cuales se necesita un objeto en lugar de un tipo primitivo Estas clases contienen también algunos métodos útiles Tipo Primitivo int double char boolean Clase contenedora Integer Double Character Boolean Escuela Superior de Informática. UCLM

10 Escuela Superior de Informática. UCLM
Variables Una variable es un identificador que representa una localización en la memoria y pertenece a algún tipo de dato Las variables tienen que declararse antes de usarse La sintaxis de la declaración de una variable es: tipo-de-dato nombre-de-la-variable; Por ejemplo: int total; Escuela Superior de Informática. UCLM

11 Escuela Superior de Informática. UCLM
Variables Pueden declararse varias variables en una misma línea: int total, cuenta, suma; Las variables pueden inicializarse (darles un valor inicial) en la propia declaración: int total = 0, cuenta = 20; float precio_unitario = 57.25; Ver Piano_Keys.java Escuela Superior de Informática. UCLM

12 La instrucción de asignación
Una instrucción de asignación tiene la forma: nombre-de-variable = expresión; La expresión es evaluada y el resultado es almacenado en la variable, escribiendo su valor sobre el valor que hubiera antes en la variable. Ver United_States.java Una expresión puede ser un valor simple o representar un cálculo mas complicado que involucre varias operaciones Escuela Superior de Informática. UCLM

13 Escuela Superior de Informática. UCLM
Constantes Una constante es similar a una variable excepto que ellas conservan su valor durante todo el tiempo de existencia Se especifican utilizando la palabra reservada final en la declaración Por ejemplo: final double PI = ; final int ESTUDIANTES = 25; Escuela Superior de Informática. UCLM

14 Escuela Superior de Informática. UCLM
Constantes Cuando se utilizan adecuadamente, las constantes resultan útiles porque: se previene la aparición de errores inadvertidos ya que no pueden cambiar de valor Son más apropiadas que los valores literales porque: Hacen el código más legible al darle significado al valor Facilitan los cambios porque su valor es especificado en un solo lugar Escuela Superior de Informática. UCLM

15 Escuela Superior de Informática. UCLM
Entrada y Salida La E/S en Java se basa en corrientes de entrada y corrientes de salida (streams) Hay tres corrientes standard predefinidas: Los métodos print y println escriben hacia la salida standard Stream System.in System.out System.err Propósito lectura entrada escritura salida errores escritura Dispositivo por defecto teclado monitor Escuela Superior de Informática. UCLM

16 Escuela Superior de Informática. UCLM
Entrada y Salida La API de Java le permite crear diversos tipos de streams para realizar varios tipos de entrada y salida Para leer cadenas de caracteres, podemos convertir la corriente System.in en otro tipo de corriente usando: BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in)); Esta declaración crea un nuevo stream llamado stdin Discutiremos en detalle la creación de objetos mas adelante Escuela Superior de Informática. UCLM

17 Escuela Superior de Informática. UCLM
Secuencias de escape Ver Echo.java Una secuencia de escape es una secuencia de caracteres especial precedida por un backslash (\) Indican algún propósito especial, por ejemplo: Secuencia de escape \t \n \" \' \\ Significado tabulación nueva línea dobles comillas comilla simple backslash Escuela Superior de Informática. UCLM

18 Escuela Superior de Informática. UCLM
Buffers A medida que uno escribe, los caracteres se almacenan en un área especial de memoria llamada buffer de entrada. Al terminar la entrada (poner enter), el programa comienza a procesar los datos Del mismo modo, la información de salida se almacena temporalmente en un buffer de salida El buffer de salida puede ser explícitamente descargado (flushed) (enviado a pantalla) usando el método flush Ver Python.java Escuela Superior de Informática. UCLM

19 Escuela Superior de Informática. UCLM
Entrada numérica La conversión de una cadena que contiene un entero a un valor entero puede hacerse a través del método parseInt de la clase contenedora Integer: valor = Integer.parseInt (mi_cadena); Un valor puede ser leído y convertido en una sola línea: num = Integer.parseInt (stdin.readLine()); Ver Addition.java y Addition2.java Escuela Superior de Informática. UCLM

20 Escuela Superior de Informática. UCLM
Expresiones Una expresión es una combinación de operadores y operandos Los operadores aritméticos incluyen: adicción (+), sustracción (-), multiplicación (*), y división (/) Los operandos pueden ser valores literales, variables, u otras fuentes de datos El programador determina que hacer con el resultado de una expresión (almacenarlo, imprimirlo, etc.) Escuela Superior de Informática. UCLM

21 Escuela Superior de Informática. UCLM
División Si los operandos en el operador / son ambos enteros, el resultado es un entero (se trunca la parte fraccionaria) Si uno o ambos operandos en el operador / son valores de punto flotante, el resultado será un valor de punto flotante El operador resto (%) devuelve el entero restante después de dividir el primer operando entre el segundo Ambos operandos en el operador % deben ser enteros Ver Division.java El resultado restante toma el signo del numerador Escuela Superior de Informática. UCLM

22 Escuela Superior de Informática. UCLM
División Expresión 17 / 5 17.0 / 5 17 / 5.0 9 / 12 9.0 / 12.0 6 % 2 14 % 5 -14 % 5 Resultado 3 3.4 0.75 4 -4 Escuela Superior de Informática. UCLM

23 Precedencia de Operadores
El orden en que los operandos de una expresión son evaluados se determina por una jerarquía de precedencia bien definida Los operadores con el mismo nivel de precedencia se evalúan de acuerdo a su asociatividad (de derecha a izquierda o de izquierda a derecha) Los paréntesis se utilizan para forzar la precedencia Escuela Superior de Informática. UCLM

24 Precedencia de Operadores
Los operadores de multiplicación, división, y resto tienen mayor precedencia que la adición y la sustracción Ambos grupos se asocian de izquierda a derecha Expresión: Orden de evaluación: Resultado: / % 3 6 3 1 4 2 Escuela Superior de Informática. UCLM

25 Precedencia de Operadores
Expresión 2 + 3 * 4 / 2 3 * (3 * 13) + 2 3 * (13 + 2) 4 * (11 - 6) * ( ) (5 * (4 - 1)) / 2 Resultado 8 41 45 40 7 Escuela Superior de Informática. UCLM

26 Escuela Superior de Informática. UCLM
La instrución if La instrucción if de Java tiene la siguiente sintaxis: if (condición) instrucción; Si la condición booleana es verdadera, se ejecuta la instrucción, pero si es falsa no se ejecuta Esta es la forma básica de realizar la toma de decisiones Escuela Superior de Informática. UCLM

27 Escuela Superior de Informática. UCLM
La instrucción if instrucción condición false true Escuela Superior de Informática. UCLM

28 Expresiones Booleanas
La condición de una instrucción if siempre debe dar un resultado verdadero o falso Java posee varios operadores de igualdad y de relación: Ver Temperature.java Operador == != < <= > >= Significado igual que no igual que menor que menor o igual que mayor que mayor o igual que Escuela Superior de Informática. UCLM

29 Bloques de instrucciones
Varias instrucciones pueden agruparse para formar un bloque de instrucciones Los bloques se delimitan con llaves Un bloque de instrucciones puede colocarse en cualquier lugar en que pueda usarse una instrucción simple Ver Temperature2.java Escuela Superior de Informática. UCLM

30 La instrucción if-else
En una instrucción if puede añadirse una cláusula else obteniéndose la instrucción de control if-else : if (condición) instrucción1; else instrucción2; Si la condición resulta true, se ejecuta instrucción1 si resulta false, se ejecuta instrucción2 Ver Temperature3.java y Right_Triangle.java Escuela Superior de Informática. UCLM

31 La instrucción if-else
condición false true instrucción2 Escuela Superior de Informática. UCLM

32 Instrucciones if anidadas
El cuerpo de la una instrucción if o la cláusula else pueden ser, a su vez, otra instrucción if Esto se denomina anidamiento de instrucciones if Ver Football_Choice.java Nota: una cláusula else corresponde al último if no ejecutado Escuela Superior de Informática. UCLM

33 Escuela Superior de Informática. UCLM
La instrucción while La instrucción while posee el siguiente formato: while (condición) instrucción; Si la condición es verdadera, la instrucción es ejecutada; y la condición es evaluada nuevamente La instrucción se ejecuta una y otra vez hasta que en algún momento, la condición devenga falsa Escuela Superior de Informática. UCLM

34 Escuela Superior de Informática. UCLM
La instrucción while instrucción condición false true Escuela Superior de Informática. UCLM

35 Escuela Superior de Informática. UCLM
La instrucción while Si la condición de una instrucción while es false inicialmente, la instrucción nunca llega a ser ejecutada Por eso decimos que una instrucción while se ejecuta ninguna o varias veces Ver Counter.java, Factors.java, y Powers_of_Two.java Escuela Superior de Informática. UCLM

36 Bucles (lazos, loops) infinitos
El cuerpo de un bucle while debe en algún momento provocar el valor falso en la condición Si esto no ocurriese, tendríamos un bucle infinito, el cual estaría ejecutandose sin parar hasta que el programa fuera interrumpido Este es un tipo de error lógico muy frecuente. Siempre chequee dos o tres veces que sus bucles terminarán normalmente Ver Forever.java Escuela Superior de Informática. UCLM

37 Desarrollo de programas
La creación de software involucra cuatro actividades básicas: establecer los requerimientos crear un diseño implementar el código (escribirlo y editarlo) probar y poner en funcionamiento el programa El proceso de desarrollo de programas es mucho mas elaborado, pero éstos pasos básicos pueden constituir un buen punto de partida para nuestro trabajo Escuela Superior de Informática. UCLM

38 Escuela Superior de Informática. UCLM
Requerimientos En los requerimientos, especificamos las tareas que nuestro programa deberá realizar (que hay que hacer, no cómo hacerlo) Es usual que dispongamos de un conjunto inicial de requerimientos pero también es normal que posteriormente sean criticados, modificados o ampliados A veces es difícil establecer requerimientos completos, detallados y sin ambigüedades El prestar atención cuidadosa a los requerimientos nos ahorrarán mucho tiempo y recursos en el desarrollo posterior del proyecto Escuela Superior de Informática. UCLM

39 Diseño (programación imperativa)
Un programa sigue un algoritmo que es un proceso paso a paso para resolver un problema Con el diseño especificamos el algoritmo y los datos necesarios. En el esquema orientado a objetos, el diseño incluye el establecimiento de las clases, objetos y métodos requeridos Una práctica usual es la de expresar los métodos en seudocódigo el cual es parecido al código de un lenguaje pero sin seguir reglas sintácticas necesariamente fijas Escuela Superior de Informática. UCLM

40 Escuela Superior de Informática. UCLM
Implementación La implementación es el proceso de traducción de un diseño a código fuente Muchos programadores inexpertos creen que la escritura del código es lo mas importate en el desarrollo del software. En realidad esta actividad es muy poco creativa Casi todas las decisiones importantes son tomadas durante el análisis de requerimientos y el diseño La implementación se centra en los detalles de la codificación que incluyen el uso de estilos adecuados y realizar la documentación Escuela Superior de Informática. UCLM

41 Escuela Superior de Informática. UCLM
Prueba Todo programa debe ejecutarse muchas veces y con diversas entradas con el fin de detectar posibles errores La depuración es el proceso por el cual descubrimos las causas de los problemas y los resolvemos Los programadores suelen pensar que ”solo habrá un error mas" Las pruebas deben considerar los detalles de diseño así como en los requerimientos generales Escuela Superior de Informática. UCLM

42 El desarrollo de programas
Ver Average.java Siga siempre los pasos del proceso: análisis de requerimientos, diseño, implementación y prueba Siempre habrá diversas maneras de diseñar e implementar un programa Todo diseño tendrá ventajas y desventajas; Siempre habrá posibilidades de hacer cambalaches Ver Average2.java Escuela Superior de Informática. UCLM


Descargar ppt "Elementos de Programación"

Presentaciones similares


Anuncios Google