You are on page 1of 9

Universidad Politcnica de Amozoc

Banco de reactivos Mdulo 5

1.

Qu son los argumentos? Cul es su propsito? Qu otro trmino se usa en vez de argumento?

2. Cul es la relacin entre parmetros formales y parmetros actuales? 3. Citar las reglas asociadas a la proposicin return.

4. Qu relacin debe existir entre el tipo de datos asociado al nombre de la uncin y el valor devuelto por la proposicin return? 5. Se puede llamar una funcin desde ms de un lugar del programa?

6. Qu puede comentar acerca de las funciones tipo void? 7. Realiza una funcin que tenga como entradas 3 nmeros y devuelva el mayor de ellos. Crea un programa principal para probar la funcin. 8. Crear un subalgoritmo que reciba como entrada un valor entero e indique si se trata de un nmero par o impar. Qu tipo de subalgoritmo crees ms apropiado, procedimiento o funcin?. Escribe tambin un programa principal para probar el subalgoritmo. 9. Realizar una funcin que tenga como entrada dos valores enteros, m y n, y determine si m es mltiplo de n. La funcin devolver un valor lgico. Realiza un programa principal para probar la funcin. 10. Escribir un subalgoritmo que reciba tres valores reales como entrada y los devuelva ordenados de mayor a menor. 11. Disear un algoritmo que lea las longitudes de los tres lados de un tringulo (L1,L2,L3) y determine qu tipo de tringulo es, de acuerdo a los siguientes casos. Suponiendo que A determina el mayor de los tres lados y B y C corresponden con los otros dos, entonces:

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

Si A>=B + C No se trata de un tringulo Si A2 = B2 + C2 Es un tringulo rectngulo Si A2 > B2 + C2 Es un tringulo obtusngulo Si A2 < B2 + C2 Es un tringulo acutngulo

Utiliza como subalgoritmos el cdigo creado en ejercicios de guiones anteriores para ordenar los lados. 12.Escribir un subalgoritmo que calcule la suma de los cuadrados de los N primeros nmeros enteros, siendo N la entrada del subalgoritmo. Crea un programa principal para probarlo.

13. Existen muchos mtodos capaces de proporcionar aproximaciones numricasde

Uno de ellos es el siguiente:

Crea un un subalgoritmo que tenga como entrada nmero de trminos de la sumatoria y devuelva el valor aproximado de segn la frmula anterior. Realizar un programa principal que pruebe dicho subalgoritmo. 14.Escribe un subalgoritmo que dado un nmero entero lo descomponga dgito a dgito, lo vuelva a componer al revs y lo devuelva. Por ejemplo: si le datos el nmero 187365, el programa mostrar 563781. Crear un programa principal para probarlo. 15.Crea un subalgoritmo que lea de teclado una secuencia de nmeros enteros positivos entre 0 y 100, ambos inclusive. La secuencia de nmeros introducidos terminar cuando se introduzca un nmero que no cumpla la condicin (que no est entre 0 y 100). El subalgoritmo devolver un array con los valores ledos y el nmero de valores que hay dentro del array. 16.Realiza un subalgoritmo que tenga como entrada un array de enteros y su tamao y muestre por pantalla el contenido de dicho array.

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

17.Crea un programa principal que utilice los dos subalgoritmos anteriores para leer una secuencia de nmeros y los muestre por pantalla.

18.Realizar un subalgoritmo que dado un vector de reales y su tamao, los ordene de mayor a menor. Crea un programa principal para probarlo. 19.Crea un subalgoritmo que muestre por pantalla una matriz de N filas y M colunmas. 20.Necesitamos un subalgoritmo que dada una matriz cuadrada y su tamao, nos devuelva dicha matriz transpuesta. Realizar un programa principal que lea por teclado el tamao de la matriz y su contenido, transponga la matriz utilizando el subalgoritmo y la muestre por pantalla. 21.Realiza un procedimiento que inicialice un array bidimensional cuadrado de un tamao dado, con un valor dado como entrada. 22.Se necesita una funcin que dada una matriz cuadrada, una fila y un valor, devuelva verdadero si el valor ya se encuentra en dicha fila y falso en caso contrario. 23. Crea una funcin que dada una matriz cuadrada y la posicin de una submatriz dentro de ella, devuelva el contenido de dicha submatriz en un array unidimensional. 24.Disee un algoritmo que llene una matriz de 10 * 10 y determine: El numero mayor almacenado en la matriz El numero mayor almacenado en cada rengln La columna que tuvo la mxima suma El rengln que tuvo la mxima suma Disea una funcin para cada inciso.

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

25.Disee un algoritmo que lea un nmero y mediante una funcin regrese el valor de 1 si el nmero es positivo y -1 si es negativo). 26.Dado el siguiente programa en C: int funcio1(int k1, int k2) { int b; if (k1 == k2) b=k1+k2; else b=k1*k2; printf(b=%d\n,b); return b; } void main() { int a,b,c; a= 10; b= 12; c= funcio1(a,b); printf(a=%d b=%d c=%d\n,a,b,c); a= funcio1(12,b); printf(a=%d b=%d c=%d\n,a,b,c); }

Haz el seguimiento del programa y determina qu es lo que imprimir por pantalla. 27.Escribe una funcin llamada media2 que reciba dos reales y devuelva el real que representa la media aritmtica de ambos nmeros. Escribe luego un programa utilizando la funcin del ejercicio anterior que lea dos reales por teclado y devuelva la media aritmtica de ambos.

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

28.Escribe un procedimiento que escriba en pantalla los n primeros nmeros primos. El procedimiento recibe n como parmetro. Construye una funcin para ver si un nmero es primo o no, y usa esa funcin para construir el procedimiento. 29. Escribe una funcin que reciba un nmero como parmetro y devuelva el nmero que se obtiene al invertir el orden de los dgitos del nmero original. Por ejemplo, si la funcin recibe el nmero 356 devolver el nmero 653. 30.Escriba el siguiente programa, complelo y ejectelo. Por qu no funciona correctamente? Corrjalo. #include <stdio.h> float max_doble(float,float); void main(void) { float x,y; printf("\nDeme dos nmeros separados por un blanco: "); scanf("%f%f",&x,&y); printf("El doble-mximo de %f y %f es %f\n",x,y,max_doble(x,y)); } float max_doble(float a, float b) { float max; if (a>b) max=a; else max=b; max=max*2; } 31.El siguiente programa da tres warning, de los cuales uno de ellos asegura que la funcin cuadrado est "redeclarada". Cul es el problema? Corrjalo. #include <stdio.h> void main(void) { float x; printf("\nDeme un nmero: "); scanf("%f",&x); printf("El cuadrado de %f es %f\n",x,cuadrado(x)); } float cuadrado(float y) { float z; z=y*y; return(z); } 32.El siguiente programa indica si un nmero ledo desde la entrada estndar es par: #include <stdio.h> void main (void) {

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

int numero; scanf ("%d", &numero); if (numero%2 == 0) printf ("Es un nmero par"); else printf ("Es un nmero impar"); } Convierta el programa en una funcin que reciba como parmetro el nmero y devuelva como resultado un valor de tipo lgico que indique si el nmero es o no par. 33.Modifique la funcin anterior para que sirva para comprobar si el nmero es mltiplo de un nmero variable n, que ser otro parmetro de entrada de la funcin.

34.El siguiente programa calcula el factorial de un nmero: #include <stdio.h> void main (void) { int n, i; long factorial; printf ("\nIntroduzca un nmero entero positivo: "); scanf ("%d", &n); factorial = 1; for (i=1; i<=n; i++) factorial = factorial * i; printf ("\nEl factorial de %d es: %ld",n, factorial); } Modifquelo transformndolo en una funcin que reciba el nmero como parmetro de entrada y devuelva el resultado como salida. Utilice el cdigo que se proporciona a continuacin. #include <stdio.h> void main (void) { int n; printf ("\nIntroduzca un nmero entero positivo: "); scanf ("%d", &n); printf ("\nEl factorial de %d es: %ld",n, factorial(n)); } 35.Utilizando la funcin creada en el apartado anterior, escriba una funcin que calcule el nmero combinatorio dado por la frmula siguiente:

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

donde debe cumplirse que n > m. El prototipo de la funcin ser int numero_combinatorio (int n, int m); 36.El siguiente programa calcula la potencia n-sima xn de un nmero entero x. #include <stdio.h> void main (void) { int n, i; double x, potencia; printf ("\nIntroduzca la base y el exponente: "); scanf ("%lf%d", &x, &n); potencia = 1; for (i=0; i<n; i++) potencia = potencia * x; printf ("\nLa potencia es %lf", potencia); } Modifquelo transformndolo en una funcin que reciba los valores de x y n comos parmetro de entrada y devuelva el resultado como salida.

37.El siguiente programa lee dos nmeros enteros de la entrada estndar y calcula e imprime el mayor de ellos: #include <stdio.h> void main (void) { int a, b, maximo; scanf ("%d%d", &a, &b); if (a> b) maximo = a; else maximo = b; printf ("\nEl mximo de %d y %d es %d", a, b, maximo); } Convierta el programa en una funcin que reciba ambos nmeros como parmetros de entrada y devuelva el mayor de ellos como resultado. 38.Realizar una funcin de nombre Siguiente tal que, recibiendo un nmero primo mayor que uno, devuelva el nmero primo inmediatamente siguiente y superior a dicho nmero primo. Por ejemplo, si se invoca Siguiente(7), la funcin devolver el nmero 11. 39.Sea el siguiente programa incompleto:

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

#include <stdio.h> void main (void) { int x1, x2, suma; printf ("\nIntroduce dos valores: "); scanf ("%d%d", &x1, &x2); suma = suma_intervalo (x1, x2); printf ("\nLa suma de los valores del intervalo es: %d", suma); } Complete el programa escribiendo la funcin suma_intervalo que calcula la suma de todos los nmero enteros comprendidos entre los dos parmetros de entrada, ambos inclusive. 40.Escriba una funcin que reciba como parmetro de entrada el valor de un ao y devuelva como resultado un valor de tipo lgico que indique si es o no un ao bisiesto. Recuerde, una vez ms, la regla: "Un ao es bisiesto si es divisible por 400, o bien si es divisible por 4 pero no por 100"

41.Escriba una funcin que reciba como parmetros de entrada dos fechas dadas por un da, mes y ao y devuelva como resultado el nmero de das transcurridos entre ambas. Tenga en cuenta los posibles aos bisiestos que puedan existir entre ellas (utilice la funcin realizada en el ejercicio anterior). 42.Desarrolle una funcin que reciba como parmetros las dos coordenadas cartesianas (x, y) de un punto del plano y devuelva como resultado un nmero del 1 al 4 que indique el cuadrante al cual pertenece al punto (no considere los ejes de coordenadas). 43.Escriba una funcin que reciba como parmetro de entrada un nmero entero y devuelva como resultado el nmero de cifras del nmero. Para ello, considere lo siguiente: dado un nmero cualquiera, como por ejemplo el 173, se tiene que 173 / 10 = 17 (todas las cifras salvo la ltima) Habr que repetir pues este proceso hasta que el nmero resultante de la divisin tenga una sola cifra.

Universidad Politcnica de Amozoc


Banco de reactivos Mdulo 5

44.Escriba una funcin que reciba como parmetros de entrada un valor entero y compruebe si se encuentra comprendido entre dos valores constantes OPMIN y OPMAX. La funcin devolver un valor lgico cierto en caso afirmativo, y falso en caso contrario. 45.Modifique la funcin anterior para que los dos lmites del intervalo sean sendos parmetros de la funcin. Escriba varias posibles llamadas a la funcin, e indique el valor devuelto en cada caso. 46.Escriba una funcin que reciba como parmetros de entrada dos instantes de tiempo expresados en horas, minutos y segundos y devuelva como resultado un 1 o un 2 segn el primer instante de tiempo sea anterior al segundo o viceversa.

You might also like