0% encontró este documento útil (0 votos)
45 vistas10 páginas

Algoritmos Casoestudio

El primer algoritmo describe un juego de adivinar un número aleatorio entre 1 y 100. El jugador tiene 10 intentos para adivinar el número secreto generado por la computadora. Después de cada intento, la computadora indica si el número ingresado es muy alto o muy bajo. Al final, indica si el jugador ganó adivinando el número o perdió. El segundo algoritmo describe un juego entre dos jugadores para llegar a 30 puntos. Cada jugador toma turnos ingresando un número del 1 al 3, y se suman esos puntos a su puntaje

Cargado por

Fabian Barba
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas10 páginas

Algoritmos Casoestudio

El primer algoritmo describe un juego de adivinar un número aleatorio entre 1 y 100. El jugador tiene 10 intentos para adivinar el número secreto generado por la computadora. Después de cada intento, la computadora indica si el número ingresado es muy alto o muy bajo. Al final, indica si el jugador ganó adivinando el número o perdió. El segundo algoritmo describe un juego entre dos jugadores para llegar a 30 puntos. Cada jugador toma turnos ingresando un número del 1 al 3, y se suman esos puntos a su puntaje

Cargado por

Fabian Barba
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Algoritmo Adivina_Numero

intentos<-10 //aquí se colocan el número de intentos

num_secreto <- azar(100)+1 // la maquina escoge al azar un número entre 0 y 100

Escribir "Adivine el numero (de 1 a 100):"

Leer num_ingresado

Mientras num_secreto<>num_ingresado Y intentos>1 Hacer // aquí el programa hace un bucle


que mantiene hsta que el número sea hallado o supere intentos

Si num_secreto>num_ingresado Entonces //si el número igresado es menor a el número


escogido por la maquina entonces escribira muy bajo

Escribir "Muy bajo"

Sino //si el número igresado es mayor a el número escogido por la maquina entonces escribira
muy alto

Escribir "Muy alto"

FinSi

intentos <- intentos-1

Escribir "Le quedan ",intentos," intentos:"

Leer num_ingresado

FinMientras

Si num_secreto=num_ingresado Entonces // despues de salir del bucle si el número de intento


es menorigual al permitido entonces imprime ganó

Escribir "Exacto! Usted adivino en ",11-intentos," intentos."

Sino

Escribir "El numero era: ",num_secreto // si no imprime el número a adivinar

FinSi

FinAlgoritmo
Algoritmo Quien_llegue_a_30

//se dfinen las variables enteras

Definir x,a,b,n Como Entero

//se inicializan a y b que son los que guardan los puntos

a=0

b=0

x=azar(2)+1 //escoge quien empieza primero

Escribir "empieza el juego", x

// se hace un bucl que mientras a o b sea menos a 30 se repite

Mientras a<30 y b<30 Hacer

Escribir "jugador", x, "ingrese número entre 1 y 3" //pide ingresar entrada

Leer n

si n>0 y n<4 Entonces// si el número esta dentro del rango continua, sino imprime
incorrecto

si x==1 Entonces// si empieza usuario 1 enonces hace lo de adentro

a=b+n //suma el valor que lleva b con el n que sería la entrada

//imprime puntos que llean

Escribir "el jugador 1 lleva ",a,"puntos"

Escribir "el jugador 2 lleva ",b,"puntos"

x=2

SiNo

b=a+n // suma el valor que lleva a con n que sería la entrada

//imprime puntos que llevan

Escribir "el jugador 2 lleva ",b,"puntos"

Escribir "el jugador 1 lleva ",a,"puntos"

x=1

FinSi

SiNo
Escribir "número incorrecto"

FinSi

FinMientras

//imprime cual usuario es el ganador

si a>=30 Entonces

Escribir "el ganador es el jugador 1 con ", a , "puntos"

SiNo

Escribir "el ganador es el jugador 2 con", b, "puntos"

FinSi

FinAlgoritmo
Algoritmo juego_del_nim

//ingresa el valor de fosforos

Escribir "Ingrese cantidad de fosforos:";

leer num;

//verifica que el numero sea mayor a 4

si num<=4 Entonces

Repetir

Escribir "Debes ingresar una cantidad mayor a 4.";

Escribir "Vuelve a ingresar:";

Leer num;

Hasta Que num>4

FinSi

//define quien comienza

Escribir "Comienza usted?(si/no)";

Leer resp;

si (resp='si') o (resp='SI') Entonces

turno<-Verdadero;

Sino

turno<-Falso;

FinSi

// repite el bucle hasta que el número de fosforos sea igual a uno que es cuando el usuario
gana

mientras num<>1 Hacer

si turno=Falso Entonces

turno<-Verdadero;

//Aquí define cuantos fosforos saaca la computadora

si num mod 4=0 Entonces

num<-num-3;
Escribir "La computadora saca 3 fosforos.";

Escribir "";

Escribir "Quedan ",num," fosforos."

Sino

si (num mod 4=1) o (num mod 4=2) Entonces

num<-num-1;

Escribir "La computadora saca 1 fosforo";

Escribir "";

Escribir "Quedan ",num," fosforos";

Sino

si (num mod 4=3) Entonces

num<-num-2;

Escribir "La computadora saca 2 fosforos.";

Escribir "";

Escribir "Quedan ",num," fosforos.";

FinSi

FinSi

FinSi

// si inicio el usuario entonces ejecuta esta parte

Sino

si turno=Verdadero Entonces

turno<-Falso;

Escribir "Cuantos fosforos saca?";

Leer s;
si (s<=0) o (s>3) Entonces

Repetir

Escribir "Error, vuelve a ingresar: (Mayor que cero


y menor o igual a 3)";

Leer s;

Hasta Que s>0 y s<=3;

FinSi

num<-num-s;

Escribir "Quedan ",num," fosforos.";

FinSi

FinSi

//evalua los resultados, si al finzalizar queda un fosforo y el usuario esta en turno


gana, si no pierde.

FinMientras

si turno=Verdadero Entonces

Escribir "Usted pierde.";

Sino

Escribir "Usted gana.";

FinSi

FinAlgoritmo
Algoritmo torre_hanoi

Dimension torres[3,10], cant_discos[3]

// pedir y validar cuantos discos colocar en la primer torre

Escribir "Ingrese el nro de discos (1-8):"

leer discos

mientras discos<1 O discos>8 Hacer

Escribir "El numero de discos debe ser mayor a 0 y menor a 5:"

leer discos

finmientras

// inicializar los datos

cant_discos[1]<-discos

cant_discos[2]<-0

cant_discos[3]<-0

Para i<-1 Hasta discos hacer

torres[1,i]<-discos-i+1

FinPara

// jugar!

cant_movs<-0

Mientras cant_discos[3]<>discos Hacer // mientras no esten todos los discos en la tercer torre,
el juego sigue

Limpiar Pantalla

Para i<-1 Hasta 3 Hacer // dibujar las tres torres

escribir "Torre ",i


si cant_discos[i]=0 Entonces

Escribir ""

sino

para j<-cant_discos[i] hasta 1 con paso -1 Hacer // recorrer los discos de la torre, de
arriba hacia abajo

segun torres[i,j] Hacer // dibujar cada disco

1: Escribir " XX"

2: Escribir " XXXXXX"

3: Escribir " XXXXXXXXXX"

4: Escribir " XXXXXXXXXXXXXX"

5: Escribir " XXXXXXXXXXXXXXXXXX"

6: Escribir " XXXXXXXXXXXXXXXXXXXXXX"

7: Escribir " XXXXXXXXXXXXXXXXXXXXXXXXXX"

8: Escribir " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

finsegun

FinPara

finsi

Escribir " ----------------------------------"

Escribir ""

FinPara

// solicitar movimiento

Escribir "Mover desde la torre: "

leer t1

Escribir "hacia la torre: "

leer t2

si t1<1 O t1>3 O t2<1 O t2>3 Entonces // controlar que el nro de torre sea valido

Escribir "Movimiento invalido"


Esperar Tecla

sino

Si cant_discos[t1]=0 Entonces // controlar que la torre 1 tengo al menos un disco

Escribir "Movimiento invalido"

Esperar Tecla

Sino

disco_a_mover <- torres[t1,cant_discos[t1]] // obtener tamanio del disco que se quiere


mover

puede_mover<-verdadero

Si cant_discos[t2]<>0 entonces // controlar que la torre dos no tenga discos o tenga solo
discos mas grandes

Si torres[t2,cant_discos[t2]]<disco_a_mover Entonces

puede_mover<-Falso

FinSi

FinSi

Si puede_mover Entonces // si paso todos los controles, mover

cant_movs <- cant_movs+1

cant_discos[t2]<-cant_discos[t2]+1

torres[t2,cant_discos[t2]] <- disco_a_mover

cant_discos[t1]<-cant_discos[t1]-1

Sino

Escribir "Movimiento invalido"

Esperar Tecla

FinSi

FinSi

FinSi

FinMientras

// mostrar resultado
Limpiar Pantalla

Escribir "Juego finalizado en ",cant_movs," movimientos!"

FinAlgoritmo

También podría gustarte