[ Foro de Pseudocódigo ]

al momento de comparar la nota mayor y la nota menor como hago para que me imprima distintos nombres con una sola variable de tipo caracter

04-Dec-2018 21:55
Invitado (Luis)
3 Respuestas

Las calificaciones de los  estudiantes para  un curso específico se basan en el siguiente porcentaje:
4 Parciales 40%
1 Semestral 30%
2 Proyectos 30%
Diseñe un algoritmo en PSEINT que permita realizar las tareas siguientes para un número no determinado de estudiantes:
• Leer los valores para cada parcial, el semestral y los 2 proyectos
• Se debe leer el nombre y apellido de cada estudiante.
• Se debe obtener la calificación final en base a las notas leídas en el punto anterior.
• Se debe calcular la nota final en base a la siguiente tabla:

Calificación Nota
>=91 A
Entre 81 y 90 B
Entre 71 y 80 C
Entre 61 y 70 D
<=60 F

• Para cada estudiante se debe mostrar la calificación final y la nota final.
• Se debe calcular la cantidad de cada nota e imprimirá al final. Es decir cantidad de A, B, C, D y F en total.
• Se debe indicar cuál es la calificación más alta y cuál es la calificación más baja, junto con el nombre y apellido del estudiante que las obtuvo.


04-Dec-2018 22:50
Nacho Cabanes (+83)

A. ¿Cuál es la duda? Ayudará ver tu programa para entender tu planteamiento y a qué te refieres

B. No hace falta que repitas la preguntas tres veces


05-Dec-2018 01:38
Invitado (Luis)



Proceso ejercicio
    definir p1,p2,p3,p4,p,pr1,pr2,pr,sem,s,nf como real
    definir a,b,c como real 
    definir cont,cont2,conteo como entero 
    definir nom,continuar como caracter 
    definir max,min como real
    p=0;pr=0;s=0;nf=0;continuar='s';cont=0;cont2=0;a=0;b=0;c=0
    max=0;min=100;conteo=0
    
    imprimir "desea procesar a un estudiante (s/n)"
    leer continuar 
    
    mientras continuar='s' hacer
        cont=cont+1
        cont2=cont2+1
        
        imprimir "Nombre del estudiante #",cont2
        leer nom
        imprimir "Parciales del estudiante #",cont2
        leer p1,p2,p3,p4
        imprimir "proyectos del estudiante #",cont2
        leer pr1,pr2
        imprimir "semestral del estudiante #",cont2
        leer sem
        
        p=((p1+p2+p3+p4)/4)*0.40
        pr=((pr1+pr2)/2)*0.30
        s=sem*0.30
        nf=p+pr+s
        imprimir ""
        imprimir ""
        imprimir "TABLA DE PROMEDIOS ESTUDIANTE #",cont2
        imprimir "==============================="
        Imprimir "Estudiante: ",nom
        imprimir "promedio parciales: ",p
        imprimir "promedio proyectos: ",pr
        imprimir "promedio semestrales: ",s
        imprimir "=================================================="
        
        si nf>=91 entonces 
            imprimir "su calificacion final es A y su promedio fue de ",nf
            imprimir ""
        sino    
            si nf<=90&&nf>=81 entonces 
                imprimir "su calificacion final es B y su promedio fue de ",nf
                imprimir ""
            sino 
                si nf<=80&&nf>=71 Entonces
                    imprimir "su calificacion final es C y su promedio fue de ",nf
                    imprimir ""
                sino 
                    si nf<=70&&nf>=61 entonces 
                        imprimir "su calificacion final es D y su promedio fue de ",nf
                        imprimir ""
                    sino 
                        imprimir "su calificacion final es F y su promedio fue de ",nf
                        imprimir ""
                    FinSi
                FinSi
            FinSi
        FinSi   
        
        
        
        si nf>max  entonces 
            max=nf
            
        sino 
        FinSi
        si nf<min entonces 
            min=nf
            
        FinSi
        
        conteo=conteo+1
        
        imprimir "desea agregar un estudiante (s/n)"
        leer continuar
        imprimir ""
        imprimir ""
        
    fin mientras
    
    imprimir "el promedio maximo fue: ",max " y pertenece a ",nom
    imprimir "el promedio minimo fue : ",min " y pertenece a ",nom
FinProceso

// A. no logro conseguir que el código imprima a quien pertenece el nombre del promedio mas alto y el nombre del promedio mas bajo. 


 


05-Jan-2019 12:38
Nacho Cabanes (+83)

Perdona el (enorme) retraso en contestar. Te basta con, a la vez que anotas el valor del máximo o del mínimo, anotar el nombre correspondiente, por ejemplo así:


Proceso ejercicio
    definir p1,p2,p3,p4,p,pr1,pr2,pr,sem,s,nf como real
    definir a,b,c como real 
    definir cont,cont2,conteo como entero 
    definir nom,continuar como caracter 
    definir max,min como real
    p=0;pr=0;s=0;nf=0;continuar='s';cont=0;cont2=0;a=0;b=0;c=0
    max=0;min=100;conteo=0
	
	// Primer cambio
	// ---
	nombreMax = ""
	nombreMin = ""
    // ---
	
    imprimir "desea procesar a un estudiante (s/n)"
    leer continuar 
    
    mientras continuar='s' hacer
        cont=cont+1
        cont2=cont2+1
        
        imprimir "Nombre del estudiante #",cont2
        leer nom
        imprimir "Parciales del estudiante #",cont2
        leer p1,p2,p3,p4
        imprimir "proyectos del estudiante #",cont2
        leer pr1,pr2
        imprimir "semestral del estudiante #",cont2
        leer sem
        
        p=((p1+p2+p3+p4)/4)*0.40
        pr=((pr1+pr2)/2)*0.30
        s=sem*0.30
        nf=p+pr+s
        imprimir ""
        imprimir ""
        imprimir "TABLA DE PROMEDIOS ESTUDIANTE #",cont2
        imprimir "==============================="
        Imprimir "Estudiante: ",nom
        imprimir "promedio parciales: ",p
        imprimir "promedio proyectos: ",pr
        imprimir "promedio semestrales: ",s
        imprimir "=================================================="
        
        si nf>=91 entonces 
            imprimir "su calificacion final es A y su promedio fue de ",nf
            imprimir ""
        sino    
            si nf<=90&&nf>=81 entonces 
                imprimir "su calificacion final es B y su promedio fue de ",nf
                imprimir ""
            sino 
                si nf<=80&&nf>=71 Entonces
                    imprimir "su calificacion final es C y su promedio fue de ",nf
                    imprimir ""
                sino 
                    si nf<=70&&nf>=61 entonces 
                        imprimir "su calificacion final es D y su promedio fue de ",nf
                        imprimir ""
                    sino 
                        imprimir "su calificacion final es F y su promedio fue de ",nf
                        imprimir ""
                    FinSi
                FinSi
            FinSi
        FinSi   
        
        
        // Segundo cambio
		// ---
        si nf>max  entonces 
            max = nf
            nombreMax = nom
        FinSi
        si nf<min entonces 
            min=nf
            nombreMin = nom
        FinSi
		// ---
        
        conteo=conteo+1
        
        imprimir "desea agregar un estudiante (s/n)"
        leer continuar
        imprimir ""
        imprimir ""
        
    fin mientras
    
	// Tercer cambio
	// ---
    imprimir "el promedio maximo fue: ",max " y pertenece a ",nombreMax
    imprimir "el promedio minimo fue : ",min " y pertenece a ",nombreMin
	// ---
FinProceso


 






(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.)