Sei sulla pagina 1di 14

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITECNICA CARRERA: LCik MATERIA: Algortmica I PROF.: Lic.

. Liduvina Vega ALUMNO: Simn David Del Pozo Nez Algoritmos, Estructuras Secuenciales y Condicionales Resuelve los siguientes ejercicios Con DFD
1. Ingresar 2 nmeros e imprimir la sumatoria y el promedio Planteamiento a= 10 b= 20 s= 10+20= 30 p= s/2= 30/2= 15 Diccionario a, b = nmeros ingresado Inicio s= donde se acumulan y suman los nmeros p = promedio

Leer (a, b)

s= a+b

p= s/2

Imprimir s

Imprimir p

Fin

Prueba de Escritorio Nmeros (a, s = a+ b b) 10, 40 40, 30 10+40= 50 40+30= 70

p=s/2 50/2= 25 70/2= 35

2. Calcular el sueldo de un operario conociendo la cantidad de horas que trabaj en el mes y el monto a pagar por hora Planteamiento h= 20 m= 1000 s= m*h= 20000

Inicio

Diccionario h = horas trabajadas por mes m = pago recibido por hora Ss= sueldo

Ingresar horas trabajadas en el mes

Leer (h)

Ingresar monto a paga por hora Leer (m) s= h*m

Imprimir s

Prueba de Escritorio Horas trabaja Pago por hora en el mes (h) (m) 50 10

Fin
s=h*m S = 50 * 10 = 500

3. Escribir un algoritmo que permita leer el nombre y la cantidad de ausencias en el ao de un alumno, e imprimir el nombre acompaado de la leyenda REGULAR o LIBRE (Un alumno se considera Libre cuando posee ms de 20 ausencias).
Planteamiento nombre= Simn ausencias= 10 Ausencias menor a 20? Si, entonces es regular nombre= David ausencias= 25 Ausencias menor a 20? No, entonces es libre

Inicio

Ingresar nombre

Leer (nom)
Diccionario nom = nombre del alumno aus= cantidad de ausencias

Ingresar cantidad de ausencias Leer (aus)

NO

(aus < 20)

SI

Imprimir El alumno ,nom es libre

Imprimir El alumno ,nom es regular

Fin

Prueba de Escritorio Nombre (nom) Cantidad de ausencias (aus) Simn David Daniel 10 30 20

Es menor a 20? Si No No Por lo tanto es Regular Por lo tanto es Libre Por lo tanto es Libre

Con Pseudocdigo 4. Desarrollar un algoritmo que permita leer el nombre, la edad, el sexo y el estado civil de cualquier persona e imprima el nombre de la persona si es un hombre soltero y menor de 30 aos o una mujer casada mayor de 50 aos. Plantemiento Nombre: Simn Sexo: hombre Edad: 22 Estado civil: soltero Es es un hombre soltero y menor de 30 aos o una mujer casada mayor de 50 aos? Hombre: Si Soltero: SI Menor a 30: Si Mostrar su nombre. Simn Var nom: cadena ed, sx, ec: numrico Inicio Escribir "Ingrese nombre"; Leer (nom) Escribir "Ingrese edad"; Leer (ed) Escribir "Ingrese sexo (mujer = 1 y varn = 2)"; Leer (sx) Escribir "Ingrese estado civil (soltero/a = 1 y casado/a = 0)"; Leer Cec) Si (sx = 2) Entonces Si (ed<30) y (ec=1)Entonces Escribir "Su nombre es: " ,nom FinSi Sino Si (ed>50) y (ec=0) Entonces Escribir "Su nombre es: " ,nom FinSi FinSi Fin Diccionario nom = nombre de la persona ed = edad sx = sexo ec = estado civil Prueba de Escritorio Nombre Edad Sexo (Nom) (ed) (sx) varn = 2 mujer =1 Simn Dalia Alicia 22 25 56 2 1 1

Estado Civil (ec) soltero = 1 casado= 2 1 2 2

Si es varn Tiene menos de 30 y es soltero? Mostrar su nombre Simn

Sino es varn Es casada y tiene ms de 50? Mostrar su nombre

Alicia

5. Dado un nmero que representa un mes, escribir el nombre del mes correspondiente. Si se ingresa un numero que no puede corresponder a un mes (es negativo o bien, es mayor que 12), imprimir el mensaje "Mes incorrecto" y terminar el programa.

Planteamiento var n= 1= enero n: numrico n= 2= febrero Inicio n= 3= marzo Escribir "Ingrese el nmero" n= 4= abril Leer (n) n= 5= mayo Si (n = 1) Entonces n= 6= junio Escribir "Enero" n= 7= julio FinSi n= 8= agosto Si (n = 2) Entonces n= 9= septiembre Escribir "Febrero" n= 10= octubre FinSi n= 11= noviembre Si (n = 3) Entonces n= 12= diciembre Escribir "Marzo" Si n> 12 o n< 0 entonces mes incorrecto FinSi Si (n = 4) Entonces Escribir "Abril" FinSi Si (n = 5) Entonces Escribir "Mayo" FinSi Si (n = 6) Entonces Escribir "Junio" FinSi Si (n = 7) Entonces Escribir "Julio" FinSi Si (n = 8) Entonces Escribir "Agosto" FinSi Si (n = 9) Entonces Escribir "Septiembre" FinSi Si (n = 10) Entonces Escribir "Octubre" FinSi Si (n = 11) Entonces Escribir "Noviembre" FinSi Si (n = 12) Entonces Escribir "Diciembre" FinSi Si (n>12) o(n<0) Entonces Escribir "Mes Incorrecto" FinSi Fin

Diccionario n = nmero del mes Prueba de Escritorio N n=1 n=2 n=3 n=4 n=5? n=6 n=7 n=8 n=9? n=10 n=11 n=12 n>12 mer ? ? ? ? ? ? ? ? ? ? o o n<0? (n) 5 13 No No No No No No No No Si Mayo No No No No No No No No Mes inco_ rrect o

6. Ingresar un tipo de figura (triangulo, cuadrado o rectngulo), la medida de los lados, y calcular permetro y rea.

Planteamiemto Se ingresa el nombre de la figura Triangulo La figura es un triangulo? Si, entonces ingresar los 3 lados; calcular permetro y rea; mostralos Se ingresa el nombre de la figura Cuadrado La figura es un triangulo? No La figura es un cuadrado? Si, entonces ingrear el lado; calcular permetro y rea; mostralos Var fig: cadena l1, l2, l3, l, a, sp, pt, at, pc, ac, ar, pr : numrico Inicio Escribir "Ingrese tipo de figura (triangulo, cuadrado o rectangulo)"; Leer (fig) Si (fig ="triangulo") entonces Escribir"Ingrese medida del lado 1: " Leer (l1) Escribir "Ingrese medida del lado 2: " Leer (l2) Escribir "Ingrese medida del lado 3: " Leer (l3) pt = l1+l2+l3 sp = pt/2 at = raiz(sp * (sp-l1) * (sp-l2) * (sp-l3)) Escribir "El Perimetro del Triangulo es:", pt Escribir "El Area del Triangulo es:", at Sino Si (fig = "cuadrado") Entonces Escribir "Ingrese medida del lado: " Leer (l) pc = l*4 ac = l^2 Escribir "El Permetro del Cuadrado es: " ,pc Escribir "El rea del Cuadrado es: " ,ac Sino Si (fig = "rectangulo") Entonces Escribir "Ingrese medida del largo: " Leer (l) Escribir "Ingrese medida del ancho: " Leer (a) pr = (l+a)*2 ar = l*a Escribir "El Perimetro del Rectagulo es: " ,pr Escribir "El Area del Rectagulo es: " ,ar FinSi FinSi FinSi Fin Diccionario l1, l2 l3= lados del triangulo

l = lados del cuadrado y del rectngulo a = ancho del restgulo pt = permetro del tringulo sp = semipermetro del tringulo at = rea del tringulo pc = permetro del cuadrado ac = rea del cuadrado pr = permetro el rectngulo ar = rea del rectngulo Prueba de Escritorio Se ingresa el nombre de la figura Triangulo La figura es un triangulo? Si, entonces ingresar los 3 lados; calcular permetro y rea; mostralos Se ingresa el nombre de la figura Cuadrado La figura es un triangulo? No La figura es un cuadrado? Si, entonces ingrear el lado; calcular permetro y rea; mostralos Se ingresa el nombre de la figura Rectngulo La figura es un triangulo? No La figura es un cuadrado? No entonces ingrear el lado; calcular permetro y rea; mostral La figura es un rectngulo? Si, entonces ingrear el largo y ancho; calcular permetro y rea; mostralos

7. Un banco antes de conceder un prstamo, comprueba los ingresos y la cantidad de hijos del solicitante. El crdito se concede si los ingresos son superiores a 24.000.000 de guaranes anuales, o bien los ingresos estn entre 24.000.000 y 12.000.000 de guaranes anuales y el cliente tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre 10.000.000 y 12.000.000 de guaranes pero no tiene hijos. Realizar un algoritmo que pida los ingresos mensuales y el nmero de hijos del solicitante, y calcule si el banco puede o no otorgar el crdito. Planteamiento Condiciones para dar crdito: ingresos superiores a 24.000.000 de guaranes anuales, o bien los ingresos estn entre 24.000.000 y 12.000.000 de guaranes anuales y el cliente tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre 10.000.000 y 12.000.000 de guaranes pero no tiene hijos Cuantos es su ingreso? im= 5000 ia= im*12= 5000*12= 60000 Tienes hijos? Si, 1 Se le concede crdito? No Var ia, im, h: numrico Inicio Escribir " Cantidad del ingreso mensual" Leer (im) ia = im*12 Escribir "Cantidad de hijos ( sino tiene coloque 0)" Leer (h) Si (ia>24000000) Entonces Escribir "Se le otorga crdito" Sino Si (ia<=24000000) y (ia>12000000) Entonces Si (h=1) o (h=2) Entonces Escribir "Se le otorga crdito" FinSi Sino Si (ia<=12000000) y (ia>=10000000) Entonces Si (h=0) Entonces Escribir "Se le otorga crdito" FinSi FinSi FinSi Sino Escribir "NO se le otorga crdito" FinSi Fin Diccionario mi = ingreso mensual ia = ingreso anual h = hijos

Prueba de Ingreso mensual (im)

Escritorio Cantida Ingreso Tiene d hijos anual (ia) ia>24000 (h) ia = 000? im*12

Tiene (ia<=2400000 0) y (ia>12000000 ? Adems tienes hijos? Si y si, 1 hijo

Tiene (ia<=1200000 0) y (ia>=1000000 0) Adems tienes hijos?

Se le d el crdto ?

1000000 2000000

1 0

1200000 no 0

si

2400000 No Si y no no 0 Condiciones para dar crdito: ingresos superiores a 24.000.000 de guaranes anuales, o bien los ingresos estn entre 24.000.000 y 12.000.000 de guaranes anuales y el cliente tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre 10.000.000 y 12.000.000 de guaranes pero no tiene hijos 8. Escribir un algoritmo que lea tres nmeros enteros correspondientes a lados de un supuesto tringulo, determine si realmente forman un tringulo, y muestre el tipo de tringulo que es (si es un tringulo). Tringulo: La suma de dos cualesquiera de los lados debe ser mayor que el otro. Equiltero: todos los lados son iguales. Issceles: solo dos lados son iguales. Escaleno: no tiene dos lados iguales. Planteamiento Ingresar lado del tringulo: 10, 20, 30 Si es un tringulo la suma de dos cualesquiera de los lados debe ser mayor que el otro. 10< 20+30? Si 20< 10+30? Si 30< 10+20? No Entonces no es tringulo Ingresar lado del tringulo: 10, 10, 10 10< 10+10? Si 10< 10+10? Si 10< 10+10? Si Entonces es un tringulo Los lados son iguales? Sin es equiltero var a, b ,c: numrico Inicio Escribir "Ingrese lado 1 del triangulo" Leer (a) Escribir "Ingrese lado 2 del triangulo" Leer (b) Escribir "Ingrese lado 3 del triangulo" Leer (c) Si ((a<b+c) y (b<a+c) Y (c<a+b)) entonces Si ((a=b) y (b=c)) entonces Escribir "El triangulo es equilatero" Sino Si (a<>b) y (a<>c) y (b<>c) entonces Escribir "El triangulo es escaleno" Sino Escribir "El triangulo es isosceles" FinSi FinSi Sino Escribir "No forman triangulo" FinSi Fin Diccionario a, b, c = lados de tringulo

Prueba de Escritorio Ingresar lado del tringulo: 10, 20, 30 Es 10< 20+30 y 20< 10+30 y 30< 10+20? No, no es un tringulo Ingresar lado del tringulo: 10, 10, 10 Es 10< 10+10 y 10< 10+10 y 10< 10+10? Si, es un tringulo Sus lados son iguales? Si, es equiltero Ingresar lado del tringulo: 10, 10, 15 Es 10< 10+10 y 10< 10+10 y 15< 10+10? Si, es un tringulo Sus lados son iguales? No Tiene 2 lados iguales? Si, es issceles Ingresar lado del tringulo: 5, 6, 7 Es 5< 6+7 y 6< 5+7 y 7< 5+6? Si, es un tringulo Sus lados son iguales? No Tiene 2 lados iguales? No, entonces es escaleno 9. Un equipo de ftbol ha tenido una buena campaa y desea premiar a sus jugadores con un aumento del salario para el siguiente campeonato. Los sueldos deben ajustarse de la siguiente forma: Sueldo actual (en USD) Aumento 0-6.000 10% 6.000-8000 5% Mas de 8.000 2% Disear un algoritmo que lea el salario de un jugador, y que a continuacin muestre el tanto por ciento de aumento, el sueldo actual y el sueldo aumentado. Planteamiento Ingresar sueldo: 6500 Es <= 6000? Si, entonces calcular aumento del 10 (sca=sua+0,1*sua) var sua, suca: numrico Inicio Escribir Su Sueldo Actual Leer (sua) Si (sua <= 6000) Entonces suca = sua + sua*0.1 Escribir "Su Sueldo Actual es:" ,sua Escribir "Su Sueldo Aumentado es" ,suca Escribir "El porcentaje de aumento es: 10%" Sino Si ( sua > 6000) y (sua <= 8000) Entonces suca = sua + sua*0.05 Escribir "Su Sueldo Actual es:" ,sua Escribir "Su Sueldo Aumentado es" ,suca Escribir "El porcentaje de aumento es: 5%" Sino Si ( sua > 8000) Entonces suca = sua + sua*0.02 Escribir "Su Sueldo Actual es:" ,sua Escribir "Su Sueldo Aumentado es" ,suca Escribir "El porcentaje de aumento es: 2%" FinSi FinSi FinSi Fin Diccionario

sua = sueldo actual suca = sueldo con el aumento Prueba de Escritorio Ingresar sueldo: 6500 Es <= 6000? Si, entonces calcular aumento del 10 (sca=sua+0,1*sua) mostrar sua,suca y aumento del 10% Ingresar sueldo: 7500 Es <= 6000? No Es > 6000 y <= 8000? Si, entonces calcular aumento del 5 (sca=sua+0,05*sua) mostrar sua,suca y aumento del 5% Ingresar sueldo: 8500 Es <= 6000? No Es > 6000 y <= 8000? No Es > 8000? Si, entonces calcular aumento del 2 (sca=sua+0,02*sua) mostrar sua,suca y aumento del 2% 10. Disear un algoritmo que intercambie los valores de dos variables numricas. Plateamiento n1= 5 n2= 8 Hacer que se intercambien, n1= 8 y n2= 5 var n1, n2, aux: numrico Inicio Escribir "Ingrese el primer numero" Leer (n1) Escribir "Ingrese el segundo numero" Leer (n2) aux = 0 Si (n1<>n2) Entonces aux = n1 n1 = n2 n2 = aux FinSi Escribir "Ingrese el primer numero: " ,n1 Escribir "Ingrese el segundo numero: " ,n2 Fin Diccionario n1 y n2 = nmeros ingresados aux = un auxiliar, donde se coloca el primer nmero para hacer el intercambio Prueba de Escritorio 1 2 aux = n1 n1 = n2 Nmero Nmero * ** (n1) (n2) 10 15 10 15

n2 = aux 1 *** Nmero (n1) 10 15

2 Nmero (n2) 10

* al inicio tiene el valor de cero luego tiene el valor de n1 o sea para el ejemplo 10 ** n1 obtiene el valor de n2, en el ejemplo obtiene el valor de 15 *** n2 btiene el valor del auxiliar osea en este ejemplo obtiene el valor de 10

Potrebbero piacerti anche