• No se han encontrado resultados

EJERCICIOS RESUELTOS TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA)

N/A
N/A
Protected

Academic year: 2022

Share "EJERCICIOS RESUELTOS TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA)"

Copied!
11
0
0

Texto completo

(1)

EJERCICIOS RESUELTOS

TI7: EJERCICIOS SOBRE CICLOS (MIENTRAS QUE, HAGA MIENTRAS Y PARA)

1. Elaborar un algoritmo que encuentre el factorial de un número positivo.

Análisis:

Datos de Entrada: n Datos de Salida: fac

Proceso: Un ciclo para multiplicar n números desde 1 hasta el número que ingresó el usuario y una función que devuelva el factorial del número que ingresó el usuario.

Algoritmo:

Inicio

Entero: n, facto

Escriba:” Digite el término hasta donde desea generar el factorial ” Lea: n

facto  factorial(n)

Escriba: ”El factorial de”, n, ”es =”, facto Fin

Funcion factorial (Entero: N) Entero: con, fac1 Si (N=0) entonces

fac 1 sino

Para(con=1, N, 1) haga fac  fac * con Fpara

Finsi Retorne fac Fin_Funcion

2. Elaborar un algoritmo que dado un valor de X, determine el valor de F(X) definida por la siguiente serie:

(2)

Nota: Si X = 3 por ejemplo, debe llegar hasta el término y debería dar como resultado -2.

Análisis:

Datos de Entrada: X Datos de Salida: F(X)

Proceso: Un ciclo para sumar los términos de una serie que empieza desde 1 hasta el número que ingreso el usuario y una función que devuelva el valor de F(x) con respecto al valor que ingresó el usuario.

Algoritmo:

Inicio

Real: numx, resultado

Escriba:”Digite el valor de X, para determinar el valor de F(X) de la serie”

Lea: numx

resultado  serie(numx)

Escriba: “Para X = ”, numx, “el valor de F(X) = ”, resultado Fin

Funcion serie (Real: x)

Real: fx0, i0, fac1, ter1 Mq (i<x) haga

fxfx+ter ii+1 facfac*i

terx^i / (fac*-1^i) FMq

Retorne fx+ter Fin_Procedimiento

3. Una gasolinera presta 4 clases de servicios. Por cada servicio que preste se tienen los siguientes datos: clase de servicio prestado (valores del 1 al 4), jornada en la que se prestó el servicio (M: mañana, T: tarde) y valor del servicio. Al final del día se requiere determinar el valor producido por cada clase de servicio, el número de veces que se prestó cada servicio, el servicio que más se prestó y si éste se prestó más en la mañana o en la tarde. Elabore un algoritmo para resolver este problema.

(3)

Análisis:

Datos de Entrada: claseser, jornada, precio

Datos de Salida: totals1, totals2, totals3, totals4, nums1, nums2, nums3, nums4, conam1, conam2, conam3,conam4, conpm1, conpm2, conpm3, conpm4

Proceso:

- Un ciclo cualitativo para sumar el valor total de cada tipo de servicio y contar el número de veces que se prestó cada servicio.

- Un procedimiento que muestre el valor total de cada tipo de servicio, la cantidad de veces que se prestó cada servicio y que pueda mostrar cuál fue el servicio que más se prestó y en cuál jornada.

Algoritmo:

Inicio

Entero: claseser Caracter: jornada Real: precio

Escriba:”Digite el tipo de servicio prestado (valores del 1 al 4), la jornada en que se prestó el servicio M: mañana, T: tarde, y el valor del servicio”

Lea: claseser, jornada, precio gasolinera (claseser,jornada,precio) Fin

Procedimiento gasolinera (Entero: servicio, Caracter: jorna, Real: valor)

Entero: nums10, nums20, nums30, nums40, conam10, conam20, conam30,conam40, conpm10, conpm20, conpm30, conpm40 Real: totals10, totals20, totals30, totals40

Haga

SeleccionCaso (servicio)

Caso 1: totals1 totals1 + valor nums1 nums1 + 1 SeleccionCaso (jorna)

Caso ‘M’: Caso ‘m’: conam1 conam1 + 1 salga

Caso ‘T’: Caso ‘t’: conpm1  conpm1 + 1 salga

Otro_Caso: Escriba: “Jornada Incorrecta”

Fcaso salga

Caso 2: totals2 totals2 + valor nums2 nums2 + 1

(4)

SeleccionCaso (jorna)

Caso ‘M’: Caso ‘m’: conam2 conam2 + 1 salga

Caso ‘T’: Caso ‘t’: conpm2  conpm2 + 1 salga

Otro_Caso: Escriba: “Jornada Incorrecta”

Fcaso salga

Caso 3: totals3 totals3 + valor nums3 nums3 + 1 SeleccionCaso (jorna)

Caso ‘M’: Caso ‘m’: conam3 conam3 + 1 salga

Caso ‘T’: Caso ‘t’: conpm3  conpm3 + 1 salga

Otro_Caso: Escriba: “Jornada Incorrecta”

Fcaso salga

Caso 4: totals4 totals4 + valor nums4 nums4 + 1 SeleccionCaso (jorna)

Caso ‘M’: Caso ‘m’: conam4 conam4 + 1 salga

Caso ‘T’: Caso ‘t’: conpm4  conpm4 + 1 salga

Otro_Caso: Escriba: “Jornada Incorrecta”

Fcaso salga

Otro_Caso: Escriba: “Clase de servicio incorrecto”

Fin_caso

Escriba:”Digite el tipo de servicio prestado (valores del 1 al 4), la jornada en que se prestó el servicio M: mañana, T: tarde. Y el valor del servicio”

Lea: servicio, jorna, valor Mq((servicio >0)˄( servicio <5))

Escriba: “El valor producido por el servicio 1 es: ”, totals1,

“El valor producido por el servicio 2 es: ”, totals2,

“El valor producido por el servicio 3 es: ”, totals3,

(5)

“El valor producido por el servicio 4 es: ”, totals4 Escriba: “El número de veces que se prestó cada servicio es:

Servicio 1:”,nums1,

“Servicio 2:”, nums2,

“Servicio 3:”, nums3,

“Servicio 4:”, nums4

Si((nums1>nums2)˄(nums1>nums3)˄(nums1>nums4))ent Escriba: “El servicio que más se prestó fue el servicio 1”

Si(conam1>conpm1)ent

Escriba: ”Y se prestó más en la jornada de la mañana”

sino

Escriba: “Y se prestó más en la jornada de la tarde”

Fin_si sino

Si((nums2>nums3)˄(nums3>nums4))ent

Escriba: “El servicio que más se prestó fue el servicio 2”

Si(conam2>conpm2)ent

Escriba: ”Y se prestó más en la jornada de la mañana”

sino

Escriba: “Y se prestó más en la jornada de la tarde”

Fin_si sino

Si(nums3>nums4)ent

Escriba: “El servicio que más se prestó fue el servicio 3”

Si(conam3>conpm3)ent

Escriba:”Y se prestó más en la jornada de la mañana”

sino

Escriba: “Y se prestó más en la jornada de la tarde”

Fin_si Sino

Escriba: “El servicio que más se prestó fue el servicio 4”

Si(conam4>conpm4)ent

Escriba: ”Y se prestó más en la jornada de la mañana”

sino

Escriba: “Y se prestó más en la jornada de la tarde”

Fin_si Fin_si Fin_si

Fin_si Fin_Procedimiento

(6)

4. En las elecciones se tienen 4 candidatos. Una persona elige su voto de acuerdo al número que indique al candidato: 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco. Decir cuál candidato fue el ganador, el número de votos de cada uno y además el total de personas que votaron.

Análisis:

Datos de Entrada: votacion

Datos de Salida: con1, con2, con3, con4, con5, total

Proceso: Un ciclo cualitativo para sumar el número de votos que obtiene cada candidato y un procedimiento que muestre el número de votos que obtuvo cada candidato y cuál fue el candidato ganador.

Algoritmo:

Inicio

Entero: votacion

Escriba:” Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco”

Lea: votacion elecciones(votacion) Fin

Procedimiento elecciones(entero:voto)

Entero: con10, con20, con30, con40, con50, total0, Mq((voto>0)˄(voto<6))haga

SeleccionCaso(voto)

Caso 1: con1con1+1 salga

Caso 2: con2con2+1 salga

Caso 3: con3con3+1 salga

Caso 4: con4con4+1 salga

Otro_Caso: con5con5+1 Fin_caso

Escriba:”Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco”

Lea: voto FMq

total  con1+con2+con3+con4+con5

Si((con1>cont2)˄(con1>con3)˄(con1>con4)˄(con1>con5))ent Escriba: ”El candidato ganador es: Pedro”

sino

Si((con2>con3)˄(con2>con4)˄(con2>con5))ent Escriba: ”El candidato ganador es: Pablo”

sino

Si( (con3>con4)˄(con3>con5))ent

Escriba: ”El candidato ganador es: Martha”

(7)

sino

Si( con4>con5)ent

Escriba: ”El candidato ganador es: Juan”

sino

Si(con5>con4)ent

Escriba: ”ganó el voto en blanco”

sino

Escriba:”Empate técnico”

Fin_si Fin_si

Fin_si Fin_si

Fin_si

Escriba:”el número de votos que obtuvo cada candidato es:

1.Pedro: ”,con1,”votos 2.Pablo: ”,con2,”votos 3.Martha: ”,con3,”votos 4.Juan: ”,con4,”votos

5.voto en blanco”,con5,”votos

Y el número total de votantes es de: ”,total Fin_Procedimiento

Prueba de escritorio:

Inicio

votacion

Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco votacion4

elecciones(4)

Procedimiento elecciones(voto4) con10

con20 con30 con40 con50 total0

Mq((4>0)˄(4<6)) SeleccionCaso(4)

Caso 4: con40+11 salga

Fin_caso

Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco

Voto1 Mq((1>0)˄(1<6))

SeleccionCaso(1)

Caso 1: con10+11 salga

(8)

Fin_caso

Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco

Voto4 Mq((4>1)˄(4<6))

SeleccionCaso(4)

Caso 4: con41+12 salga

Fin_caso

Digite su voto 1. Pedro 2. Pablo 3. Martha 4. Juan y 5. Voto en Blanco

Voto0 Mq((0>0) ˄(0<6)) FMq

total1+0+0+2+03

Si((1>0)˄(1>0)˄(1>2)˄(1>0))ent Sino

Si((0>0)˄(0>2) ˄(0>0))ent Sino

Si((0>2)˄(0>0))ent Sino

Si(2>0)ent

El candidato ganador es: Juan Fin_si

Fin_si Fin_si

Fin_si

El número de votos que obtuvo cada candidato es:

1.Pedro: 1 votos 2.Pablo: 0 votos 3.Martha: 0 votos 4.Juan: 2 votos

5.voto en blanco 0 votos

Y el número total de votantes es de: 3 Fin_procedimiento

Fin

6. Generar las tablas de multiplicar de P hasta Q, tales que P <= Q, caso contrario generarlas desde Q hasta P.

Análisis:

Datos de Entrada: p,q Datos de Salida: con, n

(9)

Proceso: Un ciclo para multiplicar cada uno de los números desde un numero P hasta un numero Q o viceversa con cada uno de los números del 1 al 10 y un procedimiento que muestre las tablas de multiplicar obtenidas desde un numero P hasta un numero Q o viceversa.

Algoritmo:

Inicio

Entero:p,q

Escriba: ”Ingrese dos números y le muestro las tablas de multiplicar desde el número

menor hasta el mayor”

Lea:p,q tablas(p,q) Fin

Procedimiento tablas(Entero:P,Q) Entero:con,n1

Si(P<=Q)ent

Escriba:”las tablas de multiplicar de ”,P,”a”,Q,”son:”

Para(con=P,Q,1)haga Para(n=1,10,1)

Escriba: “”,con,”*”,n,”=”,con*n Fpara

Fpara Sino

Escriba:”las tablas de multiplicar de ”,Q,”a”,P,”son:”

Para(con=Q,P,1)haga Para(n=1,10,1)

Escriba: “”,con,”*”,n,”=”,con*n Fpara

Fpara Fin_si

Fin_Procedimiento

(10)

Prueba de escritorio:

Inicio P Q

Ingrese dos números y le muestro las tablas de multiplicar desde el número menor hasta

el mayor p1q2 tablas(1,2)

Procedimiento tablas(P1,Q2) con

n

Si(1<2)ent

las tablas de multiplicar de 1 a 2 son:

para (con=1,2,1) para(n=1,10,1)

1*1=1 para(n=2,10,1)

1*2=2 para(n=3,10,1)

1*3=3 para(n=4,10,1)

1*4=4 para(n=5,10,1)

1*5=5 para(n=6,10,1)

1*6=6 para(n=7,10,1)

1*7=7 para(n=8,10,1)

1*8=8 para(n=9,10,1)

1*9=9 para(n=10,10,1)

1*10=10 Fin_para

para(con=2,2,1) para(n=1,10,1)

2*1=2 para(n=2,10,1)

2*2=4 para(n=3,10,1)

2*3=6 para(n=4,10,1)

2*4=8 para(n=5,10,1)

(11)

2*5=10 para(n=6,10,1) 2*6=12 para(n=7,10,1) 2*7=14 para(n=8,10,1) 2*8=16 para(n=9,10,1) 2*9=18 para(n=10,10,1)

2*10=20 Fin_para

Fin_para Fin_si Fin_Procedimiento Fin

Referencias

Documento similar