Está en la página 1de 68

2003 Prentice Hall, Inc. Todos los derechos reservados.

Captulo 5 - Estructuras de control: Parte 2


Contorno
5.1 Introduccin
5.2 Fundamentos de Repeticin Controlada por Contador
5.3 Declaracin de Repeticin
5.4 Ejemplos de uso de la Declaracin de
5.5 do ... while Declaracin Repeticin
5.6 Declaracin interruptor de seleccin mltiple
5.7 romper y continuar Declaraciones
5.8 break y continue Declaraciones Etiquetada
5.9 Operadores lgicos
5.10 Resumen de Programacin Estructurada

5.11 (Ejemplo prctico opcional) Acerca de los objetos: Unidos y Actividades


Identificacin de Objetos '

2003 Prentice Hall, Inc. Todos los derechos reservados.

5.1 Introduccin
Contina discusin estructurada de programacin
Introducir las estructuras de control restantes Java 's

2003 Prentice Hall, Inc. Todos los derechos reservados.

5.2 Fundamentos de Repeticin Controlada por


Contador
Repeticin 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 travs de


cada bucle

Condicin 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

Lnea 14

Lnea 16

Lnea 18
1 // Fig. 5.1: WhileCounter.java
2 // repeticin controlada por contador.
3 java.awt.Graphics de importacin;
4
5 importacin javax.swing.JApplet;
6
7 pblica clase WhileCounter extiende JApplet {
8
9 // Dibuja lneas en el fondo del subprograma
10
11 {

pblico void paint (Graphics g)

12

sper .paint (g); // llamada a un mtodo de pintura heredada de JApplet

13
14

int contador = 1; // inicializacin

15
16

while (contador <= 10) {// condicin repeticin

17 g.drawLine (10, 10, 250, contador * 10);


18 ++ contador; // incremento
19
20} // fin del tiempo
21
22} // mtodo paint final
23
24} // fin de la clase WhileCounter

Incremento de contador
Pruebas de condicin 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.3 Declaracin de Repeticin


Maneja contador controlado con repeticin detalles
2003 Prentice Hall, Inc.

Todos los derechos reservados.

Contorno
6

ForCounter.java

Lnea 16
int contador = 1;

Lnea 16
contador <= 10;

Lnea 16
contador ++;
1 // Fig. 5.2: ForCounter.java
2 // repeticin controlada por contador con la sentencia for.
3 java.awt.Graphics de importacin;
4
5 importacin javax.swing.JApplet;
6

7 pblica clase ForCounter extiende JApplet {


8
9

// Dibujar lneas en el fondo del subprograma

10

public void paint (Graphics g)

11 {
12

sper .paint (g); // llamada a un mtodo de pintura heredada de JApplet

13
14

// Para cabecera declaracin incluye la inicializacin,

15

// Condicin repeticin y de la subasta

16

for (int contador = 1; contador <= 10; contador ++)

17 g.drawLine (10, 10, 250, contador * 10);


18
19} // mtodo paint final

20
21} // fin de la clase ForCounter

Pruebas de condicin 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.

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 condicin es verdadera

para
palabra clave
Condicin de bucle de continuacin
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.

5.3 Estructura de Repeticin (cont.)


for (inicializacin; loopContinuationCondition; incremento)
declaracin;
por lo general puede ser reescrita como:
inicializacin;
while (loopContinuationCondition) {

declaracin;
incrementar;
}

2003 Prentice Hall, Inc. Todos los derechos reservados.

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 lnea en el applet

Incrementar la variable de control

2003 Prentice Hall, Inc. Todos los derechos reservados.

10

5.4 Ejemplos de uso de la Declaracin de


La variacin de la variable de control por declaracin
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

Lnea 12
1 // Fig. 5.5: Sum.java
2 // Resumiendo enteros con la instruccin for.
Javax.swing.JOptionPane 3 de importacin;
4
5 Suma public class {
6
7

static void main (String args []) pblicos

8{
9
10

= Total int 0; // inicializar suma

11

// Enteros pares totales a partir de 2 100 a travs

12

for (int numero = 2; nmero <= 100; nmero + = 2)

13 en total + = nmero;
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 aplicacin
21
22} // fin principal
23

24} // fin de la clase Sum

nmero de incrementos por 2 cada iteracin


2003 Prentice Hall, Inc.
Todos los derechos reservados.

Contorno
12

Interest.java

Lneas 13-15

Lnea 18

Lnea 19
1 // Fig. 5.6: Interest.java

2 // Clculo de inters compuesto.


Java.text.NumberFormat 3 de importacin; // clase para el formato numrico
Java.util.Locale 4 importacin; // clase de informacin especfica del pas
5
Javax.swing.JOptionPane 6 de importacin;
Javax.swing.JTextArea 7 de importacin;
8
9 Inters public class {
10
11

static void main (String args []) pblicos

12 {
13

cantidad doble; // cantidad en depsito al final de cada ao

14

doble director = 1000,0; // cantidad inicial antes de intereses

15

doble tasa = 0,05; // tasa de inters

16
17

// Crear NumberFormat para la moneda en formato dlares

18 NumberFormat moneyFormat =
19 NumberFormat.getCurrencyInstance (Configuracin regional de Estados Unidos.);
20
21

// Crear JTextArea para mostrar la salida

22 JTextArea outputTextArea = new JTextArea ();


23
24

// Establecer primera lnea de texto en outputTextArea

25 outputTextArea.setText ("Ao \ tAmount en depsito \ n");


26

Java trata a los puntos flotantes como tipo double

NumberFormat puede formatear los valores numricos en forma de moneda


Valores de la moneda de visualizacin con el signo de dlar ($)

2003 Prentice Hall, Inc.


Todos los derechos reservados.

Contorno
13

Interest.java

Lneas 28-31
27

// Calcular la cantidad en depsito para cada uno de diez aos,

28

for (int ao = 1; aos <= 10; aos ++) {

29
30

// Calcular nuevo importe para el ao especificado

31 = cantidad director * Math.pow (1,0 + tasa, ao);

32
33

// Aadir una lnea de texto a outputTextArea

34 outputTextArea.append (ao + "\ t" +


35 moneyFormat.format (cantidad) + "\ n");
36
37} // fin de
38
39

// mostrar los resultados

40 JOptionPane.showMessageDialog (null, outputTextArea,


41

"Inters compuesto", JOptionPane.INFORMATION_MESSAGE);

42
43 System.exit (0); // terminar la aplicacin
44

45} // fin principal


46
47} // fin de la clase inters

Calcular la cantidad por declaracin

2003 Prentice Hall, Inc. Todos los derechos reservados.

14

5.5 do ... while Declaracin Repeticin


do ... while estructura
Al igual que mientras que la estructura
Prueba de bucle de continuacin despus 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

Lneas 16-20
1 // Fig. 5.7: DoWhileTest.java
2 // Usando el do ... while.
3 java.awt.Graphics de importacin;
4
5 importacin javax.swing.JApplet;
6
7 public class DoWhileTest extiende JApplet {
8
9

// Dibujar lneas en subprograma

10

public void paint (Graphics g)

11 {
12

sper .paint (g); // llamada a un mtodo 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} // mtodo 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 instruccin de repeticin.


Estado accin
[Verdadero]
[Falsa]
condicin

2003 Prentice Hall, Inc. Todos los derechos reservados.

17

5.6 Declaracin interruptor de seleccin mltiple


sentencia switch
Se utiliza para mltiples selecciones

2003 Prentice Hall, Inc.


Todos los derechos reservados.

Contorno
18

SwitchTest.java

Lneas 16-21:
Conseguir la entrada del usuario
1 // Fig. 5.9: SwitchTest.java
2 // dibujar lneas, rectngulos u valos basan en la entrada del usuario.
3 java.awt.Graphics de importacin;
4
5 javax.swing importacin. *;
6

7 public class switchtest extiende JApplet {


8

int eleccin; eleccin // del usuario de forma que para dibujar

9
10

// Inicializar subprograma mediante la obtencin de eleccin del usuario

11

public void init ()

12 {
Entrada de 13 cuerdas; entrada // del usuario
14
15

// Obtener la opcin del usuario

16 entrada = JOptionPane.showInputDialog (
17

"Introduzca 1 para dibujar lneas \ n" +

18

"Enter 2 para dibujar rectngulos \ n" +

19

"Enter 3 dibujar valos \ n");

20
21 eleccin = Integer.parseInt (entrada); // convertir la entrada a int
22
23} // fin del mtodo init
24
25

// Dibujar formas en el fondo del subprograma

26

public void paint (Graphics g)

27 {
28

sper .paint (g); // llamada a un mtodo 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

Lnea 32:
expresin de control

Lnea 32:
sentencia switch

Lnea 48
32

switch (eleccin) {// determinar la forma de dibujar

33
34

caso 1: // dibujar una lnea

35 g.drawLine (10, 10, 250, 10 + i * 10);


36

break; // caso, al tratamiento realizado

37
38

caso 2: // dibujar un rectngulo

39 g.drawRect (10 + i * 10, 10 + i * 10,


40
41

50 + i * 10, 50 + i * 10);
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 vlido ingresado

49 g.drawString ("Valor no vlido entraron",


50

10, 20 + i * 15);

51
52} // end switch
53
54} // fin de
55
56} // mtodo paint final
57
58} // fin de la clase switchtest

caso por defecto de entradas no vlidas


sentencia switch determina cuyo caso la etiqueta para ejecutar, en funcin de la expresin control

entrada del usuario (opcin) es controlar la expresin


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 seleccin mltiple diagrama de actividades declaracin con


sentencias break.
caso una accin (s)
rotura
accin (s) por defecto
[Verdadero]
caso b accin (s)
rotura
accin (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 iteracin

Utilizado en tiempo, a favor o en do ... while declaraciones

2003 Prentice Hall, Inc.


Todos los derechos reservados.

Contorno
24

BreakTest.java

Lnea 12

Lneas 14-15
1 // Fig. 5,11: BreakTest.java
2 // Terminar un bucle con break.
Javax.swing.JOptionPane 3 de importacin;

4
5 public class BreakTest {
6
7

static void main (String args []) pblicos

8{
9 String salida = "";
10

int cuenta;

11
12

for (cuenta = 1; contador <= 10; count ++) {// bucle 10 veces

13
14
15
16

Si (recuento == 5) // si el recuento es de 5,
break; // terminar bucle

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 aplicacin
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

Lnea 11

Lneas 13-14
1 // Fig. 5.12: ContinueTest.java
2 // Continuando con la siguiente iteracin de un bucle.
Javax.swing.JOptionPane 3 de importacin;
4

5 public class ContinueTest {


6
7

static void main (String args []) pblicos

8{
9 String salida = "";
10
11

for (int cuenta = 1; contador <= 10; count ++) {// bucle 10 veces

12
13
14

Si (recuento == 5) // si el recuento es de 5,
continuar; // saltar cdigo restante en bucle

15
16 de salida + = count + "";
17

18} // fin de
19
20 de salida + = "\ Nused continuar saltarse la impresin 5";
21 JOptionPane.showMessageDialog (null, salida);
22
23 System.exit (0); // terminar la aplicacin
24
25} // fin principal
26
27} // fin de la clase ContinueTest

Loop 10 veces
Saltear la lnea 16 y proceder a la lnea 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

Lnea 11

Lnea 14

Lnea 17

Lneas 19-20
1 // Fig. 5.13: BreakLabelTest.java
2 sentencia break // Etiquetada.
Javax.swing.JOptionPane 3 de importacin;
4

5 public class BreakLabelTest {


6
7

static void main (String args []) pblicos

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
20

si (fila == 5) // si la fila es 5,
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 lnea 35 (siguiente diapositiva)
Bucle anidado 5 veces

2003 Prentice Hall, Inc.


Todos los derechos reservados.

Contorno
28

BreakLabelTest.java
30

// Siguiente lnea se salta

31 de salida + = "\ nLoops termin con normalidad";


32
33} // bloque extremo etiquetado
34
35 JOptionPane.showMessageDialog (null, la produccin,

36

"Prueba de romper con una etiqueta",

37

JOptionPane.INFORMATION_MESSAGE);

38
39 System.exit (0); // terminar la aplicacin
40
41} // fin principal
42

43} // fin de la clase BreakLabelTest

2003 Prentice Hall, Inc.


Todos los derechos reservados.

Contorno
29

ContinueLabelTest.java

Lnea 11

Lnea 14

Lnea 17

Lneas 21-22
1 // Fig. 5.14: ContinueLabelTest.java
2 // Etiquetada sentencia continue.
Javax.swing.JOptionPane 3 de importacin;
4
5 public class ContinueLabelTest {
6
7

static void main (String args []) pblicos

8{
9 String salida = "";
10
Etiqueta // objetivo de continuar declaracin: 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
22

si (columna> fila)
continuar NextRow; // siguiente iteracin 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 lnea 11 (NextRow)


2003 Prentice Hall, Inc.
Todos los derechos reservados.

Contorno
30

ContinueLabelTest.java
29
30 JOptionPane.showMessageDialog (null, la produccin,
31

"Prueba de continuar con una etiqueta",

32

JOptionPane.INFORMATION_MESSAGE);

33
34 System.exit (0); // terminar la aplicacin
35
36} // fin principal
37
38} // fin de la clase ContinueLabelTest

2003 Prentice Hall, Inc. Todos los derechos reservados.

31

5.9 Operadores lgicos


Los operadores lgicos
Permite la formacin de condiciones ms complejas
Combina condiciones simples

Operadores lgicos Java


&& (Condicional AND)
Y (booleano AND lgico)
|| (OR condicional)
| (Booleano OR lgico inclusive)
^ (Boolean lgico OR exclusivo)
! (NOT lgico)

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

Lneas 16-20

Lneas 23-27
1 // Fig. 5.19: LogicalOperators.java
2 // Los operadores lgicos.

3 javax.swing importacin. *;
4
5 LogicalOperators clase pblicos
6
7

static void main (String args []) pblicos

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 = "lgico 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

Lneas 30-34

Lneas 37-41

Lneas 44-48

Lneas 51-53
29

// Crea tabla de verdad para operador & (booleano AND lgico)

30 de salida + = "\ n \ nBoolean lgica 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 lgico boolean)

37 de salida + = "\ n \ nBoolean lgica 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 lgico booleano)

44 de salida + = "\ n \ nBoolean lgico 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! (Negacin lgica) 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

Lgico NO tabla de verdad


Boolean mesa OR exclusivo verdad lgica
Boolean mesa OR inclusivo verdad lgica

Boolean tabla lgica 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 aplicacin
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 Programacin Estructurada


Estructura de la secuencia
"Built-in" para Java

Estructura Seleccin
si, si ... else y el interruptor

Estructura de repeticin

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, seleccin y instrucciones de
repeticin.
[T]
[F]
[F]
[T]
rotura
rotura

[T]
rotura

[T]
[F]
[T]
[F]
[T]
[F]
[T]
[F]
Repeticin
while
hacer while
para la declaracin
Seleccin
Secuencia
si else (doble seleccin)
if (seleccin individual)
sentencia switch (seleccin mltiple)
.

.
.
[T]
[F]
defecto

2003 Prentice Hall, Inc. Todos los derechos reservados.

40
Estado accin

Fig. 5.23 Diagrama de actividad ms simple.

2003 Prentice Hall, Inc. Todos los derechos reservados.

41

Fig. 5.24 aplicar repetidamente el artculo 2 de la Fig. 5,22 para el diagrama de actividad ms
simple.
.
.
.

Estado accin

Estado accin
aplicar la Regla 2
aplicar la Regla 2
aplicar la Regla 2
Estado accin
Estado accin
Estado accin
Estado accin
Estado accin
Estado accin

2003 Prentice Hall, Inc. Todos los derechos reservados.

42

Fig. 5.25 La aplicacin de la regla 3 de la Fig. 5,22 para el diagrama de actividad ms simple.
Estado accin
aplicar la Regla 3
aplicar la Regla 3
aplicar la Regla 3

Estado accin
Estado accin
Estado accin
Estado accin
Estado accin
Estado accin
[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 accin
Estado accin
Estado accin
Estado accin

2003 Prentice Hall, Inc. Todos los derechos reservados.

44

5.11 (Ejemplo prctico opcional) Acerca de los


objetos: Unidos y Actividades Identificacin de
Objetos '
Estado
Describe la condicin de un objeto 's en un momento dado

Diagrama de estado (UML)

Exprese cmo un objeto puede cambiar de estado


Expresar en qu condiciones un objeto puede cambiar de estado
Notacin diagrama (Fig. 5.28)

Los Estados estn representados por rectngulos redondeados

por ejemplo, "No Presionado "y" prensado "

Crculo slido (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 prctico opcional) Acerca de los


objetos: Identificacin Unidos y
Actividades Objects (cont.):
Diagrama de Actividad (UML)

Modelos de flujo de trabajo de un objeto 's durante la ejecucin


del programa

Modelos de las acciones que un objeto realizar

Notacin diagrama (Fig. 5.28)

Actividades estn representados por valos

Crculo slido designa actividad inicial

Las flechas representan las transiciones entre actividades

Pequeo diamante representa rama

Siguiente transicin en la sucursal se basa en la condicin de

guardia

2003 Prentice Hall, Inc. Todos los derechos reservados.

47

Fig. Diagrama 5.28 Actividad para un objeto Person.


[Puerta piso cerrado]
botn del ascensor de prensa
entrar en ascensor
avanzar hacia botn del piso
esperar a que la puerta se abra
botn 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]
[Ningn 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
botn del ascensor reinicio
[Inactivo ascensor]
[Botn del piso de destino
pulsado]

puerta del ascensor abierta


[Ascensor en movimiento]
[Botn del piso actual
pulsado]

[Botn del piso presiona]


[Botn del ascensor presiona]

[Citado]
[No convocado]

conjunto convoc a la verdadera


conjunto convoc a falso
mover al piso de destino
[Botn del piso de destino
pulsado]
[Botn del piso actual
pulsado]

También podría gustarte