Espero que os gusten y os sean útiles para practicar. ^w^
Algoritmo 1: Programa que visualice los n primeros números de la sucesión de Fibonacci.
Datos: a,n,cont,suma ; nºentero
Algoritmo:
Código:
INICIO
a = 0, b = 1
VISUALIZAR "Introduzca n"
LEER n
SI n > 2
suma = a + b
VISUALIZAR a,"",b
PARA cont = 3 HASTA n
a = suma
suma = a + suma
VISUALIZAR suma
FIN PARA
SINO
VISUALIZAR "No se puede aplicar la serie a menos de 3 términos!"
FIN SI
FIN
a = 0, b = 1
VISUALIZAR "Introduzca n"
LEER n
SI n > 2
suma = a + b
VISUALIZAR a,"",b
PARA cont = 3 HASTA n
a = suma
suma = a + suma
VISUALIZAR suma
FIN PARA
SINO
VISUALIZAR "No se puede aplicar la serie a menos de 3 términos!"
FIN SI
FIN
Algoritmo 2: Algoritmo que visualice los 25 primeros números perfectos.
Datos: n, cont, res, final
Algoritmo:
Código:
INICIO
final = 0
REPETIR
res = 0
PARA cont = 1 HASTA n DIV 2
SI cont % n == 0
res = res + cont
FIN SI
FIN PARA
SI res == n
VISUALIZAR n
final = final + 1
FIN SI
n = n + 1
MIENTRAS final < 25
FIN
final = 0
REPETIR
res = 0
PARA cont = 1 HASTA n DIV 2
SI cont % n == 0
res = res + cont
FIN SI
FIN PARA
SI res == n
VISUALIZAR n
final = final + 1
FIN SI
n = n + 1
MIENTRAS final < 25
FIN
Algoritmo 3: Introducir por teclado una secuencia de datos, cada una de ellas compuestas por un nombre y las calificaciones obtenidas por ese alumno en 6 asignaturas, la secuencia termina al introducir fin como nombre de alumno, el algoritmo deberá visualizar el nombre del alumno, seguido de su nota media, al introducir fin, se mostrará la nota media del grupo. (No se permite usar tablas en este ejercicio, pero simplificaría mucho el code)
Datos: alumno ; alfanumerico
nota, media, grupo: nº real
cont, alumnos, nalumnos : nº entero
Algoritmo:
Código:
INICIO
nalumnos = 0, global = 0
REPETIR
VISUALIZAR "Introduzca el nombre del alumno"
LEER alumno
media = 0
SI alumno != fin
PARA cont = 1 HASTA 6
VISUALIZAR "Introduzca la nota número" , cont
LEER nota
media = media + nota
FIN PARA
media = media / 6
global = global + media
nalumnos = nalumnos + 1
VISUALIZAR alumno, media
FIN SI
MIENTRAS alumno != fin
global = global / nalumnos
VISUALIZAR "Media del grupo: ", global
FIN
nalumnos = 0, global = 0
REPETIR
VISUALIZAR "Introduzca el nombre del alumno"
LEER alumno
media = 0
SI alumno != fin
PARA cont = 1 HASTA 6
VISUALIZAR "Introduzca la nota número" , cont
LEER nota
media = media + nota
FIN PARA
media = media / 6
global = global + media
nalumnos = nalumnos + 1
VISUALIZAR alumno, media
FIN SI
MIENTRAS alumno != fin
global = global / nalumnos
VISUALIZAR "Media del grupo: ", global
FIN
Algoritmo 4: Visualizar los n primeros números primos (n se introduce por teclado, usar una variable booleana para comprobar si el numero es primo)
Datos: cond, cont, n, a, primos
Algoritmo:
Código:
INICIO
primos = 0
VISUALIZAR "Introduzca n"
LEER n
MIENTRAS primos < n
cont = 0, cond = true
MIENTRAS cond = true
cont = cont + 1
SI cont % a = 0
cond = false
FIN SI
FIN MIENTRAS
SI cont == a
VISUALIZAR a
primos = primos + 1
FIN SI
a = a +1
FIN MIENTRAS
FIN
primos = 0
VISUALIZAR "Introduzca n"
LEER n
MIENTRAS primos < n
cont = 0, cond = true
MIENTRAS cond = true
cont = cont + 1
SI cont % a = 0
cond = false
FIN SI
FIN MIENTRAS
SI cont == a
VISUALIZAR a
primos = primos + 1
FIN SI
a = a +1
FIN MIENTRAS
FIN
Algoritmo 5: En una hurna hay 80 bolas numeradas del 1 al 80 se extrae una bola y el numero se introduce por teclado devolviendo de nuevo la bola a la hurna el proceso se repite hasta que aparezca 3 veces el numero 33. Hacer un programa que utilice cuantas veces ha salido cada una. (usar tablas)
DATOS: numeros (80)
bola, cont; nºentero.
Algoritmo:
Código:
INICIO
MIENTRAS numeros(33) < 3
VISUALIZAR "Introduzca el número de bola"
LEER bola
numeros(bola) = numeros(bola) + 1
FIN MIENTRAS
PARA cont = 1 HASTA 80
VISUALIZAR "Número de ", bola, "que salieron: ", numeros(bola)
FIN PARA
FIN
MIENTRAS numeros(33) < 3
VISUALIZAR "Introduzca el número de bola"
LEER bola
numeros(bola) = numeros(bola) + 1
FIN MIENTRAS
PARA cont = 1 HASTA 80
VISUALIZAR "Número de ", bola, "que salieron: ", numeros(bola)
FIN PARA
FIN
Algoritmo 6: Un almacén dispone de 8 departamentos numerados del 1 al 8 destinados a contener una serie de piezas. Las piezas están numeradas del 0 al 8 éstas llegan de una en una depositándose en el departamento del mismo número. Hacer un algoritmo que determine cuantas piezas hay en cada departamento después del suministro, el suministro termina al llegar la pieza numero 0, puede ocurrir que llegue una pieza no comprendida en el rango establecido con lo cual se debera visualizar el mensaje pieza número..... es incorrecta. Inicialmente no hay piezas en los departamentos.
DATOS: deps (8*9)
pieza, dep; nºentero
Código:
INICIO
VISUALIZAR "Introduzca pieza y departamento"
LEER pieza, dep
MIENTRAS pieza != 0
SI pieza < 0 == 1 OR pieza > 0 == 1
VISUALIZAR "Pieza número ", pieza, "es incorrecta"
SINO
deps(dep,pieza) = deps(dep,pieza) + 1
FIN SI
VISUALIZAR "Introduzca pieza y departamento"
LEER pieza, dep
FIN MIENTRAS
PARA dep = 1 HASTA 8
PARA pieza = 0 HASTA 8
VISUALIZAR "Departamento: ", dep, "Pieza: ", pieza, "Cantidad: ", deps(dep,pieza)
FIN PARA
FIN PARA
FIN
VISUALIZAR "Introduzca pieza y departamento"
LEER pieza, dep
MIENTRAS pieza != 0
SI pieza < 0 == 1 OR pieza > 0 == 1
VISUALIZAR "Pieza número ", pieza, "es incorrecta"
SINO
deps(dep,pieza) = deps(dep,pieza) + 1
FIN SI
VISUALIZAR "Introduzca pieza y departamento"
LEER pieza, dep
FIN MIENTRAS
PARA dep = 1 HASTA 8
PARA pieza = 0 HASTA 8
VISUALIZAR "Departamento: ", dep, "Pieza: ", pieza, "Cantidad: ", deps(dep,pieza)
FIN PARA
FIN PARA
FIN
Algoritmo 7: Una distribuidora de piezas de motor dispone de 3 almacenes para almacenar 4 piezas distintas, el número de piezas por almacén se representan mediante una matriz de 4x3 denominada inventario, también dispone de un vector con los costes de cada pieza, diseñar un algoritmo que permita calcular:
a) El valor que tiene cada almacén, teniendo en cuenta cada pieza
b) El valor del que dispone cada almacén, teniendo en cuenta todas las piezas.
c) El valor total de cada pieza en todos los almacenes
d) El valor total general
Suponer que la matriz inventario y el vector de costes ya están introducidos anteriormente
Resolución 1 (Larga y menos eficiente, pero mucho más simple de interpretar)
Código:
INICIO
//Resolución del apartado A con dos bucles para.
PARA y=1 HASTA 3
PARA x=1 HASTA 4
VISUALIZAR "El valor de pieza",x,"en almacén",y,"es",(inventario(x,y)*coste(x))
FIN PARA
FIN PARA
//Resolución del apartado B con dos bucles para.
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de almacén",y,"es",tgt
FIN PARA
//Resolución del apartado C con dos bucles para
PARA x=1 HASTA 4
tgt=0
PARA y=1 HASTA 3
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de piezas",x,"es",tgt
FIN PARA
//Resolución del apartado D con dos bucles para
sup=0
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
sup=sup+tgt
FIN PARA
VISUALIZAR "Valor global es",sup
FIN
//Resolución del apartado A con dos bucles para.
PARA y=1 HASTA 3
PARA x=1 HASTA 4
VISUALIZAR "El valor de pieza",x,"en almacén",y,"es",(inventario(x,y)*coste(x))
FIN PARA
FIN PARA
//Resolución del apartado B con dos bucles para.
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de almacén",y,"es",tgt
FIN PARA
//Resolución del apartado C con dos bucles para
PARA x=1 HASTA 4
tgt=0
PARA y=1 HASTA 3
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de piezas",x,"es",tgt
FIN PARA
//Resolución del apartado D con dos bucles para
sup=0
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
tgt=tgt+(inventario(x,y)*coste(x))
FIN PARA
sup=sup+tgt
FIN PARA
VISUALIZAR "Valor global es",sup
FIN
Resolución 2 (Búsqueda de la máxima eficiencia y el menor tamaño posible)
Código:
INICIO
//Resolución de los apartados A, B y D en el mismo bucle PARA
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
part = inventario(x,y)*costes(x)
VISUALIZAR "Valor de pieza",x,"en almacén",y,"es",part
tgt = tgt + part
FIN PARA
sup = sup + tgt
VISUALIZAR "Valor total de almacén",y,"es",tgt
FIN PARA
VISUALIZAR "Valor total global",sup
//Resolución del apartado C en otros dos bucles PARA, ya que
//en esta es necesario colocarlos de forma inversa.
PARA x=1 HASTA 4
tgt=0
PARA Y=1 HASTA 3
tgt = tgt + (inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de piezas",x,"es",tgt
FIN PARA
FIN
//Resolución de los apartados A, B y D en el mismo bucle PARA
PARA y=1 HASTA 3
tgt=0
PARA x=1 HASTA 4
part = inventario(x,y)*costes(x)
VISUALIZAR "Valor de pieza",x,"en almacén",y,"es",part
tgt = tgt + part
FIN PARA
sup = sup + tgt
VISUALIZAR "Valor total de almacén",y,"es",tgt
FIN PARA
VISUALIZAR "Valor total global",sup
//Resolución del apartado C en otros dos bucles PARA, ya que
//en esta es necesario colocarlos de forma inversa.
PARA x=1 HASTA 4
tgt=0
PARA Y=1 HASTA 3
tgt = tgt + (inventario(x,y)*coste(x))
FIN PARA
VISUALIZAR "El valor de piezas",x,"es",tgt
FIN PARA
FIN