Práctica 2a: Principios básicos de Algoritmia: Bifurcaciones y bucles en Lenguaje C. Objetivos En esta práctica el objetivo principal es el de poner en práctica los principios básicos de la algoritmia. Para ello el alumno deberá conocer las diferentes estructuras para el control del flujo de un programa: bifurcaciones (operaciones condicionales) y bucles (operaciones iterativas). Evaluación La práctica consta de 3 cuestiones, de los cuales habrá que realizar correctamente al menos 1 para aprobar la práctica. Procedimiento Cada cuestión consta de un enunciado y de una plantilla en lenguaje C. El alumno usará dicha plantilla para verificar el correcto funcionamiento de algoritmo que haya diseñado y su implementación en lenguaje C. En la plantilla se indica dónde debe el alumno insertar su código. Este mismo código deberá copiarse y enviarse a través del servidor de docencia teniendo especial cuidado de seleccionar correctamente la línea de inserción en función del ejercicio que esté resolviendo. Entrega de la práctica a través del servidor Los resultados de todas la práctica se entregará usando el Servidor de Docencia. Para el correcto funcionamiento de las siguientes páginas su navegador debe permitir cookies y la ejecución de javascript. El servidor de docencia se encuentra situado en la siguiente dirección: http://bono.us.es/sdocencia/ La entrega de la práctica consiste en copiar el código desarrollador en cada cuestión en el cuadro de respuestas correspondiente del Servidor de Docencia. Hay que copiar el código una vez se haya comprobado el correcto funcionamiento del programa. IMPORTANTE: • Cada ejercicio se debe resolver utilizando únicamente las variables definidas en el molde que se proporciona • Debe respetar la estructura que se le propone sin cambiar nombres de variables ni omitir ninguna línea de código. 1 Ejercicio 223 Realice un programa en lenguaje C que calcule el mínimo de tres números reales dados y lo muestre por pantalla. void main(void) { /* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */ float x1,x2,x3; //los tres números float res=-1; //mínimo, solución /* LECTURA DE DATOS */ printf("Introduzca el primer numero: "); scanf("%f",&x1); printf("\nIntroduzca el segundo numero: "); scanf("%f",&x2); printf("\nIntroduzca el tercer numero: "); scanf("%f",&x3); /*************INICIO CÓDIGO DE ALUMNO*****************/ /***************FIN CÓDIGO DE ALUMNO******************/ /* ESCRITURA DE RESULTADOS */ printf("\nEl minimo de %.2f, %.2f y %.2f es: %.2f\n",x1,x2,x3,res); /* BLOQUEO DE PANTALLA*/ printf("\n"); system("pause"); } 2 Ejercicio 216 En matemática, la sucesión de Fibonacci es la siguiente sucesión infinita de números naturales: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144… La sucesión inicia con 1 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores. A cada elemento de esta sucesión se le llama número de Fibonacci. Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos. También aparece en configuraciones biológicas, como por ejemplo en las ramas de los árboles, en la disposición de las hojas en el tallo, en la flora de la alcachofa y en el arreglo de un cono. Realice un programa en lenguaje C que calcule el término n-ésimo de la sucesión de Fibonacci y lo muestre por pantalla. void main(void) { /* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */ int n; int i; int res=-1; int aux1,aux2; /* LECTURA DE DATOS */ printf("Introduzca un numero natural:"); scanf("%d",&n); /*************INICIO CÓDIGO DE ALUMNO*****************/ /***************FIN CÓDIGO DE ALUMNO******************/ /* ESCRITURA DE RESULTADOS */ if(n<0) { printf("Entrada no valida"); } else { printf("El termino %d de la sucesion de Fibonacci es %d",n,res); } /* BLOQUEO DE PANTALLA*/ printf("\n"); system("pause"); } 3 Ejercicio 220 Un número de Dudeney es un número entero que es un cubo perfecto, de forma que la suma de sus dígitos da como resultado la raíz cúbica del número. Hay muy pocos números que cumplan esta condición: 1 512 4913 5832 17576 19683 = = = = = = 1 8 17 18 26 27 x x x x x x 1 8 17 18 26 27 x x x x x x 1 8 17 18 26 27 ; ; ; ; ; ; 1 8 17 18 26 27 = = = = = = 1 5 4 5 1 1 + + + + + 1 9 8 7 9 + + + + + 2 1 3 5 6 + + + + 3 2 7 + 6 8 + 3 Realice un programa en lenguaje C que determine si un número natural dado es de Dudeney o no. void main(void) { /* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */ int n; int dud=-1; int aux1,aux2,aux3; /* LECTURA DE DATOS */ printf("Introduzca un numero natural:"); scanf("%d",&n); /*************INICIO CÓDIGO DE ALUMNO*****************/ /***************FIN CÓDIGO DE ALUMNO******************/ /* ESCRITURA DE RESULTADOS */ if(dud==1) printf("El numero %d es de Dudeney",n); if(dud==0) printf("El numero %d no es de Dudeney",n); /* BLOQUEO DE PANTALLA*/ printf("\n"); system("pause"); } 4