1. Escribir un programa que calcule las soluciones reales de una ecuacin de segundo grado ax2+bx+c=0. El programa debe devolver el nmero de soluciones distintas (una si b2- 4ac=0, dos si b2-4ac>0 y ninguna si b2-4ac<0) y cules son esas soluciones.
2. Escribir un programa tal que dados los goles del equipo local (gl) y los goles del equipo visitante (gv), devuelva una cadena de caracteres indicando qu equipo ha ganado (resultados posibles: local, visitante, empate).
3. Escribir un programa que reciba la nota (nmero real) que un alumno ha sacado en un examen y devuelva su calificacin (cadena de caracteres), segn el siguiente criterio: 0-10, suspenso; 10.1-13.9, aprobado; 14.0-16.9 notable; 17.0-20, sobresaliente.
4. Implementar una funcin que dados tres nmeros a, b y c, los devuelva ordenados de menor a mayor. Debe considerar si hay dos nmeros iguales.
5. El cuadrante de un punto (x, y) se puede determinar a partir del signo de x e y. Escribir un programa tal que dadas las coordenadas x e y, indique a qu cuadrante pertenece el punto.
6. Finalizado el campeonato de la liga espaola de ftbol, escribir un programa en MATLAB que indique, a partir de la posicin en la tabla de un equipo en la primera divisin, si jugar la Champions League, la UEFA, si descender de categora o si permanecer en la que est. Informacin adicional: los cuatro primeros clasificados juegan la Champions, el quinto y sexto la UEFA y los tres ltimos de la tabla descienden (hay 20 equipos). El resultado es una cadena de caracteres de estas 4 posibles: Champions, UEFA, Permanece, Desciende.
7. Dados los nombres de dos equipos, A y B, el nmero de goles que A ha marcado jugando en casa contra B (gaa), el nmero de goles que B ha marcado en casa de A (gab), el nmero de goles que B ha marcado en los partidos jugados en su casa (gbb) y el nmero de goles que A ha marcado en el campo de B (gba). Escribir un programa que indique qu equipo de los dos va primero en la clasificacin. A empate en nmero de goles, ganar el que ms goles haya marcado en el campo contrario.
8. Dada una fecha como da (nmero entero), mes (cadena de caracteres) y ao (nmero entero positivo con 4 dgitos), escribir un programa que indique si dicha fecha es correcta o no. Ejemplos: 22 octubre 2001 es correcta; 31 abril 2001 no es correcta porque abril no tiene 31 das; 29 de febrero de 2001 no es correcto porque el ao 2001 no es bisiesto.( Los meses 1,3,5,7,8,10,12 siempre tienen 31 das, los meses 4,6,9,11 siempre tienen 30 das, el nico problema es el mes de febrero dependiendo del ao puede tener 28 o 29 das, pero ese clculo tampoco es difcil)
9. Dados el valor antiguo y el actual del contador del medidor de energa elctrica, escribir un programa que determine a cunto asciende la factura de la luz de un usuario. El importe es la suma de la cuota fija (12.00) ms una cuota variable que depende del consumo y se calcula por tramos: los primeros 100 Kw, a 0.06 soles; los 150 Kw siguientes a 0.04 soles el Kw; si el consumo excede de 250 Kw, esa fraccin se cobra a 0.02 soles el Kw. 10. Simplificando, supngase que el importe del seguro obligatorio de un coche depende del modelo del coche, del color y de la edad del conductor. Sean dos modelos de coche A y B y los precios del seguro segn el color:
Si el conductor tiene menos de 26 aos, el precio se incrementa un 25%; si tiene entre 26 y 30 aos se incrementa un 10%; si tiene entre 31 y 65 aos el precio no se modifica; si tiene ms de 65 aos el precio se incrementar un 10%. Adems, en cualquier caso, hay que considerar que si el conductor tiene menos de 2 aos el permiso de conducir, el precio se incrementar un 25% adicional. Disear un programa que calcule el precio del seguro para un determinado modelo y un determinado conductor.
11. Generar un vector de n elementos con nmeros aleatorios entre 0 y 1. Pedir al usuario dos nmeros reales entre 0 y 1 LS y LI, que representan los lmites superior e inferior de un intervalo, respectivamente. Recorrer el vector e indicar cuales elementos se encuentran dentro de los lmites dados.
12. Realizar un programa que calcule un nmero entre 1 y 10. Luego pedir al usuario que adivine el nmero. Tendr 5 intentos para adivinar.
13. Escribir un programa que dados los goles del equipo local y los goles del equipo visitante de un partido de futbol, indique qu equipo ha ganado (resultados posibles: local", visitante" y empate").
14. Determinar la cantidad de dinero que recibir un trabajador por concepto de las horas extras trabajadas. Cuando las horas de trabajo exceden de 40, el resto se consideran horas extras. Las horas extras se pagan al doble de una hora normal cuando no exceden de 8 horas. Si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple. Ingresar por teclado el valor de la hora de trabajo y la cantidad de horas trabajadas.
15. Se desea representar con una letra la calificacin de un alumno. Las calificaciones son notas entre 1 y 20. Escribir un programa que pida la nota y que indique la letra correspondiente: A para calificaciones mayores o iguales a 19 B para calificaciones mayores o iguales a 16 C para calificaciones mayores o iguales a 14 D para calificaciones mayores o iguales a 12 F para las dems calificaciones.
PROCESOS REPETITIVOS (prograrepr10)
16. Escribir un programa que calcule la suma de los n primeros nmeros naturales.
17. Escribir un programa que calcule la suma de los cuadrados de los n primeros nmeros naturales: 1 + 2 2 + 3 2 + + n 2 .
18. Escribir un programa que calcule la suma de los nmeros enteros de n a m (m>n), utilizando el programa del ejercicio 1.
19. Implementar un programa que calcule el producto de dos nmeros enteros (n*m) haciendo slo sumas.
20. Disear un programa que calcule el cociente y resto de la divisin entera de dos nmeros mediante restas y sumas.
21. Los trminos de la serie de Fibonacci se calculan as: a 1 = 1 a 2 = 2 a n = a n-1 + a n-2
Disear un programa que calcule el n-simo trmino de la serie de Fibonacci.
22. Escribir un programa que calcule el cuadrado de un nmero haciendo slo sumas. Ayuda: el cuadrado de un nmero n es la suma de los n primeros nmeros impares. Ejemplo: 3 2 = 1+3+5=9.
23. Escribir un programa que calcule la ensima potencia de a (a n ).
24. Escribir un programa que calcule el factorial de un nmero natural entero positivo n: n!= n * (n-1) * (n-2) * * 2 * 1 Observar el buen funcionamiento de la funcin para n=0 y para n<0.
25. La exponencial de un nmero real a se puede aproximar con la serie:
Escribir una funcin que calcule la exponencial de a segn dicha frmula, utilizando k=10 y luego k=20. Se obtiene el mismo resultado? Modificar la funcin de manera que el nmero k sea un parmetro elegido por el usuario. Modificar la funcin de manera que aproxime el resultado hasta que para algn k se cumpla la condicin a k /k! <= 10.5. Modificar de nuevo la funcin de manera que aproxime el resultado hasta que a k /k! sea menor que cierto valor infinitesimal que se pasar como dato a la funcin. Visualizar el nmero de trminos k necesarios para obtener el resultado requerido.
26. Escribir un programa que convierta un nmero entero en otro nmero entero que ser el primero pero con las cifras que lo forman escritas al revs. Ejemplo: convertir el nmero entero 1842 en el 2481
EJERCICIOS PROPUESTOS SOBRE PROGRAMACION CON MATLAB (programita00) 27. Elaborar el diagrama de flujo y el programa en MATLAB para que reciba dos 2 nmeros enteros y determine: El mayor de los dos nmeros es: y lo imprima. El menor de los dos nmeros es: y lo imprima.
28. Elaborar el diagrama de flujo y el programa en MATLAB para que reciba 3 nmeros enteros determine: El mayor de los tres nmeros y muestre en pantalla. El menor de los tres nmeros y muestre en pantalla. El intermedio de los tres nmeros y muestre en pantalla.
29. Elaborar el diagrama de flujo y el programa en MATLAB para que reciba 4 nmeros enteros (teniendo en consideracin que los cuatro pueden ser iguales, tres pueden ser iguales y dos pueden ser iguales) y determine: El mayor de los cuatro nmeros y muestre en pantalla. El menor de los cuatro nmeros y muestre en pantalla. Los intermedios en orden ascendente o descendente y muestre en pantalla.
30. Elaborar el diagrama de flujo y el programa en MATLAB que determine si tres nmeros enteros (a, b y c) mayores que 0 representan los lados de un tringulo. El programa deber de imprimir SI si los lados forman un tringulo y en caso contrario, se deber imprimir NO. Nota: tener en consideracin las expresiones siguientes: (a-c) < b < (a+c), (a-b) < c < (a+b) y (b-c) < a < (b+c)
31. Elaborar el diagrama de flujo y el programa en MATLAB para que dado los 3 lados de un tringulo (a, b yc), imprima R si el tringulo es rectngulo, I si el tringulo es issceles ( dos lados iguales) y E si el tringulo es escaleno (no tiene lados iguales). Nota: tener en consideracin las expresiones siguientes: (a-c) < b < (a+c), (a-b) < c < (a+b) y (b-c) < a < (b+c)
32. Elaborar el diagrama de flujo y el programa en MATLAB para que reciba 4 notas de las evaluaciones de un curso e imprima APROBADO si el promedio de notas es mayor o igual a 10.5, en caso contrario se imprimir DESAPROBADO, tener en cuenta lo siguiente:
El Promedio de notas es igual a la suma de las 4 notas dividido entre 4. El Promedio de notas es igual a la suma de las 4 notas menos la ms baja, dividido entre 3.
Derechos reservados EJERCICIOS PROPUESTOS SOBRE PROGRAMACION CON MATLAB 33. Elaborar un programa que permita obtener los valores de seno, coseno, tangente y cotangente, a partir de un valor ingresado por el teclado (en grado centesimales) usando las siguientes funciones: (NOTA: el programa deber hacer la conversin de grados centesimales a radianes para hacer uso de las funciones)
.... ! 9 x ! 7 x ! 5 x 3! x x ) x ( sen 9 7 5 3
.... ! 8 x ! 6 x ! 4 x 2! x 1 ) x ( cos 8 6 4 2
34. Elaborar el diagrama de flujo y el programa correspondiente para que pueda leer un nmero entero entre 11 y 9999 y como resultado deber mostrar los dgitos que forman dicho nmero, indicando si el dgito es par o impar. Guiarse por el ejemplo mostrado.
Si N=8638 es el nmero ingresado 8 par 6 par 3 impar 8 par
35. Elaborar el diagrama de flujo y el programa correspondiente para que lea un nmero entre 1 y 9999999 y una posicin determinada. El objetivo es determinar el dgito que est ocupando la posicin indicada. Por ejemplo: 856384 y 5; sean el nmero y posicin ingresada, la respuesta indicar: El dgito que ocupa la posicin (5) es el (8)
Nmero ingresado 8 5 6 3 8 4 Posicin 1 2 3 4 5 6
NOTA: El programa deber tener la consistencia entre el nmero ingresado y las posiciones para evitar errores, es decir; no se puede ingresar 4567 y digitar la posicin 7, porque no existe. 36. Elaborar el diagrama de flujo y el programa correspondiente para que lea un nmero entre 1 y 9999999, una posicin determinada y un dgito entre 0 y 9. El objetivo es: una vez identificado el dgito que ocupa la posicin determinada deber cambiarse dicho dgito por el dgito ingresado por el teclado y escribir el nuevo nmero generado. Por ejemplo: 947390, 3 y 8; sean el nmero, la posicin de un digito de dicho nmero y el nuevo dgito, la respuesta indicar: El dgito que ocupa la posicin (3) es el (7) y deber cambiarse por (8) y el nuevo nmero es: 948390
NOTA: El programa deber tener la consistencia entre el nmero ingresado y las posiciones para evitar errores, es decir; no se puede ingresar 45678 y digitar la posicin 8, porque no existe.
37. Elaborar el diagrama de flujo y el programa para mostrar lo k elementos de la serie de Fibonacci, as como la suma de dicho elementos. Sabemos que la serie de Fibonacci se establece teniendo en consideracin que los dos primeros elementos de la serie son el cero (0) y uno(1). El resto se calcula como la suma de los dos elementos que los anteceden. Ello puede observarse en la tabla adjunta.
38. Elaborar un diagrama de flujo y el programa correspondiente para determinar si un nmero entero entre cero (0) y 9999999 es un nmero Amstrong. En caso que sea deber mostrar en pantalla el resultado de la siguiente forma: El nmero (N) es un nmero Amstrong. Y en el caso que no lo sea deber mostrar: El nmero (N) no es un nmero Amstrong NOTA: Un nmero (N) es Amstrong si la suma de los cubos de sus dgitos es igual a (N)
39. Elaborar el diagrama de flujo y el programa correspondiente para saber cuntos nmeros Amstrong existen en el rango establecido como datos de entrada al iniciar el programa
40. Elaborar el diagrama de flujo y el programa correspondiente para saber si un nmero ingresado por teclado de la PC es un nmero Amstrong. Si el nmero ingresado es Amstrong se mostrar el siguiente resultado: El nmero (N) es un nmero Amstrong y el prximo nmero Amstrong esta despus de (x) nmeros Ejemplo: N = 371 371 407
36 RESPUESTA: El nmero 371 es Amstrong y el siguiente se encuentra despus de 36 nmeros
En el caso: que el nmero ingresado no sea un nmero Amstrong, encontrar el siguiente nmero Amstrong ms cercano, indicando cuanto se tiene que restar o sumar para hallar el siguiente nmero Amstrong.
Ejemplo: N = 398 371 398 407
27 9 RESPUESTA: Al nmero ingresado hay que sumar 9 para encontrar el siguiente Nmero Amstrong ms cercano
EJERCICIOS PROPUESTOS SOBRE PROGRAMACION CON MATLAB 1. Al final del ao las empresas cuentan con ganancias de las cuales una parte se distribuye entre los trabajadores y es llamada utilidad total a distribuir (UAD). En base a la UAD se obtiene la utilidad que recibir determinado trabajador(UADT).
Para hallar la utilidad se debe tener en cuenta los ingresos y los gastos de la empresa de acuerdo a sus ventas de acuerdo a las siguientes relaciones:
- El precio unitario es 20% ms que el costo unitario - Ingresos= Precio_unitario x Cantidad_vendida - Costos= Costo_unitario x Cantidad_vendida - Los gastos administrativos equivalen al 10% de los ingresos - Gastos= Costos + Gastos_administrativos - Utilidad_a_distribuir(UAD)=Ingresos Gastos - Utilidad_a_distribuir_a_cada_trabajador(UADT)= 50% x UAD x f1 + 50% UAD x f2
Donde f1 es el factor de horas-hombre laboradas en un ao para un trabajador y f2 es el factor del salario anual del trabajador vs. el salario anual de todos los trabajadores de la empresa.
F1 = hF / (hF x cF + hlT1 x clT1 + hlT2 x clT2)
F2 = sF / (sF x cF + clT1 x slT1 + clT2 x slT2)
Siendo cada una de las variables que intervienen en las frmulas anteriores:
- hF: Horas por da que trabaja un funcionario - sF: Salario que recibe el funcionario - cF: Cantidad de funcionarios que existen en la empresa - hIT1: Horas por da que trabaja un ingeniero tipo 1 - cIT1: Cantidad de ingenieros tipo 1 que existen en la empresa - sIT1: Salario que recibe el ingeniero tipo 1 - hIT2: Horas por da que trabaja un ingeniero tipo 2 - cIT2: Cantidad de ingenieros tipo 2 - sIT2: Salario que recibe el ingeniero tipo 2
2. Implementar un programa, que nos diga el da de la semana que corresponda a una fecha ingresada en forma de dia (xx), mes (yy), ao (yyyy)
da mes ao da de la semana (Respuesta)
Un mtodo para determinar qu da de la semana correspondiente a un da, mes y ao determinado es el siguiente: A. Tome los dos ltimos dgitos del ao y divdalo entre 4, quedndose con la parte entera como resultado. B. Aada el da ingresado. C. Luego, aada uno de los siguientes valores, de acuerdo al mes ingresado: - Abril, julio: 0 - Enero, octubre: 1 - Mayo: 2 - Agosto: 3 - Febrero, marzo, noviembre: 4 - Junio: 5 - Septiembre, diciembre: 6 D. Reste 1 si el mes ingresado es enero o febrero y el ao ingresado es bisiesto. E. De acuerdo al ao ingresado (asuma que el ao ingresado se encuentra en alguno de los rangos anteriores), aada: - Para los 1700 - 1799 4 - Para los 1800 - 1899 2 - Para los 1900 - 1999 0 - Para los 2000 - 2999 6 F. Aada al resultado los ltimos dos dgitos del ao. G. Por ltimo, divida entre 7 y tome el resto.
El resultado ser un nmero entre 0 y 6, que corresponder a un da de la semana: 0 sbado, 1 domingo, 2 lunes, 3 martes, 4 mircoles, 5 jueves, 6 viernes.
NOTA: Un ao es bisiesto si ocurre que: Es divisible por 4 y no por 100 Es divisible por 400.
3. Se tiene una diana (bull) para el juego de dardos, formada por 5 zonas delimitadas por circunferencias concntricas de radio 2, como se observa en la figura. Cada punto Px, est conformado por (x, y) o datos de ingreso.
Ejemplos: Observe el grfico y la Tabla mostrados anteriormente. El punto P1 est en la zona 1, circunferencia de radio 2, entonces el puntaje ser 50 puntos. El punto P2 est en la zona 3, limitada por la circunferencia de radio 4 y 6, entonces el puntaje ser 30 puntos. El punto P3 est en el lmite de la zona 4 y 5 (se considera la menor zona, zona 4), entonces el puntaje ser 20 puntos. El punto P4 est fuera de la diana, entonces el puntaje ser 0 (cero) puntos.
Para lo cual se pide desarrollar un Diagrama de flujo y el Programa correspondiente para que nos devuelva el mensaje correspondiente, segn los casos siguientes: Si x e y son nmeros positivos, nos devuelva las coordenadas ingresadas pertenecen al primer cuadrante. Si x e y son nmeros negativos, nos devuelva las coordenadas ingresadas pertenecen al tercer cuadrante. Si x es un nmero positivo e y es un nmero negativo, nos devuelva las coordenadas ingresadas pertenecen al cuarto cuadrante. Si y es un nmero positivo y x es un nmero negativo, nos devuelva las coordenadas ingresadas pertenecen al segundo cuadrante.
Y el puntaje alcanzado en cada tiro (ingreso de dato) 4. Hacer un programa para saber si un nmero es feliz o infeliz. A partir de ello puede hacerse variaciones, por ejemplo: cuantos nmeros felices hay en un rango establecido por el usuario o Cuntos nmeros felices o infelices hay entre 0 y 1000000. NOTA: Un nmero natural es Nmero feliz: cuando cumple lo siguiente: si sumamos los cuadrados de sus dgitos y seguimos el proceso con los resultados obtenidos el resultado es 1. Por ejemplo, el nmero 203 es un nmero feliz ya que 2 2 +0 2 +3 2 =13; 1 2 +3 2 =10; 1 2 +0 2 =1. En caso contrario es nmero infeliz. 5. Hacer un programa para determinar la cantidad de nmeros poderosos existentes en el rango de 0 y 100,000 0 y 1,000,000. NOTA: Nmero poderoso: es todo nmero natural n que cumple que si un primo p es un divisor suyo entonces p 2 tambin lo es. Por ejemplo, el nmero 36 es un nmero poderoso ya que los nicos primos que son divisores suyos son 2 y 3 y se cumple que 4 y 9 tambin son divisores de 36. 6. Hacer un programa para determinar la cantidad de nmeros curiosos existentes en el rango 0 y 100000 0 y 1000000 NOTA: Nmero curioso es: todo nmero natural n que cumple que n 2 tiene al propio n como ltima cifra. Por ejemplo, 25 y 36 son nmeros curiosos. 7. Hacer un programa para saber cuntos nmeros afortunados existen entre 0 y 100000 0 y 1000000 NOTA: los nmeros que sobreviven despus de una serie de operaciones se llama Nmeros afortunados: por ejemplo: tomemos la secuencia de todos los naturales a partir del 1: 1, 2, 3, 4, 5, Tachemos los que aparecen en las posiciones pares. Queda: 1, 3, 5, 7, 9, 11, 13, Como el segundo nmero que ha quedado es el 3 tachemos todos los que aparecen en las posiciones mltiplo de 3. Queda: 1, 3, 7, 9, 13, Como el siguiente nmero que qued es el 7 tachamos ahora todos los que aparecen en las posiciones mltiplos de 7. As sucesivamente. Los nmeros que sobreviven se denominan nmeros afortunados. Tambin; un nmero afortunado, que fue el nombre que le dio Reo Franklin Fortune, es un nmero primo que puede resultar de la expresin: Q = (P n ) q, donde (P n ), es el producto de los primeros (n) primos y (q) es el nmero primo ms pequeo, pero mayor que (P n ) + 1. Segn la conjetura de Fortune el nmero Q siempre ser primo, pero no todos los nmeros primos pueden resultar de esta frmula. Slo los primos que pueden tomar el valor de Q, se les llama, Nmeros afortunados.
Si n = 7, los primeros siete primos son (2, 3, 5, 7, 11, 13 y 17), cuyo producto es 510510, (P 7 ) = 510510; el primo menor, pero ms grande que 510511 es 510529, q = 510529, luego Q = 510510 510529 = 19, entonces 19 es un nmero afortunado 8. Hacer un programa que permita determinar si un nmero N entero positivo es perfecto, si no lo es, encontrar el nmero perfecto ms cercano, indicando cuanto se tiene que restar o sumar para hallar dicho nmero perfecto. Ejemplo: N = 840 496 840 8128
-344 7288 RESPUESTA: Hay que restar 344 para encontrar el Nmero perfecto ms cercano El nmero perfecto ms cercano es 496.
9. Hacer el Diagrama de flujo y el programa correspondiente para calcular la suma de los cubos de los dgitos de un nmero natural ingresado por el teclado, el nmero ingresado puede ser de 3, 4, 5 y 6 dgitos, pero no de 1 ni de 2. 10. Multiplicacin de nmeros romanos La multiplicacin de nmeros romanos nos trae las primeras complicaciones realmente serias. No hay formas sencillas de realizarla. En principio podramos pensar en lo ms evidente: hacer sumas sucesivas. Pero eso no es demasiado til si tenemos nmeros grandes. Vamos a ver una manera de hacer ese tipo de multiplicaciones en la que tendremos que suponer que sabemos multiplicar y dividir por dos un nmero romano (calcular el doble o la mitad de un nmero es sencillo sin necesidad de reglas multiplicacin y de divisin): Para calcular AB formamos dos columnas y colocamos A en la de la izquierda y B en la de la derecha. Pasos a seguir: 1. Dividimos A entre 2 y escribimos el cociente de la divisin debajo de A. Por ejemplo, si A es 15 escribiremos debajo 7 2. Multiplicamos B por 2 y escribimos el resultado debajo de B 3. Repetimos los pasos 1.- y 2.- con los nmeros que vamos obteniendo hasta que ne la columna de la izquierda aparezca un 1. 4. Tachamos de la tabla resultante todas las filas en las que el nmero de la izquierda sea par 5. Sumamos los nmeros que nos hayan quedado en la columna de la derecha. El resultado de esta suma es el resultado de AB Ejemplo: Vamos a hacer 45 * 29. En nmeros romanos XLV * XXIX. Construimos la tabla: A = XLV (45) B = XXIX (29) XXII (22) LVIII (58) XI (11) CXVI (116) V (5) CCXXXII (232) II (2) CDLXIV (464) I (1) CMXXVIII (928) Tachamos las filas donde el nmero de la izquierda es par. Nos queda la siguiente tabla: A = XLV (45) B = XXIX (29) XI (11) CXVI (116) V (5) CCXXXII (232) I (1) CMXXVIII (928) Sumamos los nmeros que han quedado en la columna de la derecha utilizando la regla de la suma que hemos visto anteriormente: XXIX + CXVI + CCXXXII + CMXXVIII = = XXVIIII + CXVI + CCXXXII + DCCCCXXVIII = = [Concatenamos y ordenamos de mayor a menor valor] = = DCCCCCCCXXXXXXXXVVVIIIIIIIIII = = DCCCCCCCXXXXXXXXVVVVV = = DCCCCCCCXXXXXXXXXXV = = DCCCCCCCCV = = DDCCCV = = MCCCV Y nos queda el resultado deseado: MCCCV = 1305 11. Suma de nmeros romanos Para sumar nmeros romanos debemos seguir los siguientes pasos: 1. Convertimos las restas en sumas. Por ejemplo, IX debera ser reescrito como VIIII 2. Concatenamos los dos nmeros que queremos sumar 3. Ordenamos los smbolos en orden decreciente segn su valor 4. Hacemos sumas internas de derecha a izquierda. Por ejemplo, si aparece IIIII lo reemplazamos por V 5. Volvemos a convertir a restas en los lugares donde sea necesario para respetar las reglas de escritura antes descritas Vamos a ver un ejemplo: 145 + 79. En nmeros romanos: CXLV + LXXIX 1. CXLV pasa a CXXXXV. LXXIX pasa a LXXVIIII 2. Concatenamos: CXXXXVLXXVIIII 3. Ordenamos: CLXXXXXXVVIIII 4. Sumas: VV pasa a X. Queda CLXXXXXXXIIII. XXXXXXX pasa a LXX. Queda CLLXXIIII. Y LL pasa a C. Queda CCXXIIII 5. Pasamos a restas en los lugares donde corresponda: IIII pasa a IV. Nos queda el resultado deseado: CCXXIV = 224
Resta de nmeros romanos La resta de nmeros romanos es algo ms sencilla que la suma. Los pasos a seguir para A B son los siguientes: 1. Convertimos las restas en sumas 2. Eliminamos los smbolos comunes a A y a B 3. Para el smbolo ms grande que quede en B expandimos tomamos el primer smbolo de A mayor que l y lo expandimos. Despus volvemos a aplicar el paso 2.-. Hacemos esto las veces que sea necesario 4. Volvemos a pasar a restas donde sea necesario Vamos con un ejemplo: 241 85. En nmeros romanos: CCXLI LXXXV 1. CCXLI pasa a CCXXXXI. LXXXV queda igual 2. Quitamos XXX de cada uno de ellos. Quedan CCXI y LV 3. Como L es el smbolo ms grande del segundo nmero expandimos una C del primero como LXXXXX. Quedan CLXXXXXXI y LV. Quitamos L de los dos y quedan CXXXXXXI y V. Como V es el nico smbolo que queda expandimos una X del primero como VIIIII. Quedan CXXXXXVIIIIII y V. Quitamos V de los dos y nos queda CXXXXXIIIIII. Colocando el nmero siguiendo las reglas de escritura queda CLVI 4. En este caso no hace falta pasar a restas. El resultado es CLVI = 156
Divisin de nmeros romanos Con la divisin de nmeros romanos es con la operacin con la que nos encontramos ms problemas. Al parecer no existen reglas generales para poder realizarla. Simplemente nos queda restar el divisor al dividendo hasta que lleguemos a un nmero menor que el divisor. El nmero de veces que hayamos restado ser el cociente de la divisin. Por ejemplo, para 23/5 quedara: 23 5 = 18; 18 5 = 13; 13 5 = 8; 8 5 = 3 Resto = 3; Cociente = 4 (hemos restado 5 cuatro veces) Otra opcin que tenemos es buscar algn factor comn a los dos nmeros que queremos dividir. As, antes de comenzar la divisin podemos simplificar los dos nmeros por ese factor y las operaciones a realizar sern ms sencillas al operar con nmeros ms pequeos. Pero de todas formas sigue siendo tedioso.
Este da se aade para corregir el desfase que existe con la duracin real de los aos: 365 das y 6 horas y 9min. Esto hace que se corrija cada cuatro aos (los aos mltiplos de cuatro) que se acumulan 24 horas.
El calendario juliano consideraba bisiesto los aos divisibles entre cuatro. As el ao juliano dura 365 das +1/4=365,25 das (ms que el ao trpico que dura 365,2422 das). La regla para los aos bisiestos segn el calendario gregoriano es:
Un ao es bisiesto si es divisible por 4, excepto el ltimo de cada siglo (aquel divisible por 100), salvo que este ltimo sea divisible por 400.
Es decir los aos que sean divisibles por 4 sern bisiestos; aunque no sern bisiestos si son divisibles entre 100 (como los aos 1700, 1800, 1900 y 2100) a no ser que sean divisibles por 400 (como los aos 1600, 2000 2400). En 400 aos debe haber 97 aos bisiestos, de esa manera el ao del calendario gregoriano se mantiene muy parecido al ao solar. As el ao gregoriano dura 365 das +1/4 -1/100 +1/400 = 365,2425 das (ms que el ao trpico que dura 365,2422 das).
En pseudocdigo: if ao modulo 400 is 0 then ao_bisiesto else if ao modulo 100 is 0 then no_ao_bisiesto else if ao modulo 4 is 0 then ao_bisiesto else no_ao_bisiesto end
En MATLAB sera:
x=input('x: '); if rem(x,4)==0 && (rem(x,100)~=0 || rem(x,400)==0) disp('ao bisiesto') else disp('ao no bisiesto') end
Tipos de nmeros El estudio de ciertas propiedades que cumplen los nmeros ha producido una enorme cantidad de tipos de nmeros, la mayora sin un inters matemtico especfico. A continuacin se indican algunos: Narcisista: Nmero de n dgitos que resulta ser igual a la suma de las potencias de orden n de sus dgitos. Ejemplo: 153 = 1 + 5 + 3. Omirp: Nmero primo que al invertir sus dgitos da otro nmero primo. Ejemplo : 1597 y 7951 son primos. Vampiro: Nmero que se obtiene a partir del producto de dos nmeros obtenidos a partir de sus dgitos. Ejemplo: 2187 = 27 x 81.
Tipos de nmeros Los nmeros, esos fieles compaeros que nos acompaan en todos los momentos de nuestra vida. Conocemos muchos tipos de nmeros, ya sea porque los usamos a diario o porque los hemos visto en algn documento libro (o, por qu no, en este blog): los naturales (0, 1, 2, 3,), los enteros (, -3, -2, -1, 0, 1, 2, 3,), los racionales (todo nmero que puede ponerse en froma de fraccin), los irracionales (todo nmero que no puede ponerse en forma de fraccin), los reales (el conjunto de todos los anteriores), los complejos Pero podemos calificar a los nmeros de muchas otras maneras. Hay muchas propiedades de los nmeros que hacen que cuando alguno las cumple se le denomine de cierta forma. En este post vamos a ver unas cuantas: Nmero primo: todo nmero natural mayor que 1 que cumple que sus nicos divisores son el 1 y el propio nmero. Ejemplos: 2, 3, 5, ste es el ms grande que se conoce. Nmero compuesto: todo nmero natural mayor que 1 que no es primo. Ejemplos: 4, 6, 10, Nmero primo probable: todo nmero del cual no se sabe si es primo o no pero que verifica alguna condicin que verifican todos los nmeros primos Nmero pseudoprimo: todo primo probable que acaba siendo compuesto. Nmero perfecto: todo nmero natural que es igual a la suma de sus divisores propios (es decir, todos sus divisores excepto el propio nmero). Por ejemplo, 6 es un nmero perfecto ya que sus divisores propios son 1, 2, y 3 y se cumple que 1+2+3=6. Los nmeros 28, 496 y 8128 tambin son perfectos. Nmero semiperfecto: todo nmero natural que cumple que es igual a la suma de algunos de sus divisores propios. Por ejemplo, 18 es semiperfecto ya que sus divisores son 1, 2, 3, 6, 9 y se cumple que 3+6+9=18. 12. Nmero abundante: todo nmero natural que cumple que la suma de sus divisores propios es mayor que el propio nmero. Por ejemplo, 12 es abundante ya que sus divisores son 1, 2, 3, 4 y 6 y se cumple que 1+2+3+4+6=16, que es mayor que el propio 12. 13. Nmero deficiente: todo nmero natural que cumple que la suma de sus divisores propios es menor que el propio nmero. Por ejemplo, 16 es un nmero deficiente ya que sus divisores propios son 1, 2, 4 y 8 y se cumple que 1+2+4+8=15, que es menor que 16. 14. Nmeros amigos: parejas de nmeros que cumplen que la suma de los divisores propios de cada uno de ellos da como resultado el otro nmero. Por ejemplo, 220 y 284 son nmeros amigos. 15. Nmeros sociables: cumplen lo mismo que los nmeros amigos pero en vez de ir en parejas van en grupos ms grandes. La suma de los divisores del primer nmero da el segundo, la suma de los del segundo da el tercero, y as sucesivamente. La suma de los divisores del ltimo da el primer nmero de la lista. Por ejemplo los nmeros 12496, 14288, 15472, 14536 y 14264 son nmeros sociables. 16. Nmero apocalptico: todo nmero natural n que cumple que 2 n contiene la secuencia 666. Por ejemplo, los nmeros 157 y 192 son nmeros apocalpticos. 17. Nmero ambicioso: todo nmero que cumple que la secuencia que se forma al sumar sus divisores propios, despus los divisores propios del resultado de esa suma, despus los del nmero obtenidoacaba en un nmero perfecto. Por ejemplo, 25 es un aspiring number ya que sus divisores propios son 1 y 5 y se cumple que 1+5=6, que es un nmero perfecto. 18. Nmero curioso: todo nmero natural n que cumple que n 2 tiene al propio n como ltima cifra. Por ejemplo, 25 y 36 son nmeros curiosos. 19. Nmero de Carmichael: todo nmero compuesto n que cumpla que b n-1 1 (mod (n)) (vase Congruencias) .para todo natural b que sea primo relativo con n. Por ejemplo, 561 y 1105 son nmeros de Carmichael. 20. Cuadrado: todo nmero natural que es el cuadrado de otro nmero natural. Por ejemplo, 9 es un cuadrado ya que 9=3 2 . 21. Cubo: todo nmero natural que es el cubo de otro nmero natural. Por ejemplo, 125 es un cubo ya que 125=5 3 . 22. Nmero malvado: todo nmero natural cuya expresin en base 2 (binaria) contiene un nmero par de unos. Por ejemplo, y 15 son nmeros malvados ya que 12=1100 2 y 15=1111 2 . 23. Nmero feliz: todo nmero natural que cumple que si sumamos los cuadrados de sus dgitos y seguimos el proceso con los resultados obtenidos el resultado es 1. Por ejemplo, el nmero 203 es un nmero feliz ya que 2 2 +0 2 +3 2 =13; 1 2 +3 2 =10; 1 2 +0 2 =1. 24. Nmero infeliz: todo nmero natural que no es un nmero feliz. Por ejemplo, el nmero 16 es un nmero infeliz. 25. Nmero hambriento: el k-simo nmero hambriento es el ms pequeo nmero natural n que cumple que 2 n contiene los primeros k dgitos de Pi. Los primeros nmeros hambrientos son: 5, 17, 74, 144, 144, 2003, 26. Nmero afortunado: Tomemos la secuencia de todos los naturales a partir del 1: 1, 2, 3, 4, 5, Tachemos los que aparecen en las posiciones pares. Queda: 1, 3, 5, 7, 9, 11, 13, Como el segundo nmero que ha quedado es el 3 tachemos todos los que aparecen en las posiciones mltiplo de 3. Queda: 1, 3, 7, 9, 13, Como el siguiente nmero que qued es el 7 tachamos ahora todos los que aparecen en las posiciones mltiplos de 7. As sucesivamente. Los nmeros que sobreviven se denominan nmeros afortunados. 27. Nmero de Fermat: todo nmero natural de la forma 2 2n +1 para algn n. Si ese nmero resulta ser primo se denomina primo de Fermat. 28. Nmero de Mersenne: todo nmero natural de la forma 2 p -1, siendo p un nmero primo. Si ese nmero resulta ser primo se denomina primo de Mersenne. 29. Nmero narcisista: todo nmero de k dgitos que cumple que es igual a la suma de las potencias k de sus dgitos es un nmero narceisita. Por ejemplo, 153 es un nmero narcisita de 3 dgitos, ya que 1 3 +5 3 +3 3 =153. 30. Nmero odioso: todo nmero cuya expresin en base 2 (binaria) contiene un nmero impar de unos. Por ejemplo, 11=1011 2 es un nmero odioso. 31. Nmero palindrmico: nmero natural que se lee igual de derecha a izquierda y de izquierda a derecha. Por ejemplo 1348431. 32. Nmero poderoso: todo nmero natural n que cumple que si un primo p es un divisor suyo entonces p 2 tambin lo es. Por ejemplo, el nmero 36 es un nmero poderoso ya que los nicos primos que son divisores suyos son 2 y 3 y se cumple que 4 y 9 tambin son divisores de 36. 33. Nmero oblongo: todo nmero natural que cumple que es el producto de dos naturales consecutivos. Por ejemplo, los nmeros 30, 42 y 56 son pronic numbers: 34. Nmero repunit: todo nmero natural que est formado solamente por unos: 1, 11, 111, 1111, 35. Nmero de Smith: todo nmero natural que cumple que la suma de sus dgitos es igual a la suma de los dgitos de sus divisores primos contando su multiplicidad (es decir, el nmero de veces que aparece cada uno de ellos). Por ejemplo, el nmero 27 es un nmero de Smith ya que 2+7=9 y su nico divisor primo es 3, que aparece tres veces, y por tanto 3+3+3=9. 36. Nmero libre de cuadrados: todo nmero natural que cumple que en su descomposicin en factores primos no aparece ningn factor repetido. Por ejemplo, el nmero 30 es un nmero libre de cuadrados. 37. Nmero ondulado: todo nmero natural de la forma ababab. Por ejemplo, los nmeros 121 y 13131 son nmeros ondulados. 38. Nmero intocable: todo nmero natural que no es la suma de los divisores propios de ningn nmero. Por ejemplo, los nmero 52 y 88 son nmeros intocables. 39. Nmero vampiro: todo nmero natural para el cual exista una factorizacin formada por lo dgitos del propio nmero. Por ejemplo, el nmero 126 es un nmero vampiro ya que lo podemos factorizar as: 126=216. 40. Nmero raro: todo nmero natural que es abundante pero que no es igual a la suma de ningn subconjunto de sus divisores propios. Por ejemplo, los nmero 70 y 836 son raros.
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA QUIMICA INSTITUTO DE INVESTIGACION