Guía de Ejercicios 2 – Lógica

Anuncio
Algoritmos y Programación 1
Universidad Nacional de Tres de Febrero
Guía de Ejercicios 2 – Lógica
1.
Declare una variable llamada “esMenor” que pueda contener valores de verdad. ¿Cuáles son los
literales para esos valores?
2. ¿Cuáles de los siguientes operadores no se aplican a las variables de tipo boolean?
•
&&
•
!
•
-
•
==
•
=
3. Indique el valor de verdad de las siguientes expresiones lógicas considerando las declaraciones
dadas a continuación:
int puntos = 10;
int intentos = 5;
boolean esValido = (puntos > 0) && (puntos < 15);
boolean terminoPartido = (intentos >= 5) || (puntos > 9);
•
esValido && (intentos < 10) && ! terminoPartido
•
!( (intentos < puntos) || (intentos == 4) || (! terminoPartido) )
•
( (! terminoPartido) || ((puntos < 3) && (intentos > 5) && esValido))
•
(! esValido) || (esValido && !terminoPartido) ||
(esValido && terminoPartido && (puntos < intentos))
4. Indique el valor de verdad de las siguientes expresiones lógicas considerando las declaraciones
dadas a continuación:
int vueltas = 5;
int ataques = 1;
boolean encontrado = true;
•
encontrado || (vueltas > ataques) || (vueltas == 1)
•
!((ataques >= 1) && (1 < vueltas) && encontrado)
•
(!(vueltas >= 1)) || ((ataques != 5) && encontrado)
5. Considerando las siguientes declaraciones e inicializaciones:
boolean encontrado = false;
boolean esPrimero = true;
boolean esUltimo = false;
int cantidad = 7;
Algoritmos y Programación 1
Universidad Nacional de Tres de Febrero
double promedio = 6.0;
int longitud = 12;
indicar el valor de verdad de las variables: expresion1, expresion2, expresion3, expresion4,
expresion5 y expresionFinal
boolean expresion1;
expresion1 = encontrado || (promedio > 5.8) || (longitud < 3);
boolean expresion2;
expresion2 = ((longitud > 0) && (longitud < 20)) || esUltimo;
boolean expresion3;
expresion3 = ((!encontrado && esPrimero) || (encontrado && !esUltimo))
&& (cantidad != 0);
boolean expresion4;
expresion4 = (!(promedio < 0.0) || (promedio > 10.0) && !esPrimero);
boolean expresion5;
expresion5 = ! ( !( !encontrado || (esUltimo) )
&& (longitud >= cantidad) );
boolean expresionFinal = (!((expresion1 || expresion2) && !expresion3))
&& (!expresion4 && expresion1);
6. Considerando las siguientes declaraciones e inicializaciones:
int posicion = 12;
int maximo = 50;
int minimo = 1;
boolean fueEncontrado = false;
boolean enRango = (posicion <= maximo) && (posicion >= minimo);
boolean esRegular = (posicion >= 23);
indicar el valor de verdad de las variables: expresion1, expresion2, expresion3, expresion4,
expresion5 y expresionFinal
boolean expresion1;
expresion1 = !enRango || esRegular || (posicion == 12);
boolean expresion2;
expresion2 = (posicion > 0) && (maximo < 20) && esRegular;
Algoritmos y Programación 1
Universidad Nacional de Tres de Febrero
boolean expresion3;
expresion3 = ((enRango && esRegular) || (! esRegular && !enRango))
&& (posicion > 12);
boolean expresion4;
expresion4 = ! ((maximo > minimo) && (enRango || !esRegular))
&& (fueEncontrado || enRango);
boolean expresion5;
expresion5 = !( !( !(fueEncontrador && enRango) || (esRegular && enRango))
&& (posicion > minimo));
boolean expresionFinal = (((expresion5 && expresion2) || !expresion3))
&& (expresion4 || !expresion1);
7. Señalar en los ejercicios anteriores qué partes de las expresiones booleanas no son ejecutadas
debido a la evaluación en cortocircuito (es decir, que la evaluación se detiene tan pronto como el
resultado de la expresión completa es evidente)
8. A partir de las siguientes variables:
boolean aproboPrimerParcial
boolean aproboSegundoParcial
boolean aproboRecuperatorio
boolean aproboTrabajosPracticos
boolean aproboFinal
construir una expresión booleana que indique si un alumno aprobó o no la materia.
9. A partir de las siguientes variables:
int notaPrimerParcial
int notaSegundoParcial
boolean aproboRecuperatorio
boolean aproboTrabajosPracticos
boolean aproboFinal
construir una expresión booleana que indique si un alumno aprobó o no la materia, considerando la
posibilidad de promocionarla.
10. Indique el valor de verdad de las siguientes expresiones lógicas considerando las declaraciones
dadas a continuación. Señalar además qué partes de las expresiones no son ejecutadas debido a la
evaluación por cortocircuito.
int ganados = 50;
int perdidos = 26;
int empatados = 12;
Algoritmos y Programación 1
Universidad Nacional de Tres de Febrero
boolean esGanador = (ganados > (perdidos + empatados));
boolean esRevelacion = (empatados > perdidos);
• !((esGanador && (perdidos != ganados)) || (esRevelacion && ! esGanador));
• !((ganados > empatados) || !((ganados > 25) && esRevelacion));
• esRevelacion || (( perdidos <= 20) && (ganados > 45));
• (perdidos > empatados) && (empatados > 10) && (perdidos <= 30);
• !(esRevelacion || (perdidos > 40) || (ganados < 20));
11. Indique el valor de verdad de las siguientes expresiones lógicas considerando las declaraciones
dadas a continuación. Señalar además qué partes de las expresiones no son ejecutadas debido a la
evaluación por cortocircuito.
int recibidos = 80;
int contestados = 40;
int rechazados = 10;
int pendientes = recibidos - (contestados + rechazados);
boolean tieneErrores = ( (recibidos - pendientes) != contestados );
boolean enFuncionamiento = (contestados > (recibidos / 2));
• (! tieneErrores) || ((pendientes >= 50) && (contestados < 10))
• (contestados > rechazados) && (pendientes < contestados) && (rechazados < 20)
• ((pendientes > 10) || tieneErrores) &&
!( (pendientes != rechazados) || enFuncionamiento )
• ((! tieneErrores) && (! enFuncionamiento)) ||
(tieneErrores && enFuncionamiento) || (recibidos == rechazados)
• ! ( (contestados > (rechazados * 3)) &&
!((recibidos > pendientes) || (pendientes > contestados)) )
Descargar