Escribe en código de Lenguaje Pascal, los programas para dar ...

f) Dado un arreglo de N elementos enteros positivos (con N impar), diseña y escribe un programa que calcule y devuelva la mediana de ese vector. La mediana ...
437KB Größe 3 Downloads 116 vistas
INFORMATICA DEL CBU – AÑO 2016 Fac. Cs. Exactas y Tecnología - UNT

TRABAJO PRÁCTICO N° 10

Prof. Ing. Fátima Martínez

TEMAS: VECTORES, MATRICES, FUNCIONES

Escribe en código de Lenguaje Pascal, los programas para dar solución a los siguientes problemas: Problema 1)

Letras mayúsculas y minúsculas

a) Escribe un programa que lea una FRASE (cadena de caracteres) y cuente de la misma las letras en mayúsculas y minúsculas. b) Escribe una función llamada Mayus_Minus(), invocada desde el main, que recibirá, entre otros, la FRASE ingresada y devolverá la cantidad de mayúsculas o de minúsculas, según sea el caso. NOTA: determina cuáles son los otros parámetros que debe recibir la función para que pueda calcular en un caso la cantidad de mayúsculas y en otro, de minúsculas. c) El programa al final, presentará la frase y la cantidad de mayúsculas y minúsculas. Problema 2)

Números primos

a) Escribe un programa que determine cuántos números primos que están en un vector se encuentran en una matriz. b) Escribe un procedimiento CargarPrimos(), invocada desde el main, que cargará un vector de N números aleatorios entre Linf y Lsup, de tal manera que sean solamente números primos. c) Escribe un procedimiento CargarMatriz(), invocada desde el main, que cargará una matriz de DIM1 X DIM2 números aleatorios en un rango entre Linf y Lsup. d) Escribe una función NumPrimos(), invocada desde el main, a la cual se le pasará la matriz y el vector y devolverá la cantidad de veces que un elemento del vector se encuentra en la matriz. e) El programa presentará los números cargados en el vector y más abajo la matriz en forma matricial. Finalmente, la cantidad devuelva por la función. Problema 3) f)

La mediana

Dado un arreglo de N elementos enteros positivos (con N impar), diseña y escribe un programa que calcule y devuelva la mediana de ese vector. La mediana es un valor tal que la mitad de los números sea mayor a ese valor y la otra mitad sea menor. Por ejemplo:

3, 13, 7, 5, 21, 23, 39, 23, 40, 23, 14, 12, 56, 23, 29 Si los ordenamos queda:

Trabajo Práctico 10

Página 1

INFORMATICA DEL CBU

Trabajo Práctico N° 10

Prof. Ing. Fátima Martínez

3, 5, 7, 12, 13, 14, 21, 23, 23, 23, 23, 29, 39, 40, 56 Hay quince números. El del medio es el octavo número:

3, 5, 7, 12, 13, 14, 21,23,23, 23, 23, 29, 39, 40, 56 La mediana de este conjunto de valores es 23.

g) Escribe un procedimiento CargaVect() que cargará el vector Numeros[ ] de N elementos del tipo entero, con números aleatorios entre 1 y 50. h) Escribe un procedimiento Ordenar(), invocado desde el programa principal, el cual recibirá el vector Numeros[ ] y lo devolverá ordenado. NOTA: para ordenar el vector utiliza el Método de la Burbuja. i)

Escribe una función CalculaMediana(), invocado desde el main, que determine y devuelva la mediana de ese vector.

j)

Finalmente, el programa mostrará los elementos del vector y la mediana. Problema 4)

El número 7 afortunado

a) Escribe un programa que simule un juego de dados. El juego pretende conseguir el número 7 sumando el valor de dos dados. El usuario tira dos dados cada vez y tiene en total 20 oportunidades. El programa le informa la cantidad de jugadas, el total de veces que gana (obtiene 7) y el porcentaje de aciertos. b) Escribe una función Aleatoria(), invocada desde el main, que calcule dos números aleatorios entre 1 y 6 (simulando la tirada de cada dado) y devuelva la suma de ambos, obtenida al tirar los dos dados. Este valor será cargado en un vector Dados[ ] de 20 elementos. c) Escribe una función Porcentaje() que calcule y devuelva el porcentaje de aciertos. A esta se le pasará el vector Dados[ ] desde el programa principal. d) En el programa principal, cuando se alcanzan las 20 jugadas, se verificará el porcentaje de aciertos. Si es menor a 25 % se presentará un mensaje, por ejemplo: “Lo siento, vas muy mal. Menos de 25% de aciertos”. En caso contrario se informará al usuario que no le quedan más oportunidades de jugar y el porcentaje de aciertos. e) Finalmente se mostrarán todas la tiradas de los dados. f)

Modifica el programa para que se carguen las jugadas de N jugadores. Esto será implementado utilizando una matriz Jugadores[ ] de N filas y 20 columnas.

g) Al final, el programa debe mostrar la matriz en forma matricial y la posición del jugador que consiguió mayor porcentaje de aciertos. Problema 5)

Elecciones provinciales

La última elección para la gobernación de la provincia de Tucumán, arrojó los siguientes resultados:

Página 2

INFORMATICA DEL CBU – AÑO 2016 Fac. Cs. Exactas y Tecnología - UNT Prof. Ing. Fátima Martínez

TRABAJO PRÁCTICO N° 10

DISTRITO

CANDIDATO A

CANDIDATO B

CANDIDATO C

CANDIDATO D

1

195

48

206

45

2

180

20

320

16

3

221

127

148

80

4

870

90

987

87

5

456

67

879

95

6

587

87

902

13

Escribe un programa para que realice las siguientes tareas: a) Presentar la tabla anterior. b) Calcular y mostrar el número total de votos recibidos por cada candidato. La cantidad total de votos emitidos y el porcentaje alcanzado por cada candidato. c) Mostrar el candidato más votado, asimismo el más votado en cada distrito. d) Si algún candidato recibe más del 50% de votos, se debe mostrar un mensaje declarándalo ganador. e) Si ninguno de los candidatos recibe el 50% de los votos, se deberá mostrar el nombre de los dos candidatos más votados, que serán los que pasarán a la segunda ronda de elecciones. Nota: para la resolución del problema determina un diseño acorde al método Top Down, crea tus propias funciones y procedimientos. Para simplificar, los números ingresados en la tabla serán valores aleatorios entre 10 y 990. PROBLEMAS ADICIONALES Problema 6)

Número telefónico

a) Escribe un programa que introduzca un número telefónico como cadena de caracteres. El número puede ser el de un celular o de un teléfono fijo, con el código de área como prefijo. Por ejemplo: 381 4364093 (TE fijo) o 381 4875366 (TE móvil). El programa deberá extraer el código de área y los últimos siete dígitos. b) En el programa principal se solicitará el ingreso de un número de teléfono de 10 dígitos como una cadena de caracteres NumTelefono[10]. Trabajo Práctico 10

Página 3

INFORMATICA DEL CBU

Trabajo Práctico N° 10

Prof. Ing. Fátima Martínez

c) Escribe una función llamada Subcadena() que extraerá y devolverá, en cada llamada, una subcadena de la cadena completa que se le pase. Devolverá: una vez el código de área, otra vez los últimos siete dígitos de la cadena. A la función se le pasará tres parámetros: la cadena NumTelefono, el índice desde donde se extrae la subcadena y la cantidad de caracteres a extraer. d) Modifica el programa para que se pueda introducir N números telefónicos. Trabaja con un vector llamado Telefonos[ ]. e) El programa cargará el código de área y el número telefónico en una matriz de nombre MatTelefono[ ] de N filas y 2 columnas. f)

Al final mostrará los números de teléfono y a la par, por separado, el código de área y el número telefónico. Por ejemplo: Teléfono 1: 3814490148

Problema 7)

381 - 4490148

Dos funciones sencillas

a) Implementar dos funciones: Function NDigitos(N): … Retornará la cantidad de dígitos que posee N. Function EsDiv7(N): …. Retornará true si N es divisible en 7. b) En el main( ) declara un arreglo de 20 elementos enteros y asigna a cada elemento números aleatorios entre 0 y 60000, pero de manera que sus magnitudes sean simultáneamente de 4 dígitos y divisibles por 7. Es decir se generará aleatorios para un mismo domicilio hasta tanto se halle un número que cumpla con las dos condiciones, luego se pasará al siguiente domicilio y así sucesivamente c) Mostrar por pantalla todos los elementos del arreglo. Problema 8)

Pago en billetes y monedas

a) Una empresa paga a sus empleados con dinero depositado dentro de un sobre. El pago es en $ Argentinos y necesita saber cuántos billetes de cada uno de los montos: 2, 5, 10, 20, 50, 100, 1000 y cuantas monedas de $1, de 50, 25 y 10 centavos, debe introducir en el sobre para su pago. Por ejemplo: si el sueldo es de $ 3548,75, el programa deberá mostrar por pantalla lo siguiente: 3 billetes de 1000

5 billetes de 100

2 billetes de 20

1 billete de 5

1 billete de 2

1 moneda de 1

1 moneda de 0.50

1 moneda de 0.25

b) Finalmante modifica el programa para permitir el ingreso del salario de N empleados. En este caso, utiliza una matriz de N filas. Nota: para la resolución del problema determina un diseño acorde al método Top Down, crea tus propias funciones y procedimientos. Utiliza vectores y/o matrices según sea necesario.

Página 4