viernes, 10 de julio de 2015

Ejemplos de algoritmos con números aleatorios y menús



1.-Simular el lanzamiento de una moneda al aire e imprimir si ha salido cara o cruz.

PROGRAMA moneda
ENTORNO:
res <- "S"
ALGORITMO:
MIENTRAS res = "S" HACER
Borrar_pantalla( )
SI Rnd( ) <= 0.5 ENTONCES
EN 10,35 ESCRIBIR "Cara"
SINO
EN 10,35 ESCRIBIR "Cruz"
FINSI
HACER Mas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMA Mas
res <- Espacios( 1 )
MIENTRAS res <> "S" Y res <> "N" HACER
EN 20,30 ESCRIBIR "M s lanzamientos (S/N): "
EN 20,57 LEER res
res <- Convertir_mayusculas( res )
FINMIENTRAS
FINSUBPROGRAMA


2.-Simular cien tiradas de dos dados y contar las veces que entre los dos suman 10.

PROGRAMA dado
ENTORNO:
c <- 0
i <- 0
ALGORITMO:
Borrar_pantalla( )
MIENTRAS i < 101 HACER
SI Int( Rnd( ) * 6 ) + Int( Rnd( ) * 6 ) + 2 = 10 ENTONCES
c <- c + 1
FINSI
i <- i + 1
FINMIENTRAS
EN 10,20 ESCRIBIR "Las veces que suman 10 son: "
EN 10,48 ESCRIBIR c
FINPROGRAMA


3.-Simular una carrera de dos caballos si cada uno tiene igual probabilidad de ganar.

PROGRAMA caballos
ENTORNO:
dibujo <- "****"
col1 <- 4
col2 <- 4
ALGORITMO:
Borrar_pantalla( )
EN 10,col1 ESCRIBIR dibujo
EN 10,col2 ESCRIBIR dibujo
MIENTRAS col1 <= 75 Y col2 <= 75 HACER
SI Rnd( ) <= 0.5 ENTONCES
EN 10,col1 ESCRIBIR Espacios( 4 )
col1 <- col1 + 4
EN 10,col1 ESCRIBIR dibujo
SINO
EN 12,col2 ESCRIBIR Espacios( 4 )
col2 <- col2 + 4
EN 12,col2 ESCRIBIR dibujo
FINSI
FINMIENTRAS
EN 16,20 ESCRIBIR "El ganador es el caballo n£mero: "
SI col1 >= 75 ENTONCES
EN 16,54 ESCRIBIR "1"
SINO
EN 16,54 ESCRIBIR "2"
FINSI
FINPROGRAMA


4.-Introducir dos nymeros por teclado y mediante un menu, calcule su suma, su resta, su multiplicacion o su division.

PROGRAMA menu1
ENTORNO:
op <- 0
ALGORITMO:
EN 10,20 ESCRIBIR "N£mero: "
EN 10,29 LEER n1
EN 12,20 ESCRIBIR "N£mero: "
EN 12,29 LEER n2
MIENTRAS op <> 5 HACER
op <- 0
Borrar_pantalla( )
EN 6,20 ESCRIBIR "Men£ de opciones"
EN 10,25 ESCRIBIR "1.- Suma"
EN 12,25 ESCRIBIR "2.- Resta"
EN 14,25 ESCRIBIR "3.- Multiplicaci¢n"
EN 16,25 ESCRIBIR "4.- Divisi¢n"
EN 18,25 ESCRIBIR "5.- Salir del programa"
EN 22,25 ESCRIBIR "Elija opci¢n: "
EN 22,39 LEER op
Borrar_pantalla( )
HACER CASO
CASO op = 1
EN 10,20 ESCRIBIR "Su suma es: "
EN 10,33 ESCRIBIR n1 + n2
Pausa( )
CASO op = 2
EN 10,20 ESCRIBIR "Su resta es: "
EN 10,33 ESCRIBIR n1 - n2
Pausa( )
CASO op = 3
EN 10,20 ESCRIBIR "Su multiplicaci¢n es: "
EN 10,33 ESCRIBIR n1 * n2
Pausa( )
CASO op = 4
EN 10,20 ESCRIBIR "Su divisi¢n es: "
EN 10,33 ESCRIBIR n1 / n2
Pausa( )
FINCASO
FINMIENTRAS
FINPROGRAMA


5.-Hacer un programa que nos permita introducir un numero por teclado y sobre el se realicen las siguientes operaciones: comprobar si es primo, hallar su factorial o imprimir su tabla de multiplicar. 

PROGRAMA menu2
ENTORNO:
op <- 0
ALGORITMO:
EN 10,20 ESCRIBIR "N£mero: "
EN 10,29 LEER n
MIENTRAS op <> 4 HACER
op <- 0
Borrar_pantalla( )
EN 6,30 ESCRIBIR "Men£ de opciones"
EN 10,25 ESCRIBIR "1.- Comprobar si es primo"
EN 12,25 ESCRIBIR "2.- Hallar su factorial"
EN 14,25 ESCRIBIR "3.- Tabla de multiplicar"
EN 16,25 ESCRIBIR "4.- Salir del programa"
EN 22,25 ESCRIBIR "Elija opci¢n: "
EN 22,39 LEER op
HACER CASO
CASO op = 1
HACER Primo
CASO op = 2
HACER Factorial
CASO op = 3
HACER Tabla
FINCASO
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMA Primo
sw <- 0
i <- n - 1
MIENTRAS i > 1 Y sw <> 1 HACER
SI n = Int( n / i ) * i ENTONCES
sw <- 1
SINO
i <- i - 1
FINSI
FINMIENTRAS
Borrar_pantalla( )
SI sw = 1 ENTONCES
EN 10,10 ESCRIBIR "no es primo"
SINO
EN 10,10 ESCRIBIR "s¡ es primo"
FINSI
Pausa( )
FINSUBPROGRAMA

SUBPROGRAMA Factorial
fac <- 1
Borrar_pantalla( )
SI n < 0 ENTONCES
EN 10,10 ESCRIBIR "No tiene factorial"
SINO
MIENTRAS n > 1 HACER
fac <- fac * n
n <- n - 1
FINMIENTRAS
EN 10,10 ESCRIBIR "Su factorial es: "
EN 10,27 ESCRIBIR fac
FINSI
Pausa( )
FINSUBPROGRAMA

SUBPROGRAMA Tabla
i <- 0
fi <- 10
Borrar_pantalla( )
MIENTRAS i <= 10 HACER
EN 8,10 ESCRIBIR "Tabla de multiplicar"
EN fi,10 ESCRIBIR n
EN fi,15 ESCRIBIR "*"
EN fi,20 ESCRIBIR i
EN fi,25 ESCRIBIR "="
EN fi,30 ESCRIBIR n * i
i <- i + 1
FINMIENTRAS
Pausa( )
FINSUBPROGRAMA


Espero haber ayudado en algo. Hasta la próxima oportunidad!








No hay comentarios:

Publicar un comentario en la entrada