curso 04/05 lecc.4 el tipo booleano s. velilla 1 univ. de zaragoza 4 el tipo booleano. composiciones...

20
lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza curso 04/05 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano. Expresiones booleanas. 4.2 Composición condicional de acciones. Selección múltiple 4.3 Composición iterativa de acciones

Upload: carmencita-florez

Post on 28-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

1Univ. de Zaragoza

curso04/05

4 El tipo booleano.Composiciones condicional e iterativa de acciones

4.1 El tipo booleano. Expresiones booleanas.

4.2 Composición condicional de acciones. Selección múltiple

4.3 Composición iterativa de acciones

Page 2: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

2Univ. de Zaragoza

curso04/05

4.1 especificación del tipo booleano

lógicos: Y-lógico, conjunción lógica, o intersección lógica O-lógico, disyunción lógica, o unión lógica negación lógica

representación interna : 1 bit (a veces más para facilitar su tratamiento)

representación algorítmica : los identificadores falso y cierto

operadores : los de los escalares con dominio enumerable

dominio : los valores (falso, cierto)verdadero

ò

el resultado de cualquier expresión relacional es un valor booleano

Page 3: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

3Univ. de Zaragoza

curso04/05

propiedades del cálculo de proposiciones

Sean p y q dos proposiciones (expresiones booleanas) cualesquiera, cuyos valores pueden ser F (falso) o C (cierto)

p F p1 p C py

p C C2 p F Fy

p p C3 p p Fy

p p p4 p p py

(p q) p q9 y (p q) p q

leyes de Morgan

p (p q) p10 y p (p q) p

además- conmutativas- asociativas- distributivas

Page 4: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

4Univ. de Zaragoza

curso04/05

4.2 Composición condicional de acciones

composición condicional

existencia de casos particulares

especificar los casos particulares, y los problemas asociados a cada caso particular

forma básica:Si <expresión booleana> entonces <instrucción_1> si no <instrucción_2>FSi

Si <instrucción_2> es nula forma degenerada

Page 5: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

5Univ. de Zaragoza

curso04/05

Diseñar un algoritmo que obtenga del teclado un número natural, y muestre por pantallasi dicho número es, o no, par

Enunciado:

Planteamiento:

Algoritmo esPar;{ Este algoritmo obtiene del teclado un número natural, y muestra por pantalla si dicho número es, o no, par.

Pre: n entero introducido desde el teclado Post: visualizado el número y si dicho número es, o no, par}Principio . . . .Fin

composición condicional: ejemplo_1

variante: sin usar la operación mod 2

Page 6: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

6Univ. de Zaragoza

curso04/05

Implementar los operadores lógicos mediante composiciones condicionales

Enunciado:

Planteamiento:

composición condicional: ejemplo_2

Page 7: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

7Univ. de Zaragoza

curso04/05

Diseñar un algoritmo que obtenga del teclado un año (>1582), y muestre por pantallasi dicho año es, o no, bisiesto

Enunciado:

Planteamiento:

Algoritmo esBisiesto;{ Este algoritmo obtiene del teclado un año mayor que 1582, y muestra por pantalla si dicho año es, o no, bisiesto.

Pre: n > 1582 entero introducido desde el teclado Post: visualizado si el año n es, o no, bisiesto}Principio . . . .Fin

composición condicional: ejemplo_3

Page 8: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

8Univ. de Zaragoza

curso04/05

Diseñar un algoritmo que obtenga tres enteros y muestre el mayor de ellos

Enunciado:

Planteamiento:

Algoritmo MayorDeTres;{ Este algoritmo obtiene del teclado tres enteros, y muestra por pantalla el mayor de ellos.

Pre: n1, n2, n3 enteros introducidos desde el teclado Post: visualizado m, siendo m el mayor de n1, n2, n3 }Principio . . . .Fin

composición condicional: ejemplo_4

Page 9: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

9Univ. de Zaragoza

curso04/05

selección múltiple de acciones

Selección caso <expresión booleana_1> <instrucción_1> { caso <expresión booleana_i> <instrucción_i> } [ otros_casos <instrucción_o> ]Fselección

Caso <expresión escalar> Sea <valor_1> <instrucción_1> { <valor_i> <instrucción_i> } [ otros_casos <instrucción_o> ]FCaso

más simple:

Page 10: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

10Univ. de Zaragoza

curso04/05

Diseñar un algoritmo que obtenga del teclado un mes y un año (>1582), y muestre por pantalla el número de días de dicho mes

Enunciado:

Planteamiento:

Algoritmo diasMes;{ Este algoritmo obtiene del teclado los valores de un mes y un año, y muestra por pantalla el número de días de dicho mes.

Pre: 1 m 12, 1582 a enteros introducido desde el teclado Post: visualizado el número de días del mes m del año a}Principio . . . .Fin

composición condicional: ejemplo_5

Page 11: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

11Univ. de Zaragoza

curso04/05

Enunciado:

composición condicional: ejemplo_6

Diseñar un algoritmo que obtenga un número natural < 1000 y visualice el número natural que tiene sus dígitos en orden inverso.

Ejemplos: 123 321 73 37 10 01

Planteamiento:

Algoritmo invertir_natural_menor_que_1000;{ Este algoritmo obtiene un natural < 1000 y visualiza sus dígitos en orden inverso Pre: 0 <= n <= 999 introducido desde el teclado. Sea n = d2 d1 d0 sus dígitos Post: visualizado d0 d1 d2 para d2 > 0, d0 d1 para d1 > 0 y d2 = 0, y d0 para d1 = d2 = 0}Principio . . . .Fin

Page 12: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

12Univ. de Zaragoza

curso04/05

4.3 Composición iterativa de acciones

composición iterativa

forma básica: MientrasQue <expresión booleana> Hacer <instrucción>FMQ

repetición de la resolución de un subproblema mientras que no se haya resuelto el problema dado

metodología método de inducción • • •

Page 13: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

13Univ. de Zaragoza

curso04/05

Enunciado:

composición iterativa: ejemplo_7

Diseñar un algoritmo que obtenga un número natural < 100 y visualice el factorial de dicho número

Ejemplos: 123 321 73 37 10 01

Planteamiento:

Algoritmo factorial;{ Este algoritmo obtiene un natural < 100 y visualiza su factorial Pre: 0 <= n <= 99 introducido desde el teclado Post: visualizado n!}Principio . . . .Fin

Page 14: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

14Univ. de Zaragoza

curso04/05

Enunciado:

composición iterativa: ejemplo_8

Diseñar un algoritmo que obtenga una secuencia de números naturales terminada con número negativo y visualice el mayor número introducido

Ejemplos: 1 23 6 -8 23 73 0 -1 73

Planteamiento:

Algoritmo mayor_de_secuencia;{ Este algoritmo obtiene un secuencia de naturales terminada con un nº negativo y visualiza su el mayor de los números introducidos Pre: n1, n2, ••• f , con ni >= 0 y f < 0 introducidos desde el teclado Post: visualizado max(ni)}Principio . . . .Fin

Page 15: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

15Univ. de Zaragoza

curso04/05

Enunciado:

composición iterativa: ejemplo_9

Diseñar un algoritmo que obtenga un número natural y visualice el número natural que tiene sus dígitos en orden inverso.

Ejemplos: 123 321 73 37 10 01

Planteamiento:

Algoritmo invertir_natural;{ Este algoritmo obtiene un natural y visualiza sus dígitos en orden inverso Pre: 0 <= n introducido desde el teclado. Sea n = dn ••• d1 d0 sus dígitos Post: visualizado d0 d1 ••• dn }Principio . . . .Fin

Page 16: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

16Univ. de Zaragoza

curso04/05

Enunciado:

composición iterativa: ejemplo_10

Diseñar un algoritmo que obtenga un número natural y muestre por pantalla si es capicúa.

Ejemplos: 123 NO es capicúa 2332 SI es capicúa

Planteamiento:

Algoritmo Ver_Si_Es_Capicua;{ Este algoritmo obtiene un natural y muestra por pantalla si es capicúa Pre: 0 <= n introducido desde el teclado Post: visualizado n SI es capicúa o n NO es capicúa }Principio . . . .Fin

Page 17: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

17Univ. de Zaragoza

curso04/05

Enunciado:

composición iterativa: ejemplo_11

Diseñar un algoritmo que obtenga un número natural y muestre si es, o no, divisible por 9,utilizando la "prueba del 9" (la suma de sus dígitos debe ser 0 o 9).

Ejemplos: 123 NO es capicúa 2332 SI es capicúa

Planteamiento:

Algoritmo Ver_si_es_Multiplo_de_9;{ Este algoritmo obtiene un natural y muestra por pantalla si es , o no, múltiplo de 9 Pre: 0 <= n introducido desde el teclado Post: visualizado n SI es múltiplo de 9 o n NO es múltiplo de 9}Principio . . . .Fin

Page 18: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

18Univ. de Zaragoza

curso04/05

otras formas de composición iterativa

repetición incondicional Repetir <expresión entera> Veces <instrucción>FRep

repetición condicional Repetir <instrucción>Hasta Que <expresión booleana>

iteración indexada

Para <índice> Desde <valor inicial> Hasta <valor final> Hacer <instrucción>FPara

Page 19: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

19Univ. de Zaragoza

curso04/05

otras formas de composición iterativa

Repeticiónincondicional

Repetir <expresión entera> Veces <instrucción>FRep

i := 1;while i <= expresión_entera do begin <instrucción>; i := i + 1;end

Page 20: Curso 04/05 lecc.4 El tipo booleano S. Velilla 1 Univ. de Zaragoza 4 El tipo booleano. Composiciones condicional e iterativa de acciones 4.1 El tipo booleano

lecc.4 El tipo booleanoS. Velilla

20Univ. de Zaragoza

curso04/05

otras formas de composición iterativa

Repeticióncondicional

Repetir <instrucción>Hasta Que <expresión booleana>

REPEAT UNTIL

sentenciaREPEAT

sentenciaexpresiónbooleana

;