Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Soumag_programa en 31 de Agosto 2020, 01:29
-
Hola, estoy tratando de resolver en PSEINT el siguiente problema de algoritmia
En una granja hay un total 200 animales de los cuales hay vacas, cabras y ovejas, el dueño le pide a u obrero que recorra la granja y cuente todos los animales que están todos revueltos, pero los resultados se los de en grupos de a 19 animales por especie, El conteo se debe hacer uno por uno ya que el dueño también quiere saber de cada especie cuántos de ellos hay enfermos. Realice un programa que en cada vez que se registre un animal nos muestre la información solicitada (cuantos grupos y cuantos sobrantes (que aún no ajustan un grupo completo) por especie, cuantos sanos y cuantos enfermos por especie.
De este algoritmo ya tengo la mayoría que sería esto:
Algoritmo Trabajo_final_de_periodo
Definir especie, estado Como Caracter
para i=1 hasta 200 Hacer
Escribir "Animal N°",i
Escribir "¿Que tipo de especie es?"
Leer especie
Escribir "¿Esta sana o enferma?"
Leer estado
Si especie = "vaca" & estado = "sana" Entonces
vacas = vacas +1
v_sanas <- v_sanas + 1
Sino
si especie = "vaca" & estado = "enferma" Entonces
vacas = vacas +1
v_enfermas = v_enfermas + 1
FinSi
FinSi
Si especie = "cabra" & estado = "sana" Entonces
cabras = cabras +1
c_sanas <- c_sanas + 1
Sino
si especie = "cabra" & estado = "enferma" Entonces
cabras = cabras +1
c_enfermas = c_enfermas + 1
FinSi
FinSi
Si especie = "oveja" & estado = "sana" Entonces
ovejas <- ovejas + 1
o_sanas <- o_sanas + 1
Sino
si especie = "oveja" & estado = "enferma" Entonces
ovejas <- ovejas + 1
o_enfermas = o_enfermas + 1
FinSi
FinSi
Limpiar Pantalla
FinPara
Escribir "~VACAS~"
Escribir "Hay ",vacas, " vacas"
Escribir "Enfermas: ", v_enfermas
Escribir "Sanas: ", v_sanas
Escribir "~CABRAS~"
Escribir "Hay ",cabras, " cabras"
Escribir "Enfermas: ", c_enfermas
Escribir "Sanas: ", c_sanas
Escribir "~OVEJAS~"
Escribir "Hay ",ovejas, " ovejas"
Escribir "Enfermas: ", o_enfermas
Escribir "Sanas: ", o_sanas
FinAlgoritmo
Lo único que me falta es el acumulador de grupos y lo de sacar los sobrantes, que ya lo he intentado pero no se me ocurre otra manera, serian tan amables si me ayudan, por favor y Gracias!
-
Hola.
Cuando analizas qué animal es, y su estado, no haría falta preguntar dos veces el tipo de animal:
Por ejemplo, aquí preguntas dos veces si es vaca
Si especie = "vaca" & estado = "sana" Entonces
vacas = vacas +1
v_sanas <- v_sanas + 1
Sino
si especie = "vaca" & estado = "enferma" Entonces
vacas = vacas +1
v_enfermas = v_enfermas + 1
FinSi
FinSi
Se puede hacer preguntándolo una sola vez.
Y para evaluar el estado, tampoco hace falta preguntar si es "sana" y si no lo es, preguntar si es "enferma"
Solo hay dos posibilidades, así que si no es "sana", pues obligatoriamente será "enferma"
Si especie = "vaca" Entonces
vacas = vacas +1
Si estado = "sana" Entonces
v_sanas <- v_sanas + 1
Sino
v_enfermas = v_enfermas + 1
FinSi
FinSi
Funcionar, funciona igual de bien que como lo has hecho tú. Prácticamente es lo mismo, pero evitas preguntas redundantes y el código queda un poco más simplificado.
Sobre los grupos, si divides entre 19 el total contado de cada animal, sabrás cuantos grupos hay.
Supón que has contado 43 vacas, si hacemos una división entera, es decir, ignoramos la parte decimal:
43 / 19 = 2
Pues hay 2 grupos de 19 vacas.
El sobrante, lo obtienes sacando el resto o módulo de esa misma división:
43 MOD 19 = 5
Hay un sobrante de 5 vacas.
Así que con vacas / 19 tendrás los grupos de vacas, y con vacas MOD 19 el sobrante.