2003 Prentice Hall, Inc. Todos los derechos reservados.
1
Capítulo 5 - Estructuras de control: Parte 2Contorno
5.1 Introducción
5.2 Fundamentos de Repetición Controlada por Contador
5.3 Declaración de Repetición
5.4 Ejemplos de uso de la Declaración de
5.5 do ... while Declaración Repetición
5.6 Declaración interruptor de selección múltiple
5.7 romper y continuar Declaraciones
5.8 break y continue Declaraciones Etiquetada
5.9 Operadores lógicos
5.10 Resumen de Programación Estructurada
5.11 (Ejemplo práctico opcional) Acerca de los objetos: Unidos y Actividades
Identificación de Objetos '
2003 Prentice Hall, Inc. Todos los derechos reservados.
2
5.1 Introducción Continúa discusión estructurada de programación Introducir las estructuras de control restantes Java 's
2003 Prentice Hall, Inc. Todos los derechos reservados.
3
5.2 Fundamentos de Repetición Controlada por Contador
Repetición controlada por contador requiere: Variable de control (contador de bucle)
Valor inicial de la variable de control
Incremento / decremento de la variable de control a través de cada bucle
Condición que pone a prueba para el valor final de la variable de control
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
4
WhileCounter.java
Línea 14
Línea 16
Línea 18
1 // Fig. 5.1: WhileCounter.java
2 // repetición controlada por contador.
3 java.awt.Graphics de importación;
4
5 importación javax.swing.JApplet;
6
7 pública clase WhileCounter extiende JApplet {
8
9 // Dibuja líneas en el fondo del subprograma
10 público void paint (Graphics g)
11 {
12 súper .paint (g); // llamada a un método de pintura heredada de JApplet
13
14 int contador = 1; // inicialización
15
16 while (contador <= 10) {// condición repetición
17 g.drawLine (10, 10, 250, contador * 10);
18 ++ contador; // incremento
19
20} // fin del tiempo
21
22} // método paint final
23
24} // fin de la clase WhileCounter
Incremento de contador
Pruebas de condición para el valor final de venta libre
Nombre de variable de control es contraproducente
Control variable de valor inicial es 1
2003 Prentice Hall, Inc. Todos los derechos reservados.
5
5.3 Declaración de Repetición Maneja contador controlado con repetición detalles 2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
6
ForCounter.java
Línea 16
int contador = 1;
Línea 16
contador <= 10;
Línea 16
contador ++;
1 // Fig. 5.2: ForCounter.java
2 // repetición controlada por contador con la sentencia for.
3 java.awt.Graphics de importación;
4
5 importación javax.swing.JApplet;
6
7 pública clase ForCounter extiende JApplet {
8
9 // Dibujar líneas en el fondo del subprograma
10 public void paint (Graphics g)
11 {
12 súper .paint (g); // llamada a un método de pintura heredada de JApplet
13
14 // Para cabecera declaración incluye la inicialización,
15 // Condición repetición y de la subasta
16 for (int contador = 1; contador <= 10; contador ++)
17 g.drawLine (10, 10, 250, contador * 10);
18
19} // método paint final
20
21} // fin de la clase ForCounter
Pruebas de condición para el valor final de venta libre
Nombre de variable de control es contraproducente
Control variable de valor inicial es 1
Incremento de contador
2003 Prentice Hall, Inc. Todos los derechos reservados.
7
Fig. 5.3 para los componentes de cabecera de los estados.
for (int contador = 1; contador <= 10; contador ++)
Incremento de la variable de control
Variable de control
Valor final de la variable de control para que la condición es verdadera
para
palabra clave
Condición de bucle de continuación
Valor inicial de la variable de control
Separador punto y coma Requerido
Separador punto y coma Requerido
2003 Prentice Hall, Inc. Todos los derechos reservados.
8
5.3 Estructura de Repetición (cont.)for (inicialización; loopContinuationCondition; incremento)
declaración;
por lo general puede ser reescrita como:
inicialización;
while (loopContinuationCondition) {
declaración;
incrementar;
}
2003 Prentice Hall, Inc. Todos los derechos reservados.
9
Fig. 5.4 para diagrama de actividades comunicado.
[Contador <= 10]
[Contador> 10]
int contador = 1
contador ++
Determinar si se ha alcanzado el valor final de la variable de control
g.drawLine (
10, 10, 250,
contador * 10);
Establecer el valor inicial de la variable de control
Dibuje una línea en el applet
Incrementar la variable de control
2003 Prentice Hall, Inc. Todos los derechos reservados.
10
5.4 Ejemplos de uso de la Declaración de La variación de la variable de control por declaración Vary controlar variable de 1 a 100 en incrementos de 1
f o (int i = 1; i <= 100; i ++)
Variar variable de control 100 a 1 en incrementos de - 1
for (int i = 100; i> = 1; i--)
Vary variable de control 7-77 en incrementos de 7
for (int i = 7; i <= 77; i + = 7)
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
11
Sum.java
Línea 12
1 // Fig. 5.5: Sum.java
2 // Resumiendo enteros con la instrucción for.
Javax.swing.JOptionPane 3 de importación;
4
5 Suma public class {
6
7 static void main (String args []) públicos
8 {
9 = Total int 0; // inicializar suma
10
11 // Enteros pares totales a partir de 2 100 a través
12 for (int numero = 2; número <= 100; número + = 2)
13 en total + = número;
14
15 // mostrar los resultados
16 JOptionPane.showMessageDialog (null, "La suma es" + totales,
17 "Total de enteros pares 2-100",
18 JOptionPane.INFORMATION_MESSAGE);
19
20 System.exit (0); // terminar la aplicación
21
22} // fin principal
23
24} // fin de la clase Sum
número de incrementos por 2 cada iteración
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
12
Interest.java
Líneas 13-15
Línea 18
Línea 19
1 // Fig. 5.6: Interest.java
2 // Cálculo de interés compuesto.
Java.text.NumberFormat 3 de importación; // clase para el formato numérico
Java.util.Locale 4 importación; // clase de información específica del país
5
Javax.swing.JOptionPane 6 de importación;
Javax.swing.JTextArea 7 de importación;
8
9 Interés public class {
10
11 static void main (String args []) públicos
12 {
13 cantidad doble; // cantidad en depósito al final de cada año
14 doble director = 1000,0; // cantidad inicial antes de intereses
15 doble tasa = 0,05; // tasa de interés
16
17 // Crear NumberFormat para la moneda en formato dólares
18 NumberFormat moneyFormat =
19 NumberFormat.getCurrencyInstance (Configuración regional de Estados Unidos.);
20
21 // Crear JTextArea para mostrar la salida
22 JTextArea outputTextArea = new JTextArea ();
23
24 // Establecer primera línea de texto en outputTextArea
25 outputTextArea.setText ("Año \ tAmount en depósito \ n");
26
Java trata a los puntos flotantes como tipo double
NumberFormat puede formatear los valores numéricos en forma de moneda
Valores de la moneda de visualización con el signo de dólar ($)
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
13
Interest.java
Líneas 28-31
27 // Calcular la cantidad en depósito para cada uno de diez años,
28 for (int año = 1; años <= 10; años ++) {
29
30 // Calcular nuevo importe para el año especificado
31 = cantidad director * Math.pow (1,0 + tasa, año);
32
33 // Añadir una línea de texto a outputTextArea
34 outputTextArea.append (año + "\ t" +
35 moneyFormat.format (cantidad) + "\ n");
36
37} // fin de
38
39 // mostrar los resultados
40 JOptionPane.showMessageDialog (null, outputTextArea,
41 "Interés compuesto", JOptionPane.INFORMATION_MESSAGE);
42
43 System.exit (0); // terminar la aplicación
44
45} // fin principal
46
47} // fin de la clase interés
Calcular la cantidad por declaración
2003 Prentice Hall, Inc. Todos los derechos reservados.
14
5.5 do ... while Declaración Repetición do ... while estructura Al igual que mientras que la estructura
Prueba de bucle de continuación después de realizar el cuerpo del bucle
es decir, el cuerpo del bucle siempre se ejecuta al menos una vez
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
15
DoWhileTest.java
Líneas 16-20
1 // Fig. 5.7: DoWhileTest.java
2 // Usando el do ... while.
3 java.awt.Graphics de importación;
4
5 importación javax.swing.JApplet;
6
7 public class DoWhileTest extiende JApplet {
8
9 // Dibujar líneas en subprograma
10 public void paint (Graphics g)
11 {
12 súper .paint (g); // llamada a un método de pintura heredada de JApplet
13
14 int contador = 1; // inicializar contador
15
16 do {
17 g.drawOval (110 - Contador * 10, 110 - Contador * 10,
18 * 20 contador, contador * 20);
19 ++ contador;
20} while (contador <= 10); // fin do ... while
21
22} // método paint final
23
24} // fin de la clase DoWhileTest
Óvalo se dibuja antes valor final de pruebas de contador
2003 Prentice Hall, Inc. Todos los derechos reservados.
16
Fig. 5.8 do ... while diagrama de actividades instrucción de repetición.
Estado acción
[Verdadero]
[Falsa]
condición
2003 Prentice Hall, Inc. Todos los derechos reservados.
17
5.6 Declaración interruptor de selección múltiple sentencia switch Se utiliza para múltiples selecciones
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
18
SwitchTest.java
Líneas 16-21:
Conseguir la entrada del usuario
1 // Fig. 5.9: SwitchTest.java
2 // dibujar líneas, rectángulos u óvalos basan en la entrada del usuario.
3 java.awt.Graphics de importación;
4
5 javax.swing importación. *;
6
7 public class switchtest extiende JApplet {
8 int elección; elección // del usuario de forma que para dibujar
9
10 // Inicializar subprograma mediante la obtención de elección del usuario
11 public void init ()
12 {
Entrada de 13 cuerdas; entrada // del usuario
14
15 // Obtener la opción del usuario
16 entrada = JOptionPane.showInputDialog (
17 "Introduzca 1 para dibujar líneas \ n" +
18 "Enter 2 para dibujar rectángulos \ n" +
19 "Enter 3 dibujar óvalos \ n");
20
21 elección = Integer.parseInt (entrada); // convertir la entrada a int
22
23} // fin del método init
24
25 // Dibujar formas en el fondo del subprograma
26 public void paint (Graphics g)
27 {
28 súper .paint (g); // llamada a un método de pintura heredada de JApplet
29
30 for (int i = 0; i <10; i ++) {// bucle 10 veces (0-9)
31
Obtener el aporte de usuario en JApplet
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
19
SwitchTest.java
Línea 32:
expresión de control
Línea 32:
sentencia switch
Línea 48
32 switch (elección) {// determinar la forma de dibujar
33
34 caso 1: // dibujar una línea
35 g.drawLine (10, 10, 250, 10 + i * 10);
36 break; // caso, al tratamiento realizado
37
38 caso 2: // dibujar un rectángulo
39 g.drawRect (10 + i * 10, 10 + i * 10,
40 50 + i * 10, 50 + i * 10);
41 break; // caso, al tratamiento realizado
42
43 caso 3: // dibujar un óvalo
44 g.drawOval (10 + i * 10, 10 + i * 10,
45 50 + i * 10, 50 + i * 10);
46 break; // caso, al tratamiento realizado
47
48 default: // dibujar cadena que indica valor no válido ingresado
49 g.drawString ("Valor no válido entraron",
50 10, 20 + i * 15);
51
52} // end switch
53
54} // fin de
55
56} // método paint final
57
58} // fin de la clase switchtest
caso por defecto de entradas no válidas
sentencia switch determina cuyo caso la etiqueta para ejecutar, en función de la expresión control
entrada del usuario (opción) es controlar la expresión
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
20
SwitchTest.java
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
21
SwitchTest.java
2003 Prentice Hall, Inc. Todos los derechos reservados.
22
Fig. 5.10 Interruptor de selección múltiple diagrama de actividades declaración con
sentencias break.
caso una acción (s)
rotura
acción (s) por defecto
[Verdadero]
caso b acción (s)
rotura
acción (s) caso z
rotura
.
.
.
[Falsa]
un caso
[Verdadero]
[Verdadero]
caso b
z caso
[Falsa]
[Falsa]
2003 Prentice Hall, Inc. Todos los derechos reservados.
23
5.7 romper y continuar Declaraciones romper / continuar Alterar flujo de control
sentencia break Causas salida inmediata de la estructura de control
Utilizado en tiempo, para, do ... while o interruptor declaraciones
sentencia continue Omite las sentencias restantes en el cuerpo del bucle
Ingresos a la siguiente iteración
Utilizado en tiempo, a favor o en do ... while declaraciones
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
24
BreakTest.java
Línea 12
Líneas 14-15
1 // Fig. 5,11: BreakTest.java
2 // Terminar un bucle con break.
Javax.swing.JOptionPane 3 de importación;
4
5 public class BreakTest {
6
7 static void main (String args []) públicos
8 {
9 String salida = "";
10 int cuenta;
11
12 for (cuenta = 1; contador <= 10; count ++) {// bucle 10 veces
13
14 Si (recuento == 5) // si el recuento es de 5,
15 break; // terminar bucle
16
17 de salida + = count + "";
18
19} // fin de
20
21 de salida + = "\ nBroke de lazo en cuenta =" + cuenta;
22 JOptionPane.showMessageDialog (null, salida);
23
24 System.exit (0); // terminar la aplicación
25
26} // fin principal
27
28} // fin de la clase BreakTest
Loop 10 veces
salida para la estructura (pausa) cuando el recuento es igual a 5
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
25
ContinueTest.java
Línea 11
Líneas 13-14
1 // Fig. 5.12: ContinueTest.java
2 // Continuando con la siguiente iteración de un bucle.
Javax.swing.JOptionPane 3 de importación;
4
5 public class ContinueTest {
6
7 static void main (String args []) públicos
8 {
9 String salida = "";
10
11 for (int cuenta = 1; contador <= 10; count ++) {// bucle 10 veces
12
13 Si (recuento == 5) // si el recuento es de 5,
14 continuar; // saltar código restante en bucle
15
16 de salida + = count + "";
17
18} // fin de
19
20 de salida + = "\ Nused continuar saltarse la impresión 5";
21 JOptionPane.showMessageDialog (null, salida);
22
23 System.exit (0); // terminar la aplicación
24
25} // fin principal
26
27} // fin de la clase ContinueTest
Loop 10 veces
Saltear la línea 16 y proceder a la línea 11 cuando el recuento es igual a 5
2003 Prentice Hall, Inc. Todos los derechos reservados.
26
5.8 break y continue Declaraciones Etiquetada Bloque etiquetado Conjunto de sentencias encerradas por {}
Precedido por una etiqueta
Sentencia break Etiquetada Salir de las estructuras de control anidadas
Ingresos a la final del bloque etiquetado especificado
Etiquetada sentencia continue Omite las sentencias restantes en el cuerpo de bucle anidado
Ingresos a principios del bloque etiquetado especificado
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
27
BreakLabelTest.java
Línea 11
Línea 14
Línea 17
Líneas 19-20
1 // Fig. 5.13: BreakLabelTest.java
2 sentencia break // Etiquetada.
Javax.swing.JOptionPane 3 de importación;
4
5 public class BreakLabelTest {
6
7 static void main (String args []) públicos
8 {
9 String salida = "";
10
11 parada: {// bloque etiquetado
12
13 // Contar 10 filas
14 for (int fila = 1; fila <= 10; fila ++) {
15
16 // Contar 5 columnas
17 for (int columna = 1; columna <= 5; columna ++) {
18
19 si (fila == 5) // si la fila es 5,
20 romper parada; // salto al final del bloque de tope
21
22 de salida + = "*";
23
24} // extremo interior para
25
26 de salida + = "\ n";
27
28} // fin exterior para
29
Loop 10 veces
parada es el bloque etiquetado
Salir a la línea 35 (siguiente diapositiva)
Bucle anidado 5 veces
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
28
BreakLabelTest.java
30 // Siguiente línea se salta
31 de salida + = "\ nLoops terminó con normalidad";
32
33} // bloque extremo etiquetado
34
35 JOptionPane.showMessageDialog (null, la producción,
36 "Prueba de romper con una etiqueta",
37 JOptionPane.INFORMATION_MESSAGE);
38
39 System.exit (0); // terminar la aplicación
40
41} // fin principal
42
43} // fin de la clase BreakLabelTest
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
29
ContinueLabelTest.java
Línea 11
Línea 14
Línea 17
Líneas 21-22
1 // Fig. 5.14: ContinueLabelTest.java
2 // Etiquetada sentencia continue.
Javax.swing.JOptionPane 3 de importación;
4
5 public class ContinueLabelTest {
6
7 static void main (String args []) públicos
8 {
9 String salida = "";
10
Etiqueta // objetivo de continuar declaración: 11 NextRow
12
13 // Contar 5 filas
14 for (int fila = 1; fila <= 5; fila ++) {
15 de salida + = "\ n";
16
17 // Contar 10 columnas por fila
18 for (int columna = 1; columna <= 10; columna ++) {
19
20 // Si la columna mayor de fila, se inicia la siguiente fila
21 si (columna> fila)
22 continuar NextRow; // siguiente iteración del bucle etiquetado
23
24 de salida + = "*";
25
26} // extremo interior para
27
28} // fin exterior para
NextRow es el bloque etiquetado
Loop 5 veces
Bucle anidado 10 veces
continuar a la línea 11 (NextRow)
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
30
ContinueLabelTest.java
29
30 JOptionPane.showMessageDialog (null, la producción,
31 "Prueba de continuar con una etiqueta",
32 JOptionPane.INFORMATION_MESSAGE);
33
34 System.exit (0); // terminar la aplicación
35
36} // fin principal
37
38} // fin de la clase ContinueLabelTest
2003 Prentice Hall, Inc. Todos los derechos reservados.
31
5.9 Operadores lógicos Los operadores lógicos Permite la formación de condiciones más complejas
Combina condiciones simples
Operadores lógicos Java && (Condicional AND)
Y (booleano AND lógico)
|| (OR condicional)
| (Booleano OR lógico inclusive)
^ (Boolean lógico OR exclusivo)
! (NOT lógico)
2003 Prentice Hall, Inc. Todos los derechos reservados.
32
2003 Prentice Hall, Inc. Todos los derechos reservados.
33
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
34
LogicalOperators.java
Líneas 16-20
Líneas 23-27
1 // Fig. 5.19: LogicalOperators.java
2 // Los operadores lógicos.
3 javax.swing importación. *;
4
5 LogicalOperators clase públicos
6
7 static void main (String args []) públicos
8 {
9 // Crear JTextArea para mostrar los resultados
10 JTextArea areaSalida = new JTextArea (17, 20);
11
12 // Adjuntar JTextArea a un JScrollPane para que el usuario puede desplazarse entre los resultados
13 JScrollPane scroller = new JScrollPane (areaSalida);
14
15 // Crea tabla de verdad para el operador && (condicional AND)
16 String salida = "lógico AND (&&)" +
17 "\ Nfalse && falsa:" + (false && false) +
18 "\ Nfalse && verdad:" + (false && true) +
19 "\ Ntrue && falsa:" + (true && false) +
20 "\ Ntrue && verdad:" + (true && true);
21
22 // Crea tabla de verdad para el operador || (OR condicional)
23 de salida + = "\ n \ nLogical OR (||)" +
24 "\ Nfalse || falsa:" + (falso || false) +
25 "\ Nfalse || verdadero:" + (falso || true) +
26 "\ Ntrue || falsa:" + (true || false) +
27 "\ Ntrue || verdadero:" + (true || true);
28
Mesa Condicional Y la verdad
Mesa OR condicional verdad
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
35
LogicalOperators.java
Líneas 30-34
Líneas 37-41
Líneas 44-48
Líneas 51-53
29 // Crea tabla de verdad para operador & (booleano AND lógico)
30 de salida + = "\ n \ nBoolean lógica AND (&)" +
31 "\ Nfalse y falsa:" + (falso y falso) +
32 "\ Nfalse y verdadera:" + (falso y verdadero) +
33 "\ Ntrue y falsa:" + (verdadero y falso) +
34 "\ Ntrue y verdadera:" + (true y true);
35
36 // Crea tabla de verdad para operador | (OR inclusivo lógico boolean)
37 de salida + = "\ n \ nBoolean lógica incluyente O (|)" +
38 "\ Nfalse | false:" + (falso | false) +
39 "\ Nfalse | true:" + (false | true) +
40 "\ Ntrue | false:" + (true | false) +
41 "\ Ntrue | true:" + (true | true);
42
43 // Crea tabla de verdad para ^ operador (OR exclusivo lógico booleano)
44 de salida + = "\ n \ nBoolean lógico OR exclusivo (^)" +
45 "\ Nfalse ^ falsa:" + (falso ^ false) +
46 "\ Nfalse ^ verdad:" + (falso ^ true) +
47 "\ Ntrue ^ falsa:" + (true ^ false) +
48 "\ Ntrue ^ verdad:" + (true ^ true);
49
50 // Crea tabla de verdad para! (Negación lógica) del operador
51 de salida + = "\ n \ nLogical NOT (!)" +
52 "\ N falsa:!" + + (Falso!)
53 "\ N verdadera:" +; (verdad!)
54
55 outputArea.setText (salida); // lugar los resultados en JTextArea
56
Lógico NO tabla de verdad
Boolean mesa OR exclusivo verdad lógica
Boolean mesa OR inclusivo verdad lógica
Boolean tabla lógica y verdad
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
36
LogicalOperators.java
57 JOptionPane.showMessageDialog (null, desplazador,
58 "Tablas de verdad", JOptionPane.INFORMATION_MESSAGE);
59
60 System.exit (0); // terminar la aplicación
61
62} // fin principal
63
64} // fin de la clase LogicalOperators
2003 Prentice Hall, Inc. Todos los derechos reservados.
37
2003 Prentice Hall, Inc. Todos los derechos reservados.
38
5.10 Resumen de Programación Estructurada Estructura de la secuencia "Built-in" para Java
Estructura Selección si, si ... else y el interruptor
Estructura de repetición while, do ... while y for
2003 Prentice Hall, Inc. Todos los derechos reservados.
39
Fig. 5.21 Java 's de una sola entrada / secuencia de una sola salida, selección y instrucciones de
repetición.
[T]
[F]
[F]
[T]
rotura
rotura
[T]
rotura
[T]
[F]
[T]
[F]
[T]
[F]
[T]
[F]
Repetición
while
hacer while
para la declaración
Selección
Secuencia
si else (doble selección)
if (selección individual)
sentencia switch (selección múltiple)
.
.
.
[T]
[F]
defecto
2003 Prentice Hall, Inc. Todos los derechos reservados.
40
Estado acción
Fig. 5.23 Diagrama de actividad más simple.
2003 Prentice Hall, Inc. Todos los derechos reservados.
41
Fig. 5.24 aplicar repetidamente el artículo 2 de la Fig. 5,22 para el diagrama de actividad más
simple..
.
.
Estado acción
Estado acción
aplicar la Regla 2
aplicar la Regla 2
aplicar la Regla 2
Estado acción
Estado acción
Estado acción
Estado acción
Estado acción
Estado acción
2003 Prentice Hall, Inc. Todos los derechos reservados.
42
Fig. 5.25 La aplicación de la regla 3 de la Fig. 5,22 para el diagrama de actividad más simple.
Estado acción
aplicar la Regla 3
aplicar la Regla 3
aplicar la Regla 3
Estado acción
Estado acción
Estado acción
Estado acción
Estado acción
Estado acción
[F] [t]
[F] [t]
[F] [t]
[F] [t]
2003 Prentice Hall, Inc. Todos los derechos reservados.
43
Fig. Diagrama 5.26 Actividad con sintaxis ilegal.
Estado acción
Estado acción
Estado acción
Estado acción
2003 Prentice Hall, Inc. Todos los derechos reservados.
44
5.11 (Ejemplo práctico opcional) Acerca de los objetos: Unidos y Actividades Identificación de
Objetos ' Estado Describe la condición de un objeto 's en un momento dado
Diagrama de estado (UML) Exprese cómo un objeto puede cambiar de estado
Expresar en qué condiciones un objeto puede cambiar de estado
Notación diagrama (Fig. 5.28)
Los Estados están representados por rectángulos redondeados
por ejemplo, "No Presionado "y" prensado "
Círculo sólido (con punta de flecha adjunta) designa estado inicial
Las flechas representan transiciones (cambios de estado)
Objetos cambian de estado en respuesta a los mensajes
por ejemplo, "buttonPressed" y "buttonReset"
2003 Prentice Hall, Inc. Todos los derechos reservados.
45
Fig. 5.27 diagrama de estados para objetos FloorButton y ElevatorButton.
buttonReset
buttonPressed
Presionado
No pulsado
2003 Prentice Hall, Inc. Todos los derechos reservados.
46
5.11 (Ejemplo práctico opcional) Acerca de los objetos: Identificación Unidos y
Actividades Objects (cont.): Diagrama de Actividad (UML) Modelos de flujo de trabajo de un objeto 's durante la ejecución del programa
Modelos de las acciones que un objeto realizar
Notación diagrama (Fig. 5.28)
Actividades están representados por óvalos
Círculo sólido designa actividad inicial
Las flechas representan las transiciones entre actividades
Pequeño diamante representa rama
Siguiente transición en la sucursal se basa en la condición de
guardia
2003 Prentice Hall, Inc. Todos los derechos reservados.
47
Fig. Diagrama 5.28 Actividad para un objeto Person.
[Puerta piso cerrado]
botón del ascensor de prensa
entrar en ascensor
avanzar hacia botón del piso
esperar a que la puerta se abra
botón del piso de prensa
esperar a que la puerta se abra
[Puerta de piso abierto]
salida del ascensor
esperar a los pasajeros para salir del ascensor
[Pasajero en ascensor]
[Ningún pasajero en el elevador]
2003 Prentice Hall, Inc. Todos los derechos reservados.
48
Fig. Diagrama 5.29 Actividad para el objeto Ascensor.
cierre la puerta del ascensor
campana del anillo
botón del ascensor reinicio
[Inactivo ascensor]
[Botón del piso de destino
pulsado]
puerta del ascensor abierta
[Ascensor en movimiento]
[Botón del piso actual
pulsado]
[Botón del piso presiona]
[Botón del ascensor presiona]
[Citado]
[No convocado]
conjunto convocó a la verdadera
conjunto convocó a falso
mover al piso de destino
[Botón del piso de destino
pulsado]
[Botón del piso actual
pulsado]