Supongamos que existe un programa seCuelga(x) que devuelve
“s´ı” cuando x se cuelga y “no” cuando x no se cuelga.
entrada salida
“(int i=1; while (i>x) {i=i+1;})(0)” “s´ı”
“(int i=1; while (i>x) {i=i+1;})(1)” “no”
Puedo escribir el siguiente programa h(x):
if (seCuelga(x(x))=="no"){ int i=1; while (i>0) {i=i+1;} }
¿Qu´e pasa con h(h)?
I Si h(h) se cuelga es porque entr´o al if ,
entonces seCuelga(h(h)) =“no” entonces h(h)
no se cuelga.
I Si h(h) no se cuelga es porque no entr´o al if ,
entonces seCuelga(h(h)) =“s´ı” entonces h(h)se cuelga.

AYUDA PORFAVOR ME HAN PUESTO EL PROBLEMA DE LA PRADA!!!

1

Respuestas

2012-11-23T19:11:53+01:00

Supongamos que existe un programa seCuelga(x) que devuelve
“s´ı” cuando x se cuelga y “no” cuando x no se cuelga.
“(int i=1; while (i>x) {i=i+1;})(0)” “s´ı”
“(int i=1; while (i>x) {i=i+1;})(1)” “no”


Puedo escribir el siguiente programa h(x):

if (seCuelga(x(x))=="no"){ int i=1; while (i>0) {i=i+1;} }   


==> en esta parte si ( seCuelga(x(x))=="no" )  lo mismo h(x) se cuelga porque entra en un ciclo infinito por (  int i=1; while (i>0) {i=i+1;}  ) al ser siempre i > 0


¿Que pasa con h(h)?
I Si h(h) se cuelga es porque entro al if , entonces seCuelga(h(h)) =“no” entonces h(h) no se cuelga.        

==> h(h) se colgo por entrar al if ..  entonces seCuelga(h(h)) =“no” si se cumple esta condicion entrara al if y se colgara..


I Si h(h) no se cuelga es porque no entro al if , entonces seCuelga(h(h)) =“sı” entonces h(h) se cuelga.

==> con ( seCuelga(h(h)) =“sı” )  no se colgara porque hizo la pregunta.. la salida es "si" y previene d q se cuelgue.. y no entra al (  int i=1; while (i>0) {i=i+1;} )  asi q no se colgara


saludos y espero ayudarte =) no cuesta nada poner como "mejor" respuesta