Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
1.
¿Qué son son los argumentos argumentos? ? ¿Cuál es su propósit propósito? o? ¿Qué otro otro término se se usa en vez de argumento?
2. ¿Cuál ¿Cuál es la relación relación entre parámet parámetros ros formales formales y parámetros parámetros actuales actuales? ? 3. Citar Citar las reglas reglas asociadas asociadas a la proposición proposición return return.. 4. ¿Qué relación relación debe debe existir existir entre entre el tipo de datos datos asociado asociado al nombre nombre de la unción y el valor devuelto por la proposición return? 5. ¿Se puede puede llamar llamar una función función desde desde más más de un lugar lugar del program programa? a?
6. ¿Qué puede comentar comentar acerca acerca de las funcione funciones s tipo void? void? 7. Realiz Realiza a una funci función ón que teng tenga a como como entrada entradas s 3 números números y devue devuelva lva el mayor mayor de ellos. Crea un programa principal para probar la función. 8. Crear un subalgo subalgoritmo ritmo que reciba reciba como como entrada entrada un valor entero entero e indique indique si se trata trata de un núme número ro par par o impa impar. r. ¿Qué ¿Qué tipo tipo de suba subalg lgor orit itmo mo cree crees s más más apro apropia piado do,, proced procedimi imient ento o o funció función? n?.. Escribe Escribe tambié también n un progra programa ma princi principal pal para para probar probar el subalgoritmo. 9. Real Realiz izar ar una una func funció ión n que que teng tenga a como como entr entrad ada a dos dos valo valore res s ente entero ros, s, m y n, y determine si m es múltiplo de n. La función devolverá un valor lógico. Realiza un programa principal para probar la función. 10. Escribir un subalgoritmo que reciba tres valores reales como entrada y los devuelva ordenados de mayor a menor. 11. Diseña Diseñarr un algori algoritmo tmo que lea las longit longitude udes s de los tres lados de un triáng triángulo ulo (L1,L2,L3) y determine qué tipo de triángulo 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 Politécnica de Amozoc Banco de reactivos Módulo 5 •
•
•
•
Si A>=B + C No se trata de un triángulo Si A2 = B2 + C2 Es un triángulo rectángulo Si A2 > B2 + C2 Es un triángulo obtusángulo Si A2 < B2 + C2 Es un triángulo acutángulo
Utiliza como subalgoritmos el código 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 números enteros, siendo N la entrada del subalgoritmo. Crea un programa principal para probarlo.
13.
Existen muchos métodos capaces de proporcionar aproximaciones numéricasde
.
π
Uno de ellos es el siguiente:
Crea un un subalgoritmo que tenga como entrada número de términos de la sumatoria y devuelva el valor aproximado de
π
según la fórmula anterior. Realizar un
programa principal que pruebe dicho subalgoritmo. 14.Escribe un subalgoritmo que dado un número entero lo descomponga dígito a dígito, lo vuelva a componer al revés y lo devuelva. Por ejemplo: si le datos el número 187365, el programa mostrará 563781. Crear un programa principal para probarlo. 15.Crea un subalgoritmo que lea de teclado una secuencia de números enteros positivos entre 0 y 100, ambos inclusive. La secuencia de números introducidos terminará cuando se introduzca un número que no cumpla la condición (que no esté entre 0 y 100). El subalgoritmo devolverá un array con los valores leídos y el número de valores que hay dentro del array. 16.Realiza un subalgoritmo que tenga como entrada un array de enteros y su tamaño y muestre por pantalla el contenido de dicho array.
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
17.Crea un programa principal que utilice los dos subalgoritmos anteriores para leer una secuencia de números y los muestre por pantalla.
18.Realizar un subalgoritmo que dado un vector de reales y su tamaño, 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 tamaño, nos devuelva dicha matriz transpuesta. Realizar un programa principal que lea por teclado el tamaño 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 tamaño dado, con un valor dado como entrada. 22.Se necesita una función 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 función que dada una matriz cuadrada y la posición de una submatriz dentro de ella, devuelva el contenido de dicha submatriz en un array unidimensional. 24.Diseñe un algoritmo que llene una matriz de 10 * 10 y determine: El numero mayor almacenado en la matriz El numero mayor almacenado en cada renglón La columna que tuvo la máxima suma El renglón que tuvo la máxima suma Diseña una función para cada inciso.
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
25.Diseñe un algoritmo que lea un número y mediante una función regrese el valor de 1 si el número 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 función llamada media2 que reciba dos reales y devuelva el real que representa la media aritmética de ambos números. Escribe luego un programa utilizando la función del ejercicio anterior que lea dos reales por teclado y devuelva la media aritmética de ambos.
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
28.Escribe un procedimiento que escriba en pantalla los n primeros números primos. El procedimiento recibe n como parámetro. Construye una función para ver si un número es primo o no, y usa esa función para construir el procedimiento. 29. Escribe una función que reciba un número como parámetro y devuelva el número que se obtiene al invertir el orden de los dígitos del número original. Por ejemplo, si la función recibe el número 356 devolverá el número 653. 30.Escriba el siguiente programa, compílelo y ejecútelo. ¿Por qué no funciona correctamente? Corríjalo. #include float max_doble(float,float); void main(void) { float x,y; printf("\nDeme dos números separados por un blanco: "); scanf("%f%f",&x,&y); printf("El doble-máximo 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 función cuadrado está "redeclarada". ¿Cuál es el problema? Corríjalo. #include void main(void) { float x; printf("\nDeme un número: "); 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 número leído desde la entrada estándar es par: #include void main (void) {
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
int numero; scanf ("%d", &numero); if (numero%2 == 0) printf ("Es un número par"); else printf ("Es un número impar"); } Convierta el programa en una función que reciba como parámetro el número y devuelva como resultado un valor de tipo lógico que indique si el número es o no par. 33.Modifique la función anterior para que sirva para comprobar si el número es múltiplo de un número variable n, que será otro parámetro de entrada de la función.
34.El siguiente programa calcula el factorial de un número: #include void main (void) { int n, i; long factorial; printf ("\nIntroduzca un número 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); } Modifíquelo transformándolo en una función que reciba el número como parámetro de entrada y devuelva el resultado como salida. Utilice el código que se proporciona a continuación. #include void main (void) { int n; printf ("\nIntroduzca un número entero positivo: "); scanf ("%d", &n); printf ("\nEl factorial de %d es: %ld",n, factorial(n)); } 35.Utilizando la función creada en el apartado anterior, escriba una función que calcule el número combinatorio dado por la fórmula siguiente:
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
donde debe cumplirse que n > m. El prototipo de la función será int numero_combinatorio (int n, int m); 36.El siguiente programa calcula la potencia n-ésima xn de un número entero x. #include 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
37.El siguiente programa lee dos números enteros de la entrada estándar y calcula e imprime el mayor de ellos: #include void main (void) { int a, b, maximo; scanf ("%d%d", &a, &b); if (a> b) maximo = a; else maximo = b; printf ("\nEl máximo de %d y %d es %d", a, b, maximo); } Convierta el programa en una función que reciba ambos números como parámetros de entrada y devuelva el mayor de ellos como resultado. 38.Realizar una función de nombre Siguiente tal que, recibiendo un número primo mayor que uno, devuelva el número primo inmediatamente siguiente y superior a dicho número primo. Por ejemplo, si se invoca Siguiente(7), la función devolverá el número 11. 39.Sea el siguiente programa incompleto:
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
#include 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 función suma_intervalo que calcula la suma de todos los número enteros comprendidos entre los dos parámetros de entrada, ambos inclusive. 40.Escriba una función que reciba como parámetro de entrada el valor de un año y devuelva como resultado un valor de tipo lógico que indique si es o no un año bisiesto. Recuerde, una vez más, la regla: "Un año es bisiesto si es divisible por 400, o bien si es divisible por 4 pero no por 100"
41.Escriba una función que reciba como parámetros de entrada dos fechas dadas por un día, mes y año y devuelva como resultado el número de días transcurridos entre ambas. Tenga en cuenta los posibles años bisiestos que puedan existir entre ellas (utilice la función realizada en el ejercicio anterior). 42.Desarrolle una función que reciba como parámetros las dos coordenadas cartesianas (x, y) de un punto del plano y devuelva como resultado un número del 1 al 4 que indique el cuadrante al cual pertenece al punto (no considere los ejes de coordenadas). 43.Escriba una función que reciba como parámetro de entrada un número entero y devuelva como resultado el número de cifras del número. Para ello, considere lo siguiente: dado un número 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 número resultante de la división tenga una sola cifra.
Universidad Politécnica de Amozoc Banco de reactivos Módulo 5
44.Escriba una función que reciba como parámetros de entrada un valor entero y compruebe si se encuentra comprendido entre dos valores constantes OPMIN y OPMAX. La función devolverá un valor lógico cierto en caso afirmativo, y falso en caso contrario. 45.Modifique la función anterior para que los dos límites del intervalo sean sendos parámetros de la función. Escriba varias posibles llamadas a la función, e indique el valor devuelto en cada caso. 46.Escriba una función que reciba como parámetros de entrada dos instantes de tiempo expresados en horas, minutos y segundos y devuelva como resultado un 1 o un 2 según el primer instante de tiempo sea anterior al segundo o viceversa.