Академический Документы
Профессиональный Документы
Культура Документы
ALGORITMOS
Presentado por:
GRUPO: 301303_2
BOGOTA
14 de marzo de 2016.
26. Se pide desarrollar el algoritmo del juego “Adivina un Número”, con las
siguientes características: a) El número debe estar en el rango de 1 a 1000
(generado aleatoriamente)
Debe tener dos niveles nivel básico y nivel experto,, el nivel básico no tendrá
restricciones en número de oportunidades, además se le dará indicaciones como
“Caliente”, “Frio”..
El Nivel experto solo tendrá 5 oportunidades con mensajes de ayuda “lejos”, “cerca”
b) Al finalizar debe informar el número de intentos realizados antes de encontrar la
respuesta
//Nombre del Autor: javier cabuya Parra
//Fecha:06/03/2016
//Doy fe que este ejercicio es de mi autoría, en caso de encontrar plagio la nota de
todo mi //trabajo debe ser de CERO además de las respectivas sanciones a que
haya lugar
Proceso Adivina Número
Intentos<-5
Contador<-0
num_secreto <- azar (1000)+1
Escribir "Adivine el número (de 1 a 1000):", num_secreto
Escribir "1_básico."
Escribir "2-experto."
Escribir "INGRESA UN ELECCION:"
Leer elección
Si elección==1 Entonces
Escribir "Ingresa un numero:"
Leer num_ingresado
Mientras num_secreto <> num_ingresado Hacer
Si num_secreto-num_ingresado<100 Entonces
Escribir "Caliente"
Sino
Escribir "Frio"
FinSi
Contador<-contador+1
Escribir "Otra vez"
Leer num_ingresado
FinMientras
Si num_secreto=num_ingresado Entonces
Escribir "Exacto! Usted adivino en ", contador," intentos."
Sino
Escribir "El numero era: ", num_secreto
FinSi
Sino
//nivel experto
Escribir "Ingresa un numero:"
Leer num_ingresado
Mientras num_secreto-num_ingresado <100 Hacer
Si num_secreto>num_ingresado Entonces
Escribir "Cerca"
Sino
Escribir "Lejos"
FinSi
intentos <- intentos-1
Escribir "Le quedan ",intentos," intentos:"
Leer num_ingresado
FinMientras
Si num_secreto=num_ingresado Entonces
Escribir "Exacto! Usted adivino en ",6-intentos," intentos."
Sino
Escribir "El numero era: ",num_secreto
FinSi
Fin Si
Comentario: es un ejercicio algo complejo para iniciar puesto que hace exigencias
en las declaraciones y sentencias del resultado y de la manera de preparación del
juego eso hace que tenga un nivel de dificultad propio del ejercicio a desarrollar.
30. Realizar un Algoritmo que permita simular el juego de “Dados”, el algoritmo debe
permitir ingresar los nombres de los jugadores (2) y la cantidad de dinero a apostar
(ejemplo $ 2000 por jugador), teniendo en cuenta que en cada jugada puede ganar
o perder $500. Se permite el lanzamiento jugador 1 generando el numero aleatorios
(1.6), luego jugador 2. El algoritmo lleva el acumulado de ganancia por cada uno de
los jugadores. El programa termina cuando uno de los jugadores ha quedado en
Banca Rota o decidan no continuar
//Nombre del Autor: javier cabuya Parra
//Fecha:07/03/2016
//Doy fe que este ejercicio es de mi autoría, en caso de encontrar plagio la nota de
todo mi //trabajo debe ser de CERO además de las respectivas sanciones a que
haya lugar
Proceso juegoDados
j1<-"";
dj1 <- 0;
r1 <- 0;
j2<-"";
dj2 <-0;
r2 <- 0;
salida<-"no";
dado<-0;
dj2<-dj2-50
dj1 <-dj1+ 500;
Escribir "Dinero " , j1 ," =",dj1
Sino
dj2<-dj2+500
dj1 <-dj1- 500;
Escribir "Dinero " , j1 ," =",dj1
Fin Si
Si dj2<=0 Entonces
Escribir "El jugador 2 ya no tiene dinero"
salida <- "si";
Fin Si
Fin Mientras
FinProceso
suma<-resultado*suma
Sino
salir<-"="
Fin Si
FinMientras
Escribir "La multiplicacion es:",suma
salir<-"!="
suma<-0
4:
suma<-+1
Mientras salir<>"=" Hacer
Escribir "Ingresa el valor (Salir con 0)"
Leer resultado
Si resultado!=0 Entonces
suma<-resultado/suma
Sino
Salir<-"="
Fin Si
FinMientras
Escribir "La división es:",suma
salir<-"!="
5:
Escribir "Gracias, vuelva prontos"
De otro modo:
Escribir "Opción no válida"
FinSegun
Escribir "Presione enter para continuar"
Esperar Tecla
Hasta Que OP=5
FinProceso
Si intentos==3 Entonces
Escribir "Sistema bloqueado.";
Sino
Escribir "Adios"
Fin Si
FinProceso
Comentario: este ejercicio por su parte hace que sea muy práctico puesto que su
nivel de variables es muy común en el manejo bancario y podría ser de mucha
ayuda al momento de hacer prácticas repetitivas
33. Desarrollar un algoritmos que permita realizar la sumatoria de los primeros 100
números utilizando los 3 ciclos (para, repita, mientras)
//Nombre del Autor: javier cabuya Parra
//Fecha:14/03/2016
//Doy fe que este ejercicio es de mi autoría, en caso de encontrar plagio la nota de
todo mi //trabajo debe ser de CERO además de las respectivas sanciones a que
haya lugar
Proceso sumatoria
i<-0
sumaMientras<-0
sumaRepetir<-0
sumaPara<-0
Escribir "SUMATORIA DE LOS PRIMEROS 100 NUMEROS."
Escribir ""
Mientras i<=99 Hacer
i<-i+1
sumaMientras<-sumaMientras+i
Fin Mientras
Escribir "Sumatoria con mientras=",sumaMientras
i<-0
Repetir
i<-i+1
sumaRepetir<-sumaRepetir+i
Hasta Que i>=100
Escribir "Sumatoria con repetir=",sumaRepetir
i<-0
Para i<-1 Hasta 100 Con Paso 1 Hacer
sumaPara<-sumaPara+i
Fin Para
Escribir "Sumatoria con para=",sumaPara
FinProceso
Comentario: este ejercicio hace parte de los que nos hacen ser persuasivos al
momento de aprender puesto que se utilizan bastantes repeticiones en busca del
resultado final que es la suma de varios números al final se da a conocer el
resultado preciso que se le pide entregar
Si datos[1]>datos[2] Entonces
may1<-datos[1]
may2<-datos[2]
Sino
may1<-datos[2]
may2<-datos[1]
FinSi
// Se recorren los demas elementos buscan si hay alguno mayor que may1 o
may2
i<-0
Para i<-3 Hasta j Hacer
Si datos[i]>may1 Entonces // si hay un valor mayor que may1
may2<-may1 // como may1 era el más grande, pasa a estar en segundo
lugar
may1<-datos[i] // y el nuevo dato toma el primer puesto (mayor de todos)
Sino // si no era mas grande que may1, todavia puede ser mas grande que
may2
Si datos[i]>may2 Entonces // si supera al segundo mayor que teniamos
may2<-datos[i] // se lo guarda como segundo mayor
FinSi
FinSi
FinPara
FinProceso
Comentario: hace también parte de los ejercicios de practica consecuente a la
guía esto para tener mayor relación y competitiva a la hora de enfrentar muchos
más retos de programación herramientas básicas en los lenguajes de programas
35. Realizar un programa que le presente un menú al usuario con las siguientes
opciones: lo desarrollan todos –
1. Leer dos números enteros positivos únicamente,
2. Sumar los dos números leídos,
3. Restarle al primer número el segundo (siempre y cuando el primero sea mayor
que él segundo, en caso contrario indicar con un mensaje que la operación no es
posible realizarla y volver al menú principal,
4. Multiplicar los dos números (siempre y cuando ninguno de los números sea
igual a cero, en caso contrario indicar con un 10 mensaje que la operación no es
posible realizarla y volver al menú principal,)
, 5. Dividir el primer número dado por el segundo,
6 Salir Nota: Se debe garantizar que el usuario haya ingresado los dos números
antes de poder realizar cualquier operación y que no se puede escribir un
resultado sin la realización de una operación.
//Nombre del Autor: javier cabuya Parra
//Fecha:14/03/2016
//Doy fe que este ejercicio es de mi autoría, en caso de encontrar plagio la nota de
todo mi //trabajo debe ser de CERO además de las respectivas sanciones a que
haya lugar
Proceso menuUsuario
n1<-0
n2<-0
resultado<-0
Repetir
// mostrar menu
Limpiar Pantalla
Escribir "Menú:"
Escribir " 1. Leer dos números enteros positivos únicamente"
Escribir " 2. Sumar los dos números leídos"
Escribir " 3. Restarle al primer número el segundo "
Escribir " 4. Multiplicar los dos números "
Escribir " 5. Dividir el primer número dado por el segundo "
Escribir " 6. Salir"
// ingresar una opcion
Escribir "Elija una opción (1-6): "
Leer OP
// procesar esa opción
Segun OP Hacer
1:
Escribir "Numero 1"
Leer n1
resultado<-n1+n2
Escribir "Ls suma de ambos numeros es:",resultado
3:
resultado<-0
Escribir "Numero 1"
Leer n1
FinProceso
Comentario: este quizás es de los ejercicios más cortos pero no por eso es fácil
se hace contar de un par de variables que harán los cambios necesarios para
satisfacer las preguntas solicitadas en el cambio de la lectura de los grados de
temperatura por conversión
28. Se requiere que solo con la utilización de ciclos y condicionales, usted pueda
convertir un número decimal < a 5000 a número Romano
//Nombre del Autor: javier cabuya Parra
//Fecha:14/03/2016
//Doy fe que este ejercicio es de mi autoría, en caso de encontrar plagio la nota de
todo mi //trabajo debe ser de CERO además de las respectivas sanciones a que
haya lugar
Proceso Romanos
// leer el número
Escribir "Ingrese un número"
Leer Numero
// controlar que sea válido para convertir
SePuedeConvertir<-Verdadero
Si Numero=0 Entonces
Escribir "No existe ningún símbolo para representar el 0"
SePuedeConvertir<-Falso
FinSi
Si Numero<>trunc(numero) Entonces
Escribir "El número debe ser entero"
SePuedeConvertir<-Falso
FinSi
Si Numero>5000 Entonces
Escribir "Muy alto"
SePuedeConvertir<-Falso
FinSi
Si Numero<0 Entonces
Escribir "Debe ser positivo"
SePuedeConvertir<-Falso
FinSi
// realizar la conversión
Si SePuedeConvertir Entonces
Si Numero=1000 Entonces
Escribir "M"
Sino
Dimension nu[11], nd[11], nc[11] // notación para unidades, decenas y
centenas
nu[1]<-''; nu[2]<-'I'; nu[3]<-'II'; nu[4]<-'III'; nu[5]<-'IV'; nu[6]<-'V'; nu[7]<-'VI';
nu[8]<-'VII'; nu[9]<-'VIII'; nu[10]<-'IX'
nd[1]<-''; nd[2]<-'X'; nd[3]<-'XX'; nd[4]<-'XXX'; nd[5]<-'XL'; nd[6]<-'L'; nd[7]<-
'LX'; nd[8]<-'LXX'; nd[9]<-'LXXX'; nd[10]<-'XC'
nc[1]<-''; nc[2]<-'C'; nc[3]<-'CC'; nc[4]<-'CCC'; nc[5]<-'CD'; nc[6]<-'D';
nc[7]<-'DC'; nc[8]<-'DCC'; nc[9]<-'DCCC'; nc[10]<-'CM'
centenas<-trunc(Numero/100) % 10
decenas<-trunc(Numero/10) % 10
unidades<-Numero % 10
Escribir nc[centenas+1],nd[decenas+1],nu[unidades+1]
FinSi
FinSi
FinProceso
Comentario: este ejercicio hace parte de los que más variables solicitan para
desarrollarlo puesto que se tiene que tener en cuenta las conversiones y muchas
más tareas matemáticas para el buen funcionamiento del ejercicio con tal de
cumplir con los requisitos solicitados
** 1. Desarrolle un Algoritmo que de las instrucciones para preparar un plato típico
de su región que sea suficiente para 4 invitados
Dfd (c)
1
1
1
0
0
4
1
21
'Preparación lechona'
4
1
19
'Adquirir un cerdo'
4
1
13
'Matar cerdo'
4
1
39
'Adquirir ingredientes para 5 personas'
4
1
55
'Calcular la cantidad de carne de cerdo para 5 personas'
4
1
37
'Preparar cerdo con los ingredientes'
4
1
41
'Preparar el horna y poner el cerdo allí'
4
1
27
'Dejar cocinar por 4 horas'
4
1
48
'sacar cerdo del horno y servir para 5 personas'
1
Dfd (c)
1
1
1
0
0
4
1
49
'Por favor ingresa tu puntos obtenidos en el 75%'
5
1
3
p75
6
1
3
n75
11
(p75*5)/375
4
1
25
'Tu nota del 75% es ',n75
6
1
3
n25
5
3-n75
7
0
1
6
n25>=0
4
1
35
'Ya aprobaste la materia nota=',n75
13
4
1
53
'Debes obtener en el examen nacional un nota de ',n25
13
1
Dfd (c)
1
1
1
0
0
4
1
24
'Dame el numero del dia'
5
1
3
dia
7
0
1
15
dia>7 or dia <0
7
0
1
5
dia=1
7
0
1
5
dia=2
7
0
1
5
dia=3
7
0
1
5
dia=4
7
1
1
5
dia=5
4
1
17
dia,' es viernes'
13
7
0
1
5
dia=6
7
0
1
5
dia=7
13
4
1
17
dia,' es domingo'
13
13
4
1
16
dia,' es sabado'
13
13
13
4
1
16
dia,' es jueves'
13
13
4
1
19
dia,' es miercoles'
13
13
4
1
16
dia,' es martes'
13
13
4
1
15
dia,' es lunes'
13
13
4
1
35
'Dia no valido, intentalo de nuevo'
13
1
Comentario: este fue uno de los ejercicios que más me costó para el inicio de
diagramas de flujo por lo dispendioso del mismo y la cantidad de variables que el
con lleva sé que de alguna manera se podrá simplificar pero mientras eso sucede
espero cumplir las expectativas
21. Desarrollar un Diagrama o Algoritmo que permita leer 3 valores diferentes e
indique cual es el mayor de ellos, el menor o si son iguales
Dfd (c)
1
1
1
0
0
4
1
25
'ingresa el primer valor'
5
1
1
a
4
1
26
'ingresa el segundo valor'
5
1
1
b
4
1
25
'ingresa el tercer valor'
5
1
1
c
7
0
1
11
a<b and a<c
4
1
29
'No están en forma creciente'
13
7
0
1
3
b<c
4
1
29
'No están en forma creciente'
13
4
1
42
a,' ',b,' ',c, ' están en forma creciente'
13
13
1
Comentario: en este ejercicio se toman en cuenta los valores que se ingresan
para que nos muestre el resultado final de cuál de las variables van en un orden
lógico ascendente esto se realiza con una variable que identifica cada uno de ellos
con el fin de ser de practica repetitiva