Vous êtes sur la page 1sur 23

UNIVERSIDAD POLITCNICA

SALESIANA
Quito Ecuador
TRABAJO DE PROGRAMACIN
Tema:
Realizar los algoritmos en DFD y
pseudocdigo
Nombre:
Paul Ruales
Nivel:
3ro A Mecnica
Fecha:
16 de noviembre de 2013

1. 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 cantidad es 1,373 se necesitan 13 billetes de
$100, 1 billetes de $50, 1 billetes de $20 y 3 de $1
Anlisis
Entradas:
X
Salidas:
C1, C2, C3, C4, C5
Solucin:
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 50
Restar x C2*Y2 y a eso dividirle para 20 y el entero es la cantidad de billetes de 20
Restar x C3*Y3 y a eso dividirle para 10 y el entero es la cantidad de billetes de 10
Restar x C4*Y4 y a eso dividirle para 1 y el entero es la cantidad de billetes de 1

x
359

Y
10

Y1
50

Y2
20

Y3
10

Y4
5

Y5
1

C1
35

C2
1

C3
2

C4
0

C5
1

C6
4

8
10

0
10
0

50

20

10

2. Realice un algoritmo en pseudocdigo que evalu la funcin : y = 5x2 - 3x + 2


2.1. Anlisis
Entradas:
X
Salidas:
Y
Solucin:
Escribir ingrese el valor de x
Y = (5*x*x)-(3*x)+2
Escribir el valor de Y es Y
Algoritmo `evaluar_funcin
Var
X: real
Y: 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
x
3
8

Y = 5*x*x-3*x+2
Y = 38
Y = 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, Y
Salidas:
Z, A
Solucin:
Pedir que ingrese el largo del terreno
Pedir que ingrese el ancho del terreno

Z = 35.40*(x*y)
A = 2*x + 2*y
Escribir el costo de siembra es: z
Escribir se necesitan a unidades

x
200
400

y
50
35

Z= 35.40*(x*y)
Z= 354000
Z= 495600

A = 2*x + 2*y
A = 500
A = 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:
Y
Salidas:
S = sueldo neto
Solucin:
Escribir ingrese el nmero de horas extras
Calcular el costo de hora extra
Calcular el salario extra por todas las horas
Calcular el descuento por concepto de IESS
Calcular el sueldo a recibir
Escribir su sueldo a recibir es s
Algoritmo `salario_empleado

Var
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
x
20
50

y
3,54
3,54

z
79.48
79.48

w
802,39
850.17

s
722.15
765.15

m
31.87
79.65

5. Hacer un algoritmo que calcule el n-esimo trmino de la serie de fibonacci definida por :
A1=1 A2=2
3)

A3= A1+A2

A4= A2+A3

A5= A3+A4 . A n= An-2+An-1 (Para n >

5.1. Anlisis
Entradas:
x
Salidas:
B
Solucin:
Inicio
Pedir el nmero que desee que calcule
Realizar un laso
Iniciar los dos primeros nmeros con 1 y 2 respectivamente
Repetir el laso cambiando los valores
Realice esta misma accin hasta que la condicin se termine
Escribir el nmero que corresponda al n-ensimo trmino solicitado
Fin

x
5

a
1
2
3

b
2
3
5
8
2
3

c
3
5
8

n
3
4
5

6. En una empresa cada empleado debe teclear un cdigo identificador de 3 cifras en la


entrada. Escribir un 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 general
b. Si el cdigo es divisible por 3 y por 5 pero no por 2, la categora del empleado es
Directivo
c. Si el cdigo es divisible por 2, pero no por 3 ni por 5, la categora del empleado es Staff
d. Si el cdigo no es divisible por 2, ni por 3 ni por 5, la categora del empleado es
Seguridad
6.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 general
Si es divisible por 3 y por 5 pero no por 2, escribir la categora del empleado es Directivo
Si es divisible por 2, pero no por 3 ni por 5, escribir la categora del empleado es Staff
Si no es divisible por 2, ni por 3 ni por 5, escribir la categora del empleado es Seguridad
Fin
Algoritmo Categoras_empleados
Var
X
Inicio
Escribir (ingrese su cdigo de tres cifras)
Leer (x)
Si (xmod 2)= 0 Entonces
Si (xmod 3)= 0 entonces
Si (xmod 5)= 0 entonces
Escribir (Su categora es Director general)
Caso_contrario
Escribir (No tiene categora)
Caso_contrario
Si (xmod 5)= 0 entonces
Escribir (No tiene categora)
Caso_contrario
Escribir (La categora es Staff)
Caso_contrario
Si (xmod 3)= 0 entonces
Si (xmod 5)= 0 entonces
Escribir (La categora del empleado es, Directivo)
Caso_contrario
Escribir (No tiene categora)

Caso_contrario
Si (xmod 5)= 0 entonces
Escribir (No tiene categora)
Caso_contrario
Escribir (La categora del empleado es, seguridad)
Fin
x
480

Xmod3 = 0
480mod3 = 0

Xmod5=0
480mod5 = 0

Xmod2 = 0
Xmod2=0

338

338mod3 = 2

338mod5=3

338mod2=0

Mensaje
Director
general
Staff

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 correspondiente
6.1. Anlisis
Entradas:
X, m, y, z
Salidas:
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 anterior
Auxiliar 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

x
30

y
10

m
40

25
10
999

25
0

50
10

z
0
40
50
50
50/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 12
Dependiendo 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
2
Entradas:
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 incorrecta
Pedir que ingrese el da
Leer (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 incorrecta
Si la fecha est fuera de ese rango escribir la fecha es correcta
Fin
Algoritmo fecha_correcta
Var
X
Y
Z

Inicio
Escribir (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 (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 2:
Si (z<1) o (z>28)
Escribir (La fecha ingresada es incorrecta)
Caso y = 3:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 4:
Si (z<1) o (z>30)
Escribir (La fecha ingresada es incorrecta)
Caso y = 5:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 6:
Si (z<1) o (z>30)
Escribir (La fecha ingresada es incorrecta)
Caso y = 7:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 8:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 9:
Si (z<1) o (z>30)

Escribir (La fecha ingresada es incorrecta)


Caso y = 10:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso y = 11:
Si (z<1) o (z>30)
Escribir (La fecha ingresada es incorrecta)
Caso y = 12:
Si (z<1) o (z>31)
Escribir (La fecha ingresada es incorrecta)
Caso_contrario
Escribir (La fecha ingresada es correcta)
x
0
200
205

1
2

32
28

Mensaje
La fecha es incorrecta
La fecha es incorrecta
La 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 no
Entradas:
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 es
Fin

x
4001
2400

Xmod40
0
1
0

Xmod1
00
1
16

Xmod4

Mensaje

1
0

El ao no es bisiesto
El ao es bisiesto

10. Calcular el mayor de cuatro nmeros enteros introducidos por teclado


Entradas:
X, y z, w
Salidas:
Xoy ozow
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 comparados
Imprimir el nmero mayor
Fin
Algoritmo Mayor_4_nmeros

Var
X, Y, Z, W: entero

Inicio
Escribir (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
x
3
1

y
4
3

z
5
5

w
7
0

Escribir
7
5

11. Dado el valor de n>=1. Calcular el valor de la serie


1 + + 1/3 +1/4 + 1/5 + .. 1/n

Entradas:
N
Salidas:
Z (valor de la serie)
Solucin:
Inicio
Pedir que ingrese un nmero
Leer (n)
Laso
Actualizar la variable que controla el laso
Z = 1/y + z
Escribir el valor de la serie es z
Fin

n
4

z
0
1
1.5
1.833
2.0833333

y
1
2
3
4
5

Escribe

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 condicional
Entradas:
N, X
Salidas:
Z (valor de la serie)
Solucin:
Inicio
Pedir 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 = z
Fin

Algoritmo numero_elevado
Var
X, N, Y, Z: entero
Inicio
Escribir (ingrese la base)
Leer (x)

Escribir (ingrese la potencia)


Leer (n)
Y= 1
Z=1
Repita
Inicio
z = x*z
Y = 1+y
Hasta (y> n)
Fin
Escribir (El valor es: z)
Fin
x
3

z
3
9
27

n
3

y
1
2
3
4

Escribe

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

Entradas:
x
Salidas:
Ma, me
Solucin:
Inicio
Crear 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
2
5
8

ma
0
2
5
8

Me
99999999
2
2
2

1
30

1
30

1
1

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


Entradas:
X1, X2, X3, X4, X5
Salidas:
Z1, Z2, Z3, Z4, Z5
Solucin:
Inicio
Laso
Pedir que ingrese un nmero
Leer(x1)
Laso
Para y1 desde 1 hasta x1 pasos 1 hacer
Z1 = z1*y1
Pedir que ingrese un nmero
Leer(x2)
Para y2 desde 1 hasta x2 pasos 1 hacer
Z1 = z2*y2
Escribir (Ingrese un nmero)
Leer(X3)
Para y3 desde 1 hasta x3 pasos 1 hacer
Z3 = z3*y3
Escribir (Ingrese un nmero)
Leer(X4)
Para y4 desde 1 hasta x4 pasos 1 hacer

y
0
1
2
3
.
.
.
19
20
Mayor = 30
Menor = 1

Z4 = z4*y4
Escribir (Ingrese un nmero)
Leer(X5)
Para y5 desde 1 hasta x5 pasos 1 hacer
Z5 = z5*y5

Algoritmo factorial_5_nmeros
Var
X1, X2, X3, X4, X5, Y1, Y2, Y3, Y4, Y5, Z1, Z2, Z3, Z4, Z5: entero
Inicio
Y1 = 1
Z1 = 1
Escribir (Ingrese un nmero)
Leer(X1)
Inicio
Para y1 desde 1 hasta x1 pasos 1 hacer
Z1 = z1*y1
Fin
Y2 = 1
Z2 = 1
Escribir (Ingrese un nmero)
Leer(X2)
Inicio
Para y2 desde 1 hasta x2 pasos 1 hacer
Z2 = z2*y2
Fin
Y3 = 1

Z3 = 1
Escribir (Ingrese un nmero)
Leer(X3)
Inicio
Para y3 desde 1 hasta x3 pasos 1 hacer
Z3 = z3*y3
Fin
Y4 = 1
Z4 = 1
Escribir (Ingrese un nmero)
Leer(X4)
Inicio
Para y4 desde 1 hasta x4 pasos 1 hacer
Z4 = z4*y4
Fin
Y4 = 1
Z4 = 1
Escribir (Ingrese un nmero)
Leer(X5)
Inicio
Para y5 desde 1 hasta x5 pasos 1 hacer
Z5 = z5*y5
Fin
Fin
X1

X2

X3

X4

X5

Y1

Y2

Y3

1
2
3

1
2
3

1
2

Y
4
1
2
3
4

Y5

Z1

Z2

Z3

Z4

Z5

1
2
3
4
5

1
2
6

1
2
6

1
2

1
2
6
24

1
2
6
24
120

Vous aimerez peut-être aussi