Ejer ProgUNMSM01

5
Universidad Nacional Mayor de San Marcos - FISI Introducción a la Computación e Ingeniería de Software Juan Gamarra Fany Sobero 1 EJERCICIOS DE PROGRAMACIÓN 1. Calcular e imprimir el área de un triángulo cuya base y altura se su- ministran por el teclado. Recuerde que el área de un triángulo es igual a la base por altura entre dos. 2. Elaborar un programa para calcular el número de billetes o monedas de S/.200.00, S/.100.00, S/.50.00, S/.20.00, S/.10.00, S/.5.00, S/.2.00, S/.1.00, S/.0.50, S/.0.20, S/ 0.10, S/ 0.05, que debe pagarse a un empleado, se debe ingresar el nombre del empleado y su sueldo a pagar. 3. Escriba un programa que lea un ángu- lo en grados sexagesimales y lo con- vierta a radianes. 4. Escriba un programa que lea un núme- ro de segundos "D" y lo convierta a "H" horas, "M" minutos, "S" segun- dos. 5. Escribir un programa donde se ingre- se un número natural y determine la cantidad de dígitos que tiene. 6. Escribir un programa que calcule el interés "I" que produce un capital "C" durante "n" años a una tasa de interés de "R" % anual de interés compuesto. En la siguiente formula, R en tanto por uno; por ejemplo: el tanto por uno de 20% es 0.20 (20/100) y de 50% es 0.50 (50/100). C R C I n 1 7. Escriba un programa que lea un núme- ro y redondee a la centena más pró- xima y visualiza la salida. Entrada Salida 2362 2400 2342 2300 2962 3000 8. Escribir un programa que redondee un numero "N" a la cifra decimal "Y". Si "Y" es positivo el redondea se hace a la derecha del punto decimal, si es negativo a la izquierda del punto decimal. numero numero redondeado 3262.54 1 3262.5 8424.588 2 8424.59 3262.54 -1 3260 8424.58 -2 8400 9. Ingresar base y exponente, imprimir la potencia de base elevado al expo- nente. La base y/o exponente pueden ser positivos o negativos. 10. Determinar el nombre del día, para una fecha ingresada desde el tecla- do, si se sabe que el 1 de enero de 1900 fue lunes. 11. Escriba un programa que lea 3 núme- ros enteros durante la corrida e im- prima el mayor y el menor. 12. Escribir un programa que determine que si año (AAAA) es bisiesto. Un año es bisiesto si es múltiplo de 4. Los años múltiplos de 100 no son bi- siestos, salvo si lo son también de 400. 1984 y 2000 son bisiestos, 1800 no es bisiesto. 13. Escriba un programa para hallar las raíces de la ecuación de segundo grado: ax 2 +bx+c=0 dados por: a d b r 2 1 a d b r 2 2 siendo : ac b d 4 2 14. Escribir un programa que lea tres números e imprima el mayor, el menor y el intermedio. 15. Elaborar un programa donde se ingre- se el sueldo de un trabajador, su respectiva categoría (A,B,C) y su año de ingreso. Luego se halle e im- prima su nuevo sueldo si el incre- mento es: a) Categoría "A" 15% para los que ingresaron a trabajar antes de 2000 y 12% para el resto. b) Categoría "B" 20% para los que ingresaron a trabajar antes de 2000 y 17% para el resto. c) Categoría "C" 25% para los que ingresaron a trabajar antes de 2000 y 22% para el resto. 16. De cuatro números x,w,y,z, que se ingresan por el teclado, imprimir los cuatro números en forma descen- dente. 17. De cuatro números x,w,y,z, que se ingresan por el teclado, imprimir los dos intermedios.

Transcript of Ejer ProgUNMSM01

Page 1: Ejer ProgUNMSM01

Universidad Nacional Mayor de San Marcos - FISI

Introducción a la Computación e Ingeniería de Software

Juan Gamarra – Fany Sobero 1

EJERCICIOS DE PROGRAMACIÓN

1. Calcular e imprimir el área de un

triángulo cuya base y altura se su-

ministran por el teclado. Recuerde

que el área de un triángulo es igual

a la base por altura entre dos.

2. Elaborar un programa para calcular

el número de billetes o monedas de

S/.200.00, S/.100.00, S/.50.00,

S/.20.00, S/.10.00, S/.5.00,

S/.2.00, S/.1.00, S/.0.50, S/.0.20,

S/ 0.10, S/ 0.05, que debe pagarse a

un empleado, se debe ingresar el

nombre del empleado y su sueldo a

pagar.

3. Escriba un programa que lea un ángu-

lo en grados sexagesimales y lo con-

vierta a radianes.

4. Escriba un programa que lea un núme-

ro de segundos "D" y lo convierta a

"H" horas, "M" minutos, "S" segun-

dos.

5. Escribir un programa donde se ingre-

se un número natural y determine la

cantidad de dígitos que tiene.

6. Escribir un programa que calcule el

interés "I" que produce un capital

"C" durante "n" años a una tasa de

interés de "R" % anual de interés

compuesto. En la siguiente formula,

R en tanto por uno; por ejemplo: el

tanto por uno de 20% es 0.20

(20/100) y de 50% es 0.50 (50/100).

CRCIn 1

7. Escriba un programa que lea un núme-

ro y redondee a la centena más pró-

xima y visualiza la salida.

Entrada Salida

2362 2400

2342 2300

2962 3000

8. Escribir un programa que redondee un

numero "N" a la cifra decimal "Y".

Si "Y" es positivo el redondea se

hace a la derecha del punto decimal,

si es negativo a la izquierda del

punto decimal.

numero numero redondeado

3262.54 1 3262.5

8424.588 2 8424.59

3262.54 -1 3260

8424.58 -2 8400

9. Ingresar base y exponente, imprimir

la potencia de base elevado al expo-

nente. La base y/o exponente pueden

ser positivos o negativos.

10. Determinar el nombre del día, para

una fecha ingresada desde el tecla-

do, si se sabe que el 1 de enero de

1900 fue lunes.

11. Escriba un programa que lea 3 núme-

ros enteros durante la corrida e im-

prima el mayor y el menor.

12. Escribir un programa que determine

que si año (AAAA) es bisiesto. Un

año es bisiesto si es múltiplo de 4.

Los años múltiplos de 100 no son bi-

siestos, salvo si lo son también de

400. 1984 y 2000 son bisiestos, 1800

no es bisiesto.

13. Escriba un programa para hallar las

raíces de la ecuación de segundo

grado: ax2+bx+c=0 dados por:

a

dbr

21

a

dbr

22

siendo :

acbd 42 14. Escribir un programa que lea tres

números e imprima el mayor, el menor

y el intermedio.

15. Elaborar un programa donde se ingre-

se el sueldo de un trabajador, su

respectiva categoría (A,B,C) y su

año de ingreso. Luego se halle e im-

prima su nuevo sueldo si el incre-

mento es:

a) Categoría "A" 15% para los que ingresaron a trabajar antes de 2000 y 12% para el resto.

b) Categoría "B" 20% para los que ingresaron a trabajar antes de

2000 y 17% para el resto.

c) Categoría "C" 25% para los que

ingresaron a trabajar antes de 2000 y 22% para el resto.

16. De cuatro números x,w,y,z, que se

ingresan por el teclado, imprimir

los cuatro números en forma descen-

dente.

17. De cuatro números x,w,y,z, que se

ingresan por el teclado, imprimir

los dos intermedios.

Page 2: Ejer ProgUNMSM01

Universidad Nacional Mayor de San Marcos - FISI

Introducción a la Computación e Ingeniería de Software

Juan Gamarra – Fany Sobero 2

18. De cuatro números x,w,y,z, que se

ingresan por el teclado, imprimir el

mayor y el menor.

19. Escriba un programa que ingrese la

fecha actual (dd_mm_aa) y la fecha

de nacimiento de una persona; luego

calcule y visualice la edad del in-

dividuo. Si la edad es menor de un

año de edad, la edad se debe dar en

meses y días en caso contrario, la

edad le calculará en años.

20. Elaborar un programa que lea la

calificación entre 0 y 10, y la

transforme en nota alfabética según

la siguiente tabla:

N. NUMÉRICA N. ALFABÉTICA

0<=nota<3 Muy deficiente

3<=nota<5 Insuficiente

5<=nota<6 Suficiente

6<=nota<7 Bien

7<=nota<9 Notable

9<=nota<=10 Sobresaliente

21. Escribir un programa que permita

jugar a las adivinanzas. El usuario

tiene que elegir un entero de un so-

lo dígito. El programa tiene que pe-

dir si el número es par o impar (0 ó

1), y el resto cuando el numero se

divide entre 5. A partir de esa in-

formación se debe determinar el nú-

mero.

22. Imprimir un listado de los números

del 1 al N, si N es ingresado por el

teclado.

23. Calcular la sumatoria de los prime-

ros N números enteros positivos, si

N es ingresado por el teclado.

24. Imprimir un listado de números con-

secutivos desde M hasta N, donde M y

N son ingresados por el teclado.

25. Hallar la media aritmética de los

primeros N números enteros positi-

vos, si N es ingresado por el tecla-

do.

26. Imprimir la suma de los números

impares menores a N, si N es ingre-

sado por el teclado.

27. Imprimir la suma de los números

pares menores a N, si N es ingresado

por el teclado.

28. Imprimir los enteros desde el uno

hasta N, con su respectivo cuadrado,

si N es ingresado por el teclado.

29. Imprimir los números de FIBOCCIANI

menores a mil. Recuerde que los nú-

meros de FIBOCCIANI se calculan de

los dos números anteriores.

30. Escribir un programa que permita

calcular mediante restas sucesivas

el cociente y el residuo de dos nú-

meros naturales.

31. Escribir un programa que calcule el

producto de dos números naturales

mediante el "algoritmo ruso del pro-

ducto". El algoritmo consiste en du-

plicar el primer factor y tomar la

parte entera del cociente del segun-

do factor entre 2. Si el segundo

factor es impar se acumula el primer

factor donde se ha de obtener el re-

sultado. El proceso termina cuando

el segundo factor sea cero.

PRIMER FACTOR

SEGUNDO FACTOR

ACUMULADOR

30 15 30

60 7 90

120 3 210

240 1 450

480 0 450

32. Escribir un programa que permita

imprimir los números de fibbonaci

menores que 1000. Recuerde que un

número de fibbonaci se calcula como

la suma de los dos números anterio-

res, así: 0,1,1,2,3,5,8,...

a) Utilizando tres variables. b) Utilizando dos variables.

33. Escribir un programa que imprima los

“n” términos de la serie de

FIBBONACCI, si los dos valores ini-

ciales son ingresados por el tecla-

do. Un término se halla sumando el

valor de los dos anteriores.

34. Escribir un programa que permita

calcular el promedio de los números

positivos ingresados por el teclado,

después de cada ingreso debe consul-

tar al usuario si desea continuar y

proceder según la respuesta.

35. Escribir un programa que permita

calcular el promedio de los números

positivos ingresados por el teclado,

el ingreso termina cuando el numero

ingresado es CERO.

36. Escribir un programa que determine

si un numero es primo. Un numero

primo es un numero que sólo es divi-

sible por si mismo y por la unidad.

37. Escribir un programa que permita

calcular el MCD (Máximo común divi-

sor) de dos números utilizando el

algoritmo de Euclides.

MCD(70,12)=2 MCD(60,36)=12

5 1 5 1 1 2

70 12 10 60 36 24 12 0

10 2 0 14 12 0

Page 3: Ejer ProgUNMSM01

Universidad Nacional Mayor de San Marcos - FISI

Introducción a la Computación e Ingeniería de Software

Juan Gamarra – Fany Sobero 3

38. Escribir un programa que permita

calcular el mcm (mínimo común múlti-

plo), si se sabe que

MCD(N1,N2)*mcm(N1,N2) es igual al

producto de N1 por N2, donde N1,N2

son los números.

39. Escribir un programa que imprima los

números del N al M, su cuadrado y su

cubo, si N y M se ingresan por el

teclado.

40. Imprimir el factorial de un número

que se ingrese por teclado. El fac-

torial de un número se calcula mul-

tiplicando los numeros consecutivos

desde 1 hasta el número, por ejem-

plo: 0!=1, 1!=1 2!=1*2, 3!=1*2*3,

4!=1*2*3*4, etc.

41. Imprimir los números de uno al diez,

cada uno con su respectivo facto-

rial.

42. Obtener todos los divisores de un

número entero positivo ingresado

desde el teclado.

43. Escribir un programa que calcule e

imprima el valor de e como la suma

de la serie:

e= 1/0! + 1/1! + 1/2! + ... + 1/N!,

la precisión del resultado será ma-

yor cuanto mayor sea el dato de en-

trada N (entero positivo).

44. Escribir un programa que visualice

un cuadrado mágico de orden impar n,

comprendido entre 3 y 11. Un cuadra-

do mágico se compone de números en-

teros comprendidos entre 1 y n2. La

suma de los números que figura en

cada línea, cada columna y cada dia-

gonal son idénticas.

Regla de construcción:

a) El número 1 se coloca en la casi-lla central de la primera fila.

b) Cada número siguiente se coloca

en la fila anterior y columna si-guiente.

c) Después de ubicar un número múl-

tiplo de “N” no se aplica la re-gla anterior, sino se coloca en

la fila siguiente y misma colum-na.

d) Se considera que la fila anterior

a la primera es la última, y la

columna posterior a la ultima es

la primera.

17 14 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

45. Escribir un programa que permita

determinar sus factores primos sin

incluir uno de un número natural ma-

yor que 1. Los factores primos son

los números primos que multiplicados

dan el número natural; ejemplo: los

factores primos de 180=2*2*3*3*5.

46. Escribir un programa para hallar la

raíz cuadrada de un número N usando

el algoritmo de (Newton-Rapson). El

algoritmo consiste en:

Hacer X= n/10 Mientras valor_absoluto(X2-

N) > 0.0001 X=X+(N-X2)/(2X)

Finmientras X es el valor de la raíz cuadrada de

N.

47. Ingresar un número entero en el

sistema decimal, convertirlo al sis-

tema binario e imprimirlo en panta-

lla.

48. Ingresar un número entero en el

sistema decimal, convertirlo al sis-

tema octal e imprimirlo en pantalla.

49. Ingresar un número binario e impri-

mirlo. Durante el ingreso solo se

debe permitir el ingreso 0 y 1, caso

contrario el número debe ser recha-

zado.

50. Imprimir la tabla de la resta de un

número ingresado desde el teclado.

51. Imprimir la tabla de la división de

un número ingresado desde el tecla-

do.

52. Escribir un programa que imprima la

tabla de multiplicar del 0 al 9, co-

mo multiplicando, y del 1 al 11 como

multiplicador.

53. Escribir un programa para hallar el

valor de X de un polinomio en:

AnXn+An-1X

n-1+An-2Xn-

2+...A0, Utilice el algoritmo de

Hoorner.

Hágase "U" igual a cero. Para I=N bajar a 0 hacer

U(actual)=U(contador)*X+AI

Finpara U es el valor del polinomio

54. Escribir un programa que imprima los

enteros desde 1 hasta N, con su res-

pectivo cuadrado. Suponer para este

programa que el computador no puede

multiplicar. Calcular el cuadrado de

como la suma los N números impares.

NRO NRO^2 OBTENIDO COMO

1 1 1

2 4 1+3

3 9 1+3+5

4 16 1+3+5+7

Page 4: Ejer ProgUNMSM01

Universidad Nacional Mayor de San Marcos - FISI

Introducción a la Computación e Ingeniería de Software

Juan Gamarra – Fany Sobero 4

55. Hallar todos los números de tres

dígitos CDU tales que si se invierte

el orden de sus cifras aumentan en

297.

56. En una reunión hubo 820 apretones de

mano. Sabiendo que cada persona sa-

ludo a otra sola una vez y a todas

las demás. Elaborar un programa que

determine cuantas personas asistie-

ron a la reunión.

57. En un torneo de fútbol participan 6

equipos. El torneo se desarrolla en

2 ruedas y todos juegan contra to-

dos. Escribir un programa que deter-

mine cuantos partidos se van ha ju-

gar y cuanto durará el torneo, si

cada cuatro fechas se descansan una.

58. El área de un rectángulo es "M"

metros cuadrados. Determinar cuantos

valores y que valores puede tomar el

perímetro "P", sabiendo que sus la-

dos miden un número entero de me-

tros. "M" será ingresado por el te-

clado.

59. Imprimir los números primos menores

que N 500, si N se ingresa por el

teclado. Recuerde que los números

primos son aquellos que se dividen

entre sí mismos y entre uno.

60. Escribir un programa que imprima los

"x" primeros números primos, si “x”

es ingresado por el teclado.

61. Escribir un programa que imprima los

“n” primeros números perfectos, si

“n” es ingresado por el teclado. Un

numero perfecto es un entero positi-

vo que es igual a la suma de sus di-

visores, excluido si mismo.

62. Obtener el calendario correspondien-

te a un mes si se conoce una fecha

del mismo, por ejemplo: MA 25 12

1995 (martes 25 de diciembre de

1995).

63. Escribir un programa que calcule el

valor de la depreciación anual de un

bien. El valor de la depreciación

total es igual a el valor inicial

del bien menos el valor del bien

después de "N" años de vida. El pro-

grama debe considerar el método para

calcular la depreciación anual, si

se pulsa:

"A" Método del Saldo doblemente de-

clinante.

"B" Método de la suma del número de

años.

"C" Método de la línea recta.

MÉTODO DEL SALDO DOBLEMENTE DECLINANTE

La depreciación anual disminuye un porcentaje constante cada año. Pa-

ra obtener el factor de deprecia-ción se divide a 2 entre el número de años de la vida del bien, y ca-da año la depreciación anual es el producto del factor por el valor del bien al comienzo del año (y no de la depreciación total).

MÉTODO DE LA SUMA DEL NUMERO DE AÑOS

El factor de depreciación anual es una fracción cuyo denominador es la suma se 1 a "N", donde "N" es el número de años de vida de un bien, y cuyo numerador es "N" para el primer año, "N-1" para el se-gundo año, "N-2" para el tercer año, y así sucesivamente. La de-preciación anual se obtiene multi-

plicando el factor para cada año por el valor de la depreciación total.

MÉTODO DE LA LÍNEA RECTA

La depreciación anual se obtiene al dividir el valor de la depre-ciación total por el número de años de vida del bien. El valor de depreciación anual es el mismo pa-ra todos los años.

ejemplo: El valor inicial del bien es de 8800, el valor del bien des-pués de 10 años de vida es 800, Vida de un bien 10 años.

VALOR TOTAL DE DEPRECIACIÓN:

8800-800=8000

MÉTODO DEL SALDO DOBLEMENTE DECLINANTE

Factor de depreciacion=2/10

Depreciación para el primer año: 8000*0.20=1600

Depreciación para el segundo año: 8000-1600)*0.20= 6400*0.20=1280

Depreciación para el tercer año:

(6400-1280)*0.20= 5120*0.20=1024

Así sucesivamente.

MÉTODO DE LA SUMA DEL NUMERO DE AÑOS

1+2+3+...+10=55

Depreciación para el primer año=10/55=1454.55

Depreciación para el segundo año=9/55=1309.01

Depreciación para el tercer año=8/55=1163.63

Así sucesivamente.

MÉTODO DE LA LÍNEA RECTA

Page 5: Ejer ProgUNMSM01

Universidad Nacional Mayor de San Marcos - FISI

Introducción a la Computación e Ingeniería de Software

Juan Gamarra – Fany Sobero 5

Depreciación para cada

año=8000/10=800

64. Escribir un programa que lea "N"

números, los almacene en un vector y

luego calcule e imprima el promedio.

65. Escribir un programa que almacene

"N" números en un vector y luego de-

termine el mayor y el menor elemento

y cuantas veces lo repiten ambos.

66. Escribir un programa que obtenga un

vector D[I] con los datos de A[I]

que no le encuentra en b[I].

67. Escribir un programa que lea números

entre el rango de 0 a 10 y determine

la frecuencia de cada número. El in-

greso termina cuando se ingresa un

número fuera del rango.

68. Escribir un programa que permita

hallar la mediana de un conjunto de

números enteros. La mediana se ha-

lla:

Los elementos son puestos en

orden, y

Si “n” es par, la mediana es

igual al promedio de los dos

elementos centrales. Si “n” es

impar, la mediana es igual al

elemento central.

69. Escribir un programa que calcule la

moda de un conjunto de datos.

70. Escribir un programa que almacena en

un Array un cuadrado mágico de di-

mensión "n"(donde "n" un número en-

tero, positivo e impar de 1 al 17).

Regla de construcción en el problema

44.

71. Escribir un programa que calcule la

desviación estándar, según:

n

i

ii

n

xxdes

1

2)(

72. Escribir un programa que almacene en

un array el cuadrado latino de orden

"N" un cuadro latino del mismo or-

den. Un cuadrado latino de orden "N"

es una matriz cuadrada en que la

primera fila contiene los "N" prime-

ros números naturales y cada una de

las siguientes contiene la rotación

de la fila anterior un lugar a la

derecha.

Ejemplo: un cuadrado latino de orden

4.

1 2 3 4

4 1 2 3

3 4 1 2

2 3 4 1

73. Escribir un programa que almacene

los resultados de las elecciones ge-

nerales para alcalde en la ciudad

"X". Luego calcule el total de votos

por distrito y por candidato y lo

imprima con el siguiente formato:

DISTRITO

CANDIDATOS A B C

1 194 48 45

2 180 20 16

3 221 90 20

4 432 61 18

74. Escribir un programa que lea "N"

números primos los almacene en un

vector y luego los imprima en orden

inverso a la entrada. No se deben

repetir el ingreso.

75. Escribir un programa que sume dos

matrices.

76. Escribir un programa que calcule el

producto de 2 matrices

C[n,r]=A[n,m]*B[m,r].

Para hallar los elementos de C:

jk

m

k

kiji BAC ,

1

,, *