Está en la página 1de 44

PRÁCTICA DE ALGORITMOS ESTRUCTURA CONDICIONAL

1. Definición del problema: Se sabe que un megabyte equivale a 1024 Kbytes y


un Gigabyte equivale a 1024 Megabytes. Si mi Computadora tiene un disco duro
de X Gigabytes. Indicar si el disco duro tiene más de 20 000 000 Kbytes.
Análisis del problema: Para ver si el disco duro equivalga a más de 20 000
000 kilobytes es necesario saber las equivalencias.
1Mg= 1024Kb
1Gb=1024Mb
Sean: X: Capacidad del Disco duro.
Y: Capacidad del Disco duro en Kbits
Datos de entrada: X
Datos de salida: Respuesta: “El disco duro tiene más de 20 000 000 Kbyts” o “El
disco duro tiene menos de 20 000 000 Kbyts “

Proceso: Y=X*1024*1024
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero X, Y

//Entrada de datos//

Leer X

//Proceso//

Y=X*1024*1024
Si (Y>20 000 000) Entonces
Escribir “El disco duro tiene más de 20 000 000 Kbytes”
Sino
Escribir “El disco duro tiene menos de 20 000 000 Kbytes “
Fin si
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
2. Definición del problema: Leer una cantidad sol expresada en soles. Si es sol< 0 Escribir “Valor
incorrecto”. En caso contrario, si sol < 100 transformarla a su equivalente en dólares, sino
expresarla en Euros.(Considerar 1 $ = 3.25 soles, 1 Euro = 4.20 soles).

Análisis del problema: Para ver la cantidad de soles en dólares y euros debemos saber las
equivalencias.

1Dolar= 3.25soles
1Euro=4.20 soles
Sean: sol: La cantidad de soles
aDol: soles expresados en solare
aEur: soles expresado en euros
Datos de entrada: sol
Datos de salida:
Escribir "La equivalencia en Dólares es:", aDol
Escribir "La equivalencia en Euros es:", aEur

Proceso: (sol<100)
aDol=3.25/sol
aEur= 4.20/sol
PSEUDOCÓDIGO
Inicio:

//Declaración de variables//
Entero sol, aDol, aEur

//Entrada de datos//
Leer sol
//Proceso//

Si (sol<0) Entonces
Escribir "Valor incorrecto"
Sino
Si (sol<100)
aDol=3.25/sol
Escribir "La equivalencia en Dolares es:", aDol
Sino
aEur= 4.20/sol
Escribir "La equivalencia en Euros es:", aEur
FinSi
FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
3. Definición del problema: Dada 3 longitudes, Diga si pueden formarse un
triángulo.
Análisis del problema: Para saber si un triángulo puede existir debemos tener en
cuenta lo siguiente:
A-B<C<A+B y A-C<B<A+C y C-B<C<C+B
De donde salen las siguientes inecuaciones: A>B-C, B>A-C y C>B-A
Sean: A: Lado1
B: Lado2
C: Lado3
Datos de entrada: A, B, C
Datos de salida:
Escribir "Si se puede formar un triángulo"
Escribir "No se puede formar un triángulo"
Proceso: (A>B-C Y B>A-C Y C>B-A)

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero A, B, C

//Entrada de datos//
Leer A, B, C
//Proceso//

Si (A>B-C Y B>A-C Y C>B-A) Entonces


Escribir "Si se puede formar un triángulo"
Sino
Escribir "No se puede formar un triángulo"
Fin Si
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
4. Definición del problema: Dados los lados de un triángulo, clasificar en triángulo
según sus lados.
Análisis del problema: Para saber qué clase de triángulos son tendremos en
cuenta lo siguiente:
A =B=C (Equilátero)
A<>B y B=C (Isósceles)
B<>A y A=C (Isósceles)
A <>B<>C (Escaleno)
De donde salen las siguientes inecuaciones: A>B-C, B>A-C y C>B-A
Sean: A: Lado1 B: Lado2 C: Lado3
Datos de entrada: A, B, C
Datos de salida:
Escribir "Si se puede formar un triángulo"
Escribir "No se puede formar un triángulo"
Proceso: (A>B-C Y B>A-C Y C>B-A )

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero A, B, C

//Entrada de datos//
Leer A, B, C
//Proceso//
Si(A<0 o B<0 o C<0)
Escribir "Datos incorrectos"
Sino
Si(A>B y B>C o A<B y B<C)
Escribir "Es un triángulo Escaleno"

Sino
si(A==B Y B=C)
Escribir "Es un Triángulo Equilátero"
Sino
si(A==B y C>A o C<B o A==C y B>A o B<C o B==C y A>B o A<C)
Escribir "Es un Triángulo Isósceles"
Sino
Escribir "Es un Triángulo Escaleno"
FinSi
FinSi
FinSi
FinSi
Fin
DIAGRAMA DE FLUJO
DIAGRAMA N-S
5. Definición del problema: Una llamada de un teléfono fijo a otro, también fijo, en horario
normal (todos los días de 7:00 a 22:59 hrs), cuesta sin igv S/. 0.078, mientras que en horario
reducido (todos los días de 23:00 a 6:59 hrs), cuesta S/. 0.039. Calcule el costo total de una
llamada telefónica, si considera 1 minuto adicional de cargo por establecimiento de llamada y
solo se considera la hora de inicio para determinar a qué tarifa se sujeta.

Análisis del problema: El horario normal comienza en el minuto 7x60 = 420 del
día y termina en el minuto 22x60+59 = 1379 del día. Toda hora de inicio válida
que no este en este rango se realiza en horario reducido.

Sean: hora: hora de inicio de la llamada


min: minuto de inicio de la llamada
inicio: minuto de inicio en el día
duración: duración de la llamada
Datos de entrada: hora, min, duración
Datos de salida: Costo
Proceso: inicio= hora*60+min
(inicio>419 y inico <1380)
Costo=(duracion+1)*0.078
Sino
Costo=(dura + 1)*0.039

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero hora, min, duración, Costo

//Entrada de datos//
Leer hora, min, duración
//Proceso//

inicio= hora*60+min
Si (inicio>419 y inico <1380)
Costo=(duracion+1)*0.078
Escribir "El costo de la llamada es:",Costo
Sino
Costo=(dura + 1)*0.039
Escribir "El costo de la llamada es:", Costo
FinSi Fin
FIN
DIAGRAMA DE FLUJO
DIAGRAMA N-S

6. Definición del problema: Ordene de mayor a menor, 3 números ingresados por


teclado.
Análisis del problema: Como se trata de 3 números, sabemos que existen 3!=
3x2x1 = 6 posibilidades de ordenarlos.
Teniendo las siguientes posibles:
A>=B>=C A>=C>=B B>=A>=C B>=C>=A C>=B>=A
Sean:
A: primer número"
B: segundo número"
C: tercer número"
Datos de entrada: A, B, C
Datos de salida: El orden(A>=B>=C A>=C>=B B>=A>=C B>=C>=A C>=B>=A)
Proceso: A>=B>=C A>=C>=B B>=A>=C B>=C>=A C>=B>=A

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero A, B, C
//Entrada de datos//
Leer A, B, C
//Proceso//
si(A>=b Y B>=C)
Escribir "El orden de mayor a menor es:",A,"_",B,"_",C
Sino
si(A>=C y C>=B)
Escribir "El orden de mayor a menor es:",A,"_",C,"_",B
Sino
si(B>=A y A>=C)
Escribir "El orden de mayor a menor es:",B,"_",A,"_",C
Sino
si(B>=C y C>=A)
Escribir "El orden de mayor a menor es:",B,"_",C,"_",A
Sino
si(C>=A y C>=B)
Escribir "El orden de mayor a menor es:",C,"_",A,"_",B
Sino
Escribir "El orden de mayor a menor es:",C,"_",B,"_",A

FinSi
FinSi
FinSi
FinSi

FinSi
FIN

DIAGRAMA DE FLUJO
DIAGRAMA N-S
7. Definición del problema: Elabore un algoritmo que obtenga las raíces reales de
una ecuación de segundo grado.
Análisis del problema: La forma general de una ecuación de segundo grado es:
ax²+bx+c=0
Completando cuadrados: ax² + bx =-c multiplicando por 4a 4a²x² + 4abx = - 4ac
sumando b² a ambos lados 4a²x²+ 4abx+b²=-4ac + b²
Factorizando:
(2ax + b)²= b2 - 4ac²ax + b =± √ b2−4 ac
De donde:
−b ± √ b2−4 ac
x=
2a
Para que exista solución, a<>b (para poder dividir) y b 2 - 4ac ≥ 0, (para obtener la
raíz cuadrada).
Sean: a: coeficiente de x2. Deber ser diferente de 0.
b: coeficiente de x.
c: término independiente.
d: discriminante b 2 - 4ac. Debe ser diferente de 0
x1: primera raíz real.
x2: segunda raíz real.
Datos de entrada: a, b, c
Datos de salida: x1, x2
Proceso: (a<>0)
d=b^2-4*a*c
(d>=0)
x1=(-b + RAIZ(d))/(2*a)
x2=(-b - RAIZ(d))/(2*a)

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero a, b, c, d
Real x1, x2

//Entrada de datos//
Leer a, b, c

//Proceso//

Si (a<>0)
d=b^2-4*a*c
Si (d>=0)
x1=(-b + RAIZ(d))/(2*a)
x2=(-b - RAIZ(d))/(2*a)
Escribir "La primera raiz real es:" , x1
Escribir "La segunda raiz real es:" , x2
Sino
Escribir "Raíces imaginarias"
FinSi
Sino
Escribir "El Coeficiente de x² debe ser diferente de cero"
FinSi
FIN

DIAGRAMA DE FLUJO

DIAGRAMA N-S
8. Definición del problema: Un año bisiesto es aquel que tiene 366 días. Mediante un
decreto del Papa Gregorio XIII, dado en 1582, se reforma el Calendario Juliano que nos regía,
para que pasen a considerarse bisiestos aquellos años múltiplos de 4, pero no los múltiplos de
100, excepto los múltiplos de 400. Escriba un algoritmo que diga si un año es o no bisiesto.

Análisis del problema: Según el enunciado año, será bisiesto si: Es múltiplo de 4,
lo que se escribe (año MOD 4 = =0), pero no múltiplo de 100, excepto los
múltiplos de 400 que si son bisiestos (año MOD 100 ≠ 0) OR (año MOD 400 == 0)
Combinando ambas condiciones, tendremos la condición de bisiesto: (año MOD 4
== 0) AND ((año MOD 100 ≠ 0) OR (año MOD 400== 0))
Sean:
Año : año a averiguar si es bisiesto o no
Datos de entrada: Año
Datos de salida: Escribir "El Año si es bisiesto"
Escribir "El Año no es bisiesto"
Proceso: si (año MOD 4 ==0 y (año MOD 100<>0 o año MOD 400==0))

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero Año

//Entrada de datos//
Leer Año
//Proceso//

Si (año MOD 4 ==0 y (año MOD 100<>0 o año MOD 400==0))

Escribir "El Año si es bisiesto"

Sino

Escribir "El Año no es bisiesto"

FinSi

FIN
DIAGRAMA DE FLUJO

DIAGRAMA N-S
9. Definición del problema: Los 3 números q, r y s, y determine si q es el múltiplo
de r y s.
Análisis del problema: C será múltiplo de pD1 y de pD2 cuando pD1 y pD2 dividan
exactamente a C.
Sean:
C: número cualquiera
pD1: posible divisor1
pD2: posible divisor2
Datos de entrada: C, pD1, pD2
Datos de salida: Respuesta: C, "Es Múltiplo de:", pD1, "y de:", pD2
Respuesta: C, "No es Múltiplo de:", pD1,"y de:", pD2
Proceso: Si ((C MOD pD1==0) y (C MOD pD2==0))

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero C, pD1, pD2

//Entrada de datos//

Leer C, pD1, pD2

//Proceso//

Si ((C MOD pD1==0) y (C MOD pD2==0))

Escribir C, "Es Múltiplo de:", pD1, "y de:", pD2

Sino

Escribir C, "No es Múltiplo de:", pD1,"y de:", pD2

FinSi

Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
10. Definición del problema: Muestre un algoritmo que nos permita evaluar la
función.

Análisis del problema: Sean:


X: variable independiente
Y: variable dependiente
Datos de entrada: X
Datos de salida: Y
Proceso: Si (X<=0)
Y=X+ sen(X)
Escribir "La Variable Dependiente es:", Y
Si (X<=8)
Y=2*X-ln(X)
Escribir "La Variable Dependiente es:", Y
Sino
Y=log*(X-8)
Escribir "La Variable Dependiente es:", Y
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero X
Real Y
//Entrada de datos//
Leer X
//Proceso//
Si (x<=0)
y=x + sen(x)
Escribir "La Variable Dependiente es:", ye
Sino
Si (x<=8)
y=2*x-ln(x)
Escribir "La Variable Dependiente es:", ye
Sino
y=log*(x-8)
Escribir "La Variable Dependiente es:", ye
FinSi
FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
11. Definición del problema: El rendimiento de un alumno se califica según lo
siguiente:
Bueno si su promedio esta entre 16 y 20
Regular si su promedio está entre 11 y 15
Deficiente si su promedio está entre 6 y 10
Pésimo si su promedio está entre O y 5
Escriba un algoritmo que lea el promedio de un alumno y diga cuál es su rendimiento.
Análisis del problema: Sean:
Prom: La nota promedio del alumno
Datos de entrada: Prom
Datos de salida: Respuesta “Bueno”, “Regular”, “Deficiente”, “Pésimo”
Proceso: Si (Prom<0 O Prom>20)
Si (Prom>=15)
Si (Prom>=10)
Si (Prom>=5)

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real Prom
//Entrada de datos//
Leer Prom
//Proceso//
Si (Prom<0 O Prom>20) Entonces
Escribir 'Dato erroneo'
Sino
Si (Prom>=15) Entonces
Escribir 'El Rendimiento es Bueno'
Sino
Si (Prom>=10) Entonces
Escribir 'El Rendimiento es Regular'
Sino
Si (Prom>=5) Entonces
Escribir 'El Rendimento es Deficiente'
Sino
Escribir 'El Rendimento es Pesimo'
FinSi
FinSi
FinSi
FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
12. Definición del problema: Luego de evaluar a X alumnos del curso de
Introducción a la computación se tiene que Y alumnos tienen una nota igual o
mayor a once. Si Y ≤ X, calcular el porcentaje de aprobados y de desaprobados. En
caso contrario escribir “No se puede calcular”.
Análisis del problema:
Sean:
X: Cantidad de alumnos
Y: cantidad de alumnos aprobados
A: % de alumnos aprobados
D: % de alumnos desaprobados
Datos de entrada: X, Y
Datos de salida: A, D
Proceso: si (X>=Ye)
Si (Ye>=11)
A= (Y*100)/X
D=100-A
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero X, Y
Real A, D
//Entrada de datos//
Leer X, Y
//Proceso//
Si (X>=Ye)
Si (Ye>=11)
A= (Y*100)/X
D=100-A
Escribir "El Porcentaje de aprobados es:",A
Escribir "El Porcentaje de Desaprobados es:",D
Sino
FinSi
Sino
Escribir "No se puede calcular"

FinSi
Fin
DIAGRAMA DE FLUJO
DIAGRAMA N-S
13. Definición del problema: A un digitador le pagan 0.50 soles por cada hoja que
digita, 1.00 soles por cada hoja que imprime en blanco y negro y 2.00 soles por
cada hoja que imprime a color. Si un día digita X hojas de las cuales solamente Y
deben imprimirse a color y Z en blanco y negro. El resto de páginas no se
imprime. Por qué gana más, ¿por digitar o por imprimir?
Análisis del problema: Para llegar a la respuesta es necesario conocer la cantidad
de hojas digitadas y las impresiones (blanco y negro, y a color) y el precio por
hacer eso.
Sean:
X: Cantidad de hojas digitadas
Y: cantidad de hojas impresas a color
Z: cantidad de hojas impresas a blanco y negro
Datos de entrada: X, Y, Z
Datos de salida: Escribir "Gana más por digitar"
Escribir "Gana más por imprimir"
Proceso: Si (X*0.5=Y*2+Z*1)
Si (X*0.5>Y*2+Z*1)
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Entero X, Y, Z
//Entrada de datos//
Leer X, Y, Z
//Proceso//
Si (X*0.5=Ye*2+Z*1)
Escribir "Gana lo mismo por digitar y por imprimir"
Sino
Si(X*0.5>Ye*2+Z*1)
Escribir "Gana más por digitar"
Sino
Escribir "Gana más por imprimir"

FinSi

FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
14. Definición del problema: Lea un número y obtenga el signo, su parte entera y
su parte fraccionaria.
Análisis del problema: Para obtener el signo, basta con preguntar si es mayor que
cero, en cuyo caso será positivo, en caso contrario será negativo.
Sean:
N: Cualquier número
Datos de entrada: N
Datos de salida: Escribir "Signo Positivo"
Escribir "Signo Negativo"
Proceso: (N>=0)
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real N
//Entrada de datos//
Leer N
//Proceso//
Si(N>=0)
Escribir "Signo Positivo"
Sino
Escribir "Signo Negativo"
FinSi

Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
15. Definición del problema: La distancia entre Trujillo y Chiclayo es de 200 Km. Si
un conductor parte el día lunes de Trujillo a una velocidad constante de X Km/h, y
el día martes repite el mismo procedimiento a Y Km/h. ¿Qué día llega más rápido
a Chiclayo y que tiempo se demora?
Análisis del problema: Para conocer el día que llegará más rápido a Chiclayo y el
tiempo tendríamos que conocer las fórmulas del tiempo con respecto a la
distancia y la velocidad.
Sean:
Vx: Velocidad del auto el día Lunes
Vy: Velocidad del auto el día martes
T: Tiempo de demora
Datos de entrada: Vx, Vy
Datos de salida: T, Escribir "Llega más rápido el Día Lunes "
Escribir "en un tiempo de:", T,"horas"
Escribir "Llega más rápido el Día Martes"
Escribir "en un tiempo de:",T,"horas"
Proceso: T=200/Vx
T=200/Vy
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real Vx, Vy, T
//Entrada de datos//
Leer Vx, Vy
//Proceso//
Si (Vx>Vy)
Escribir "Llega más rápido el Día Lunes "
T=200/Vx
Escribir "en un tiempo de:", T, "horas"
Sino
Escribir "Llega más rápido el Día Martes"
T=200/Vy
Escribir "en un tiempo de: ", T," horas"
FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
16. Definición del problema: Si compramos al por mayor 100 o más artículos nos
descuentan el 40%, si compramos entre 25 y 100 nos descuentan un 20%, y si
compramos entre 10 y 25 un 10%. No hay descuento si adquirimos menos de 10
artículos. Diga cuanto debemos pagar por nuestra compra.
Análisis del problema: Las condiciones están descritas en la siguiente función de
descuento: 0.40 si x >= 100 d(x) 0.20 si 25 <= x < 100 0.10 si 10<=x<25
0.00 si x<10
Sean: X: Cantidad de artículos
P: Precio unitario del artículo
D: Descuento obtenido
M: Monto a pagar
Datos de entrada: X, P
Datos de salida: M
Proceso: M= P*x*(1-D)
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real X, P, D, M
//Entrada de datos//
Leer X, P
//Proceso//
Si(x>=100)
D=0.40
M= P*x*(1-D)
Escribir "El monto a pagar es:", M
Sino
Si (X>=25)
D=0.20
M= P*x*(1-D)
Escribir "El monto a pagar es:", M
Sino
Si (X>10)
D=0.10
M= P*x*(1-D)
Escribir "El monto a pagar es:", M
Sino
Si (X>=0)
D=0.0
M= P*x*(1-D)
Escribir "El monto a pagar es:", M
Sino
Escribir "Cantidad errónea"
FinSi
FinSi
FinSi
FinSi
Fin
DIAGRAMA DE FLUJO
DIAGRAMA N-S
17. Definición del problema: Si el sueldo de un empleado es de 1000 o menos se le
descuenta el 10%. Si esta entre 1000 y 2000 el 5% sobre el adicional, y si está arriba de 2000, el
3% sobre el adicional. Escriba un algoritmo que lea el sueldo y muestre el salario neto y el
impuesto.
Análisis del problema: En este caso si el trabajador gana más de 1000 y hasta 2000, el
descuento por los primeros 1000 se mantendrá en 10% lo que equivale a 0.1*1000=100,
mientras que el descuento por lo que gana arriba de 1000 será 0.05(Sb-1000). Lo mismo ocurre
cuando el trabajador gana más de 2000, puesto que se le descuento 0.1*1000 = 100 por los
primeros 1000, y
0.05*(2000-1000)=50, por los siguientes 1000, el descuento será 100+50 +0.03(Sb-2000).
Estos casos de descuentos adicionales por lo general se aplican en el caso de pago de
impuestos, con la intensión de que el pago sea más equitativo. Entonces tenemos:
Si Sb<=1000, D= 0.1Sb
Si 1000<Sb<=2000, D=l00+0.05(Sb-1000)
Si Sb> 2000, D=150+0.03(Sb-2000)
El salario neto será Sn = Sb –D
Sean: Sb: Sueldo bruto D: Descuento Sn: Sueldo neto
Datos de entrada: Sb
Datos de salida: Sn, D
Proceso: D=0.1*Sb
D=100+(0.05*(Sb-1000))
D=150+(0.03*(Sb-2000))
PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real Sb, D, Sn
//Entrada de datos//
Leer Sb
//Proceso//
si(Sb<0)
Escribir "Sueldo bruto incorrecto"
sino
si (Sb<=1000)
D=0.1*Sb
Sino
si(Sb<=2000)
D=100+(0.05*(Sb-1000))
Sino
D=150+(0.03*(Sb-2000))
FinSi
FinSi
Sn=Sb-D
Escribir "Sueldo neto es:", Sn
Escribir "El descuento es:", D
FinSi
Fin
DIAGRAMA DE FLUJO

DIAGRAMA N-S
18. Definición del problema: Dada la hora y el día en horas, minutos y segundos
encuentre la hora del siguiente segundo.
Análisis del problema: Si h, m y s, representan una hora válida, entonces el
siguiente segundo será s+1, el cual si llega a ser 60 hará que m aumente en 1, si m
llega a ser 60 hará que h aumente en 1, si h llega a ser 24, entonces debemos
pacer h = 0 pues habrá terminado el día.

Sean: h: hora
m: minutos
s: segundos
Datos de entrada: h, m, s
Datos de salida: h, m, s
Proceso: s=s+1
m=m+1
h=h+1

PSEUDOCÓDIGO
Inicio:
//Declaración de variables//
Real h, m, s
//Entrada de datos//
Leer h, m, s
//Proceso//
s=s+1
si(s==60)
s=0
m=m+1
si(m==60)
m=0
h=h+1
si(h==24)
h=0
FinSi
FinSi
FinSi
Escribir "La Hora del siguiente segundo:",h ":", m,":",s
Fin
DIAGRAMA DE FLUJO
DIAGRAMA N-S

También podría gustarte