En esta prctica el objetivo principal es el de poner en prctica los principios bsicos del uso de funciones en lenguaje C/C++.
Evaluacin
La prctica consta de 3 cuestiones, de los cuales habr que realizar correctamente al menos 1 para aprobar la prctica.
Procedimiento
Cada cuestin 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 diseado y su implementacin en lenguaje C. En la plantilla se indica dnde debe el alumno insertar su cdigo. Este mismo cdigo deber copiarse y enviarse a travs del servidor de docencia (bono.us.es/sdocencia), teniendo especial cuidado de seleccionar correctamente la lnea de insercin en funcin 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 lnea de cdigo.
Entrega de la prctica a travs del servidor
Los resultados de todas la prcticas se entregarn usando el Servidor de Docencia. Para el correcto funcionamiento de las siguientes pginas su navegador debe permitir cookies y la ejecucin de javascript. El servidor de docencia se encuentra situado en la siguiente direccin:
http://bono.us.es/sdocencia/
La entrega de la prctica consiste en copiar el cdigo de cada cuestin que se encuentra entre las dos lneas de comentarios (en rojo) en el cuadro de respuestas correspondiente del Servidor de Docencia. Hay que copiar el cdigo una vez se haya comprobado el correcto funcionamiento del programa.
Cada apartado tiene un espacio asignado dnde copiar el cdigo correspondiente. Solo hay que copiar el cdigo que se encuentra entre las dos lneas de comentarios del molde proporcionado en el enunciado.
Es especialmente importante que siga estas instrucciones si quiere que la prctica sea evaluada apropiadamente.
2 Ejercicio 228
En matemticas, una progresin aritmtica es una serie de nmeros tales que la diferencia de dos trminos sucesivos cualesquiera de la secuencia es una constante, cantidad llamada diferencia de la progresin o simplemente diferencia o incluso "distancia".Por ejemplo, la sucesin 3, 5, 7, 9, 11,... es una progresin aritmtica de constante (o diferencia comn) 2.
Realice una funcin en lenguaje C/C++que calcule y muestre por pantalla el trmino n-simo de una progresin aritmtica, dados el primer trmino de la sucesin a 0 y la diferencia r.
El prototipo de la funcin viene dado por i nt pr og_ar i t met i ca( i nt a0, i nt r , i nt n) ;
A continuacin se encuentra la plantilla del programa a utilizar.
#i ncl ude <st di o. h> #i ncl ude <st dl i b. h> #i ncl ude <wi ndows. h>
i nt pr og_ar i t met i ca( i nt a0, i nt r , i nt n) ;
mai n( voi d) { / * DECLARACI N DE VARI ABLES ( vase t abl a de obj et os) */ i nt a0; i nt n; i nt r ; i nt i ; i nt an=- 1;
/ * LECTURA DE DATOS */ pr i nt f ( " I nt r oduzca el pr i mer numer o de l a pr ogr esi on ar i t met i ca: " ) ; scanf ( " %d" , &a0) ; pr i nt f ( " I nt r oduzca l a di f er enci a de l a pr ogr esi on: " ) ; scanf ( " %d" , &r ) ; pr i nt f ( " I nt r oduzca l a posi ci on del t er mi no que desea obt ener : " ) ; scanf ( " %d" , &n) ;
/ *************I NCLUYA LLAMADA A FUNCI N *****************/
/ ***************FI N CDI GO DE ALUMNO******************/
/ * ESCRI TURA DE RESULTADOS */ i f ( n<0) { pr i nt f ( " Ent r ada no val i da" ) ; } el se { pr i nt f ( " El t er mi no %d de l a pr ogr esi on ar i t met i ca es %d" , n, an) ; } / * BLOQUEO DE PANTALLA*/ pr i nt f ( " \ n" ) ; syst em( " pause" ) ; }
3
i nt pr og_ar i t met i ca( i nt a0, i nt r , i nt n) { i nt i ; i nt an=- 1; / *************I NI CI O CDI GO DE ALUMNO*****************/
/ ***************FI N CDI GO DE ALUMNO******************/ r et ur n an; }
4 Ejercicio 227
Una sucesin geomtrica est constituida por una secuencia de elementos en la que cada uno de ellos se obtiene multiplicando el anterior por una constante denominada razn o factor de la progresin. Se suele reservar el trmino progresin cuando la secuencia tiene una cantidad finita de trminos mientras que se usa sucesin cuando hay una cantidad infinita de trminos, si bien, esta distincin no es estricta. As, 5,15, 45, 135, 405 es una progresin geomtrica con razn igual a 3, porque 15 =5 3, 45 = 15 3, 135 =45 3, 405 =135 3, y as sucesivamente. . Realice una funcin en lenguaje C++(.cpp) que calcule y muestre por pantalla el trmino n-simo de una progresin geomtrica, dados el primer trmino de la sucesin a 0 y la razn r.
El prototipo de la funcin viene dado por voi d pr og_geomet r i ca( i nt a0, i nt r , i nt n, i nt & an) ;
A continuacin se encuentra la plantilla del programa a utilizar.
#i ncl ude <st di o. h> #i ncl ude <st dl i b. h> #i ncl ude <wi ndows. h>
voi d pr og_geomet r i ca( i nt a0, i nt r , i nt n, i nt & an) ;
mai n( voi d) { / * DECLARACI N DE VARI ABLES ( vase t abl a de obj et os) */ i nt a0; i nt n; i nt r ; i nt i ; i nt an=- 1;
/ * LECTURA DE DATOS */ pr i nt f ( " I nt r oduzca el pr i mer numer o de l a pr ogr esi on geomet r i ca: " ) ; scanf ( " %d" , &a0) ; pr i nt f ( " I nt r oduzca l a r azon de l a pr ogr esi on: " ) ; scanf ( " %d" , &r ) ; pr i nt f ( " I nt r oduzca l a posi ci on del t er mi no que desea obt ener : " ) ; scanf ( " %d" , &n) ;
/ ************* I NCLUYA LA LLAMADA A LA FUNCI ON *****************/
/ ***************FI N CDI GO DE ALUMNO******************/ / * ESCRI TURA DE RESULTADOS */ i f ( n<0) { pr i nt f ( " Ent r ada no val i da" ) ; } el se { pr i nt f ( " El t er mi no %d de l a pr ogr esi on geomet r i ca es %d" , n, an) ; } / * BLOQUEO DE PANTALLA*/ pr i nt f ( " \ n" ) ; syst em( " pause" ) ; }
5
voi d pr og_geomet r i ca( i nt a0, i nt r , i nt n, i nt & an) { i nt i ; an=- 1; / *************I NI CI O CDI GO DE ALUMNO*****************/
/ ***************FI N CDI GO DE ALUMNO******************/
}
6 Ejercicio 229
La raz cuadrada de un nmero positivo n se puede aproximar siguiendo el mtodo de recurrencia de Newton, que para este problema en concreto se puede escribir como la siguiente sucesin:
x i+1 =x i (x i 2 -n)/(2x i )
Realice una funcin en lenguaje C++(.cpp) que calcule y muestre por pantalla el trmino n-simo de la aproximacin de newton de la raz cuadrada de un nmero positivo n, tomando como valor inicial de x i 1.
El prototipo de la funcin viene dado por voi d r ai z_newt on( doubl e n, i nt m, doubl e & x) ;
A continuacin se encuentra la plantilla del programa a utilizar.
#i ncl ude <st di o. h> #i ncl ude <st dl i b. h> #i ncl ude <wi ndows. h>
voi d r ai z_newt on( doubl e n, i nt m, doubl e & x) ;
mai n( voi d) { / * DECLARACI N DE VARI ABLES ( vase t abl a de obj et os) */
doubl e n; i nt m; i nt i ; doubl e x=1;
/ * LECTURA DE DATOS */ pr i nt f ( " I nt r oduzca un numer o par a cal cul ar su r ai z cuadr ada: " ) ; scanf ( " %l f " , &n) ;
pr i nt f ( " I nt r oduzca el t er mi no de l a apr oxi maci on que desea obt ener : " ) ; scanf ( " %d" , &m) ;
/ *************I NCLUYA LA LLAMADA A LA FUNCI N *****************/
/ ***************FI N CDI GO DE ALUMNO******************/
/ * ESCRI TURA DE RESULTADOS */ i f ( n<0) { pr i nt f ( " Ent r ada no val i da" ) ; } el se { pr i nt f ( " El t er mi no %d de l a r ai z de %f es %f " , m, n, x) ; } / * BLOQUEO DE PANTALLA*/ pr i nt f ( " \ n" ) ; syst em( " pause" ) ; }
7
voi d r ai z_newt on( doubl e n, i nt m, doubl e & x) { i nt i ; x=1;
/ *************I NI CI O CDI GO DE ALUMNO*****************/
/ ***************FI N CDI GO DE ALUMNO******************/