Elementos de Programación

Anuncio
Metodología y Tecnología de la Programación
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
Tema 3:1
Metodología y Tecnología de la Programación
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
Tema 3:2
Metodología y Tecnología de la Programación
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
Tema 3:3
Metodología y Tecnología de la Programación
Valores Enteros
• Existen cuatro tipos de datos primitivos para los enteros.
• Difieren por la cantidad de memoria que requieren para
ser guardados:
Tipo
Memoria Valor Mínimo
Valor Máximo
byte
short
int
long
8 bits
16 bits
32 bits
64 bits
Escuela Superior de Informática. UCLM
-128
-32,768
-2,147,483,648
< -9 x 1018
127
32,767
2,147,483,647
> 9 x 1018
Tema 3:4
Metodología y Tecnología de la Programación
Valores en Punto Flotante
• Hay dos tipos de valores en punto flotante (Reales):
Tipo
Valor Mínimo
Memoria Aproximado
float
double
32 bits
64 bits
-3.4 x 1038
-1.7 x 10308
Valor Máximo
Aproximado
3.4 x 1038
1.7 x 10308
• El tipo float almacena 7 dígitos significativos
• El tipo double almacena 5 dígitos significativos
Escuela Superior de Informática. UCLM
Tema 3:5
Metodología y Tecnología de la Programación
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
Tema 3:6
Metodología y Tecnología de la Programación
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
Escuela Superior de Informática. UCLM
A, B, C, …
a, b, c, …
punto, punto y coma, …
0, 1, 2, …
&, |, \, …
retorno, tab, ...
Tema 3:7
Metodología y Tecnología de la Programación
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
Tema 3:8
Metodología y Tecnología de la Programación
Clases Contenedoras (Wrappers)
• Para cada tipo de dato primitivo hay una clase
contenedora que le corresponde. Por ejemplo:
Tipo Primitivo
Clase contenedora
int
double
char
boolean
Integer
Double
Character
Boolean
• 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
Escuela Superior de Informática. UCLM
Tema 3:9
Metodología y Tecnología de la Programación
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
Tema 3:10
Metodología y Tecnología de la Programación
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
Tema 3:11
Metodología y Tecnología de la Programación
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
Tema 3:12
Metodología y Tecnología de la Programación
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 = 3.14159;
final int ESTUDIANTES = 25;
Escuela Superior de Informática. UCLM
Tema 3:13
Metodología y Tecnología de la Programación
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
Tema 3:14
Metodología y Tecnología de la Programación
Entrada y Salida
• La E/S en Java se basa en corrientes de entrada y
corrientes de salida (streams)
• Hay tres corrientes standard predefinidas:
Stream
Propósito
Dispositivo por defecto
System.in
System.out
System.err
lectura entrada
escritura salida
errores escritura
teclado
monitor
monitor
• Los métodos print y println escriben hacia la
salida standard
Escuela Superior de Informática. UCLM
Tema 3:15
Metodología y Tecnología de la Programación
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
Tema 3:16
Metodología y Tecnología de la Programación
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
Significado
\t
\n
\"
\'
\\
tabulación
nueva línea
dobles comillas
comilla simple
backslash
Escuela Superior de Informática. UCLM
Tema 3:17
Metodología y Tecnología de la Programación
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
Tema 3:18
Metodología y Tecnología de la Programación
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
Tema 3:19
Metodología y Tecnología de la Programación
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
Tema 3:20
Metodología y Tecnología de la Programación
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
Tema 3:21
Metodología y Tecnología de la Programación
División
Expresión
Resultado
17 / 5
17.0 / 5
17 / 5.0
3
3.4
3.4
9 / 12
9.0 / 12.0
0
0.75
6 % 2
14 % 5
-14 % 5
0
4
-4
Escuela Superior de Informática. UCLM
Tema 3:22
Metodología y Tecnología de la Programación
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
Tema 3:23
Metodología y Tecnología de la Programación
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:
5 + 12 / 5 - 10 % 3
3
Orden de evaluación:
Resultado:
Escuela Superior de Informática. UCLM
1
4
2
6
Tema 3:24
Metodología y Tecnología de la Programación
Precedencia de Operadores
Expresión
Resultado
2 + 3 * 4 / 2
8
3 * 13 + 2
(3 * 13) + 2
3 * (13 + 2)
41
41
45
4 * (11 - 6) * (-8 + 10)
40
(5 * (4 - 1)) / 2
7
Escuela Superior de Informática. UCLM
Tema 3:25
Metodología y Tecnología de la Programación
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
Tema 3:26
Metodología y Tecnología de la Programación
La instrucción if
condición
false
true
instrucción
Escuela Superior de Informática. UCLM
Tema 3:27
Metodología y Tecnología de la Programación
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:
Operador
Significado
==
!=
<
<=
>
>=
igual que
no igual que
menor que
menor o igual que
mayor que
mayor o igual que
• Ver Temperature.java
Escuela Superior de Informática. UCLM
Tema 3:28
Metodología y Tecnología de la Programación
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
Tema 3:29
Metodología y Tecnología de la Programación
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
Right_Triangle.java
Escuela Superior de Informática. UCLM
y
Tema 3:30
Metodología y Tecnología de la Programación
La instrucción if-else
condición
false
true
instrucción1
Escuela Superior de Informática. UCLM
instrucción2
Tema 3:31
Metodología y Tecnología de la Programación
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
Tema 3:32
Metodología y Tecnología de la Programación
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
Tema 3:33
Metodología y Tecnología de la Programación
La instrucción while
condición
false
true
instrucción
Escuela Superior de Informática. UCLM
Tema 3:34
Metodología y Tecnología de la Programación
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,
Powers_of_Two.java
Escuela Superior de Informática. UCLM
Factors.java,
y
Tema 3:35
Metodología y Tecnología de la Programación
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
Tema 3:36
Metodología y Tecnología de la Programación
Desarrollo de programas
• La creación de
básicas:
–
–
–
–
software involucra cuatro actividades
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
Tema 3:37
Metodología y Tecnología de la Programación
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
Tema 3:38
Metodología y Tecnología de la Programación
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
Tema 3:39
Metodología y Tecnología de la Programación
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
Tema 3:40
Metodología y Tecnología de la Programación
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
Tema 3:41
Metodología y Tecnología de la Programación
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
implementar un programa
maneras
de
diseñar
e
• Todo diseño tendrá ventajas y desventajas; Siempre
habrá posibilidades de hacer cambalaches
• Ver Average2.java
Escuela Superior de Informática. UCLM
Tema 3:42
Descargar