Está en la página 1de 12

Expresiones y Operadores

Gustavo Gálvez Zenteno

Programación

Instituto IACC

01/02/2020
Desarrollo

1. Utilizando operadores de comparación y lógicos, resuelva el siguiente caso, con PHPtester:

• Declare una variable que guarde la edad de una persona. Luego, si la edad es menor de

18 años, aparecerá el siguiente mensaje: “Eres menor de edad, no podemos

contratarte”.

• Si es mayor de 18 años y menor o igual de 60 años, le saldrá el mensaje: “Es posible

que usted sea un candidato al cargo”.

• Si es mayor de 60 años, le saldrá el mensaje: “Lo sentimos, pero usted no cumple el

perfil del cargo”.

Pruebe su programa en tres casos: una persona de 17 años, una de 64 y una de 35. Muestre las

evidencias respectivas en cada caso.

Código

<?php

echo "Control 3 de Programación<br> Gustavo Gálvez";

echo "<br>Declarar edad de un persona";

echo "<p> Edad de la persona <br>";

$a=17 ;// Ingresar edad

echo $a;

$edad= ($a<18);

if ($edad===true){

echo "<p>Eres menor de edad, no podemos contratarte";


} elseif ($a>=18and $a<=60) {

echo "<p>Es posible que usted sea un candidato al cargo";

} else {

echo "<p>Lo sentimos, pero usted no cumple el perfil del cargo";

?>

Persona 17 años:
Persona 64 años

Persona 35 años:
2. Dada las siguientes expresiones, ingréselas en PHPTester e indique el resultado respectivo.

Considere las siguientes variables:

A = 4 B = 5 C = 10 D = 3 E = 7 F= 9

A partir de lo anterior, determine el valor de:

a) X = (A<B) OR (NOT(A<>C) AND (A+B<D OR A<F))

Y=D*B+F–A/B*F

<?php

echo "Control 3 de Programación<br> Gustavo Gálvez";

echo "<br>Pregunta número 2<p>";

$A = 4;

$B = 5;

$C = 10;

$D = 3;

$E= 7;

$F = 9;

$X=($A<$B) OR (NOT($A<>$C) AND ($A+$B<$D OR $A<$F));


echo $X;

$Y= $D*$B+$F-$A/$B*$F;

echo("El valor es $Y");

?>

3. Pruebe los siguientes programas en PHPTester y mencione las diferencias al evaluar las

expresiones:

Programa 1

<?php

$var1 = true;
$var2 = false;

$todo = $var1 && $var2; //$todo sólo tomaría el valor verdadero si tanto $var1 como $var2

fueran verdadero.

if ($todo) {

print "<p>verdadero</p>\n";

} else {

print "<p>falso</p>\n";

?>

En el programa 1 la variable $todo sólo tomaría el valor Verdadero si tanto $var1 como $var2

fueran Verdadero, pero como $var2 es falsa, $todo toma el valor falso.
Programa 2: Cuando utiliza el operador and en vez de &&, el resultado no es el esperado:

<?php

$var1 = true;

$var2 = false;

$todo = $var1 and $var2;//El operador de asignación = tiene precedencia sobre el operador and,

por eso da verdadero.

if ($todo) {

print "<p>verdadero</p>\n";
} else {

print "<p>falso</p>\n";

?>

En el programa 2 se produce el resultado verdadero ya que el operador de asignación = tiene

precedencia sobre el operador and. PHP realiza antes la asignación que la operación lógica, es

decir, como si la expresión estuviese escrita así: ($todo = $var1) and $var2; Aca la variable

$todo almacena el valor de la variable $var1 (true), por lo que $todo toma el valor true. La

operación lógica and no modifica el valor de $todo.

Si queremos obtener el mismo resultado en el programa 1(&&) y 2(AND), se deben utilizar

paréntesis, para forzar que la operación lógica and se realice antes de la asignación:
?php

$var1 = true;

$var2 = false;

$todo = ($var1 and $var2);// Se deben utilizar paréntesis, para forzar que la operación lógica and

se realice antes de la asignación

if ($todo) {

print "<p>verdadero</p>\n";

} else {

print "<p>falso</p>\n";

?>

Así quedarían los dos programas falsos.


Bibliografía

IACC (2018). Expresiones y Operadores. Programación. Semana 3.

PHP, P. w. (2018). Operaciones Lógicas. Recuperado el 03 de 02 de 2020, de


https://www.mclibre.org/consultar/php/lecciones/php-operaciones-logicas.html

También podría gustarte