PDF de programación - Ejercicios Tema 5 - Funciones

Imágen de pdf Ejercicios Tema 5 - Funciones

Ejercicios Tema 5 - Funcionesgráfica de visualizaciones

Publicado el 23 de Mayo del 2019
303 visualizaciones desde el 23 de Mayo del 2019
525,1 KB
15 paginas
Creado hace 5a (15/09/2013)
Programación.



Funciones



Programación



Ejercicios Tema 5

Funciones



1



Autores:

M. Paz Sesmero Lorente
Paula de Toledo Heras
Fco. Javier Ordoñez Morales
Juan Gómez Romero
Jose A. Iglesias Martínez
Jose Luis Mira



Programación.



Funciones

SOLUCIONES



1. Escriba una función que devuelva el resultado de elevar un número (declarado
como entero) a cualquier potencia (valor entero). El resultado de este cálculo debe
ser de tipo long.

int b;
int e;


/* Elevar a cualquier potencia */
printf("Introduce base: ");
scanf("%ld", &b);
printf("Introduce exponente: ");
scanf("%i", &e);
printf("%d elevado a %i es %ld \n", b, e, potencia(b, e));

system("PAUSE");
return 0;

#include <stdio.h>

long potencia(int x, int n);

int main(void)
{



}


long potencia(int x, int n) {
/* Funcion potencia:
* Eleva el valor x al exponente n
* Argumentos: x Base (int)
n Exponente (int)
Valor de retorno: x^n (long)
*/



}

for(i=1; i<n; i++)


return ret;

long ret = x;
int i;

ret = ret * x;



2. Escriba una función que reciba dos números reales positivos como parámetros y

devuelva el máximo de los dos valores.

#include <stdio.h>

float max(float x, float y);

int main(void)
{
float a, b;

printf("Introduzca a: ");
scanf("%f", &a);

2



Programación.



Funciones

printf("Introduzca b: ");
scanf("%f", &b);

printf("Mayor: %f\n", max(a, b));

system ("PAUSE");
return 0;
}

float max(float x, float y) {
/* Función max: Devuelve el mayor de los valores x, y
pasados como parámetro */

float max;
if(x >= y)
max = x;
else
max = y;
return max;
}



3. Escriba un programa en C que muestre el siguiente menú:



CALCULO DE AREAS
===========================
1 - Calcular el área de un triángulo
2 - Calcular el área de un trapecio
3 - Calcular el área de un rectángulo


Y lea la opción introducida por el usuario. En función de la opción el programa
deberá pedir los datos necesarios para calcular el área, realizar el cálculo y
mostrar el resultado por pantalla.
Utilice una función para mostrar el menú, y otras tres para calcular el área de los
distintos polígonos (triángulo, trapecio rectángulo). El valor de retorno de cada
una de estas tres últimas funciones debe ser el área calculada.

#include <stdio.h>
int mostrarMenu(void);
float CalcularAreaTriangulo(void);
float CalcularAreaTrapecio(void);
float CalcularAreaRectangulo(void);

int main(void){
int opcion; //Para almacenar la opción elegida
float area; //Almacena el área calculadoa

opcion=mostrarMenu();

switch(opcion){
case 1:
area=CalcularAreaTriangulo();
printf("El area del triangulo es %4.2f\n",area);
break;

case 2:
area=CalcularAreaTrapecio();
printf("El area del trapecioes %4.2f\n",area);

3



Programación.



Funciones

break;

case 3:
area=CalcularAreaRectangulo();
printf("El area del cuadrado es %4.0f\n",area);
break;

default:
printf("Fin del programa.");
}
system ("PAUSE");
return 0;
}

int mostrarMenu(void){
/* Función que muestra por pantalla un menú y devuelve la
opción seleccionada*/

int opcion;

printf("CALCULO DE AREAS \n");
printf("============================ \n\n\n");
printf("1 - Calcular el área de un triangulo \n");
printf("2 - Calcular el área de un trapecio \n");
printf("3 - Calcular el área de un rectangulo \n\n\n");

printf("Opcion: ");
scanf("%d",&opcion);
return (opcion);
}

float CalcularAreaTriangulo(void){
/* Función que calcula y devuelve el área de un triángulo.*/
/* base y altura deben ser valores enteros */


float area;
int base, altura;

printf("AREA DEL TRIÁNGULO \n");
printf("Base: ");
scanf("%d",&base);
printf("Altura: ");
scanf("%d",&altura);
//Para conseguir un valor real se hace una conversión explícita
area=(float)base*altura/2;
return (area);
}

float CalcularAreaTrapecio(void){
/* Función que calcula y devuelve el área de un trapecio */
/* base_mayor, base_menor y altura deben ser valores enteros */

float area;
int base_mayor, base_menor, altura;
printf("AREA DEL TRAPECIO \n");
printf("Base mayor: ");
scanf("%d",&base_mayor);
printf("Base menor: ");
scanf("%d",&base_menor);

4



Programación.



Funciones

printf("Altura del trapecio: ");
scanf("%d",&altura);
//Para conseguir un valor real se utiliza 2.0
area=((base_mayor+base_menor)/2.0)*altura;
return (area);
}

float CalcularAreaRectangulo(void){
/* Función que calcula y devuelve el área de un trapecio */
/* base y altura deben ser valores enteros */

float area;
int base, altura;
printf("AREA DE UN RECTANGULO \n");
printf("Base: ");
scanf("%d",&base);
printf("Altura: ");
scanf("%d",&altura);
//En ese caso y dado que base y altura son reales el resultado
//siempre será real
area=(float)base*altura;
return (area);
}



4. Escriba una función que intercambie los valores de dos variables de tipo entero.

#include <stdio.h>

void swap(int *x, int *y);

int main(void)
{
int a, b;

printf("Introduzca a: ");
scanf("%i", &a);
printf("Introduzca b: ");
scanf("%i", &b);

printf("\nAntes de intercambio\n");
printf("a: %i\n", a);
printf("b: %i", b);

swap(&a, &b);

printf("\nDespues de intercambio\n");
printf("a: %i\n", a);
printf("b: %i\n", b);

return 0;
}

void swap(int *x, int *y) {
/* Función que intercambia el valor de dos variables. Para
conseguir que los cambios sean visibles en el programa principal
los parámetros se deben pasar por referencia*/
int temp;
temp = *x;
*x = *y;
*y = temp;
}

5



Programación.



Funciones

5. La nota del examen de una asignatura corresponde en un 20% al primer parcial,
un 20% al segundo parcial y un 60% el examen final. La nota final es la mejor
entre la nota del examen y la nota obtenida con la evaluación continua (teniendo
en cuenta los dos parciales).
Escriba un programa que pida estas tres notas y calcule la nota final de un
alumno. A continuación, el programa debe preguntar al usuario si quiere
calcular una nueva nota o finalizar (pulsando la tecla ‘s’). Utilice una función
para calcular la nota y otra para obtener el máximo (que puede ser la
desarrollada en el ejercicio 2).

#include <stdio.h>

float calcularMax(float x, float y);
float calcularNota(float p1, float p2, float e);

int main(void)
{
char c;
do {
float parcial1, parcial2, examen, final;

/* Leer valores */
printf("Introduzca nota parcial 1 [0, 10]: ");
scanf("%f", &parcial1);
printf("Introduzca nota parcial 2 [0, 10]: ");
scanf("%f", &parcial2);
printf("Introduzca nota examen final [0, 10]: ");
scanf("%f", &examen);

/* Calcular nota final*/
final = calcularNota (parcial1, parcial2, examen);

/* Imprimir resultados */
printf("Nota final: %f", final);

/* Continuar? */
printf("\n\nSalir? (s/n): ");
/* Para evitar conflictos con el salto de linea (\n) y
evitar un bucle infinito se recurre al siguiente "truco" */
do{
scanf("%c", &c);
} while (c=='\n');
printf("\n");

} while(c != 's');

return 0;
}


float calcularNota (float p1, float p2, float notaExamen) {
/* Función calcularNota: Calcula la nota final a partir de:
- primer parcial 20% (p1)
- segundo parcial 20% (p2)
- examen final 60% (notaExamen)
Si la nota final con la evaluación continua es menor a la del
examen, la nota final es la del examen
*/


6



Programación.



Funciones

float notaEC, final;
notaEC = p1*0.2+p2*0.2+notaExamen*0.6;
final = calcularMax(notaEC, notaExamen);
return final;
}

float calcularMax(float x, float y) {
/* Funcion calcularMax: Devuelve el mayor de los valores x, y
pasados como parámetro */

float max;
if(x >= y)
max = x;
else
max = y;
return max;
}



6. Realizar un programa en C que verifique si existe o no concordancia entre los

datos de un NIF (DNI y letra) introducido por teclado. Para ello:

a. Tras solicitar el DNI se debe comprobar que el valor introducido es positivo y
tiene a lo sumo 8 dígitos. En caso de no cumplir estas condiciones se ha de
indicar que el DNI introducido es incorrecto y se pedirá un nuevo valor.

En la fase de verificación se debe utilizar una función que reciba como
parámetro el número del DNI y, tras hacer las comprobaciones pertinentes,
devuelva el valor VERDADERO (1) o el valor FALSO (0).

b. Una vez introducido un DNI correcto, se solicitará una letra y el programa

debe determinar si DNI y letra son concordantes.

Para ello el alumno debe:

b.1. Implementar una función que dado el número del DNI, devuelva la
letra que le corresponde. Para calcular dicha letra hay que tener en
cuenta que la misma es función del resto obtenido al dividir el número
del DNI entre 23. La relación entre ambos parámetros es:



Resto

Letra

Resto

Letra

Resto

L
  • Links de descarga
http://lwp-l.com/pdf15972

Comentarios de: Ejercicios Tema 5 - Funciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad