Está en la página 1de 12

ARREGLOS UNIDIMENSIONALES 1. Realizar un programa que lea 20 valores reales en un arreglo y que luego normalice estos valores.

Para normalizar hay que buscar el mayor valor ledo y dividir cada elemento de la tabla por ese valor mximo, de forma que los valores resultantes se encuentren comprendidos entre 0 y 1.

2. Realizar un programa que pida una lista de nmeros enteros que representan las notas de un examen de los N alumnos de una clase. El valor de N se pedir por teclado y deber validarse que no supere 120 (nmero mximo de alumnos matriculados en la asignatura). Cada nota que se introduzca deber ser validada para que est comprendida entre 0 y 10. El programa deber presentar posteriormente en pantalla una estadstica de la siguiente forma: a) b) c) Presentar la nota ms alta de la clase y cuntas veces se repite sta. Presentar la nota ms baja de la clase y cuntas veces se repite sta. Presentar la media de todas las notas de la clase y la desviacin de cada nota

respecto de la media. La desviacin de la nota i ser: desviacin_i = nota_i - media. d) Presentar el nmero de sobresalientes, notables, aprobados, suspensos y muy

deficientes, considerando: Sobresaliente Notable Aprobado Deficiente Muy deficiente e) 8.5 <= nota <= 10 7 <= nota < 8.5 5 <= nota < 7 2.5 <= nota < 5 0.0 <= nota < 2.5

Presentar el porcentaje de sobresalientes, notables, aprobados, deficientes y muy

deficientes respecto al total de alumnos presentados al examen y respecto al total de alumnos matriculados en la asignatura.

El programa despus de presentar la anterior estadstica, entrar en un bucle de forma que pedir que se introduzca el valor de una nota a consultar, e indicar en pantalla cuntos alumnos tienen dicha calificacin. Saldr de dicho bucle cuando se introduzca un nmero negativo como nota a consultar. Se recomienda construir el programa en forma de MENU, de forma que cada una de los puntos pedidos anteriormente sea una opcin de dicho men.

3. Hacer un programa que permita el ingreso de 2 vectores de 3 componentes y efecte cualquiera de las siguientes acciones: a) Introducir vectores A y B. b) Suma vectorial A + B. c) Resta vectorial A - B. d) Mdulo de los vectores A y B. e) Producto vectorial A x B. f) Vectores unitarios en la direccin de A y B. s) Salir. En la opcin a) se pedirn las tres componentes de los dos vectores. En el resto de las opciones se realizarn los algoritmos indicados. El programa deber ser inteligente para que no se puedan ejecutar las opciones b) a f) si no se ha ejecutado antes la a). Por ejemplo al intentar ejecutar una de esas opciones indique mediante un mensaje: Todava no se han introducido vectores para el clculo. Ejecute pare ello la opcin a) del men.

4. Se dispone de un arreglo "l" unidimensional de reales, de dimensin efectiva "diml". Se desea construir un algoritmo que elimine las repeticiones de elementos de "l". Es decir, si un

elemento se encuentra en "l" repetido una o ms veces, deben de eliminarse las repeticiones dejando en "l" solamente un elemento con ese valor. Es decir si "l" tiene diml=9 y valores (10,12,10,5,6,10,4,6,5), despus de aplicar el algoritmo deber dejar a "l" con diml=5 y valores (10,12,5,6,4). Sugerencias. Hay dos formas de hacerlo. METODO1: Utilizando un segundo arreglo auxiliar. - Ordenamos el arreglo l. - Recorremos el arreglo l de forma que vamos llevando a un segundo arreglo ltemp los elementos de l siempre que el elemento a llevar sea distinto del anterior que hemos llevado. - Deberemos controlar en el algoritmo dos ndices distintos: uno para recorrer l y un segundo ndice para ir cargando ltemp. - La dimensin efectiva de ltemp al final ser el valor del ndice de ltemp cuando hayamos acabado de recorrer todo l. - Finalmente volcamos el arreglo ltemp en l y modificamos diml con la dimensin efectiva de ltemp (nmero de elementos de l que no estn repetidos). METODO2: Sin utilizar arreglo auxiliar. - Ordenamos el arreglo l. - Recorremos l desde el ndice 1 hacia adelante. Si un elemento es igual al anterior, movemos todos los elementos restantes del arreglo subindolos una posicin; y decrementamos en 1 la dimensin efectiva de l (diml).

5. Realizar un programa que pida los coeficientes de un polinomio de grado n (que tambin debe pedir) y evale dicho polinomio en diversos puntos. El programa debe continuar pidiendo puntos para evaluar hasta que el usuario introduzca el valor 999. Ejemplo (el programa debe funcionar para cualquier polinomio y cualquier nmero de puntos). Si el usuario quiere evaluar el polinomio p(x)=3x3+x-1 en los puntos 1, 0 y 2, la interaccin programa-usuario sera:

[PROGRAMA]: [USUARIO]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [PROGRAMA]: [USUARIO]: [PROGRAMA]: [PROGRAMA]: [USUARIO]: [PROGRAMA]:

Grado del polinomio? 3 Coeficiente de x^3? 3 Coeficiente de x^2? 0 Coeficiente de x^1? 1 Coeficiente de x^0? -1 Punto a evaluar? -1 p(-1) = -5 Punto a evaluar? 0 p(0) = -1 Punto a evaluar? 2 p(2) = 25 Punto a evaluar? -999 FIN

CADENAS DE CARACTERES

1.

Realizar un programa que reciba en tres variables cadenas distintas el nombre,

apellido paterno y apellido materno de una persona. Debe guardar los tres datos antes ledos en una variable cadena nombre_persona y con el siguiente formato: apellido1*apellido2*nombrepila y posteriormente presentar en pantalla el contenido de dicha variable. Por ejemplo, si se ingresaron los siguientes valores: PEDRO LUIS SANCHEZ GARCIA Debe guardarse en nombre_persona la siguiente informacin: SANCHEZ*GARCIA*PEDRO LUIS

2.

Realizar un programa que reciba una nica entrada que represente el nombre completo de una persona con el siguiente formato: apellido1*apellido2*nombre El programa debe separar y guardar en las variables "nombre", "apellido1" y "apellido2" el nombre, apellido paterno y apellido materno respectivamente. Posteriormente presentar estas tres variables en pantalla. Por ejemplo, si se ingres: SANCHEZ*GARCIA*PEDRO LUIS Debe presentarse en pantalla: PEDRO LUIS

SANCHEZ GARCIA

3.

Realizar un programa que indique si una palabra que recibe por teclado es un palndromo. Una palabra es un palndromo si se lee igual empezando por la derecha que por la izquierda. Por ejemplo, la palabra reconocer, o la frase Anita lava la tina.

4.

Realizar un programa que presente en pantalla la frecuencia de aparicin de los caracteres de la tabla ASCII en un texto (cadena de caracteres) que se recibe del teclado. Es decir, si se ingresa la cadena "ESTO ES SOLO UNA PRUEBA. Es un ejemplo." el programa deber presentar en pantalla: espacio 7 A B E L N O P R S T U e 2 1 4 1 1 3 1 1 3 1 2 2

j l m n o p s u .

1 1 1 1 1 1 1 1 2

5.

Realizar un programa que reciba una frase por teclado y presente posteriormente cada una de las palabras del texto en columna y a la derecha de la misma el nmero de letras que la componen. Consideraremos que dos palabras se separan por: uno o varios espacios, o bien por los siguientes caracteres: punto y coma (;), coma (,), punto (.).

6. Realizar un programa que lea un texto libre (cadena) de teclado y posteriormente presente en pantalla el mismo texto con sus caracteres ordenados segn la tabla ASCII.

7.

Escribir una funcin que llamaremos "acronimo", que recibe como parmetro una cadena de caracteres formado por varias palabras, y devuelve el acrnimo formado por las primeras letras de las palabras recibidas. El acrnimo ser siempre en maysculas, independientemente que la cadena recibida est en maysculas o minsculas. Por ejemplo, si pasamos a la funcin "acronimo" la cadena "United Nations International Children Emergency Fund" debe devolver UNICEF.

8.

Construir una funcin que reciba una fraccin (una sola cadena de caracteres que represente la fraccin), y nos proporcione su representacin mas simplificada posible. Por ejemplo, si se ingresa 180 / 120 Debe devolver 3 / 2

ARREGLOS MULTIDIMENSIONALES

1.

Se tiene una tabla "a" de enteros de m filas por n columnas. Codificar una funcin que cargue dicha tabla con valores aleatorios enteros comprendidos entre -1000 y 1000. *) Modificar la funcin anterior para que se garantice que la tabla "a" no se cargue con elementos repetidos.

2.

Tenemos una tabla "a" de nmeros enteros de m filas por n columnas, y una lista "x" de enteros con n elementos. Codificar un algoritmo que genere una nueva lista "y" de m enteros formada mediante la realizacin de las siguientes operaciones: y[1] = a[1][1]*x[1] + a[1][2]*x[2] + ... + a[1][n]*x[n] y[2] = a[2][1]*x[1] + a[2][2]*x[2] + ... + a[2][n]*x[n] .... y[m] = a[m][1]*x[1] + a[m][2]*x[2] + ... + a[m][n]*x[n] Definir las estructuras "a", "x" e "y" para que puedan pedirse por pantalla el valor de m y n, posteriormente el programa pida los elementos de la tabla "a" y la lista "x" y presente la lista "y" resultado. Probar el programa con los siguientes datos de entrada.

|1 2 3 4 5 6 7 8| |2 3 4 5 6 7 8 9| a = | 3 4 5 6 7 8 9 10 | | 4 5 6 7 8 9 10 11 | | 5 6 7 8 9 10 11 12 | | 6 7 8 9 10 11 12 13 |

| 1| | 8| x=| 3| | -6 | | 5| | -4 | | 7| | 2|

3.

Se dispone de una estructura de datos como la siguiente: #define FILAS 40

#define COLUMNAS 40 float ma[FILAS][COLUMNAS]; int int filas; columnas;

float nbus;

La dimensin mxima o fsica de la tabla "ma" es FILAS x COLUMNAS. Su dimensin efectiva o lgica en la ejecucin del programa es "filas" x "columnas". Codificar las siguientes funciones: *) Calculo del elemento mximo de "ma". *) Calculo del elemento mnimo de "ma". *) Ordenacin crecientemente de cada fila de la matriz "ma". *) Ordenacin decrecientemente de cada columna de la matriz "ma". *) Bsqueda dentro de la matriz "ma" del elemento cuyo valor coincida con el contenido en la variable "nbus", considerando que el elemento puede estar varias veces dentro de "ma". Deber indicarse en pantalla cuantas veces aparece el elemento a buscar dentro de la tabla "ma". *) Bsqueda dentro de la matriz "ma" del elemento cuyo valor coincida con el contenido en la variable "nbus", considerando que el elemento slo puede estar como mucho una vez dentro de "ma". Deber presentarse en pantalla las coordenadas del elemento encontrado en "ma". Codificar un algoritmo lo m s efectivo posible.

4. Dada una matriz numrica, se denomina punto de silla a aquel que es simultneamente mximo de su fila y mnimo de su columna. Determinar mediante un programa todos los puntos de silla de una matriz generada con nmeros aleatorios.

5.

Un programador trabaja en un CPD que recibe datos va satlite de la intensidad luminosa de distintas regiones del Cosmos. La informacin de cada una de las regiones es recibida por un detector de luz de los satlites exploradores, y el propio detector la almacena en un arreglo de dos dimensiones (70 x 20), representando cada elemento del arreglo la cantidad de luz

procedente de la porcin de imagen correspondiente. El rango de intensidad vara entre 0 y 100.

Se supone la existencia de una estrella en el rea correspondiente a un elemento del arreglo cuando la suma de la intensidad correspondiente al mismo ms la media de los 8 puntos circundantes es mayor o igual que 60. Construir un algoritmo que sea capaz de tratar el arreglo de intensidades medidas por el detector, y represente en pantalla un asterisco (*) en aquellas zona donde considera la existencia de una estrella. En las zonas en las que no, presentar en pantalla un espacio en blanco. (Omitir los clculos para los puntos situados en la periferia del arreglo).

6.

Construir una funcin que reciba tres parmetros de entrada: int fil, int col, int v_ini, de forma que genere y devuelva en salida una matriz de "fil" x "col" posiciones, iniciadas todas ellas al valor inicial "v_ini".

7.

Se dispone de una matriz unidimensional de 100 cadenas de caracteres. Construir un algoritmo que permita ordenar dicha matriz crecientemente basndose en la longitud de las cadenas de caracteres que contiene (es decir bebe > ANA). Para cadenas de la misma longitud, el orden debe ser el normal (es decir pepe > bebe).

8. Se dispone de un programa principal que tiene definidas las siguientes constantes y variables. #define FIL 40 #define COL 40 float mat[FIL][COL]; - Construir una funcin que calcule y devuelve la traza de la matriz cuadrada que se le pase como parmetro.

- Construir una funcin que devuelve 1 si la matriz cuadrada que se la pase como argumento es simtrica y 0 en caso contrario.

También podría gustarte