Top Banner
Elaborado por: Carlos Avilés Gáleas 20131014046 SOLUCIONARIO A EJERCICIOS DE PROGRAMACION I ELABORADO POR: CARLOS AVILES GALEAS 1. Realice la Prueba de escritorio para el siguiente programa con
24

ALGORITMO RESUELTOS EN PSEINT

Apr 12, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

SOLUCIONARIO A

EJERCICIOS DE

PROGRAMACION I

ELABORADO POR:

CARLOS AVILES GALEAS

1. Realice la Prueba de escritorio para el siguiente programa con

Page 2: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

𝑛 = 347, 1455, 2781

Algoritmo nbilletes

Escribir "Ingrese la Cantidad de dinero, n";

Leer n

Si n>=100 Entonces

nb100<-n/100-(n%100)/100

n<-n-nb100*100

FinSi

Si n>=50

nb50<-n/50-(n%50)/50

n<-n-nb50*50

FinSi

Si n>=20

nb20<-n/20-(n%20)/20

n<-n-nb20*20

FinSi

Si n>=10

nb10<-n/10-(n%10)/10

n<-n-nb10*10

FinSi

Si n>=5

nb5<-n/5-(n%5)/5

n<-n-nb5*5

FinSi

si n>=1

nb1<-n

FinSi

Escribir nb100, "billetes de 100"

Escribir nb50, "billetes de 50"

Escribir nb20, "billetes de 20"

Escribir nb10, "billetes de 10"

Escribir nb5, "billetes de 5"

Escribir nb1, "billetes de 1"

FinAlgoritmo

Page 3: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

Solución

RAM 𝒏 = 𝟑𝟒𝟕

PROCESO

1. Si 347 >= 100 (V)

nb100 = 347/100 − (347%100)/100 ⟹ 3

n = 347 − 3 ∗ 100 ⟹ 47

2. Si 47 >= 50 (F)

3. Si 47 >= 20 (V)

nb20 = 47/20 − (47%20)/20 ⟹ 2

n = 47 − 2 ∗ 20 ⟹ 7

4. Si 7 >= 10 (F)

5. Si 7 >= 5 (V)

nb5 = 7/5 − (7%5)/5 ⟹ 1

n = 7 − 1 ∗ 5 ⟹ 2

6. Si 2 >= 1 (V)

nb1 = 2

PANTALLA

n nb100 nb50 nb20 nb10 nb5 nb1

𝟑𝟒𝟕 3 0 2 0 1 2

𝟒𝟕

𝟕

𝟐

Page 4: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

RAM 𝒏 = 𝟏𝟒𝟓𝟓

PROCESO

1. Si 1455 >= 100 (V)

nb100 = 1455/100 − (1455%100)/100 ⟹ 14

n = 1455 − 14 ∗ 100 ⟹ 55

2. Si 55 >= 50 (V)

nb50 = 55/50 − (55%50)/50 ⟹ 1

n = 55 − 1 ∗ 50 ⟹ 5

3. Si 5 >= 20 (F)

4. Si 5 >= 10 (F)

5. Si 5 >= 5 (V)

nb5 = 5/5 − (5%5)/5 ⟹ 1

n = 5 − 1 ∗ 5 ⟹ 0

6. Si 0 >= 1 (F)

PANTALLA

n nb100 nb50 nb20 nb10 nb5 nb1

𝟏𝟒𝟓𝟓 14 1 0 0 1 0

𝟓𝟓

𝟓

𝟎

Page 5: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

RAM 𝒏 = 𝟐𝟕𝟖𝟏

PROCESO

1. Si 2781 >= 100 (V)

nb100 = 2781/100 − (2781%100)/100 ⟹ 27

n = 2781 − 27 ∗ 100 ⟹ 81

2. Si 81 >= 50 (V)

nb50 = 81/50 − (81%50)/50 ⟹ 1

n = 81 − 1 ∗ 50 ⟹ 31

3. Si 31 >= 20 (V)

nb20 = 31/20 − (31%20)/20 ⟹ 1

n = 31 − 1 ∗ 20 ⟹ 11

4. Si 11 >= 10 (V)

nb10 = 11/10 − (11%10)/10 ⟹ 1

n = 11 − 1 ∗ 10 ⟹ 1

5. Si 1 >= 5 (F)

6. Si 1 >= 1 (V)

nb1 = 1

PANTALLA

n nb100 nb50 nb20 nb10 nb5 nb1

𝟐𝟕𝟖𝟏 27 1 1 1 0 1

𝟖𝟏

𝟑𝟏

𝟏𝟏

1

Page 6: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

2. Se requiere determinar cuál de tres cantidades proporcionadas es la menor. Realizar

su respectivo algoritmo y representarlo mediante un diagrama de flujo y un

seudocódigo.

VARIABLES

ALGORITMO

Algoritmo cantidad_menor

Escribir " Ingrese el primer número: "

Leer A

Escribir " Ingrese el segundo número: "

Leer B

Escribir " Ingrese el tercer número: "

Leer C

Si A < B Entonces

Si A < C Entonces

m = A

Sino

m = C

Fin Si

Sino

Si B < C Entonces

m = B

Sino

m = C

Fin Si

Fin Si

Escribir " El menor es:", m

FinAlgoritmo

DICCIONARIO DESCRIPCION

A Primer numero B Segundo numero C Tercer numero m La cantidad menor

Page 7: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 8: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

3. Construya una prueba de escritorio para el siguiente Seudocódigo

Algoritmo NumDias

Escribir "Ingrese Un Año"

Leer a

Escribir "Ingrese Un Mes"

Leer m

Si m=1 o m=3 o m=5 o m=7 o m=8 o m=10 o m=12 Entonces

Escribir "El mes tiene 31 días"

Sino

Si m=4 o m=6 o m=9 o m=11 Entonces

Escribir "El mes tiene 30 días"

Sino

Si m=2 Entonces

Si(a%4=0) y (a%100!=0) y (a%400!=0) Entonces

Escribir "El mes tiene 29 días"

Sino

Escribir "El mes tiene 28 días"

FinSi

FinSi

FinSi

FinSi

FinAlgoritmo

Page 9: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

RAM

PROCESO

1. 2 = 1⏟ F

o 2 = 3⏟ F

o 2 = 5⏟ F

o 2 = 7⏟ F

o 2 = 8⏟ F

o 2 = 10⏟ F

o 2 = 12⏟ F

2. 2 = 4⏟ F

o 2 = 6⏟ F

o 2 = 9⏟ F

o 2 = 11⏟ F

3. 2 = 2⏟ V

Si(2012%4 = 0)⏟ 0=0 (V)

y (2012%100! = 0)⏟ 12≠0 (V)

y (2012%400! = 0)⏟ 12≠0 (V)

Entonces

Escribir "El mes tiene 29 días

PANTALLA

a m

𝟐𝟎𝟏𝟐 2

Page 10: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

RAM

PROCESO

1. 𝐒𝐢 5 = 1 ⏟

F

𝐨 5 = 3⏟ F

𝐨 5 = 5⏟ V

𝐨⋯ Entonces

Escribir "El mes tiene 31 días"

PANTALLA

RAM

PROCESO

1. 9 = 1⏟ F

∨ 9 = 3⏟ F

∨ 9 = 5⏟ F

∨ 9 = 7⏟ F

∨ 9 = 8⏟ F

∨ 9 = 10⏟ F

∨ 9 = 12⏟ F

2. 9 = 4⏟ F

o ∨ 9 = 6⏟ F

∨ 9 = 9⏟ V

o⋯

Escribir "El mes tiene 30 días"

a m

𝟐𝟎𝟏𝟕 5

a m

𝟐𝟎𝟏𝟕 5

a m

𝟐𝟎𝟏𝟕 5

a m

𝟐𝟎𝟏𝟓 9

Page 11: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

4. “El náufrago satisfecho” ofrece hamburguesas sencillas, dobles y triples, las cuales tienen un costo de

$20.00, $25.00 y $28.00 respectivamente. La empresa acepta tarjetas de crédito con un cargo de 5 % sobre

la compra. Suponiendo que los clientes adquieren sólo un tipo de hamburguesa, realice un algoritmo para

determinar cuánto debe pagar una persona por N hamburguesas. Represéntelo mediante diagrama de flujo,

y pseudocódigo.

DIAGRAMA DE FLUJO

Page 12: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

ALGORITMO

Algoritmo N_HAMBURGUESAS

Escribir "Que tipo de hamburguesa desea?";

Leer tipo; // puede ser 1, 2 o 3.

Escribir "Cuantas desea?";

Leer cant; // puede ser n cantidad.

Si (tipo = 1) Entonces

pagar<-(cant*20)+((cant*20)*0.05);

Escribir "Su total a pagar es: ", pagar;

Sino Si (tipo = 2) Entonces

pagar<-(cant*25)+((cant*25)*0.05);

Escribir "Su total a pagar es: ", pagar;

Sino Si (tipo = 3) Entonces

pagar<-(cant*28)+((cant*28)*0.05);

Escribir "Su total a pagar es: ", pagar;

Sino

Escribir "Ingrese un tipo de hamburguesa valido";

FinSi

FinSi

FinSi

FinAlgoritmo

Page 13: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

5. “Fábricas “El cometa” produce artículos con claves (1, 2, 3, 4, 5 y 6). Se requiere un algoritmo para

calcular los precios de venta, para esto hay que considerar lo siguiente:

Costo de producción = materia prima + mano de obra + gastos de fabricación.

Precio de venta = costo de producción + 45 % de costo de producción.

El costo de la mano de obra se obtiene de la siguiente forma: para los productos con clave 3 o 4 se

carga 75 % del costo de la materia prima; para los que tienen clave 1 y 5 se carga 80 %, y para los

que tienen clave 2 o 6, 85 %.

Para calcular el gasto de fabricación se considera que si el artículo que se va a producir tiene claves

2 o 5, este gasto representa 30 % sobre el costo de la materia prima; si las claves son 3 o 6,

representa 35 %; si las claves son 1 o 4, representa 28 %. La materia prima tiene el mismo costo

para cualquier clave.

Represente mediante el diagrama de flujo y el pseudocódigo.

ALGORITMO

Algoritmo EL_COMETA

Escribir "Introduzca una clave: ";

Leer clave; // puede ser: 1, 2, 3, 4,5 o 6

Escribir "Introduzca el costo de la materia prima: ";

Leer MATPRIMA

Si (clave = 3) o (clave = 4) Entonces

MOBRA = MATPRIMA * 0.75

Sino Si (clave = 1) o (clave = 5) Entonces

MOBRA= MATPRIMA * 0.80

Sino

MOBRA = MATPRIMA * 0.85

FinSi

Si (clave = 2) o (clave = 5) Entonces

GASTOFABRICACION = MATPRIMA * 0.30

Sino

Si (clave = 3) o (clave = 6) Entonces

GASTOFABRICACION = MATPRIMA * 0.35

sino

GASTOFABRICACION= MATPRIMA * 0.28

FinSi

FinSi

CPRODUCCION = MATPRIMA + MOBRA + GASTOFABRICACION

PRECIOVENTA = CPRODUCCION + CPRODUCCION * 0.45

Escribir "El costo de producción es ", "Lps. ", CPRODUCCION

Escribir "El precio de venta es ", "Lps. ", PRECIOVENTA

FinSi

FinAlgoritmo

Page 14: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 15: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

6. El banco “Bandido de peluche” desea calcular para uno de sus clientes el saldo actual, el pago

mínimo y el pago para no generar intereses. Los datos que se conocen son: saldo anterior del

cliente, monto de las compras que realizó y el pago que depositó en el corte anterior. Para calcular

el pago mínimo se debe considerar 15% del saldo actual, y para no generar intereses corresponde

85% del saldo actual, considerando que este saldo debe incluir 12% de los intereses causados por

no realizar el pago mínimo y $200 por multa por el mismo motivo. Realice el algoritmo

correspondiente y represéntelo mediante el diagrama de flujo y pseudocódigo.

ALGORITMO

Algoritmo Bandido_de_peluche

Escribir "Ingrese el valor de monto de las compras:";

Leer monto_de_las_compras;

Escribir "Ingrese el valor de pago del corte actual:";

Leer pago_del_corte_actual;

Escribir "Ingrese el valor de pago del corte anterior:";

Leer pago_del_corte_anterior;

Escribir "Ingrese el valor de saldo anterior:";

Leer saldo_anterior;

saldo_actual <- monto_de_las_compras-saldo_anterior-

pago_del_corte_anterior;

Si saldo_actual>0 Entonces

pago_mínimo <- saldo_actual*0.15;

SiNo

pago_mínimo <- 0;

FinSi

Si saldo_actual>0 Entonces

pago_para_no_generar_intereses <- saldo_actual*0.85;

SiNo

pago_para_no_generar_intereses <- 0;

FinSi

Si pago_del_corte_actual<pago_para_no_generar_intereses

Entonces

intereses <- saldo_actual*0.12+200;

SiNo

intereses <- 0;

FinSi

Escribir "Valor de intereses: ", intereses;

Escribir "Valor de pago mínimo: ", pago_mínimo;

Escribir "Valor de pago para no generar intereses: ",

pago_para_no_generar_intereses;

Escribir "Valor de saldo actual: ", saldo_actual;

FinAlgoritmo

Page 16: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 17: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

7. El Se requiere un algoritmo para determinar cuánto ahorrará una persona en un año, si al final de

cada mes deposita variables cantidades de dinero; además, se requiere saber cuánto lleva

ahorrado cada mes. Realice el diagrama de flujo, el pseudocódigo

ALGORITMO

Algoritmo AHORRO_AÑO

AHORROMES = 0

MES = 1

Mientras AHORROMES <=12

Escribir "Ingrese la cantidad que ahorrará: "

Leer Cantidad

AHORROMES = AHORROMES +Cantidad

MES = Mes + 1

Escribir "El ahorro del mes: ", MES, "es",

AHORROMES

FinMientras

Escribir "El ahorro final es:", AHORROMES

FinAlgoritmo

Page 18: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 19: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

8. Realice un algoritmo para generar N elementos de la sucesión de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13,…). Realice el diagrama de flujo, el pseudocódigo

ALGORITMO

Algoritmo Sucesión_de_Fibonacci

Escribir "INGRESE UN NUMERO";

Leer N// Números de elementos de la serie

A<-0 // Valor inicial

B<-1 //Valor inicial

Escribir A

Escribir B

M = 1//Contador Ciclo

Mientras M <= (N - 2)

C = A + B //C: Valor generado

Escribir C

A = B

B = C

M = M + 1

FinMientras

FinAlgoritmo

Page 20: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 21: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

9. Realice un algoritmo y represéntelo mediante un diagrama de flujo para obtener una función exponencial, la

cual está dada por:

𝑒𝑥 = 1 +𝑥

1!+𝑥2

2!+𝑥3

3!+ ⋯+

𝑥𝑛

𝑛!

Utilizando N elementos de la sumatoria.

ALGORITMO

Algoritmo FUNCION_EXPONENCIAL

Escribir "Escriba los Valores de X y de N: "

Leer x, N

i = 0

ex = 0

Mientras i<=N

factorial = 1

j=i

Mientras j > 0

factorial = factorial * j

j = k - 1

FinMientras

ex = ex + (x^2)/factorial

i=i+1

FinMientras

Escribir "La solución es: " , ex

FinAlgoritmo

Page 22: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

DIAGRAMA DE FLUJO

Page 23: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

10. Una población de bacterias crece diariamente de acuerdo al siguiente patrón:

Si existen menos de 700 bacterias, la población se triplica

Si existen entre 700 y 6.000 bacterias, la población disminuye su tasa de crecimiento a un tercio del

existente cada día

Si hay más de 6.000 y menos de 8.000, la población entra en crisis y empieza a decrecer a una tasa

de 1/32 diario

Si hay más de 8.000, la población se estabiliza y crece a una tasa de 1/78 diario

ALGORITMO

algoritmo poblacion_de_bacteria

// Inicializar variables

bacteria <- 0;

tasa_de_crecimiento <- 0;

dia <- 1;

dias <- 0;

i <- 0;

// Pedir datos al usuario

mientras (bacteria <= 0) hacer

escribir "Ingrese la población de bacterias";

leer bacteria;

si (bacteria <= 0) Entonces

escribir "Ingresa una cantidad de bacterias mayor a 0";

esperar tecla;

limpiar pantalla;

FinSi

finmientras

mientras (dias <= 0) hacer

escribir "Ingrese la cantidad de dias a analizar";

leer dias;

si (dias <= 0) Entonces

escribir "Ingresa una cantidad de dias mayor a 0";

esperar tecla;

limpiar pantalla;

FinSi

finmientras

limpiar pantalla;

para i<-1 hasta dias con paso 1 hacer

escribir "Día ", dia;

escribir "Bacterias al inicio del dia: ", bacteria;

si (bacteria < 700) entonces

tasa_de_crecimiento <- 3;

bacteria <- bacteria * tasa_de_crecimiento;

escribir "Las bacterias se triplicaron";

dia <- dia + 1;

sino

si (bacteria >= 700 Y bacteria <=6000) entonces

tasa_de_crecimiento <- 1/3;

escribir "La tasa de crecimiento disminuyo a ", (bacteria *

tasa_de_crecimiento), "(1/3) bacterias diarias";

bacteria <- bacteria + ( bacteria * tasa_de_crecimiento);

dia <- dia + 1;

Page 24: ALGORITMO RESUELTOS EN PSEINT

Elaborado por: Carlos Avilés Gáleas 20131014046

sino

si(bacteria > 6000 Y bacteria < 8000) Entonces

tasa_de_crecimiento <- 1/32;

escribir "La población va a decrecer a una tasa de ",

tasa_de_crecimiento;

bacteria <- Bacteria - (bacteria * tasa_de_crecimiento);

dia <- dia + 1;

sino

si (bacteria > 8000) entonces

tasa_de_crecimiento <- 1/78;

escribir "La poblacion se estabilizó, y crecera a una

tasa de ", tasa_de_crecimiento;

bacteria <- bacteria + (bacteria *

tasa_de_crecimiento);

dia <- dia + 1;

finsi

finsi

finsi

finsi

escribir "Bacterias al final del día: ", bacteria;

escribir "";

finpara

finalgoritmo

DIAGRAMA DE FLUJO

**Ver su diagrama resuelto en la carpeta del ejercicio ·10