[ Foro de Pseudocódigo ]

Modular con procesos y subprocesos un pseudocodigo

05-May-2021 04:26
Invitado (Franciso Andres Bautista Pacheco)
0 Respuestas

Hola que tal, llevo ya unos buenos días intentando hacer módulos con procesos y subprocesos en este pseudocodigo de pseint. Si alguien me pudiera ayudar lo agradecería mucho.

Algoritmo Examen_2

Definir Alumnos,i,i2,j,k,Hombre,Mujeres,H_Aprobados,M_Aprobadas Como Entero
Definir Inciso,Aux1 como cadena
Definir Encontrado Como Logico
Escribir "Ingrese el numero de alumnos" //Inidicar cual es la poblacion total de alumnos
Leer Alumnos

Dimension NOM[Alumnos]
Dimension SEX[Alumnos]
Dimension EDAD[Alumnos]
Dimension PESO_ALT[Alumnos,2] //Matriz
Dimension APTITUD[Alumnos]

Para i<-1 Hasta Alumnos Con Paso 1 Hacer //Ingresar datos de cada alumno hasta tener los datos de todos alumnos
Escribir "Ingrese el nombre del alumno ",i
Leer NOM[i]  //Recibira datos tipo cadena
Escribir "Ingrese el sexo (H/M) del alumno ",i
Leer SEX[i]  //Recibira datos tipo caracter
Escribir "Ingrese la edad del alumno ",i
Leer EDAD[i]  //Recibira datos tipo entero
Escribir "Ingrese el peso del alumno ",i
Leer PESO_ALT[i,1]  //Recibira datos tipo real
Escribir "Ingrese la altura del alumno ",i
Leer PESO_ALT[i,2]  //Recibira datos tipo real
Fin Para

Para i<-1 Hasta Alumnos Con Paso 1 Hacer //Genera arreglo de si el alumno/a es aprobado o no
Si SEX[i]="M" Entonces
Si PESO_ALT[i,2]>1.73 Y 50<PESO_ALT[i,1] Y PESO_ALT[i,1]<90 Entonces
APTITUD[i] <- "Aprobado"
SiNo
APTITUD[i] <- "No aprobado"
FinSi
SiNo
Si PESO_ALT[i,2]>1.83 Y 73<PESO_ALT[i,1] Y PESO_ALT[i,1]<110 Entonces
APTITUD[i] <- "Aprobado"
Sino
APTITUD[i] <- "No aprobado"
FinSi
FinSi
Fin Para

i<-1
Hombre<-0
Mujeres<-0
Mientras i<=Alumnos Hacer //Genera conteos de muejeres, hombres, muejeres aprobadas y hombres aprobados

Si SEX[i]="H" Entonces
Hombre<-Hombre+1
SiNo
Mujeres<-Mujeres+1
FinSi

Si SEX[i]="H" Y APTITUD[i]="Aprobado" Entonces
H_Aprobados<-H_Aprobados+1
FinSi

Si SEX[i]="M" Y APTITUD[i]="Aprobado" Entonces
M_Aprobadas<-M_Aprobadas+1
FinSi

i<-i+1
FinMientras

Dimension Mujer_Aprobada[M_Aprobadas] //Genera arreglos por llenar, que contendran la informacion de Mujeres aprobadas,
Dimension Hombre_Aprobado[H_Aprobados] //hombres aprobados y todos los que no aprobaron
Dimension Hombre_Mujer_NoAprobado[Alumnos-M_Aprobadas-H_Aprobados]

j<-0
Para i<-1 Hasta M_Aprobadas Con Paso 1 Hacer
j<-j+1
Encontrado<-Falso
Mientras j<=Alumnos Y Encontrado=Falso Hacer //Genera arreglo de cadenas de informacion de muejeres aprobadas
Si SEX[j]="M" Y APTITUD[j]="Aprobado" Entonces
Encontrado<-Verdadero
SiNo
j<-j+1
FinSi
FinMientras
Si j<=Alumnos Entonces
Mujer_Aprobada[i] <- NOM[j]+"          "+SEX[j]+"       "+ConvertirATexto(EDAD[j])+"       "+ConvertirATexto(PESO_ALT[j,1])+"     "+ConvertirATexto(PESO_ALT[j,2])
FinSi
Fin Para

j<-0
Para i<-1 Hasta H_Aprobados Con Paso 1 Hacer
j<-j+1
Encontrado<-Falso
Mientras j<=Alumnos Y Encontrado=Falso Hacer //Genera arreglo de cadenas de informacion de hombres aprobados
Si SEX[j]="H" Y APTITUD[j]="Aprobado" Entonces
Encontrado<-Verdadero
SiNo
j<-j+1
FinSi
FinMientras
Si j<=Alumnos Entonces
Hombre_Aprobado[i] <- NOM[j]+"           "+SEX[j]+"       "+ConvertirATexto(EDAD[j])+"      "+ConvertirATexto(PESO_ALT[j,1])+"     "+ConvertirATexto(PESO_ALT[j,2])
FinSi
Fin Para

j<-0
Para i<-1 Hasta (Alumnos-M_Aprobadas-H_Aprobados) Con Paso 1 Hacer //Genera arreglo de cadenas de informacion de cada alumnos no aprobados
j<-j+1
Encontrado<-Falso
Mientras j<=Alumnos Y Encontrado=Falso Hacer
Si APTITUD[j]="No aprobado" Entonces
Encontrado<-Verdadero
SiNo
j<-j+1
FinSi
FinMientras
Si j<=Alumnos Entonces
Hombre_Mujer_NoAprobado[i] <- NOM[j]+"          "+SEX[j]+"       "+ConvertirATexto(EDAD[j])+"      "+ConvertirATexto(PESO_ALT[j,1])+"     "+ConvertirATexto(PESO_ALT[j,2])
FinSi
Fin Para


Para i<-M_Aprobadas-1 Hasta 1 Con Paso -1 Hacer //Ordena arreglo mujeres aprobadas (INSERCIÓN)
Aux1<-Mujer_Aprobada[i]
i2<-i+1
Mientras i2<M_Aprobadas+1 Y Mujer_Aprobada[i2]<Aux1 Hacer
Mujer_Aprobada[i2-1]<-Mujer_Aprobada[i2]
i2<-i2+1
FinMientras
Mujer_Aprobada[i2-1]<-Aux1
FinPara

Para i<-H_Aprobados-1 Hasta 1 Con Paso -1 Hacer //Ordena arreglo hombres aprobados (INSERCIÓN)
Aux1<-Hombre_Aprobado[i]
i2<-i+1
Mientras i2<H_Aprobados+1 Y Hombre_Aprobado[i2]<Aux1 Hacer
Hombre_Aprobado[i2-1]<-Hombre_Aprobado[i2]
i2<-i2+1
FinMientras
Hombre_Aprobado[i2-1]<-Aux1
FinPara

Para i<-(Alumnos-M_Aprobadas-H_Aprobados)-1 Hasta 1 Con Paso -1 Hacer //Ordena arreglo H/M No aprobados (INSERCIÓN)
Aux1<-Hombre_Mujer_NoAprobado[i]
i2<-i+1
Mientras i2<(Alumnos-M_Aprobadas-H_Aprobados)+1 Y Hombre_Mujer_NoAprobado[i2]<Aux1 Hacer
Hombre_Mujer_NoAprobado[i2-1]<-Hombre_Mujer_NoAprobado[i2]
i2<-i2+1
FinMientras
Hombre_Mujer_NoAprobado[i2-1]<-Aux1
FinPara


//Comienza la ejecucion de los incisos disponibles para el usuario, y no se detendra hasta que se pida inciso "d) salir"

Escribir "a) Mostrar la lista de alumnas que cubren los requerimientos y el porcentaje de aptitud dentro de la población femenina" //Menu
Escribir "b) Mostrar la lista de alumnos que cubren los requerimientos y el porcentaje de aptitud dentro de la población masculina"
Escribir "c) Mostrar la lista de alumnas/alumnos que no cubren los requerimientos y el porcentaje de aptitud dentro de la población total"
Escribir "d) Salir"

Escribir "Seleccione una opcion a/b/c/d:" //Pregunta
Leer Inciso
Mientras Inciso<>"a" Y Inciso<>"b" Y Inciso<>"c" Y Inciso<>"d" Hacer //Validacion de respuesta
Escribir "Respuesta no valida, por favor vuelva a intentar"
Escribir "Seleccione una opcion a/b/c/d:"
Leer Inciso
FinMientras

Mientras Inciso<>"d" Hacer

Segun Inciso Hacer
"a":
Escribir ""
Escribir "NOMBRE DEL ALUMNO/A          | SEXO  |  EDAD  |  PESO  |  ALTUTA"
Escribir "================================================================"
i<-1
Mientras i<=M_Aprobadas Hacer
Escribir Mujer_Aprobada[i]
i<-i+1
FinMientras
Escribir "================================================================"
Escribir "Porcentaje de aptitud dentro de la población femenina ",((M_Aprobadas/Mujeres)*100),"%"
Escribir ""
"b":
Escribir ""
Escribir "NOMBRE DEL ALUMNO/A          | SEXO  |  EDAD  |  PESO  |  ALTUTA"
Escribir "================================================================"
i<-1
Mientras i<=H_Aprobados Hacer
Escribir Hombre_Aprobado[i]
i<-i+1
FinMientras
Escribir "================================================================"
Escribir "Porcentaje de aptitud dentro de la población masculina ",((H_Aprobados/Hombre)*100),"%"
Escribir ""
"c":
Escribir ""
Escribir "NOMBRE DEL ALUMNO/A          | SEXO  |  EDAD  |  PESO  |  ALTUTA"
Escribir "================================================================"
i<-1
Mientras i<=(Alumnos-M_Aprobadas-H_Aprobados) Hacer
Escribir Hombre_Mujer_NoAprobado[i]
i<-i+1
FinMientras
Escribir "================================================================"
Escribir "Porcentaje de no aptitud dentro de la población total ",(((Alumnos-M_Aprobadas-H_Aprobados)/Alumnos)*100),"%"
Escribir ""
Fin Segun

Escribir "Seleccione una opcion a/b/c/d:" //Pregunta
Leer Inciso
Mientras Inciso<>"a" Y Inciso<>"b" Y Inciso<>"c" Y Inciso<>"d" Hacer //Validacion de respuesta
Escribir "Respuesta no valida, por favor vuelva a intentar"
Escribir "Seleccione una opcion a/b/c/d:"
Leer Inciso
FinMientras
FinMientras

Escribir "A elejido salir, entendible buena tarde"

FinAlgoritmo




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)