Autor Tema: Algoritmo PSEINT crear grupos con operador módulo división entera sobrantes mod  (Leído 3541 veces)

Soumag_programa

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
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:

Código: [Seleccionar]
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!
« Última modificación: 31 de Octubre 2020, 14:19 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re:Ayúdame con este algoritmo en Pseint
« Respuesta #1 en: 31 de Agosto 2020, 11:58 »
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
Citar
      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"
Citar
      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.

« Última modificación: 31 de Agosto 2020, 12:01 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".