Práctica 4: Funciones en lenguaje C/C++.

advertisement
Práctica 4: Funciones en lenguaje C/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 lenguaje C/C++.
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
(bono.us.es/sdocencia), teniendo especial cuidado de seleccionar correctamente la línea de
inserción en función del ejercicio que esté resolviendo.
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.
Entrega de la práctica a través del servidor
Los resultados de todas la prácticas se entregarán 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 de cada cuestión que se encuentra entre
las dos líneas de comentarios (en rojo) 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.
Cada apartado tiene un espacio asignado dónde copiar el código correspondiente. Solo hay
que copiar el código que se encuentra entre las dos líneas de comentarios del molde
proporcionado en el enunciado.
Es especialmente importante que siga estas instrucciones si quiere que la práctica sea
evaluada apropiadamente.
1
Ejercicio 228
En matemáticas, una progresión aritmética es una serie de números tales que
la diferencia de dos términos sucesivos cualesquiera de la secuencia es una constante,
cantidad llamada diferencia de la progresión o simplemente diferencia o incluso "distancia".Por
ejemplo, la sucesión 3, 5, 7, 9, 11,... es una progresión aritmética de constante (o diferencia
común) 2.
Realice una función en lenguaje C/C++ que calcule y muestre por pantalla el término n-ésimo
de una progresión aritmética, dados el primer término de la sucesión a0 y la diferencia r.
El prototipo de la función viene dado por
int prog_aritmetica(int a0,int r, int n);
A continuación se encuentra la plantilla del programa a utilizar.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int prog_aritmetica(int a0,int r, int n);
main(void)
{
/* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */
int a0;
int n;
int r;
int i;
int an=-1;
/* LECTURA DE DATOS */
printf("Introduzca
el
primer
numero
de
la
progresion
aritmetica:");
scanf("%d",&a0);
printf("Introduzca la diferencia de la progresion:");
scanf("%d",&r);
printf("Introduzca la posicion del termino que desea obtener:");
scanf("%d",&n);
/*************INCLUYA LLAMADA A FUNCIÓN *****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(n<0)
{
printf("Entrada no valida");
}
else
{
printf("El
termino
%d
de
%d",n,an);
}
/* BLOQUEO DE PANTALLA*/
printf("\n");
system("pause");
}
la
progresion
aritmetica
es
2
int prog_aritmetica(int a0,int r, int n)
{
int i;
int an=-1;
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
return an;
}
3
Ejercicio 227
Una sucesión geométrica está constituida por una secuencia de elementos en la que cada uno de
ellos se obtiene multiplicando el anterior por una constante denominada razón o factor de la
progresión. Se suele reservar el término progresión cuando la secuencia tiene una
cantidad finita de términos mientras que se usa sucesión cuando hay una cantidad infinita de
términos, si bien, esta distinción no es estricta.
Así, 5,15, 45, 135, 405 es una progresión geométrica con razón igual a 3, porque 15 = 5 × 3, 45 =
15 × 3, 135 = 45 × 3, 405 = 135 × 3, y así sucesivamente.
.
Realice una función en lenguaje C++ (.cpp) que calcule y muestre por pantalla el término n-ésimo de
una progresión geométrica, dados el primer término de la sucesión a0 y la razón r.
El prototipo de la función viene dado por
void prog_geometrica(int a0,int r, int n, int & an);
A continuación se encuentra la plantilla del programa a utilizar.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void prog_geometrica(int a0,int r, int n, int & an);
main(void)
{
/* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */
int a0;
int n;
int r;
int i;
int an=-1;
/* LECTURA DE DATOS */
printf("Introduzca el primer numero de la progresion geometrica:");
scanf("%d",&a0);
printf("Introduzca la razon de la progresion:");
scanf("%d",&r);
printf("Introduzca la posicion del termino que desea obtener:");
scanf("%d",&n);
/************* INCLUYA LA LLAMADA A LA FUNCION *****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(n<0)
{
printf("Entrada no valida");
}
else
{
printf("El termino %d de la progresion geometrica es %d",n,an);
}
/* BLOQUEO DE PANTALLA*/
printf("\n");
system("pause");
}
4
void prog_geometrica(int a0,int r, int n, int & an)
{
int i;
an=-1;
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
}
5
Ejercicio 229
La raíz cuadrada de un número positivo n se puede aproximar siguiendo el método de recurrencia
de Newton, que para este problema en concreto se puede escribir como la siguiente sucesión:
xi+1=xi – (xi2-n)/(2xi)
Realice una función en lenguaje C++ (.cpp) que calcule y muestre por pantalla el término n-ésimo de
la aproximación de newton de la raíz cuadrada de un número positivo n, tomando como valor inicial
de xi 1.
El prototipo de la función viene dado por
void raiz_newton(double n, int m, double & x);
A continuación se encuentra la plantilla del programa a utilizar.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void raiz_newton(double n, int m, double & x);
main(void)
{
/* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */
double n;
int m;
int i;
double x=1;
/* LECTURA DE DATOS */
printf("Introduzca un numero para calcular su raiz cuadrada:");
scanf("%lf",&n);
printf("Introduzca el termino de la aproximacion que desea obtener:");
scanf("%d",&m);
/*************INCLUYA LA LLAMADA A LA FUNCIÓN *****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(n<0)
{
printf("Entrada no valida");
}
else
{
printf("El termino %d de la raiz de %f es %f",m,n,x);
}
/* BLOQUEO DE PANTALLA*/
printf("\n");
system("pause");
}
6
void raiz_newton(double n,int m, double & x)
{
int i;
x=1;
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
}
7
Descargar