Está en la página 1de 14

UNIVERSIDAD NACIONAL DE ASUNCION – FACULTAD POLITECNICA

CARRERA: LCik
MATERIA: Algorítmica I
PROF.: Lic. Liduvina Vega
ALUMNO: Simón David Del Pozo Núñez
Algoritmos, Estructuras Secuenciales y Condicionales
Resuelve los siguientes ejercicios
Con DFD
1. Ingresar 2 números 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 = números ingresado
s= donde se acumulan y suman los númerosInicio
p = promedio

Leer (a, b)

s= a+b

p= s/2

Imprimir s

Imprimir p

Fin
Prueba de Escritorio
Números (a, s = a+ b p=s/2
b)
10, 40 10+40= 50 50/2= 25
40, 30 40+30= 70 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

Fin
Prueba de Escritorio

Horas trabaja Pago por hora s=h*m


en el mes (h) (m)
50 10 S = 50 * 10 = 500
3. Escribir un algoritmo que permita leer el nombre y la cantidad de ausencias en
el año de un alumno, e imprimir el nombre acompañado de la leyenda
“REGULAR” o “LIBRE” (Un alumno se considera Libre cuando posee más de 20
ausencias).
Planteamiento
nombre= Simón
ausencias= 10
Ausencias menor a 20? Inicio
Si, entonces es regular

nombre= David
ausencias= 25 Ingresar nombre
Ausencias menor a 20?
No, entonces es libre

Leer (nom)

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

NO SI
(aus < 20)

Imprimir “El alumno” ,nom “es libre” Imprimir “El alumno” ,nom “es regular”

Fin
Prueba de Escritorio
Nombre (nom) Cantidad de ¿Es menor a 20?
ausencias (aus)
Simón 10 Si Por lo tanto es
Regular
David 30 No Por lo tanto es
Libre
Daniel 20 No Por lo tanto es
Libre
Con Pseudocódigo
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 años o una mujer casada mayor de 50 años.
Plantemiento
Nombre: Simón
Sexo: hombre
Edad: 22
Estado civil: soltero
Es es un hombre soltero y menor de 30 años o una mujer casada mayor de 50 años?
Hombre: Si Soltero: SI Menor a 30: Si
Mostrar su nombre. Simón

Var
nom: cadena
ed, sx, ec: numérico
Inicio
Escribir "Ingrese nombre";
Leer (nom)
Escribir "Ingrese edad";
Leer (ed)
Escribir "Ingrese sexo (mujer = 1 y varón = 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 Estado Civil Si es varón Sino es varón
(Nom) (ed) (sx) (ec) Tiene menos de Es casada y tiene más
varón = soltero = 1 30 y es soltero? de 50?
2 mujer casado= 2 Mostrar su Mostrar su nombre
=1 nombre
Simón 22 2 1 Simón
Dalia 25 1 2
Alicia 56 1 2 Alicia
5. Dado un número 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: numérico
n= 2= febrero Inicio
n= 3= marzo Escribir "Ingrese el número"
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 = número 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 No No No No Si
Mayo
13 No No No No No No No No No No No No Mes
inco_
rrect
o

6. Ingresar un tipo de figura (triangulo, cuadrado o rectángulo), la medida de los lados, y


calcular perímetro y área.
Planteamiemto
Se ingresa el nombre de la figura
Triangulo
La figura es un triangulo? Si, entonces ingresar los 3 lados; calcular perímetro 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 perímetro y área;
mostralos

Var
fig: cadena
l1, l2, l3, l, a, sp, pt, at, pc, ac, ar, pr : numérico
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 Perímetro 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 triaángulo
l = lados del cuadrado y del rectángulo
a = ancho del restágulo
pt = perímetro del triángulo
sp = semiperímetro del triángulo
at = área del triángulo
pc = perímetro del cuadrado
ac = área del cuadrado
pr = perímetro el rectángulo
ar = área del rectángulo

Prueba de Escritorio
Se ingresa el nombre de la figura
Triangulo
La figura es un triangulo? Si, entonces ingresar los 3 lados; calcular perímetro 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 perímetro y área;
mostralos
Se ingresa el nombre de la figura
Rectángulo
La figura es un triangulo? No
La figura es un cuadrado? No entonces ingrear el lado; calcular perímetro y área;
mostral
La figura es un rectángulo? Si, entonces ingrear el largo y ancho; calcular perímetro y
área; mostralos
7. Un banco antes de conceder un préstamo, comprueba los ingresos y la cantidad de
hijos del solicitante. El crédito se concede si los ingresos son superiores a 24.000.000 de
guaraníes anuales, o bien los ingresos están entre 24.000.000 y 12.000.000 de
guaraníes anuales y el cliente tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre
10.000.000 y 12.000.000 de guaraníes pero no tiene hijos. Realizar un algoritmo que
pida los ingresos mensuales y el número de hijos del solicitante, y calcule si el banco
puede o no otorgar el crédito.
Planteamiento
Condiciones para dar crédito: ingresos superiores a 24.000.000 de guaraníes anuales, o
bien los ingresos están entre 24.000.000 y 12.000.000 de guaraníes anuales y el cliente
tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre 10.000.000 y 12.000.000 de
guaraníes pero no tiene hijos
Cuantos es su ingreso?
im= 5000
ia= im*12= 5000*12= 60000
Tienes hijos? Si, 1
Se le concede crédito? No

Var
ia, im, h: numérico
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 crédito"
Sino
Si (ia<=24000000) y (ia>12000000) Entonces
Si (h=1) o (h=2) Entonces
Escribir "Se le otorga crédito"
FinSi
Sino
Si (ia<=12000000) y (ia>=10000000) Entonces
Si (h=0) Entonces
Escribir "Se le otorga crédito"
FinSi
FinSi
FinSi
Sino
Escribir "NO se le otorga crédito"
FinSi

Fin
Diccionario
mi = ingreso mensual
ia = ingreso anual
h = hijos
Prueba de Escritorio
Ingreso Cantida Ingreso Tiene Tiene Tiene Se le
mensual d hijos anual (ia) ia>24000 (ia<=2400000 (ia<=1200000 dá el
(im) (h) ia = 000? 0) y 0) y crédto
im*12 (ia>12000000 (ia>=1000000 ?
? 0) Además
Además tienes tienes hijos?
hijos?
1000000 1 1200000 no Si y si, 1 hijo si
0
2000000 0 2400000 No Si y no no
0
Condiciones para dar crédito: ingresos superiores a 24.000.000 de guaraníes
anuales, o bien los ingresos están entre 24.000.000 y 12.000.000 de guaraníes anuales
y el cliente tiene hasta 2 hijos; o bien si el cliente tiene ingresos entre 10.000.000 y
12.000.000 de guaraníes pero no tiene hijos

8. Escribir un algoritmo que lea tres números enteros correspondientes a lados de un


supuesto triángulo, determine si realmente forman un triángulo, y muestre el tipo de
triángulo que es (si es un triángulo). Triángulo: La suma de dos cualesquiera de los lados
debe ser mayor que el otro. Equilátero: todos los lados son iguales. Isósceles: solo dos
lados son iguales. Escaleno: no tiene dos lados iguales.
Planteamiento
Ingresar lado del triángulo: 10, 20, 30
Si es un triángulo 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 triángulo
Ingresar lado del triángulo: 10, 10, 10
10< 10+10? Si 10< 10+10? Si 10< 10+10? Si Entonces es un triángulo
Los lados son iguales? Sin es equilátero

var
a, b ,c: numérico
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 triángulo
Prueba de Escritorio
Ingresar lado del triángulo: 10, 20, 30
Es 10< 20+30 y 20< 10+30 y 30< 10+20? No, no es un triángulo
Ingresar lado del triángulo: 10, 10, 10
Es 10< 10+10 y 10< 10+10 y 10< 10+10? Si, es un triángulo
Sus lados son iguales? Si, es equilátero
Ingresar lado del triángulo: 10, 10, 15
Es 10< 10+10 y 10< 10+10 y 15< 10+10? Si, es un triángulo
Sus lados son iguales? No
Tiene 2 lados iguales? Si, es isósceles
Ingresar lado del triángulo: 5, 6, 7
Es 5< 6+7 y 6< 5+7 y 7< 5+6? Si, es un triángulo
Sus lados son iguales? No
Tiene 2 lados iguales? No, entonces es escaleno

9. Un equipo de fútbol ha tenido una buena campaña 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%
Diseñar un algoritmo que lea el salario de un jugador, y que a continuación 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: numérico
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. Diseñar un algoritmo que intercambie los valores de dos variables numéricas.
Plateamiento
n1= 5
n2= 8
Hacer que se intercambien, n1= 8 y n2= 5
var
n1, n2, aux: numérico
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 = números ingresados
aux = un auxiliar, donde se coloca el primer número para hacer el intercambio

Prueba de Escritorio
1º 2º aux = n1 n1 = n2 n2 = aux 1º 2º
Número Número * ** *** Número Número
(n1) (n2) (n1) (n2)
10 15 10 15 10 15 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

También podría gustarte