miércoles, 13 de junio de 2012

Problemas Propuestos de Punteros


1)      Ingresar el tamaño de un vector y cada uno de sus elementos y a continuación, usando punteros encontrar la posición que ocupa el primer número negativo en caso de existir. Si no hay números negativos se escribirá un mensaje indicándolo.
2)           Ingresar un vector de números enteros diferentes de cero, de n elementos. Luego acomodar el vector para que queden primero los números positivos y luego los números negativos.
3)           Ingresar el tamaño (mayor que 6) y cada uno de los elementos de un vector. Luego, usando punteros obtener e imprimir los 3 valores menores y los 3 mayores.
4)       Usando punteros ingresar el nombre y apellido, el DNI, la edad y el peso de los habitantes de la comunidad de "Víctor Larco". Reportar el promedio de edades, la mayor edad y la menor edad de dichos habitantes.
5)      Usando punteros ingresar un arreglo unidimensional de números enteros y un número entero (x). Reportar en la pantalla todos los índices de las posiciones del arreglo donde está el número (x). Por ejemplo, si el arreglo es el que aparece enseguida y x es 5:

7
8
5
4
5
9
11
5

El programa deberá escribir:   2   4   7
6)       Un arreglo de números se llama partidario si todo número que está en una casilla par (0,2,4,...) es mayor que cualquiera de los números que están en las casillas impares (1,3,5,...). Usando punteros ingresar un arreglo de números enteros y luego, diga si es partidario o no. Por ejemplo, si el arreglo es el siguiente:

25
4
80
3
120
15
75
34
52
8

El programa debe escribir:   es partidario
7)       Ingresar el número de alumnos de una sección, los nombres de cada alumno y sus notas de cuatro cursos. Usando punteros se desea saber:

a)          El porcentaje de alumnos aprobados en cada curso.
b)          El promedio de notas de cada alumno.

8)       Hallar la matriz que resultaría si a partir de una matriz ingresada previamente, usando punteros formamos una nueva de tal manera que en las filas pares sólo deben existir elementos impares, si faltan elementos impares las completará con el valor del subíndice de la columna correspondiente, y en las filas impares vayan sólo los pares, si faltan los completa con unos.
9)         Ingresar una matriz cuadrada de orden n y reportar si es simétrica. Recordar que una matriz es simétrica si se cumple la condición: a[i][j]=a[j][i]
10)        Ingresar el orden y los elementos de tres matrices. Si es factible, usando punteros determinar la suma de los elementos correspondientes de las dos primeras matrices y luego dichos resultados restarlos de la tercera matriz. En caso contrario, reportar el mensaje: “No es factible hacer la operación”.
11)        Ingresar el orden y cada uno de los elementos de una matriz. Si ésta es cuadrada colocar un número aleatorio comprendido entre 33 y 74 en cada elemento de la diagonal secundaria y los demás elementos se deben dejar con la misma información, reportar esta nueva matriz. En caso contrario, reportar un vector cuyos elementos están formados por el promedio de los elementos que se encuentran en las columnas impares y en otros casos por ceros (0). Usar punteros.
12)          Ingresar el orden de una matriz. Si esta es cuadrada, llenar con unos la diagonal principal y el resto de elementos con números aleatorios comprendidos entre 13 y 79; reportar la matriz encontrada y la suma de cada columna. En caso contrario, llenar la matriz con números generados por la serie: 4-5-12-61-404-…. Usando punteros reportar la matriz generada y la suma de cada fila.
13)          Ingresar el orden y los elementos de una matriz. Si el número de columnas es mayor que el número de filas, cambiar el valor de aquellos elementos que tengan ambos subíndices impares por un número aleatorio de dos dígitos; reportar la nueva matriz. En caso contrario, determinar el menor valor de cada columna impar y el mayor valor de cada columna par; reportar el vector encontrado. Usar punteros.
14)       Ingresar el orden de una matriz y cada uno de sus elementos. Si la matriz es cuadrada, usando punteros asignar los valores de los elementos de la diagonal principal a un vector, reportar dicho vector. En caso contrario formar un vector con la suma de cada columna impar y generar un número aleatorio de dos cifras para las columnas pares.
15)      Usando punteros ingresar una matriz y luego invertir sus columnas (los elementos de la primera columna se intercambian con los de la última, los de la segunda con los de la penúltima y así sucesivamente).
16)       Ingresar el número de vacas de un establo y el valor del kg. al peso vivo en el establo. Así mismo, usando punteros ingresar para cada vaca su: (1) código (cuatro dígitos), (2) peso en kg., (3) edad en años, (con dos decimales) y (4) rendimiento diario medio de leche (en litros) durante el último año. Sólo deben seguir en producción aquellas vacas que cumplan las tres condiciones siguientes:

a)          Tener un peso de 450 kg.
b)          Haber brindado durante el último año un rendimiento diario medio mayor de 25 litros.
c)          Tener una edad menor de 8 años.

Si las vacas no cumplen alguna de estas condiciones se les asigna el calificativo CERO y deben venderse al peso vivo, en caso contrario merecen el calificativo UNO y siguen en producción. Reportar las características de cada vaca, su calificativo correspondiente, el número de vacas que deben venderse y el importe que se obtendrá con la venta.
17)     Ingresar los tamaños y los valores de los elementos de dos matrices C(4 x 3) y D(4 x 3), luego proceder a efectuar la siguiente operación de matrices:

R = 3 * C – D/3

Listar las matrices C, D y la resultante R
18)         Se tiene una matriz con el total de emergencias en un hospital por cada hora y cada día de la semana. ¿A qué hora ocurre la mayor cantidad de emergencias? ¿Qué día hay más cantidad de emergencias? Usar punteros.
19)         Usando punteros ingresar una matriz de m filas y n columnas, y realizar lo siguiente:

a)             Ingresar un número de fila y eliminarla de la matriz.
b)             Ingresar un número de columna y eliminarla de la matriz.
c)             Ingresar un número de fila e insertar una fila en la matriz.
d)             Ingresar un número de columna e insertar una columna en la matriz.
e)             Intercambiar 2 filas de la Matriz. El número de las filas a intercambiar debe ingresarse.
f)           Intercambiar 2 columnas de la Matriz. El número de las columnas a intercambiar debe ingresarse.

20)       Ingresar el número de participantes de un concurso de belleza y usando punteros registrar de uno en uno los siguientes datos:

-          Apellido y Nombre
-          Puntos por inteligencia
-          Puntos por Cultura general
-          Puntos por Belleza

Se necesita informar por pantalla lo siguiente:

-          Apellido y nombre de la concursante con mayor puntaje general
-          Puntaje acumulado por todas las participantes en Cultura general, en Inteligencia y en Belleza
-          De los tres puntajes acumulados en el ítem anterior cual fue el menor

21)          En un club se registran de uno en uno los siguientes datos de sus socios:

-          Número de socio
-          Apellido y nombre
-          Edad
-          Tipo de deporte que practica: 1 futbol, 2 basquetbol, 3 tenis, 4 voleibol o 5 natación

Usando punteros emitir por pantalla cuántos socios practican tenis y cuántos natación. Así mismo, el promedio de edad de los jugadores de cada deporte.
22)    Usando punteros, se requiere diseñar e implementar una aplicación que califique un examen de selección múltiple, que será utilizado por una Universidad para seleccionar y admitir a sus nuevos alumnos. En cada una de las preguntas del examen, el estudiante deberá elegir una de cinco opciones, identificadas con las letras A, B, C, D y E. Las entradas serán:

-          El número de preguntas que tendrá el examen
-          Cada una de las respuestas dadas por el estudiante (tarjeta de respuestas)
-          Las respuestas correctas o clave del examen
-          Número de alumnos que postulan.
-          Nombre del alumno y su código (tarjeta de identificación)

La salida esperada será:

-          La nota obtenida por cada alumno. Esta nota corresponde a la suma algebraica del número de aciertos que tuvo el estudiante multiplicado por +4, y el número de desaciertos multiplicado por -1. En caso de no contestar la pregunta se asignará a dicha pregunta el puntaje 0 (cero). 

Problemas Propuestos de Cadenas


1)            Leer un carácter, deducir si esta antes o después de la letra "m"
2)            Dado un carácter, determinar si es vocal.
3)            Leer un texto de teclado e indicar cuantas veces aparece una letra mayúscula y cuantas veces una letra minúscula. Además mostrar un texto con todas las letras en mayúscula.
4)            Ingresar una frase. Luego obtener el número de veces que se usa cada letra en la frase.
5)            Ingresar una frase y a continuación reportar cada palabra de la frase en forma de columna, seguido del número de letras que compone cada palabra.
6)            Ingresar el tamaño de un arreglo de cadenas, así como cada una de dichas cadenas. Luego concatenar todas las cadenas del arreglo y reportar la cadena concatenada.
7)            Leer una frase y contar el número de vocales que aparecen.
8)            Sustituir todos los espacios en blanco de una frase por un asterisco.
9)            Ingresar un texto y luego eliminar los espacios en blanco (compactar la frase). Reportar el nuevo texto.
10)        Realizar un algoritmo que permita ingresar una frase y la descomponga en sus palabras imprimiéndolas al revés. Ejemplo: CIUDAD ORURO    DADUIC ORURO
11)        Crear un programa que cree un arreglo con 1000 letras mayúsculas aleatorias y que cuente cuántas veces aparece cada letra en el arreglo.
12)        Leer una cadena que tenga como máximo diez caracteres y que represente a un número escrito en forma romana y conviértalo a entero. Siendo los dígitos: M (1000), D (500), C (100), L (50), X (10), V (5) y I (1). Recordar que no se puede repetir un dígito más de tres veces.
13)        Introducir un mensaje a través del teclado, luego usando la técnica denominada “criptografía de textos”, cifrar un nuevo mensaje ejecutando el siguiente procedimiento: cada letra del mensaje original se sustituirá por la siguiente del alfabeto; es decir, la letra A se sustituye por B, la letra B por C, la letra C por D, …, la letra Z por la letra A. Ejemplo: Si se introduce JOSEDISPARATUREVOLVER, se habrá de imprimir KPTFEJTQBSBUVSFWPMWFS.
14)        Ingresa el número de trabajadores de una empresa; así mismo ingresar los nombres de cada uno de dichos trabajadores y sus respectivos sueldos. Determinar y reportar las longitudes de los nombres de cada trabajador. Enseguida a aquellos trabajadores que tienen un nombre cuya longitud sea mayor que 10, aumentar el sueldo en un 2%. Reportar todos los resultados.
15)        Leer una frase y contar  el número de palabras que contiene. Tener en cuenta que cada palabra está separada por un espacio en blanco. También tener en cuenta que entre dos palabras puede haber más de 1 blanco y que al principio y al final de la frase pueden haber blancos redundantes. Por ejemplo, para la oración " puedo perdonarte por el daño que me has hecho pero, ¿cómo podré perdonarte por el mal que te has hecho a ti mismo? " devolvería el valor 23.
16)        Ingresar una cadena de texto, luego eliminar los caracteres repetidos de la cadena de texto, incluidos los blancos. Por ejemplo, ingresando la cadena "curso de programacion" nos reportará "curso depgamin"
17)        Ingresar una cadena de texto y colocar todas sus consonantes al principio y todas sus vocales al final de la misma, eliminando los blancos. Por ejemplo, si se tiene la cadena "curso de programación" una posible solución sería "rmcsrpdrgcnuoioaeoa". No interesa el orden en que aparecen los caracteres.
18)        Ingresar una secuencia de caracteres ASCII y luego haga el reporte de una secuencia de caracteres bajo las siguientes reglas: (1) Si el carácter es una letra o dígito, será remplazado por el siguiente carácter en el conjunto de caracteres, excepto Z que será remplazado por A, z por a y 9 por 0. Por tanto, 1 se transforma en 2, C en D, p en q, etc. Cualquier carácter que no sea letra o dígito será remplazado por un punto (.).
19)        Ingresar una cadena y ejecutar una de las siguientes opciones: (1) eliminar los caracteres en blanco a la izquierda de dicha cadena, (2) eliminar los caracteres en blanco a la derecha de la cadena, (3) determinar si la cadena está vacía o no, (4) eliminar los espacios en blanco a ambos extremos de la cadena, (5) determinar la cantidad de minúsculas en la cadena, (6) determinar la cantidad de mayúsculas en la cadena y (7) reportar la cadena en minúsculas.
20)        Leer un texto hasta el final-de-datos, y mostrar una estadística de las longitudes de las palabras. Es decir, el número total de palabras de longitud 1 que hayan ocurrido, el total de longitud 2 y así sucesivamente. Permitir palabras hasta de una longitud de 25 letras. Una salida típica podría ser esta:

longitud  1 : 16 ocurrencias
longitud  2 : 20 ocurrencias
longitud  3 :  5 ocurrencias
longitud  4 :  2 ocurrencias
longitud  5 :  0 ocurrencias........

21)        Según el historiador Cayo Suetonio el dictador perpetuus Julio César utilizaba un código cuando quería mantener en secreto un mensaje. Tomaba cada una de las 21 letras del alfabeto latino (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, V) y las sustituía por otra letra situada n posiciones más a la derecha en el orden alfabético anterior. Así, si n=3, a la A le correspondería la D. Este simple código además de ser un código de sustitución es un código de rotación ya que para las últimas letras se vuelve a retomar el conteo por el principio. Esto es, de nuevo para n=3, a la S le correspondería la A. Ahondando en el ejemplo, para n=3 si el emperador afirmaba que "la suerte está echada" (ALEA IACTA EST) el mensaje cifrados sería DOHD LDFBD HAB.

22)        Ingresar por teclado varias líneas de texto, por ejemplo:

“Hay golpes tan fuertes en la vida, yo no sé”

Analizar el texto usando los tres métodos siguientes:

a)      Imprimir una tabla que indique el número de veces que sucede cada letra del abecedario en el texto. Por ejemplo: Contiene cuatro “a”, ninguna “b”, etcétera.
b)      Imprimir una tabla que indique el número de palabras de una letra, de dos letras, de tres letras, etc., que hay en el texto. Por ejemplo:

Longitud de la palabra
1
2
3
4
5
6
7
Veces
0
5
2
1
0
1
1

c)      Imprimir una tabla que indique el número de veces que sucede cada palabra del texto. Deberá incluir las palabras en el mismo orden en que aparecen en el texto. Por ejemplo: contiene la palabra “hay” una vez, la palabra “golpes” una vez, etc. Después reportar las palabras de tal manera que aparezcan ordenadas alfabéticamente.