algoritmos terminados

27
UNIVERSIDAD POLITÉCNICA SALESIANA Quito – Ecuador TRABAJO DE PROGRAMACIÓN Tema: Realizar los algoritmos en DFD y pseudocódigo Nombre: Paul Ruales Nivel: 3ro “A” Mecánica

description

algoritmos

Transcript of algoritmos terminados

UNIVERSIDAD POLITCNICA SALESIANAQuito EcuadorTRABAJO DE PROGRAMACIN

Tema: Realizar los algoritmos en DFD y pseudocdigo

Nombre:Paul Ruales

Nivel: 3ro A Mecnica

Fecha: 16 de noviembre de 20131. Desarrolla un programa que ayude a una cajera a identificar el nmero de billetes que se necesitan de cada una de las siguientes denominaciones 100, 50, 20, 10,5, 1 para una cantidad dada. Ejemplo si la cantidades 1,373 se necesitan 13 billetes de $100, 1 billetes de $50, 1 billetes de $20 y 3 de $1Anlisis Entradas: X Salidas: C1, C2, C3, C4, C5Solucin: Pedir que ingrese la cantidad de billetes Leer (x)Dividir la cantidad ingresada para 100 y el entero es los nmeros de billetes de 100 Restar x C1*Y1 y a eso dividirle para 50 y el entero es la cantidad de billetes de 50Restar x C2*Y2 y a eso dividirle para 20 y el entero es la cantidad de billetes de 20Restar x C3*Y3 y a eso dividirle para 10 y el entero es la cantidad de billetes de 10Restar x C4*Y4 y a eso dividirle para 1 y el entero es la cantidad de billetes de 1

xY Y1Y2Y3Y4Y5C1C2C3C4C5C6

3598100502010513512014

1010050201051000100

2. Realice un algoritmo en pseudocdigo que evalu la funcin : y = 5x2 - 3x + 22.1. Anlisis Entradas: X Salidas: Y Solucin: Escribir ingrese el valor de xY = (5*x*x)-(3*x)+2Escribir el valor de Y es Y

Algoritmo `evaluar_funcinVarX: realY: real

Inicio Escribir (Ingrese los valores de x para la siguiente funcin y = 5x^2-3x+2) Leer(x) Y = (5*x*x)-(3*x)+2 Escribir (`el valor de y es: y)Fin

xY = 5*x*x-3*x+2

3Y = 38

8Y = 298

3. Se tiene un terreno rectangular y se desea saber el costo de sembrar pasto en l, considerando que cada metro cuadrado cuesta 35.40 USD. Adems se pide determinar qu cantidad de alambre se necesitar para cercarlo sin tomar en cuenta la altura de la cerca. Elaborar el algoritmo correspondiente que muestre tales totales 3.1. Anlisis Entradas: X, YSalidas: Z, A Solucin: Pedir que ingrese el largo del terrenoPedir que ingrese el ancho del terreno Z = 35.40*(x*y)A = 2*x + 2*y Escribir el costo de siembra es: zEscribir se necesitan a unidades

xyZ= 35.40*(x*y)A = 2*x + 2*y

20050Z= 354000A = 500

40035Z= 495600A = 870

4. Calcular el salario neto de un empleado. El salario mensual es 850 USD, se tiene que ingresar el nmero de horas extras trabajadas, el costo por hora es 45% de la hora normal. Los descuentos son: el 9.35% del IESS, y el 10 % del sueldo total para la asociacin de empleados 4.1. Anlisis Entradas: YSalidas: S = sueldo neto Solucin: Escribir ingrese el nmero de horas extras Calcular el costo de hora extra Calcular el salario extra por todas las horasCalcular el descuento por concepto de IESSCalcular el sueldo a recibir Escribir su sueldo a recibir es s

Algoritmo `salario_empleadoVar X, Y, Z, W, S, M: real Inicio Escribir (`ingrese el nmero de horas extras) Leer (x) Y = (850/240) M = ((45*y)/100)*x Z = (9,35*850)/100 W = m z +850 S=w -w/10 Escribir (El sueldo a recibir es: $ s)Fin xyzwsm

203,5479.48802,39722.1531.87

503,5479.48850.17765.1579.65

5. Hacer un algoritmo que calcule el n-esimo trmino de la serie de fibonacci definida por : A1=1 A2=2 A3= A1+A2 A4= A2+A3 A5= A3+A4 . An= An-2+An-1 (Para n > 3)5.1. Anlisis Entradas: xSalidas: B Solucin: Inicio Pedir el nmero que desee que calcule Realizar un laso Iniciar los dos primeros nmeros con 1 y 2 respectivamenteRepetir el laso cambiando los valores Realice esta misma accin hasta que la condicin se termineEscribir el nmero que corresponda al n-ensimo trmino solicitado Fin

xabcn

51232358358

345

31

2333

6. En una empresa cada empleado debe teclear un cdigo identificador de 3 cifras en la entrada. Escribirun programa que muestre por pantalla la categora del empleado teniendo en cuenta que:a . Si el cdigo es divisible por 2, por 3 y por 5, la categora del empleado es Director generalb. Si el cdigo es divisible por 3 y por 5 pero no por 2, la categora del empleado es Directivoc. Si el cdigo es divisible por 2, pero no por 3 ni por 5, la categora del empleado es Staffd. Si el cdigo no es divisible por 2, ni por 3 ni por 5, la categora del empleado es Seguridad6.1. Anlisis Entradas: X ( Cdigo del empleado) Salidas: Mensaje con la categora que pertenece Solucin: Inicio Pedir que ingrese su cdigo Si es divisible por 2, por 3 y por 5, escribir la categora del empleado es Director generalSi es divisible por 3 y por 5 pero no por 2, escribir la categora del empleado es DirectivoSi es divisible por 2, pero no por 3 ni por 5, escribir la categora del empleado es StaffSi no es divisible por 2, ni por 3 ni por 5, escribir la categora del empleado es Seguridad Fin Algoritmo Categoras_empleados VarX InicioEscribir (ingrese su cdigo de tres cifras)Leer (x)Si (xmod 2)= 0 Entonces Si (xmod 3)= 0 entoncesSi (xmod 5)= 0 entonces Escribir (Su categora es Director general)Caso_contrario Escribir (No tiene categora)Caso_contrarioSi (xmod 5)= 0 entonces Escribir (No tiene categora)Caso_contrarioEscribir (La categora es Staff)Caso_contrarioSi (xmod 3)= 0 entoncesSi (xmod 5)= 0 entonces Escribir (La categora del empleado es, Directivo) Caso_contrario Escribir (No tiene categora)Caso_contrario Si (xmod 5)= 0 entoncesEscribir (No tiene categora)Caso_contrarioEscribir (La categora del empleado es, seguridad)Fin xXmod3 = 0Xmod5=0Xmod2 = 0Mensaje

480480mod3 = 0480mod5 = 0Xmod2=0Director general

338338mod3 = 2338mod5=3338mod2=0Staff

7. Se dispone de un cierto nmero de valores, de los cuales el ltimo es el 999 y se desea determinar el valor mximo de las medias correspondientes a parejas de nmeros sucesivos. Hacer el algoritmo correspondiente6.1. Anlisis Entradas: X, m, y, zSalidas: Mensaje con la categora que pertenece Solucin: Inicio Laso Inicio Pedir que ingrese un nmero Leer (x)Pedir que ingrese un nmero Leer (y)Sumar los dos nmeros ingresados Comparar el nuevo nmero con el anteriorAuxiliar tiene que ser mayor de esos dos nmeros ingresados Si x es igual a 999 Fin laso Imprimir el nmero mayor y dividirlo para dos Fin

xymz

3010400

40

25255050

1001050

99950/2

8. Solicitar al usuario una fecha (dd: mm: aaaa) y comprobar si es correcta. Para que una fecha sea correcta es necesario:El ao debe ser mayor que cero.El mes debe estar entre 1 y 12Dependiendo del mes que sea, el da debe estar dentro de los lmites vlidos. Los meses que tienen31 das son 1, 3, 5, 7, 8, 10 y 12. Los meses de 30 das son 4, 6, 9 y 11. El mes de 28 das es 2Entradas: X, m, y, z: entero Salidas: Mensaje con fecha correcta o incorrecta Solucin: Inicio Pedir que ingrese un ao Leer (x)Si x es igual a cero escribir la fecha es incorrecta Pedir que ingrese el mes Leer (y)Si esta fecha no est en el intervalo de 1 12 escribir la fecha es incorrectaPedir que ingrese el daLeer (z)Si y es igual a 1, 3, 5, 7, 8, 10 y 12 y si z no est en el intervalo de 1- 30y si y es igual 4, 6, 9 y 11 y si z no est en el intervalo de 1 30, y si y es igual a dos y z no est en el intervalo de 1 - 28 escribir la fecha es incorrectaSi la fecha est fuera de ese rango escribir la fecha es correcta Fin

Algoritmo fecha_correctaVar X Y Z

InicioEscribir (Ingrese el ao) Leer (x) Si (X =0) entonces Escribir (La fecha ingresada es incorrecta) Escribir (Ingrese un mes)Leer (y)En caso de y hacer Caso y< 1: Escribir (La fecha ingresada es incorrecta) Caso y > 12: Escribir (La fecha ingresada es incorrecta) Escribir (Ingrese un da) Leer (z)Caso y = 1: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 2: Si (z28) Escribir (La fecha ingresada es incorrecta) Caso y = 3: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 4: Si (z30) Escribir (La fecha ingresada es incorrecta) Caso y = 5: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 6: Si (z30) Escribir (La fecha ingresada es incorrecta) Caso y = 7: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 8: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 9: Si (z30) Escribir (La fecha ingresada es incorrecta) Caso y = 10: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso y = 11: Si (z30) Escribir (La fecha ingresada es incorrecta) Caso y = 12: Si (z31) Escribir (La fecha ingresada es incorrecta) Caso_contrario Escribir (La fecha ingresada es correcta)xyzMensaje

0La fecha es incorrecta

200132La fecha es incorrecta

205228La fecha es correcta

Fin 9. Un ao es bisiesto si es divisible por 4 y no es por 100, o si es divisible por 400. Escribe un programa que lea un ao y devuelva si es bisiesto o noEntradas: X Salidas: Mensaje El ao es bisiesto El ao no es bisiesto Solucin: Inicio Pedir que ingrese un ao Leer (x)Si el mdulo de 400 y 4 es igual a cero del valor ingresado escribir el ao es bisiesto Si el mdulo de 100 es igual a cero del valor ingresado el ao no es bisiesto Escribir de acuerdo a las condiciones si es bisiesto o no lo esFin

xXmod400Xmod100Xmod4Mensaje

4001111El ao no es bisiesto

24000160El ao es bisiesto

10. Calcular el mayor de cuatro nmeros enteros introducidos por tecladoEntradas: X, y z, wSalidas: X o y o z o w Solucin: Inicio Pedir ingrese un nmero Leer (x)Pedir ingrese un nmero Leer (y)Pedir ingrese un nmero Leer (z)Pedir ingrese un nmero Leer (w)Comparar los nmeros e ir almacenando el mayor de esos nmeros comparadosImprimir el nmero mayor Fin

Algoritmo Mayor_4_nmeros Var X, Y, Z, W: entero

InicioEscribir (Ingrese un nmero) Leer (x) Escribir (Ingrese un nmero) Leer (y) Escribir (Ingrese un nmero) Leer (z) Escribir (Ingrese un nmero) Leer (w) Si {[(x>y) y (y>z)] y (z>w)} Escribir (El mayor nmero es: x)Si {[(y>x) y (x>z)] y (z>w)} Escribir (El mayor nmero es: y)Si {[(z>x) y (x>y)] y (y>w)} Escribir (El mayor nmero es: z)Si {[(w>y) y (y>z)] y (z>x)} Escribir (El mayor nmero es: w)Fin xyzwEscribir

34577

13505

11. Dado el valor de n>=1. Calcular el valor de la serie1 + + 1/3 +1/4 + 1/5 + .. 1/n

Entradas: N Salidas: Z (valor de la serie)Solucin: InicioPedir que ingrese un nmero Leer (n)Laso Actualizar la variable que controla el laso Z = 1/y + zEscribir el valor de la serie es zFin

nzyEscribe

4011.51.8332.083333312345

25/12

12. Leer un dato y almacenarlo en la variable n , leer otro dato y almacenarlo en la variable x . Calcular el valor de x elevado a la potencia n, usar lazo de repeticin condicionalEntradas: N, XSalidas: Z (valor de la serie)Solucin: InicioPedir que ingrese la base Leer (x)Pedir que ingrese el exponente Leer (n)Laso Repita mientras la variable que controla el laso sea menor o igual al exponente ingresado Escribir el valor de x^n = zFin

Algoritmo numero_elevadoVar X, N, Y, Z: entero InicioEscribir (ingrese la base)Leer (x)Escribir (ingrese la potencia)Leer (n) Y = 1Z = 1 Repita Inicio z = x*z Y = 1+y Hasta (y> n) Fin Escribir (El valor es: z)Fin xznyEscribe

3392731234

27

13. Leer 20 nmeros y encontrar el mayor y el menor valor ledos usar lazo repetir hasta

Entradas: x Salidas: Ma, me Solucin: InicioCrear un laso Escribir ingrese un nmero Leer (X)Comparar el nmero ingresado con el almacenado en el laso y almacenarlo si es mayor de lo contrario almacenarlo en el lugar que corresponda a menor Imprimir el nmero que est almacenado como mayor y tambin el que est almacenado como menor Fin

x maMe y

258

1300258

13099999999222

110123...1920

Mayor = 30Menor = 1

14. Calcular el factorial de 5 nmeros diferentes cuyos valores se leen

Entradas: X1, X2, X3, X4, X5Salidas: Z1, Z2, Z3, Z4, Z5Solucin: InicioLaso Pedir que ingrese un nmero Leer(x1)Laso Para y1 desde 1 hasta x1 pasos 1 hacerZ1 = z1*y1Pedir que ingrese un nmero Leer(x2)Para y2 desde 1 hasta x2 pasos 1 hacerZ1 = z2*y2Escribir (Ingrese un nmero) Leer(X3)Para y3 desde 1 hasta x3 pasos 1 hacerZ3 = z3*y3Escribir (Ingrese un nmero) Leer(X4)Para y4 desde 1 hasta x4 pasos 1 hacerZ4 = z4*y4Escribir (Ingrese un nmero) Leer(X5)Para y5 desde 1 hasta x5 pasos 1 hacerZ5 = z5*y5

Algoritmo factorial_5_nmerosVar X1, X2, X3, X4, X5, Y1, Y2, Y3, Y4, Y5, Z1, Z2, Z3, Z4, Z5: enteroInicioY1 = 1Z1 = 1Escribir (Ingrese un nmero) Leer(X1)InicioPara y1 desde 1 hasta x1 pasos 1 hacerZ1 = z1*y1Fin Y2 = 1Z2 = 1Escribir (Ingrese un nmero) Leer(X2)InicioPara y2 desde 1 hasta x2 pasos 1 hacerZ2 = z2*y2Fin Y3 = 1Z3 = 1Escribir (Ingrese un nmero) Leer(X3)InicioPara y3 desde 1 hasta x3 pasos 1 hacerZ3 = z3*y3Fin Y4 = 1Z4 = 1Escribir (Ingrese un nmero) Leer(X4)InicioPara y4 desde 1 hasta x4 pasos 1 hacerZ4 = z4*y4Fin Y4 = 1Z4 = 1Escribir (Ingrese un nmero) Leer(X5)InicioPara y5 desde 1 hasta x5 pasos 1 hacerZ5 = z5*y5Fin Fin X1X2X3X4X5Y1Y2Y3Y4Y5Z1Z2Z3Z4Z5

3

3245123123

12

123412345

126126121262412624120

Inicio

Escribir (`Ingrese el largo del terreno)Leer(x)Escribir (`Ingrese el ancho del terreno)Leer(y)

Z = 35.40*x*y

A = 2*x + 2*y

Escribir ( `El costo de siembra es: $z)Escribir(` Se necesita: A u)

Fin

Inicio

Escribir (`Ingrese un nmero)Leer(x)

N = n+1C = a + bA = b B = c

Escribir ( `Le nmero es: b)

Fin

A = 1B = 2N = 2

N z

Z = z

M = abs(x + y)

Z= m

Inicio

Escribir (`Ingrese un ao)Leer(x)

Xmod 400 = 0

F

Xmod100 = 0

Escribir( El ao ingresado es bisiesto)

F

Fin

V

Xmod4 = 0

F

V

Escribir( El ao ingresado no es bisiesto)

V

Inicio

Escribir (`Ingrese un nmero)Leer(n)

Z = 1/y + z y = y + 1

Escribir ( `El valor de la serie es: z)

Fin

Z = 0Y = 1

y ma

f

M = 1, m = 20, 1

Y = 0Ma = 0Me= 999999999

Y = y + 1

Ma = x

v

X