You are on page 1of 18

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Facultad de Ingeniería de Sistemas e Informática


E.A.P INGENIERÍA DE SISTEMAS

ALGORÍTMICA I

PRACTICA 1: Programas Secuenciales

1. La fuerza de atracción entre dos masas, m1 y m2 separadas por una distancia d, está dada por la
fórmula :

G * m1 * m2
F
d2
Donde G es la constante de gravitación universal, G=6.673x10-8 cm3/g.seg2.
Elaborar un programa que lea la masa de dos cuerpos y la distancia entre ellos y, a continuación, obtenga
la fuerza gravitacional entre ella. La salida debe ser en dinas; una dina es igual a gr.cm/seg2.

2. La famosa ecuación de Einstein para conversión de una masa m en energía viene dada por la fórmula:
E=mc2, donde c es la velocidad de la luz y su valor es: c=2.99792458x10 10 cm/sg. Elaborar un programa
que lea una masa en gramos y obtenga la cantidad de energía producida cuando la masa se convierte en
energía. Nota: Si la masa se da en gramos, la fórmula produce la energía en ergios.

3. Elaborar un programa para convertir una medida dada en pies a sus equivalentes en: a) yardas; b)
pulgadas; c) centímetros, y d) metros; donde (1 pie = 12 pulgadas, 1 yarda = 3 pies, 1 pulgada = 2,54 cm,
1m = 100 cm). Leer el número de pies y mostrar por pantalla el número de yardas, pies, pulgadas,
centímetros y metros.

4. Elabore un algoritmo que calcule e imprima el costo de producción de un artículo, teniendo como datos la
descripción y el número de unidades producidas. El costo se calcula multiplicando el número de unidades
producidas por un factor de costo de materiales de 3.5 y sumándole al producto un costo fijo de 10000.

5. Elaborar un algoritmo que calcule e imprima el costo de un terreno cuadrado o rectangular, teniendo
como datos la anchura y la longitud en metros, y el costo del metro cuadrado.

6. Elaborar un algoritmo para calcular el promedio de calificaciones de un estudiante. Los datos disponibles
son el nombre y las cuatro calificaciones de los exámenes. La información requerida es el Nombre y las
calificaciones. La calificación final es obtenida al multiplicar las calificaciones 1, 2, 3 y 4 por los
porcentajes 30%, 20%, 10% y 40%, respectivamente, y sumando los productos

7. La velocidad de la luz es 300,000 kilómetros por segundo. Elaborar un algoritmo que lea un tiempo en
segundos e imprima la distancia que recorre en dicho tiempo.

8. Hacer un algoritmo que obtenga e imprima el valor de Y a partir de la ecuación


Y = 3X2 + 7X – 15
solicitando como dato de entrada el valor de X.

9. Una temperatura en grados Centígrados (C) se puede convertir a su equivalente Fahrenheit (F) con la
formula:

F = (9/5) C + 32 de Fahrenheit a Centígrados con la formula: C = (F – 32)(5/9)

Elaborar un algoritmo que lea una temperatura en grados centígrados y obtenga e imprima la
temperatura Fahrenheit equivalente.

10. Elaborar un algoritmo que lea el artículo y su costo: la utilidad es el 150% y el impuesto es el 19%;
calcular e imprimir artículo, utilidad, impuesto y precio de venta.

1
11. Elaborar un algoritmo que permita leer valores para X, Y, Z, W; e imprima el valor de F.

F
4x 2
y 2 2 zw  2

1
4x 2

3
b4
12. Elaborar un algoritmo que lea el radio (r) de una esfera, calcule e imprima el volumen y el área.
4r3
VOLUMEN = AREA = 4r2

13. Elaborar un algoritmo que lea el valor de w e imprima el valor de Z.


w2
1 
z e 2

2 3

14. Elaborar un algoritmo que lea la cantidad de dólares a comprar y el tipo de cambio (costo de un dólar) en:
yenes, pesetas, libras esterlinas y nuevos soles; calcular e imprimir la cantidad a pagar en yenes,
pesetas, libras esterlinas y nuevos soles.

15. Elaborar una algoritmo que permita leer el tamaño de un ángulo en radianes e imprimir la tangente,
cotangente, secante y cosecante.

Tangente = seno Secante = 1


Coseno coseno

Cotangente = coseno cosecante = 1


Seno seno

16. Elaborar un algoritmo que permita leer el tamaño de un ángulo en grados e imprima el seno, coseno y
arco tangente. Deben convertirse los grados leídos a radianes antes de hacer los cálculos.

17. Elaborar un algoritmo que permita leer valores para A y B; e imprima Y, Z y W.

Y = 3a2b2 2a W = 2aa ( 3a2b2 2a )

12a1/2
Z =
b3/4

PRACTICA 2: Condicionales: Simples, Dobles, Selección múltiple

1. Elabore un algoritmo para calcular e imprimir el precio de un terreno del cual se tiene los siguientes datos:
largo, ancho y precio por metro cuadrado. Si el terreno tiene mas de 400 metros cuadrados se hace un
descuento del 10%.

2. Elabore un algoritmo para calcular e imprimir los valores de X y Y, teniendo como entrada el valor de X y
calculando el de Y de acuerdo con las siguientes condiciones

Si X < 0 entonces Y = 3X + 6
Si X > = 0 entonces Y = X2 + 6

2
3. De acuerdo con la clase de sus ángulos los triángulos se clasifican en:

Rectángulo tiene un ángulo recto (igual a 90°)


Obtusángulo tiene un ángulo obtuso (mayor que 90° pero menor que 180°)
Acutángulo los tres ángulos son agudos (menor que 90°)

Elaborar un algoritmo que permita leer el tamaño de los tres ángulos (A, B,C) de un triángulo e imprima
de qué tipo es.

4. Elabore un algoritmo que permita leer los datos de un empleado: Nombre, Tipo de empleado, número de
horas trabajadas y pago por hora; calcular e imprimir el sueldo a pagar. Si el empleado es tipo 1 se le
pagan las horas extras (más de 40 horas) a 1.5 del pago por cada hora, si es tipo 2 a 2, si es tipo 3 a 2.5
y si es tipo 4 a 3 veces el pago por hora.

5. Elabore un algoritmo que lea el número del mes entre 1 y 12 y, que imprima el nombre del mes
correspondiente: si es 1 ‘Enero’, si es 2 ‘Febrero’,...etc.

6. Elaborar un algoritmo que permita hacer conversiones de temperaturas entre grados Fahrenheit, Celsius,
Kelvin y Rankine. Primero debe preguntar qué tipo de grados quiere convertir. Por ejemplo; si se le indica
que se desea convertir una temperatura en grados Fahrenheit, debe leer la cantidad de grados, y luego
calcular e imprimir su equivalente en grados Celsius, kelvin y Rankine, y así, debe hacer lo mismo para
cada uno de los otros tipos. Para convertir a Celsius la temperatura Fahrenheit se le resta 32 y se
multiplica por 5/9. para convertir a Kelvin, se le suma 273 a los grados Celsius. Para convertir a Rankine a
los grados Fahrenheit se le suma 460.

7. Un sistema de ecuaciones lineales

ax + by = c
dx + ey = f

se puede resolver con las formulas


ce – bf af – cd
X = ae - bd Y = ae - bd si (ae - bd) < > 0

Elaborar un algoritmo que lea los coeficientes a, b, c, d, e y f y que calcule e imprima los valore de X y Y.
Si (ae - bd) < > 0; debe calcular e imprimir los valores de X y Y, en caso contrario debe imprimir un
mensaje que indique que no tiene solución.

PRACTICA 3: Precondicionales

1. Elabore un algoritmo que lea un valor N y que imprima un triángulo de asteriscos, como se muestra a
continuación, si el valor leído es 5 imprimir:
*
**
***
****
*****

2. Elaborar un algoritmo que permita leer un número N par; y, calcule e imprima la suma de los números
pares del 2 hasta el número leído. Si el número leído es menor a 2 debe imprimir un mensaje de error.

3. Elaborar un algoritmo que permita leer el valor inicial y el valor final en grados Fahrenheit ; e imprima una
tabla con equivalencias en grados Centígrados, desde el valor inicial hasta el valor final de 1 en 1.

Fahrenheit Centígrados
Valor Inicial 99.99
- 99.99
-
-
valor final 99.99

3
4. Elaborar un algoritmo que imprima la secante, cosecante y tangente de X; para valores de X desde –1
hasta 1 con intervalos de 0.1. Debe imprimir una tabla:
X Secante X Cosecante X Tangente X
-1.0 99.99 99.99 99.99
-0.9 99.99 99.99 99.99
.
.
1.0 99.99 99.99 99.99
5. Elaborar un algoritmo que permita que los valores de los coeficientes a, b, c; se comporten así: B debe ir
de 1 hasta 7. C debe ir de 7 a 1. A debe tomar cada vez que la diferencia de B – C. Y, que imprima para
cada juego de valores de a, b, c; si tiene raíz única, raíces complejas o raíces reales.

6. Elaborar un algoritmo para calcular la cantidad que se tendría ahorrada después de 10 años, si se
deposita mil nuevos soles mensuales a una tasa de interés mensual de 3%, capitalizable cada mes, es
decir, que al capital se le agregan los intereses .

7. El departamento de Policía y tránsito de la ciudad de Hermosillo, tiene los datos de las infracciones
levantadas por sobrepasar los limites de velocidad establecidos. El departamento dividió a la ciudad en
tres zonas, para cada una de las cuales desea obtener datos estadísticos que muestran las infracciones
levantadas por el motivo indicado en el párrafo anterior. Por cada infracción se tiene los siguientes datos:

 Número de placa (registro) del vehículo.


 Zona en la que fue la infracción (1,2,3).
 Límite de velocidad en kilómetros por hora.
 Velocidad a la que iba el vehículo en kilómetros por hora.

Crear un algoritmo para elaborar el reporte siguiente:

INFRACCIONES A LOS LIMITES DE VELOCIDAD

VEHÍCULO REG. VELOCIDAD MULTA

999999999 999 999 9,999.99


999999999 999 999 9,999.99
.
.
.
999999999 999 999 9,999.99

ZONA 1 : TOTAL DE INFRACCIONES : 999


MONTO RECAUDADO EN MULTAS : 9,999.99

ZONA 2 : TOTAL DE INFRACCIONES : 999


MONTO RECAUDADO EN MULTAS : 9,999.99

ZONA 3 : TOTAL DE INFRACCIONES : 999


MONTO RECAUDADO EN MULTAS : 9,999.99

Nota: El monto de la multa se calcula multiplicando S/.3.00 por cada kilómetro por hora que se
exceda el límite de velocidad.

8. Una compañía manufacturera fabrica el producto A. Para fabricar una unidad de dicho producto se
requiere los siguientes materiales:

Material 1: 3 unidades
Material 2: 4 unidades
Material 3: 1 unidad
Material 4: 2 unidades
Material 5: 3 unidades
Material 6: 2 unidades

4
Se tiene como datos el costo de una unidad de cada uno de los seis materiales. Elaborar un algoritmo
que lea los costos de los materiales, luego que lea pedidos del producto A en cada pedido se tiene el dato
cantidad de unidades del producto A; cuando termine de leer los pedidos, imprimir:

LISTADO DE MATERIALES REQUERIDOS


MATERIAL CANTIDAD DE UNIDADES COSTO ESTIMADO

1 999 99,999.99
2 999 99,999.99
3 999 99,999.99
4 --- --------
5 --- --------
6 999 99,999.99

COSTO TOTAL 99,999.99

9. Elaborar un algoritmo que emita el reporte de un aumento de sueldos siguientes

AUMENTOS DE SUELDOS
NOMBRE SUELDO ANTERIOR SUELDO ACTUAL

XXXXXXXXXXXXXXXXX 99,999.99 99,999.99


XXXXXXXXXXXXXXXXX 99,999.99 99,999.99
.
.
.
XXXXXXXXXXXXXXXXX 99,999.99 99,999.99

TOTAL 999,999.99 999,999.99

Datos: Nombre, Sueldo mensual, tipo empleado (1–5).

Cálculo del nuevo sueldo es:


Si tipo empleado es 1 se incrementa el 5%
Si tipo empleado es 2 se incrementa el 7%
Si tipo empleado es 3 se incrementa el 10%
Si tipo empleado es 4 se incrementa el 14%
Si tipo empleado es 5 se incrementa el 18%

PRACTICA 4: Post Condicionales

1. Elaborar un algoritmo que imprima el siguiente reporte:

COSTO DE PRODUCCIÓN
UNIDADES FACTOR COSTO COSTO DE
ARTICULO PRODUCIDAS COSTO FIJO PRODUCCION

XXXXXXXXXXXXXXXXX 9999 999.99 99,999.99 999,999.99


XXXXXXXXXXXXXXXXX 9999 999.99 99,999.99 999,999.99
.
.
XXXXXXXXXXXXXXXXX 9999 999.99 99,999.99 999,999.99

TOTAL 999 ARTICULOS 99,999,999.99

5
Datos disponibles por cada articulo:
Descripción
Cantidad de unidades producidas
Factor de costo de materiales
Costo fijo
Cálculo del costo de producción =
Número de unidades producidas X Factor de costo de materiales + costo fijo

Al final imprimir el total de artículos procesados. Y el total general del costo de producción.

2. Elaborar un algoritmo que permita el siguiente reporte:

PRECIOS DE VENTA

COSTO DE PRECIO DE
ARTÍCULO PRODUCCIÓN UTILIDAD IMPUESTO VENTA

XXXXXXXXXX 99,999.99 99,999.99 99,999.99 999,999.99


XXXXXXXXXX 99,999.99 99,999.99 99,999.99 999,999.99
.
.
XXXXXXXXXX 99,999.99 99,999.99 99,999.99 999,999.99

TOTAL 999 99,999.99 99,999.99 99,999.99 999,999.99

Datos disponibles para cada artículo:


Descripción
Costo de producción

Cálculos:
Utilidad = 120% del costo de producción
Impuesto = 15% (costo de producción + utilidad)
Precio de venta = costo de producción + utilidad +impuesto

3. Elaborar un algoritmo para imprimir, una factura que contenga los datos de los artículos vendidos a un
cliente, y que tenga el siguiente formato:

FACTURA
NOMBRE DEL CLIENTE: XXXXXXXXXXXXXXXXXXXXXXXXX
PRECIO PRECIO
ARTICULO CANTIDAD UNITARIO TOTAL

XXXXXXXXXXXXXXXXX 999 99,999.99 999,999.99


XXXXXXXXXXXXXXXXX 999 99,999.99 999,999.99
.
.
XXXXXXXXXXXXXXXXX 999 99,999.99 999,999.99

SUBTOTAL 9,999,999.99
IMPUESTO 9,999,999.99
19%
TOTAL 9,999,999.99

Datos disponibles para cada artículo:


Descripción
Cantidad de artículos
Precio unitario de venta
Además se tiene el nombre del cliente

6
|Cálculos
Precio total = Cantidad de artículos X precio unitario
Subtotal = La suma de los precios totales
Impuesto = 19% del subtotal
Total = Subtotal + Impuesto

4. Elabore un algoritmo que imprima el siguiente reporte:

NOMINA QUICENAL
NOMBRE SDO. BRUTO IMPUESTO SDO. NETO

XXXXXXXXXXXXXXXXX 999,999.99 999,999.99 999,999.99


XXXXXXXXXXXXXXXXX 999,999.99 999,999.99 999,999.99
.
.
XXXXXXXXXXXXXXXXX 999,999.99 999,999.99 999,999.99

TOTAL 999 999,999.99 999,999.99 999,999.99

Datos disponibles por cada empleado:


Nombre
Sueldo mensual
Antigüedad

Cálculos:
Sueldo bruto = (sueldo mensual / 2) + bonificación de antigüedad.
La bonificación de antigüedad se otorga a partir del tercer año de labores y es, de 2% anual

El impuesto se calcula usando la tabla siguiente

Lim. inferior Lim. Superior Cuota fija Porcentaje

1 300 30 3%
301 700 50 8%
701 1100 100 11%
1101 1700 150 16%
1701 adelante 200 20%

Cuando el sueldo bruto excede el salario mínimo, se calcula el excedente y se busca éste en la tabla a fin
de determinar en cual rango se encuentra.
El impuesto será la cuota fija más el porcentaje indicado en la diferencia del excedente sobre el límite
inferior.

5. Elabore un algoritmo que contabilice una cuenta de cheques. Al inicio se le introduce el nombre del
cuentahabiente y el saldo inicial. A continuación se pueden hacer depósito y retiros. Cuando sea depósito
se incrementa al saldo y cuando sea retiro se resta. El programa terminará cuando ya no se desee hacer
movimientos. Se requiere la impresión del siguiente reporte:

7
ESTADO DE CUENTA

CUENTA HABIENTE: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


SALDO INICIAL : 99,999,999.99

MOVIMIENTO DEPOSITO RETIRO SALDO

1 999,999.99 99,999,999.99
2 999,999.99 99,999,999.99
3 999,999.99 99,999,999.99
4 999,999.99 99,999,999.99
.
.
N

TOTALES 9,999,999.99 9,999,999.99 99,999,999.99

6. Se tiene los datos del transporte del elevador de un edificio, por cada viaje hecho durante el día, se tiene
los siguientes datos:

Viaje:
Cantidad de personas: ---
Peso de viaje: ---
Viaje:
Cantidad de personas: ---
Peso de viaje: ---

Viaje:
Cantidad de personas: ---
Peso de viaje: ---

Elaborar un algoritmo que lea los datos de los viajes del día, y al final que imprima:

ESTADISTICA DEL DIA

CANTIDAD DE VIAJES: 999


CANTIDAD DE PERSONAS TRNSPORTADAS: 999
PESO TRANSPORTADO (KILOS): 9999.99
PROMEDIO DE PERSONAS POR VIAJE: 99.99
PROMEDIO DE PESO POR VIAJE: 9999.99

7. Se tienen los datos de varios autos importados, elaborar un algoritmo que permita leer los datos de cada
automóvil: marca, orígen y costo; imprimir el siguiente reporte:

REPORTE DE AUTOS IMPORTADOS

MARCA ORIGEN COSTO IMPUESTO PRECIO VTA.

XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 99,999.99 99,999.99 99,999.99


XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 99,999.99 99,999.99 99,999.99
.
.
.
XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 99,999.99 99,999.99 99,999.99

TOTAL 999 AUTOS 99,999.99 99,999.99 99,999.99

ALEMANIA: ----

8
JAPON: ----
ITALIA: ----
USA: ----
PAIS DEL QUE SE IMPORTO MAS AUTOS: X----------------------------------X

Cálculos:
IMPUESTO si el orígen es Alemania el impuesto es 20%, si es de Japón el impuesto es 30%, si es de
Italia el 15% y si es de USA el 8%.
PRECIO VTA. Se suma el costo mas el impuesto.
TOTALES se pide el total de los autos importados, así como totales del costo, impuesto y precio de venta.
Por último el total de autos importados de cada país.

8. Elaborar un algoritmo que imprima el siguiente reporte:

NOMINA QUINCENAL
NOMBRE SUELDO BRUTO IMPUESTO SUELDO NETO

XXXXXXXXXXXXXXXXXXXXXXXXXX 99,999.99 99.999.99 99,999.99


XXXXXXXXXXXXXXXXXXXXXXXXXX 99,999.99 99.999.99 99,999.99
.
.
.
XXXXXXXXXXXXXXXXXXXXXXXXXX 99,999.99 99.999.99 99,999.99

TOTALES 999 99,999.99 99.999.99 99,999.99

Dato general: Salario mínimo general


Datos por cada empleado:
Nombre, sueldo mensual
Cálculos
Sueldo Bruto: se divide sueldo mensual entre dos porque la nómina es quincenal
Impuesto: Si el bruto no excede el salario mínimo el impuesto es cero. Si el bruto excede al salario
mínimo: se aplica el 5% de impuesto sobre el excedente del salario mínimo hasta dos salarios mínimos
de excedente, después de esta cantidad el impuesto es el 10%.

9. En la E.A.P de Ingeniería de Sistemas e Informática de la Universidad “ X ” , cada alumno tiene los


siguientes datos:

Nombre del alumno: X-----------------------------------------------X

Cada alumno puede haber llevado varios cursos, por cada curso, se tiene los datos:

Curso: X--------------------------------------X
Calificación 1: ---
Calificación 2: ---
Calificación 3: ---
----------
----------
----------

Nombre del alumno: X-----------------------------------------------X


Curso: X---------------------------------------X
Calificación 1: ---
Calificación 2: ---
Calificación 3: ---
--------
--------
--------
--------
--------

9
Elaborar un algoritmo que lea los datos de cada uno de los alumnos y por cada alumno, los datos de
cada uno de los cursos e imprima el siguiente reporte:

REPORTE DE CURSOS
NOMBRE CURSOS CALIF. FINAL OBSERVACIÓN

XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 999.99 APROBADO


XXXXXXXXXXXXXXX 999.99 DESAPROBADO
.
.
XXXXXXXXXXXXXXX 999.99 DESAPROBADO

TOTAL ALUMNO 999 CURSOS PROMEDIO: 999.99


XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 999.99 APROBADO
XXXXXXXXXXXXXXX 999.99 DESAPROBADO
.
.
XXXXXXXXXXXXXXX 999.99 APROBADO

TOTAL ALUMNO 999 CURSOS PROMEDIO: 999.99


---------------
TOTAL ALUMNO 999 CURSOS PROMEDIO: 999.99
---------------
---------------
---------------
TOTAL GENERAL 999 ALUMNOS PROMEDIO GENERAL: 999.99

Cálculos:
CALIF. FINAL es el promedio de las tres calificaciones del curso.
OBSERVACION es el comentario APROBADO o DESAPROBADO según sea la calificación final.
TOTAL ALUMNO se imprime el número de materias que cursó y el promedio de la calificaciones finales
de todas las materias que cursó
TOTAL GENERAL se imprime la cantidad de los alumnos procesados y el promedio general de todos los
alumnos.

10
PRACTICA 5: Programación Modular, Funciones

1. Elaborar un algoritmo que evalúe la función:


X!
f = Y!(X – Y)!

de la cual se tiene los datos X y Y; los mismos que deberán solicitarse y leerse. Factorial de X se divide
entre el factorial de Y multiplicado por el factorial de X – Y.

2. Elaborar un algoritmo que ofrezca un menú de opciones, mediante el cual se pueda escoger calcular el
área de las figuras geométricas: triángulo, cuadrado, rectángulo y círculo. Una vez seleccionada la
opción, que llame al módulo que permita solicitar, leer los datos necesarios, hacer el cálculo
correspondiente e imprimirlo.

Área de triángulo = BASE X ALTURA


2
Área de cuadrado = LADO2
Área de círculo = r2
Área de rectángulo = LARGO X ANCHO

Debe ofrecer el siguiente menú de opciones, donde está solicitando la opción deseada:

AREAS FIGURAS GEOMÉTRICAS


1. TRIANGULO
2. CUADRADO
3. RECTANGULO
4. CIRCULO
5. FIN
OPCION :

3. Elaborar un algoritmo que permita leer dos números de tipo real en el módulo principal; que en un módulo
los intercambie vía parámetros por referencia, y los imprima en el módulo principal.

4. Elaborar un algoritmo que permita leer tres números de tipo entero; e imprima el mayor; utilizando un
módulo para leer los números, una función para obtener y devolver el mayor y un módulo para imprimir el
mayor. Utilizando parámetros.

5. Elaborar un algoritmo que permita leer la base y el exponente, que llame a una función que eleve el
número a la potencia, al regresar al módulo principal que imprima el resultado.

6. Elaborar un algoritmo que imprima la sumatoria de las raíces cuadradas de los números pares desde 2
hasta 1500. Utilizar un módulo o función para el cálculo de la sumatoria.

7. Elaborar un algoritmo que lea un número N, que imprima la sumatoria de los cuadrados de los enteros
entre 1 y N. Utilizar un módulo para el cálculo de la sumatoria vía parámetro por referencia.

8. Elaborar un algoritmo que lea diez valores para Y y X, calcule e imprima el valor de Z; utilizando la
función
Z = YX
Imprimir los diez valores para X, Y y Z.

9. Elaborar un algoritmo que permita leer un número de tipo entero de cinco cifras; calcular e
imprimir el dígito verificador. El dígito verificador es un número entre 0 y 9, que se obtiene a
partir de un número en el que se toma en cuenta la posición que tiene cada dígito; se obtiene
de la siguiente manera:
Si se tiene el número: 74621

11
Proceso 1 Se obtiene la suma de los productos: el primer número de la derecha multiplicado
por dos, el siguiente a la izquierda por tres, el siguiente por cuatro, y así
sucesivamente, hasta siete (el multiplicador vuelve a iniciar en 2, en caso de ser
necesario).

7 4 6 2 1

1X2= 2
2X3= 6
6 X 4 = 24
4 X 5 = 20
7 X 6 = 42
94
Proceso 2 Se determina el residuo al dividir el producto entre once.
94 11

6 8

Proceso 3 Si el residuo es cero o uno, entonces ese es el dígito verificador; de lo contrario el


dígito verificador será igual al resultado que se obtenga de once menos el residuo;
en el ejemplo:

Dígito verificador = 11 – 6 = 5

10. Simular una máquina expendedora de café. Crear un menú con las siguientes opciones:

****************************************
1. Seleccionar producto
2. Pagar y dar vuelto
3. Salir

Seleccione opción: …..

 Para la opción “Seleccionar producto” presentar

***************************************
a. Café S/. 1.00
b. Café con leche S/. 1.50
c. Leche S/. 2.00

Elegir opción: …..

 Para la opción “Pagar y dar vuelto” presentar

***************************************
Precio _ _ _ _ _ (debe aparecer precio de producto seleccionado)
Monto _ _ _ _ _ (monto que paga el cliente, verificar que no es menor que precio)

Finalmente en el programa principal debe mostrar:

Usted compró (nombre del producto ) de precio (precio)


Pagó (monto) y su vuelto es (vuelto)

Usar funciones y paso de parámetros.

12
PRACTICA 6: Array (arreglos, listas o tablas): unidimensionales, bidimensionales

1. Programa que lea 20 números enteros, los almacene en un vector, y calcule la suma de todos ellos, así
como la media aritmética.

2. Un vector se dice que es simétrico si el elemento que ocupa la posición i_ésima coincide con el que
ocupa la posición n_i_ésima, siempre que el número de elementos que almacene el vector sea n. Por
ejemplo el vector que almacena los valores 2,4,5,4,2 es simétrico. Elaborar un programa y una función
que decida si el vector de n datos que recibe como parámetro es simétrico.

3. Escribir un programa que halle y escriba una tabla con los 10 primeros números primos. Un número es
primo si sólo tiene por divisores la unidad y el propio número.

4. Programa que genere aleatoriamente los datos de un vector, lo visualice, y calcule la media m, la
desviación media dm y la desviación típica dt, dados por las siguientes expresiones:

n 1

 a i 
m i 0

n
n 1

 abs i   m
dm  i o

n
n 1

  a i   m 
2

dt  i o

n
5. Dados los nombres, promedio final de los alumnos de un curso de Ingeniería, elaborar un programa para
almacenar(ingresar) dichos datos y mostrar, presentar en un menú de opciones.

6. Dado un vector de enteros de n elementos ordenar de menor a mayor

7. Elaborar un programa para presentar el siguiente menú de opciones, utilizando funciones:

MENU

a. Factorial de un número entero positivo.


b. Cargar y ordenar en orden descendente un
vector de diez elementos.
c. Salir

Seleccione Opción: __

8. Elaborar un programa para presentar el siguiente menú de opciones, utilizando funciones:

MENU

1. Cargar y realizar la diferencia de dos matrices del


mismo orden Amxn - Bmxn.

2. Salir.

Seleccione Opción: __

13
PRACTICA 7: Ejercicios varios, Registros, archivos.

1. Programa que visualice un cuadrado mágico de orden impar n, comprendido entre


3 y11; el usuario elige el valor de n. Un cuadrado mágico se compone de números
enteros comprendidos entre 1 y n2 . La suma de los números que figuran en cada
línea, cada columna y cada diagonal son idénticos. Un ejemplo es:
8 1 6
3 5 7
4 9 2
Un método consiste en situar el número 1 en el centro de la primera línea, el
número siguiente en la casilla situada encima y a la derecha , y así sucesivamente.
Considerar que el cuadrado de cierra sobre sí mismo: la línea encima de la
primera es de hecho la última y la columna a la derecha de la última es la primera.
Cuando la posición del número caiga en una casilla ocupada, se elige la casilla
situada debajo del número que acaba de ser situado.

2. Se pretende simular la representación en el espacio tridimensional de triángulos,


pero minimizando el espacio necesario para almacenarlos. Teniendo en cuenta
que un triángulo en el espacio tridimensional viene determinado por las
coordenadas de sus tres vértices, escribir un programa con una estructura para
representar un triángulo que usando un vector dinámico almacene el índice de los
tres vértices así como su perímetro y área (de esta forma se almacena los tres
vértices con tres enteros en lugar de nueve reales, ahorrando memoria). El
perímetro y el área deben ser calculados mediante una función a partir del índice
de los tres vértices, y el vector dinámico de puntos del espacio tridimensional.

3. Los métodos de ordenación por inserción lineal e inserción binaria, sólo se


diferencian entre sí, conceptualmente, en el método de la búsqueda. Por tanto, el
n( n  1)
número de movimientos de claves será el mismo en ambos casos, y es .
2
En cuanto al número de comparaciones, cuando el intervalo tiene i elementos, se
realizan log 2 (i ) comparaciones. Por tanto, el número de comparaciones es:
n 1 n 1
C  log
i 1
2 (i )   log 2 ( x) dx  n log 2 ( n)

Es decir el número de comparaciones es O ( n log 2 ( n)) , y el número de


movimientos es O (n 2 ) .
En un menú de opciones presentar los subprogramas para ordenar un arreglo de
datos:
a) Por el método de inserción lineal
b) Por el método de inserción binaria

4. Programa que permita crear un arreglo de 100 enteros aleatorios en el rango de 1


a 200 y, a continuación, utilizando una búsqueda secuencial, realizar la búsqueda
de 50 enteros seleccionados aleatoriamente (iguales o distintos). Al final del
programa se deben visualizar las siguientes estadísticas:
 Número de búsquedas con éxito
 Número de búsquedas fallidas
 Porcentajes de éxito y de fallo

14
5. Un atleta utiliza un pulsómetro para sus entrenamientos. El pulsómetro almacena
las pulsaciones cada 15 segundos, durante un tiempo máximo de 2 horas.
Elaborar un programa para almacenar en un archivo los datos del pulsómetro del
atleta, de tal forma que el primer registro contenga la fecha, hora y tiempo en
minutos de entrenamiento, a continuación, los datos del pulsómetro por parejas:
tiempo, pulsaciones. Los datos deben ser leídos del teclado. Una vez escrito en el
archivo los datos, el programa debe visualizar el contenido completo del archivo.

6. Convertir un número a letras e incluir signo monetario, ejemplo S/. 1.237,50 (Un
mil doscientos treinta y siete con cincuenta / céntimos Nuevos Soles).

7. El “Juego de sociedad” es un acertijo que mediante operaciones elementales


procesa dos números: el primero que presenta el día y mes de su nacimiento, así
por ejemplo 5 de marzo es: 503, y el segundo número es su edad, requiriéndose
de los siguientes cálculos:
a) Multiplicar el primer número por 2
b) Adicionarle 5
c) Multiplicarlo por 50
d) Sumarle el segundo número
e) Sumarle 365
f) Restarle 615
Elaborar un programa utilizando función para mostrar la unión del primer número
con el segundo.

8. Elaborar un programa que permita leer un número de tipo entero de cinco cifras;
calcular e imprimir el dígito verificador. El dígito verificador es un número entre 0 y
9, que se obtiene a partir de un número en el que se toma en cuenta la posición
que tiene cada dígito; se obtiene de la siguiente manera:
Si se tiene el número: 74621

Proceso 1 Se obtiene la suma de los productos: el primer número de la derecha


multiplicado por dos, el siguiente a la izquierda por tres, el siguiente por
cuatro, y así sucesivamente, hasta siete (el multiplicador vuelve a iniciar
en 2, en caso de ser necesario).

7 4 6 2 1

1X2= 2
2X3= 6
6 X 4 = 24
4 X 5 = 20
7 X 6 = 42
94
Proceso 2 Se determina el residuo al dividir el producto entre once.

94 11

6 8

Proceso 3 Si el residuo es cero o uno, entonces ese es el dígito verificador; de lo


contrario el dígito verificador será igual al resultado que se obtenga de
once menos el residuo; en el ejemplo:

15
Dígito verificador = 11 – 6 = 5

9. Simular una máquina expendedora de café. Crear un menú con las siguientes
opciones:

****************************************
4. Seleccionar producto
5. Pagar y dar vuelto
6. Salir

Seleccione opción: …..


 Para la opción “Seleccionar producto” presentar

***************************************
a. Café S/. 1.00
b. Café con leche S/. 1.50
c. Leche S/. 2.00

Elegir opción: …..


 Para la opción “Pagar y dar vuelto” presentar

***************************************
Precio _ _ _ _ _ (debe aparecer precio de producto seleccionado)
Monto _ _ _ _ _ (monto que paga el cliente, verificar que no es menor que precio)

Finalmente en el programa principal debe mostrar:

Usted compró (nombre del producto ) de precio (precio)


Pagó (monto) y su vuelto es (vuelto)

Usar funciones y paso de parámetros.

10. Escribir un programa para calcular el número de días que hay entre dos fechas;
declarar fecha como una estructura.

11. Un número racional se caracteriza por el numerador y denominador. Escribir un


programa para operar con números racionales. Las operaciones a definir son la suma,
resta, multiplicación y división; además de una función para simplificar cada número
racional.

12. Escribir un programa que gestione una agenda de direcciones. Los datos de la agenda
se almacenan en memoria en un array de estructuras, cada una de las cuales tiene los
siguientes campos: nombre, dirección, teléfono fijo, teléfono móvil, dirección de correo
electrónico. El programa debe permitir añadir una nueva entrada a la agenda, borrar
una entrada, buscar por nombre y eliminar una entrada determinada por el nombre.

13. Suponer que se tienen dos arrays del tipo descrito en el problema propuesto 12 ó 10.
Codificar un programa en C++ que los una en uno solo, eliminando los duplicados que
puedan existir entre los dos.

16
14. Suponer que se tiene un array que almacena la información de los empleados de una
empresa. De cada empleado se guarda el nombre, los dos apellidos, el número de la
Seguridad Social, la edad, el departamento en el que trabaja y la antigüedad en la
empresa. Escribir un programa en el que se ordene el array por el campo primer
apellido y en caso de que el primer apellido coincida por el segundo apellido. Si ambos
apellidos coinciden para algún registro, ordenar entonces por el nombre.

15. Utilizando el array del Problema anterior escribir un programa que permita a un
usuario por medio de un menú elegir uno de los campos para realizar una búsqueda
por dicho campo en el array de registros.

16. Escribir un programa auxiliar que permita añadir nuevos campos a la tabla de
empleados, como por ejemplo, sueldo anual y porcentaje de retenciones de
impuestos. Una vez modificado el array de estructuras, escribir un programa que
permita a un usuario elegir un rango de registros de empleados especificando un
apellido inicial y otro final, o un departamento concreto, y produzca en la salida la
suma total de los sueldos que se les pagan a los empleados seleccionados.

17. Escribir un programa que permita elaborar un informe a partir del array de estructuras
anterior con el siguiente formato. Cada página contendrá los empleados de un solo
departamento. Al comienzo de cada página se indica por medio de una cabecera cada
uno de los campos que se listan y al departamento que corresponde el listado. Los
campos aparecen justificados a la derecha en cada columna.

18. Escribir un programa que lea líneas de texto obtenga las palabras de cada línea y las
escriba en pantalla en orden alfabético. Se puede considerar que el máximo número
de palabras por línea es 28.

19. Un sistema de encriptación simple consiste en sustituir cada carácter de un mensaje


por el carácter que está situado a tres posiciones alfabéticas por delante suyo. Escribir
una función que tome como parámetro una cadena y devuelva otra cifrada como se ha
explicado.

20. Escribir un programa que lea un texto, y dos palabras claves, clave1 y clave2. El
programa debe sustituir todas las apariciones de clave1 por clave2, mostrar el nuevo
texto, e indicar el número de intercambios realizados.

21. Otro sistema de encriptación consiste en sustituir cada carácter del alfabeto por otro
decidido de antemano, pero siempre el mismo. Utilizar este método en una función
que tome como parámetros el mensaje a cifrar y una cadena con las
correspondencias ordenadas de los caracteres alfabéticos. La función devolverá un
puntero a la cadena cifrada del mensaje.

22. Se trata de encriptar un texto mediante una función de cifrado. El cifrado se realiza se
realiza cambiando todas las letras minúsculas por otras nuevas letras que recibe en
un array cifrado de caracteres; es decir de cambiar “a” por cifrado0, “b” por
cifrrado1, etc. Escribir una función que reciba un texto y lo encripte.

23. Escribir una función que reciba el texto que retorna la función del problema anterior,
debidamente encriptado, y lo transforme en el texto original. El array de cifrado es un
dato.

17
24. Utilizando estructuras elaborar un programa para mostrar la fecha y hora actual del
sistema.

25. Una criptografía es un simple mensaje codificado donde una carta es simplemente
sustituida por otra, todo el mensaje.
Por ejemplo:
Codificado : HPC PJVYMIY
Decodificado : ACM CONCURSO

En el ejemplo de arriba, H=A, P=C, C=M, J=O, V=N, Y=T, M=E y I=S. Para este
problema, usted decodificará los mensajes.

Entrada
La primera línea de entrada contiene un solo entero N, (1 ≤ N ≤ 1000) que es el
número de conjuntos de datos que siguen. Cada conjunto de datos consta de dos
líneas de entrada. La primera línea es el mensaje codificado. La segunda línea es uno
de los 26 caracteres de letras en mayúscula dando el carácter cartografía para cada
letra del alfabeto: el primer carácter da la cartografía de A, la segunda de B y así
sucesivamente. Únicamente con letras mayúsculas será utilizado.

Salida
De cada conjunto de datos, usted debe generar una línea de producción con los
siguientes valores: el conjunto de datos número como un decimal entero (inicia el
escrutinio en uno), un espacio y el descifrado mensaje.

Ejemplo de Entrada
2
HPC PJVYMIY
BLMRGJIASOPZEFDCKWYHUNXQTV

FDY GAI BG UKMY


KIMHOTSQYRLCUZPAGWJNBVDXEF

Ejemplo de Salida
1 ACM CONTEST
2 THE SKY IS BLUE

26. Implementar un programa al que se le pase el nombre de un archivo como argumento,


el cual, debe existir en el disco, y contenga un texto cualquiera formado por palabras.
El programa debe ofrecer un menú con dos opciones:
a) ordenar las palabras del texto en orden descendente
b) ordenar las palabras del texto en orden ascendente
Utilizar punteros a funciones, y funciones como argumentos.

27. Mostrar una cruz en la pantalla.

18

You might also like