Upload
carmencita-florez
View
225
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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:
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
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
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 • • •
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
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
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
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
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
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
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
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
;