Trabajo personal de ciclos Fundamentos de computación 1. ¿Qué saldrá por pantalla cuando se ejecuten los siguientes bloques de instrucciones? Para medirte, intenta resolverlo a mano y luego puedes comprobar la respuesta con el ordenador. a) x =0; do { printf ( " %i \ n " ,x ) ; } while ( x !=0) ; b) for ( ind =4; ind >=1; ind /=2) { printf ( " %i \ n " ,ind -1) ; } c) x =1; do { x ++; printf ( " %i \ n " ,x ) ; } while (x <3) ; d) for ( ind =0; ind <10; ind +=5) { printf ( " %i \ n " , ind +1) ; } 2. Explicar qué hacen los siguientes bloques de instrucciones (no qué ponen en pantalla, sino para qué sirven): a) b) c) d) e) f) g) for ( ;scanf("%i",&valor)==1; acum += valor) { printf("Eco: %i\n",valor);} for(total=0; ; ){ total +=n; if (total>MAXAC){ break; }} for (base=1; base <= maximo; ) { base *= factor;} for(puntos=SALIDA; adiv!=real; puntos--){ scanf("%i",&adiv);} do { scanf("%i",&primo);} while (primo<=0); do { potencia = pow(potencia,expon);} while(potencia<extremo); for (x=0.5; x<10; x+=0.5) { printf("%f ",x);} 3. En los siguientes programas se producen los errores indicados al final de cada uno (los números de lı́nea se dan a la izquierda). Corregirlos. 1 a) 1 2 3 4 5 6 7 8 9 10 11 12 b) 1 2 3 4 5 6 7 8 9 10 11 12 c) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # include < stdio .h > # include < stdlib .h > void main () { int i ; do { scanf ( " %i " ,& i ) ; } while ( i ==0) system ( " pause " ) ; } // 10 C :\ prueba .c syntax error before " system " # include < stdio .h > # include < stdlib .h > void main () { int b ; for ( b =1 , b <=5 , b ++) { printf ( " %i " ,b ) ; } system ( " pause " ) ; } // 7 C :\ prueba .c syntax error before ’) ’ token # include < stdio .h > # include < stdlib .h > void main () { int i ; i =10; do { printf ( " %i " ,i ) ; i ++; } while (i <5) ; system ( " pause " ) ; } // Sale 10 , pero no era esa la idea , porque 10 es mayor que 5 15 // Por qué no queda la pantalla vacı́a d) 1 # include < stdio .h > 2 # include < stdlib .h > 3 4 void main () { 2 5 6 7 8 9 10 11 12 // No int i ; for ( i =0; i ==4; i ++) { printf ( " %i " ,i ) ; } system ( " pause " ) ; } sale nada ¿por qué ? 3 (OVLJXLHQWHSURJUDPDHVFULEHXQDFXHQWDKDFLDGHODQWHGHVGHKDVWDORTXHSLGDHOXVXDULR&DPELDOD LQVWUXFFLRQforSDUDTXHODFXHQWDVHDKDFLDDWUiVGHVGHHOOtPLWHKDVWD #include <stdio.h> void main() { int limite, contador; printf("Dar limite: "); if (scanf("%i",&limite) == 1) { for (contador = 1; contador <= limite; contador++) { printf("%i ",contador); } printf(“\n”); } else { printf(“Error de lectura\n”); } } (OVLJXLHQWHSURJUDPDWLHQHTXHSHGLUDOXVXDULRXQDOHWUDKDVWDTXHOHGpXQD$SHURODLQVWUXFFLyQ do-whileHVWiGHVRUGHQDGD&RUUtJHOD #include <stdio.h> #define CORRECTA ‘A’ void main() { char letra; do (letra == CORRECTA) while { printf("Dar letra: "); scanf("%c",&letra); } } (OVLJXLHQWHSURJUDPDVXPDQ~PHURV¢KDVWDFXiQGR" #include <stdio.h> void main() { float total, valor; /* El total y cada valor leído */ printf("Dar valor: "); scanf("%g", &valor); *total = 0; while (valor > 0) { total += valor; printf("Dar valor: "); scanf("%g", &valor); } printf("Total: %g\n ", total); } } &RPSOHWDUHOVLJXLHQWHSURJUDPDSDUDTXHFXHQWHFXiQWRVFHURVKD\HQXQDVHULHGHQ~PHURV #include <stdio.h> void main() { int cuantos, contador, numceros, numero;; printf("Cuantos números son: "); if ((scanf("%i",&cuantos) == 1) && cuantos > 0) { numceros = 0; for (......................................................) { printf("Numero: “); scanf(“%i",&numero); if (numerp == 0) { numceros++; } } printf(“Habia %i ceros\n”,numceros); } } 'DUXQSURJUDPDTXHOHDXQQ~PHUR\OHHVFULEDUHSHWLGRWDQWDVYHFHVFRPROHSLGDHOXVXDULR3LVWDOHHUHO Q~PHURDUHSHWLU\FXiQWDVYHFHVKD\TXHUHSHWLUORHQXQDIXQFLyQDSDUWHSRQHUXQFLFORTXHVHUHSLWDHOQ~PHURGH YHFHVLQGLFDGR\GHQWURGHHVHFLFORSRQHUODLQVWUXFFLyQGHHVFULWXUDGHOQ~PHUR