Está en la página 1de 23

NOTA

Solo copiar INICIO y FIN en los diagramas de colores como se muestra en la figura de arriba y aumentar en los otros
símbolos su respectivo LEER y ESCRIBIR en los datos de entrada y salida, tal como se muestra en el gráfico de arriba.

También se recomienda cambiar el nombre de las variables para no tener problemas (estarán con un fondo amarillo) el
cambio se tendría que hacer tanto en el análisis, diagrama de flujo y pseudocódigo.

El análisis se lo puede ampliar o explicar en tus propias palabras, sería lo más recomendable.

1) Análisis del problema

Sabemos que existen 12 meses, de los cuales la mayoría tiene entre 30 a 31 días, solo el mes de febrero tiene 28
días, respecto a cada mes tener un rango entre 1 a 30, 1 a 31 y 1 a 28.

Datos de entrada: d (día del mes)


Datos de salida: m (mes del año)

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer m,d
Si m=2 Entonces
Si d>=1 Y d<=28 Entonces
Escribir 'Fecha valida'
SiNo
Escribir 'Fecha invalida'
FinSi
SiNo
Si m=1 O m=3 O m=5 O m=7 O m=8 O m=10 O m=12 Entonces
Si d>=1 Y d<=31 Entonces
Escribir 'Fecha valida'
SiNo
Escribir 'Fecha invalida'
FinSi
SiNo
Si m=4 O m=6 O m=9 O m=11 Entonces
Si d>=1 Y d<=30 Entonces
Escribir 'Fecha valida'
SiNo
Escribir 'Fecha invalida'
FinSi
SiNo
Escribir 'Mes invalido'
FinSi
FinSi
FinSi
Fin

1) Análisis del problema

Las preguntas solo pueden tener una respuesta (Si/No) en este caso podemos asignar un numero a cada
respuesta y de esa manera comparar si la respuesta fue SI o si fue NO y tener un acumulador que cuente las
respuestas acertadas para poder comprar al final si ese acumulador llega a 5 el jugador gana, si no es así mostrar
cuantos puntos obtuvo.

Datos de entrada: resp (respuesta del participante por pregunta)


Datos de salida: t (total de puntos obtenidos)
Leyenda para mostrar si el jugador ha ganado (acierta las 5 preguntas)
2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
t <- 0
Escribir 'Responder 1(SI)/2(NO)'
Escribir 'El lago Titicaca pertenece a Peru?'
Leer resp
Si resp=2 Entonces
t <- t+1
FinSi
Escribir 'La autobiografia es la biografia que uno hace sobre si mismo?'
Leer resp
Si resp=1 Entonces
t <- t+1
FinSi
Escribir 'El sinonimo de recondito es oculto?'
Leer resp
Si resp=1 Entonces
t <- t+1
FinSi
Escribir 'La novela es considerada un medio de comunicacion?'
Leer resp
Si resp=1 Entonces
t <- t+1
FinSi
Escribir 'Umami es considerado un sabor primario?'
Leer resp
Si resp=1 Entonces
t <- t+1
FinSi
Si t=5 Entonces
Escribir 'Felicidades, has ganado'
SiNo
Escribir 'Puntos obtenidos: ',t
FinSi
Fin

1) Análisis del problema

Aquí se tiene cuatro simples casos y los vamos a analizar, aunque se ejecutara mas de 1 caso:

Casos de “x”
1. x<>0 r=1/x
2. x>0 r=sqrt(x)
3. x<0 r = x*x*x
4. x>20 o x<-15 Leyenda ‘Error’
Datos de entrada: x (número ingresado por teclado)
Datos de salida: r (resultado obtenido de acuerdo a la condición)
Leyenda ‘Error’

2) Diseño del algoritmo

Diagrama de flujo

Pseudocódigo

Inicio
Leer x
Si x>20 o x<-15 Entonces
Escribir 'Error'
SiNo
Si x<>0 Entonces
r=1/x
Escribir r
FinSi
Si x>0 Entonces
r=rc(x)
Escribir r
FinSi
Si x<0 Entonces
r=x*x*x
Escribir r
FinSi
FinSi
Fin
1) Análisis del problema

Usaremos el operador mod (%) para poder separar los dígitos del número, como son 3 cifras tendremos decena
y centena para multiplicar.

d1=n mod 10
n=n div 10
d2=n mod 10
n=n div 10
d3=n mod 10

Tambien sumaremos los dígitos obtenidos para luego obtener el dígito que no es ni el mayor ni el menor

s=d1+d2+d3

Para obtener el digito que no es ni el mayor ni el menor una vez obtenido el mayor y el menor realizamos la
siguiente operación

d=s-may-men

Encontramos al mayor y al menor para que el menor lo multipliquemos por 100 (centena) y el mayor por 10
(decena) y sumaremos todo mas el dígito que no es ni el mayor ni el menor

num=men*100 + may*10 + d

Así podremos obtener el nuevo número

Datos de entrada: n (numero de 3 cifras)


Datos de salida: num (nuevo número obtenido)
Datos auxiliares d1,d2,d3 (dígitos del número ingresado)
may (dígito mayor del número)
men (dígito menor del número)
d (dígito que no es ni el mayor ni el menor
s (suma de los dígitos del número ingresado)
2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer n
d1 = n MOD 10
n =n DIV 10
d2 =n MOD 10
n =n DIV 10
d3 =n MOD 10
s =d1+d2+d3
may =d1
men =d1
Si d2<men Entonces
men =d2
FinSi
Si d3<men Entonces
men =d3
FinSi
Si d2>may Entonces
may =d2
FinSi
Si d3>may Entonces
may =d3
FinSi
d = s-may-men
num = men*100+may*10+d
Escribir num
Fin

1) Análisis del problema

Un número consecutivo es aquel que se obtiene sumando la unidad a un número anterior.


Entonces:
(n-1) - n - (n+1)
Ingresaremos los 2 números y si restando o sumando la unidad a uno de ellos saber si son consecutivos o no

Datos de entrada: a,b (números enteros)


Datos de salida: Leyenda que indique si son consecutivos o no

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer a,b
Si a+1=b o a-1=b Entonces
Escribir 'Son consecutios'
SiNo
Escribir 'No son consecutivos'
FinSi
Fin

1) Análisis del problema

Sabemos la cantidad de días que tiene cada mes (sin tomar en cuenta años bisiestos) así que si el día esta en el
último día pues vamos a aumentar en 1 al mes, lo mismo para los meses, si es el último mes vamos a aumentar
en 1 al año.

Casos:
1. d>limite m=m+1
2. m>limite a=a+1
3. en los otros casos: d=d+1 a=a+1 m=m+1

Datos de entrada: d (día ingresado de la fecha)


m (mes ingresado de la fecha)
a (año ingresado de la fecha)
Datos de salida: Leyenda dd:mm:aa

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer d,m,a
Si m=12 Y d=31 Entonces
m <- 1
d <- 1
a <- a+1
SiNo
Si m=2 Entonces
Si d<28 Entonces
d <- d+1
SiNo
d <- 1
m <- m+1
FinSi
SiNo
Si m=1 O m=3 O m=5 O m=7 O m=8 O m=10 O m=12 Entonces
Si d<31 Entonces
d <- d+1
SiNo
d <- 1
m <- m+1
FinSi
SiNo
Si d<30 Entonces
d <- d+1
SiNo
d <- 1
m <- m+1
FinSi
FinSi
FinSi
FinSi
Si d<10 Entonces
Si m<10 Entonces
Escribir '0',d,':0',m,':',a
SiNo
Escribir '0',d,':',m,':',a
FinSi
SiNo
Si m<10 Entonces
Escribir d,':0',m,':',a
SiNo
Escribir d,':',m,':',a
FinSi
FinSi
Fin
1) Análisis del problema

Necesitamos conocer el sueldo básico de cada docente y según eso sacar el porcentaje de acuerdo a su tiempo
de servicio

Casos de “t”
1. t>=1 y t<=5 a=s*0.03 3%
2. t>=6 y t<=10 a=s*0.05 5%
3. t>=11 y t<=20 a=s*0.08 8%
4. t>20 a=s*0.12 12%

Al final el aumento se le sumará a su sueldo base

s=s+a

Datos de entrada: s (sueldo base del docente)


t (tiempo de servicio del docente)
Datos de salida: s (sueldo más aumento por antigüedad)
Datos auxiliares: a (aumento según el %)

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer s,t
Si t>=1 y t<=5 Entonces
a=s*0.03
SiNo
Si t>=6 y t<=10 Entonces
a=s*0.05
SiNo
Si t>=11 y t<=20 Entonces
a=s*0.08
SiNo
a=s*0.12
FinSi
FinSi
FinSi
s=s+a
Escribir s
Fin
1) Análisis del problema

Sabemos que el primer número par es 2

2, 4, 6, 8,…. n+2

Para conseguir los “n” términos pares vamos a sumar 2 al anterior número generado
Y para conseguir la suma vamos ir acumulando los números generados anteriormente

s=s+n

Datos de entrada: n (número límite para generar números pares)


Datos de salida: s (suma de los números pares hasta n)
Datos auxiliares: c,i (contador)

2) Diseño del algoritmo

Diagrama de flujo

Pseudocódigo

Inicio
Leer n
c=2
s=0
Mientras c<=n Hacer
s=s+c
c=c+2
FinMientras
Escribir s
Fin
Diagrama de flujo

Pseudocódigo

Inicio
Leer n
c=0
s=0
Repetir
c=c+2
s=s+c
Hasta Que c=n
Escribir s
Fin

Diagrama de flujo
Pseudocódigo

Inicio
Leer n
s=0
Para i=2 Hasta n Con Paso 2 Hacer
s=s+i
FinPara
Escribir s
Fin

1) Análisis del problema

Casos de “a”
1. a=0 r=0
2. a>0 r=a^b
3. a<0 Leyenda ‘Error’

Datos de entrada: a (base)


b (exponente)
Datos de salida: r (resultado)
Leyenda

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer a,b
Si a=0 Entonces
Escribir a
SiNo
Si a>0 Entonces
c=1
r=1
Mientras c<=b Hacer
r=r*a
c=c+1
FinMientras
Escribir r
SiNo
Escribir 'Error'
FinSi
FinSi
Fin

Diagrama de flujo
Pseudocódigo

Inicio
Leer a,b
Si a=0 Entonces
Escribir a
SiNo
Si a>0 Entonces
c=0
r=1
Repetir
c=c+1
r=r*a
Hasta Que c=b
Escribir r
SiNo
Escribir 'Error'
FinSi
FinSi
Fin

Diagrama de flujo
Pseudocódigo

Inicio
Leer a,b
Si a=0 Entonces
Escribir a
SiNo
Si a>0 Entonces
r=1
Para i=1 Hasta b Hacer
r=r*a
FinPara
Escribir r
SiNo
Escribir 'Error'
FinSi
FinSi
Fin

1) Análisis del problema

Datos de entrada: n (número entero)


Datos de salida: f (factorial de dicho número)

2) Diseño del algoritmo

Diagrama de flujo
Pseudocódigo

Inicio
Leer n
c=1
f=1
Mientras c<=n Hacer
f=f*c
c=c+1
FinMientras
Escribir f
Fin

Diagrama de flujo

Pseudocódigo

Inicio
Leer n
c=0
f=1
Repetir
Si n<>0 Entonces
c=c+1
f=f*c
FinSi
Hasta Que c=n
Escribir f
Fin
Diagrama de flujo

Pseudocódigo

Inicio
Leer n
f=1
Para i=1 Hasta n Hacer
f=f*i
FinPara
Escribir f
Fin

1) Análisis del problema

Vamos a ir aumentando en -1 una variable para ambos números

r1=r1-1 r2=r2-1

Como ambos son números y lo restamos pero a uno de ellos le cambiamos de signo se van a sumar
negativamente, al final lo multiplicamos todo por -1 y se obtendrá el resultado

Datos de entrada: a,b (números enteros a sumarse)


Datos de salida: r (resultado de la suma)
Datos auxiliares: r1 (acumulador para el primer número)
r2 (acumulador para el segundo número)
c,i (contador para el ciclo)
2) Diseño del algoritmo

Diagrama de flujo

Pseudocódigo

Inicio
Leer a,b
c <- 1
r1 <- 0
Mientras a>=c Hacer
r1 <- r1-1
a <- a-1
FinMientras
c <- 1
r2 <- 0
Mientras b>=c Hacer
r2 <- r2-1
b <- b-1
FinMientras
r <- (r1-r2*(-1))*(-1)
Escribir r
Fin
Diagrama de flujo

Pseudocódigo

Inicio
Leer a,b
c <- 0
r1 <- 0
Repetir
r1 <- r1-1
a <- a-1
Hasta Que a=c
c <- 0
r2 <- 0
Repetir
r2 <- r2-1
b <- b-1
Hasta Que b=c
r <- (r1-r2*(-1))*(-1)
Escribir r
Fin
Diagrama de flujo

Pseudocódigo

Inicio
Leer a,b
r1 = 0
Para i=a Hasta 1 Con Paso -1 Hacer
r1 = r1-1
FinPara
r2 = 0
Para i=b Hasta 1 Hacer
r2 = r2-1
FinPara
r = (r1-r2*(-1))*(-1)
Escribir r
Fin

También podría gustarte