Download Práctica 5c: Uso de funciones en C.

Document related concepts
no text concepts found
Transcript
Práctica 5c: Uso de funciones en C.
Objetivos
En esta práctica el objetivo principal es el de poner en práctica los principios básicos del uso de
funciones en C.
Evaluación
La práctica consta de tres cuestiones, de los cuales habrá que realizar correctamente al menos una
para aprobar la práctica.
Procedimiento
En cada cuestión se pide la definición de una función de la cual se proporciona el prototipo y una
descripción de lo que debe realizar. Adicionalmente en algunas cuestiones se proporciona un
programa de ejemplo con llamadas a esa función para poder comprobar el correcto funcionamiento
de la misma.
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 el prototipo de la función pedida.
•
No está permitido el uso de lápices de memoria ni acceder a páginas web, en particular al
correo electrónico.
•
Está permitido crear y utilizar funciones auxiliares para resolver un ejercicio. Para poder
entregar correctamente una cuestión que use funciones adicionales, hay que definir el
prototipo de la función de forma local en la función que la utiliza y proporcionar su definición
en la respuesta.
1
Cuestión 503
Diseñar una función que calcule la raíz cuadrada entera de un número real. La función recibe como
parámetro de entrada un número flotante x. Debe devolver el número natural más grande tal que su
cuadrado sea menor o igual que x. Si el parámetro de entrada es negativo debe devolver -1.
Prototipo
int raizentera(float x);
Programa de ejemplo
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int raizentera(float x);
void main(void)
{
float x;
int aux;
printf("La raiz
printf("La raiz
printf("La raiz
x = 123.1;
printf("La raiz
cuadrada entera de 0 es %d\n",raizentera(0));
cuadrada entera de 4.6 es %d\n",raizentera(4.6));
cuadrada entera de -1 es %d\n",raizentera(4-5));
cuadrada entera de 246.2 es %d\n",raizentera(2*x));
for(x=-11.5;x<100;x=x+10)
printf("La raiz cuadrada entera de %.1f es %d\n",x,raizentera(x));
aux = 3 + raizentera(4521);
printf("La raiz cuadrada entera de 4521 mas 3 es %d\n",aux);
}
int raizentera(float x)
{
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
}
2
Cuestión 509
Realizar una función que calcule el máximo común divisor de dos números enteros que se pasan
como argumento.
El máximo común divisor de dos números es el mayor número entero que es divisor de ambos
números simultáneamente.
Ejemplo: Los números 21 y 18 tienen por divisores comunes, de menor mayor, 1, 2, y 3. El máximo
común divisor en este caso será 3.
La función recibirá como argumento dos números enteros y devolverá otro entero con el máximo
común divisor.
Prototipo
int mcd(int a, int b);
Programa de ejemplo
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int mcd(int a, int b);
void main(void)
{
printf("El mcd de %d y %d es %d\n", 21, 18, mcd(21,18));
printf("El mcd de %d y %d es %d\n", 35, 15, mcd(15,35));
printf("El mcd de %d y %d es %d\n", 2108, 1837, mcd(2108,1837));
}
int mcd(int a, int b)
{
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
}
3
Cuestión 511
π (pi) es la relación entre la longitud de una circunferencia y su diámetro, en geometría euclidiana. Es
un número irracional y una de las constantes matemáticas más importantes. Se emplea
frecuentemente en matemáticas, física e ingeniería. El valor numérico de π, truncado a sus primeras
cifras, es el siguiente:
El valor de π se ha obtenido con diversas aproximaciones a lo largo de la historia. Una forma de
obtener una aproximación de π es hacer uso de la fórmula de Leibniz:
Defina una función que devuelva una aproximación al número π obtenida sumando un número
determinado de elementos de la sucesión de la fórmula de Leibniz.
Prototipo
double leibniz(int N);
Programa de ejemplo
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
double leibniz(int N);
void main(void)
{
int terminos;
for(terminos=1;terminos<10;terminos++)
printf("leibniz(%d) es %f\n",terminos,leibniz(terminos));
}
double leibniz(int N)
{
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
}
4