ayuda con pseudocodigo xfa

Iniciado por johnnyBsc17, 2 Octubre 2011, 17:21 PM

0 Miembros y 1 Visitante están viendo este tema.

johnnyBsc17

se tienen registradas las calificaciones obtenidas en un examen por 50 estudiantes. los datos son cal1,cal2,......cal50, dond cal es un numero entero comprendido entre los valores de 0y 10 (0<=cal,0<=10).
escriba un programa q calcule e imprima la frecuencia de cada uno de los posibles valores.
la salida del progrma debe ser como se muestra acontinuacion:

--------calificacion-------- ------frecuencia--------
0 >>>>>>>>>>>>> 1 ALUMNOS
1 >>>>>>>>>>>>> ....
2 >>>>>>>>>>>>> ....
3 >>>>>>>>>>>>> 4 ALUMNOS
4 >>>>>>>>>>>>> 2 ALUMNOS
.. >>>>>>>>>>>>> .......
10 >>>>>>>>>>>>> 3 ALUMNOS





ayudenme si puedo hacerlo de una forma mas facil o resumida

Proceso sin_titulo
estudiante<-1;
cal <-0;
con0<-0;
con1<-0;
con2<-0;
con3<-0;
con4<-0;
con5<-0;
con6<-0;
cont7<-0;
cont8<-0;
con9<-0;
con10<-0;

Escribir "calficaciones Alumnos";
 Para estudiante<-1 Hasta 50 Hacer
  Repetir
   Escribir "ingrese la nota del estudiante ", estudiante;
   Leer notas;
  Hasta Que (cal >= 0) & (cal <=10)
   Si cal = 0 Entonces
     con0<-con0 + 1;
   Si cal = 1 Entonces
     con1<-con1 + 1;
   FinSi
   Si cal = 2 Entonces
     con2<-con2 + 1;
   FinSi
   Si cal = 3 Entonces
     con3<-con3 + 1;
   FinSi
   Si cal = 4 Entonces
    con4<-con4 + 1;
   FinSi
   Si cal = 5 Entonces
    con5<-con5 + 1;
   FinSi
   Si cal = 6 Entonces
    con6<-con6 + 1;
   FinSi
   Si cal = 7 Entonces
    con7<-con7 + 1;
   FinSi
   Si cal = 8 Entonces
    con8<-con8 + 1;
   FinSi
   Si cal = 9 Entonces
    con9<-con9 + 1;
   FinSi
   Si cal = 10 Entonces
    con10<-con10 + 1;
   FinSi
 FinPara
Escribir " Calificacion--------Frecuencia ";
Escribir " nota 0 : ", con0;
Escribir " nota 1 : ", con1;
Escribir " nota 2 : ", con2;
Escribir " nota 3 : ", con3;
Escribir " nota 4 : ", con4;
Escribir " nota 5 : ", con5;
Escribir " nota 6 : ", con6;
Escribir " nota 7 : ", con7;
Escribir " nota 8 : ", con8;
Escribir " nota 9 : ", con9;
Escribir " nota 10 :", con10;

FinProceso

$Edu$

Sabes usar arreglos? eso solucionaria lo de las 10 variables que tienes. En ves de esas 10, tendrias un arreglo donde arreglo(i) es el arreglo y la variable i ira aumentando de 0 a 9 para tener tus 10 variables.

bash

#2
en c++ puedes usar un vector<T>, es eficiente y puede crecer en tiempo de ejecucion dependiendo de tu nececidad.

te recomiendo que busco informacion acerca de la stl ,te puedes nutrir de eso.

y lo de el pseudocodigo :

bueno ese switch se resuelve solo debes incrementar el valor de casa indice en el arreglo , si usas vector o otro container te recomiendo que lo inicializes en 0 para ir incrementando.
gracias por responder mis dudas

johnnyBsc17

asi seria ???

FRECUENCIA()
Inicio
FRECUENCIA=ARREGLO[1..10] de entero
CALIFICACION=ARREGLO[1..50] de entero
i, k de entero
  Repetir con i desde 1 hasta 50
     ++FRECUENCIA[ i [CALIFICACION]]
  Fin Repetir
  Escribir "Calificacion:         Frecuencia:"
  Repetir con k desde 1 hasta 10
     Escribir k,     frecuencia[k]
  Fin Repetir
Fin

$Edu$

No se pseudocodigo pero lo haces asi:


Inicio

i, k entero
nota entero
frecuencia arreglo[1..10]

Repetir con i desde 1 hasta 50
    Guardar en nota : "Ingrese nota del estudiante: "
       Repetir con k desde 1 hasta 10
         Si nota es igual a k entonces
            frecuencia[k] = frecuencia[k] + 1
       Fin Repetir
Fin Repetir i

Escribir "Calificacion:           Frecuencia:"

Repetir con k desde 1 hasta 10
    Escribir k,    frecuencia[k]
Fin Repetir

Fin

johnnyBsc17

graxias brother te lo agradezco  :D