[ 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




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...