duda en programacion





Ir a Inicio : Foro   Oposiciones Informatica
asterix444
Nunca sabes lo que sabes.

12/05/2008 9:44:00
Mensajes: 390
Desde: madrid
Registrado: junio de 2007
duda en programacion
18. ¿Cuántas veces imprime el cuadrado de el si-guiente bloque de código?:  
for (x=100; x!=65; x -=5) {z = x x;  
printf ("el cuadrado de %d es %r' . x , z);}  
a) 6.  
b) 7.  
c) 8.  
d) 9.  
 
La plantilla marca como buena la b.  
Pero yo quiero saber el porqué. Esta copiado y pegado tal cual. Quizás haya alguna errata.  
 
Saludos  

2 RESPUESTAS AL MENSAJE

NAMBERWUAN

12/05/2008 10:33:00
Mensajes: 31
Desde: Burgos
Registrado: enero de 2007
RE:duda en programacion
La condicion para que se sigua ejecutando el bucle es que x sea distinto de 65.  
 
En los bucles for siempre primero se evalua la condicion, despues se ejecutan las instruccion y por ultimo se ejecuta la secuencia de actualizacion en este caso x-=5.  
 
Se ejecuta 7 veces.  
 
1 x=100 "el cuadrado de 100 es 10 000"  
2 x=95 "el cuadrado de 95 es 9025"  
3 x=90 "el cuadrado de 90 es 8100"  
4 x=85 "el cuadrado de 85 es 7225"  
5 x=80 "el cuadrado de 80 es 6400"  
6 x=75 "el cuadrado de 75 es 5625"  
7 x= 70 "el cuadrado de 70 es 4900"  
 
8 x=65 sale del for sin escribir lo del cuadrado.  
 
 
Tanto en el for como en el while primero se comprueba la condicion y luego se ejecuta el contenido del bucle.  
En el do-while se ejecuta el contenido del bucle y despues la condicion.
 
Phoebe17
100% friki :-)

12/05/2008 14:48:00
Mensajes: 62
Desde: Sevilla
Registrado: abril de 2008
RE:duda en programacion
También tienes otra manera de hacerlo (a lo cutre) pero es quizás, más rápida: Si sabes que el contador empieza desde 100, y va hacía atrás hasta llegar a 65 y va de cinco en cinco, haces esto:  
 
100-65 = 35 daría 35 vueltas si fuera a -1, pero como va de -5 en -5 pues divide esos 35 entre 5 y te salen las veces que se imprime, o sea 7.  
 
Y ahí tienes el resultado. Es algo más "a la cuenta de la vieja" pero si tienes prisas y no sabes muy bien al menos así sabes cual es la respuesta exacta.  
 
Un saludo :-)
 







POLITICA DE PROTECCION DE DATOS - AVISO LEGAL - NORMAS USO DEL FORO
Copyright 2002 Gabinete Educativo 2000 S.L.
- CIF: B-95152906.
::: 1.862.464 mensajes ::: 152.906 usuarios registrados (25/05/2005) :::  Buscar en TODO el FORO :::  Buscar en esta sección
L
O
G
I
N
Email
Clave
Iniciar sesión automaticamente
Preguntas Frecuentes
F.A.Q. sobre el foro