viernes, 22 de junio de 2012

Problemas Propuestos de Procedimientos y Funciones

1)             Crear una función que tenga como entrada dos valores enteros, m y n, y determine si m es múltiplo de n. La función devolverá un valor lógico. En el programa principal reportar el resultado de dicha función.
2)             Crear una función que tenga como entradas 3 números y devuelva el mayor de ellos. En el programa principal reportar el resultado.
3)             Crear un subprograma que reciba como entrada un valor entero e indique si se trata de un número par o impar. ¿Qué tipo de subprograma cree que es el más apropiado, procedimiento o función? En el programa principal reportar el resultado.
4)             Crear un procedimiento que reciba tres valores reales como entrada y los ordene de mayor a menor. En el programa principal reportar el resultado.
5)             Crear un subprograma apropiado que lea por 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). En el programa principal reportar los valores leídos y el número de valores que hay dentro del arreglo.
6)             Crear un procedimiento en el cual dado un número entero lo descomponga dígito a dígito, lo vuelva a componer al revés. Por ejemplo: si tenemos el número 187365, en el procedimiento lo ordene como 563781. En el programa principal reportar el resultado.
7)             Desarrollar un procedimiento que permita el ingreso de un vector de números reales y su tamaño, y en otro procedimiento los ordene de mayor a menor. En el programa principal reportar el resultado.
8)             Ingresar dos datos. Si el primero es menor que el segundo, calcular los factoriales de ambos datos, y reportar el cociente del factorial del primero entre el doble del factorial del segundo. En caso contrario, determinar las sumas acumulativas de los números naturales hasta dichos datos, luego reportar el producto de dichas sumas. Crear las funciones factorial() y sumatoria().
9)             Ingresar tres datos. Si cualquiera de ellos es múltiplo de 3 determinar el mayor dato y calcular la suma acumulativa de los números naturales hasta dicho dato. En caso contrario, determinar el factorial del tercer valor y las sumas acumulativas de los naturales hasta cada uno de los primeros datos, calcular y reportar el producto de las sumatorias dividido entre el factorial. Crear las funciones sumatoria() y factorial().
10)         Ingresar dos datos. En caso de que cualquiera de ellos sea impar, calcular el factorial del primer dato y la suma acumulativa de los naturales hasta el segundo dato y luego reportar el resto o residuo de la división de ambos. En caso contrario, determinar  la combinatoria teniendo en cuenta que el mayor de ellos equivale al número total de elementos y que el número de elementos de cada grupo es 3.
11)         Ingresar el número de productos comprados, luego a través de un procedimiento denominado REPORTE() calcular y reportar el importe total de la factura, sabiendo que el costo unitario es de 20 nuevos soles. En otro procedimiento denominado PANTALLA() y ubicado dentro de REPORTE() trazar el marco correspondiente.
12)         Ingresar un número entero y positivo (n) y luego ingresar la cantidad de valores que se desea reportar (m). Enseguida, invocar a un procedimiento creado previamente, pasando estos valores como parámetros y en donde, mediante un bucle, se muestren en pantalla los m productos de i por n (primeros m múltiplos de n).
13)         Elaborar un procedimiento que tenga como entrada el tamaño de un arreglo y sus elementos enteros. En otro procedimiento, a los elementos impares mantenerlos idénticos y al resto remplazarlos por números aleatorios de una cifra. En el programa principal mostrar por pantalla el contenido del arreglo resultante.
14)         Crear un procedimiento que ingrese el tamaño de una matriz cuadrada y sus elementos, luego en otro procedimiento transponga dicha matriz y en el programa principal realizar el reporte de la matriz transpuesta.
15)         Elaborar una función que dada una matriz cuadrada, una fila y un valor, asigne verdadero si el valor ya se encuentra en dicha fila y falso en caso contrario. Reportar el resultado en el programa principal.
16)         Crear un procedimiento que ingrese por teclado una matriz de N filas y M columnas. En otro procedimiento si la matriz es cuadrada calcule el promedio de los elementos de la diagonal secundaria y en caso contrario, reportar el promedio de todos los elementos de la matriz. En el programa principal reportar por pantalla dicha matriz
17)         Ingresar dos datos. Si el primero es menor que el segundo, calcular los factoriales de ambos datos, y reportar el cociente del factorial del primero entre el doble del factorial del segundo. En caso contrario, determinar las sumas acumulativas de los números naturales hasta dichos datos, luego reportar el producto de dichas sumas. Crear las funciones factorial() y sumatoria().
18)         Ingresar tres datos. Si cualquiera de ellos es múltiplo de 3 determinar el mayor dato y calcular la suma acumulativa de los números naturales hasta dicho dato. En caso contrario, determinar el factorial del tercer valor y las sumas acumulativas de los naturales hasta cada uno de los primeros datos, calcular y reportar el producto de las sumatorias dividido entre el factorial. Crear las funciones sumatoria() y factorial().
19)         Ingresar dos datos. En caso de que cualquiera de ellos sea impar, calcular el factorial del primer dato y la suma acumulativa de los naturales hasta el segundo dato y luego reportar el resto o residuo de la división de ambos. En caso contrario, determinar  la combinatoria teniendo en cuenta que el mayor de ellos equivale al número total de elementos y que el número de elementos de cada grupo es 3.
20)         Ingresar un número entero y positivo (n) y luego ingresar la cantidad de valores que se desea reportar (m). Enseguida, invocar a un procedimiento creado previamente, pasando estos valores como parámetros y en donde, mediante un bucle, se muestren en pantalla los m productos de i por n (primeros m múltiplos de n).
21)         Llenar un vector de 20 elementos con los primeros veinte números de Fibonacci, crear la función de Fibonacci(). Calcular la suma de los elementos ubicados en las posiciones impares de dicho vector. Reportar el vector y la suma encontrados. Los dos primeros elementos de esta serie son 0 y 1, y el resto de elementos se calculan sumando los dos predecesores inmediatos.
22)         Determinar todos los números primos comprendidos entre a y b. Crear la función Primos().

jueves, 14 de junio de 2012

Problemas Propuestos de Ordenamiento y Busqueda


1)           Ingresar el orden y cada uno de los elementos de dos vectores numéricos. Si ambos vectores son de igual dimensión, clasificarlos simultáneamente, el primero en orden creciente y el segundo en orden decreciente.
2)       Ingresar el número de alumnos de una sección, luego ingresar los respectivos nombres, números de matricula y calificación en una asignatura. Se desea reportar tres listados consecutivos y ordenados: el primero en forma ascendente por número de matricula, el segundo alfabéticamente por nombre y el tercero en forma descendente por nota.
3)              Ingresar el orden y cada uno de los elementos de una matriz numérica. Luego ordenar dichos elementos en orden creciente (de izquierda a derecha y de arriba hacia abajo).
4)              Ingresar un conjunto de frases hasta que se indique el final del ingreso, luego ordenarlas y reportarlas en forma ascendente usando el método 1 de burbuja.
5)              Ingresar un número determinado de palabras y reportar las palabras ordenadas de forma descendente usando el método 2 de burbuja.
6)              Buscar en un vector de 100 elementos la ocurrencia de una clave de tipo carácter introducida por el usuario.
7)              Ingresar un conjunto de doce palabras. Luego, ingresar otra palabra, si ésta no es igual a alguna de las doce anteriores, el proceso será considerado como un error. Reportar el resultado.
8)              Ingresar una cadena de caracteres y luego introducir un carácter a buscar en la cadena. Reportar una subcadena formada desde el carácter encontrado hasta el final.
9)              Hacer un programa que permita ordenar alfabéticamente una lista de nombres de tamaño N considerado constante. El tamaño máximo de las cadenas considérela 20.
10)          Ingresar un vector de N posiciones y utilizar los algoritmos de ordenación por selección y burbuja, de modo que uno de ellos trabaje en sentido ascendente y el otro en sentido descendente.
11)          Elaborar un programa que genere un arreglo de 100 números aleatorios comprendidos entre 1 y 1000. Una vez generado, mostrar el contenido y después organizarlo de forma que estén juntos primero los elementos pares y luego los impares. Después, volver a mostrar el arreglo.
12)          Se desea ingresar una matriz de 5 × 20, ordenarla por una columna indicada, y luego reportar el nuevo resultado.
13)          Ingresar el número de operarios de una empresa y el porcentaje de descuentos debido a leyes sociales. Luego ingresar el nombre de cada operario, su salario básico por hora y el número de horas trabajadas en la semana, si éste último es 40 o menos horas no incluir el salario dominical. Ordenar los datos en forma alfabética de acuerdo a los nombres. Reportar el nombre, el salario bruto, el valor de los descuentos y el salario neto de cada trabajador.
14)          Ingresar el tamaño y los valores de los elementos de dos vectores denominados X[i] e Y[j]. Si ambos tienen el mismo número de elementos, ingresar el valor de una variable denominada XR, si éste es igual a uno de los elementos en X (XR = X[i], colocar Y[i] en YR, y reportar dicho valor (YR); si no es así, reportar el mensaje “VALOR NO ENCONTRADO”. En caso contrario, para cada vector, calcular y reportar las diferencias entre sus valores mayores y menores.
15)          Leer un conjunto de datos de hasta 200 nombres y números telefónicos que vienen dados en forma aleatoria. Las consultas pueden realizarse por nombre o por número telefónico.
16)          Se desea realizar un programa que realice las siguientes tareas:

A)           Ingresar una lista de números enteros
B)            Reportar dichos números.
C)            El programa deberá pedir si se desea ordenar en sentido decreciente o creciente (usar el método de selección)

17)          Codificar un programa que permita vía menú realizar las operaciones de ingreso, ordenación y búsqueda sobre un vector de 120 números reales. La operación de ordenación puede ofrecer un submenú con diferentes algoritmos y/o sentido de la ordenación. La búsqueda debe ser inteligente: antes de haber ordenado el vector (el último cargado), entonces se utiliza el algoritmo de búsqueda lineal, mientras que si el vector está ordenado, se utiliza búsqueda dicotómica.
18)          Realizar un programa que permita al usuario cargar 35 números enteros en un vector y decidir mediante un menú qué método de ordenación utilizar y si el orden debe ser ascendente o descendente. Implementar todos los métodos de ordenación que Ud. conozca. El programa deberá visualizar los números ordenados y volver al menú. Incluir una opción que permita finalizar la ejecución.
19)          Hacer un programa que permita mostrar los resultados de un concurso, en donde se muestren los nombres de los equipos, los resultados de las pruebas A, B, C, y D y la media aritmética de los mismos, ordenados descendentemente por la media aritmética. Usar el método Shell para ordenar los resultados. El ganador es el equipo que tiene la media más alta.
20)          Hacer un programa que permita ordenar una matriz numérica de 2 dimensiones en forma ascendente, usando el método Shell. Ejemplo: La siguiente matriz numérica de 2 dimensiones:

2    4   16
1    8     9
3    5   10

debe quedar ordenada en forma ascendente:

1     2     3
4     5     8
9   10   16

21)          En una matriz de 20×10 ingresar 20 palabras, a razón de una palabra por fila, de modo que en cada elemento de la fila haya una sola letra; si una palabra no llega a 10 letras, la fila se completa con blancos. Ordenar las filas de la matriz de modo que las palabras ingresadas puedan leerse en orden alfabético de arriba hacia abajo. Reportar la matriz ordenada.
22)          Hacer un programa que permita ordenar una matriz numérica de 2 dimensiones en forma descendente, usando el método de Shell. Ejemplo: La siguiente matriz de 2 dimensiones numérica:

2    4   16
1    8     9
3    5   10

debe quedar ordenada en forma descendente:

16   10    9
  8     5    4
  3       1