Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: johnnyBsc17 en 2 Octubre 2011, 17:29 pm



Título: ayuda con pseudocodigo
Publicado por: johnnyBsc17 en 2 Octubre 2011, 17:29 pm
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

Código:
FRECUENCIA_NOTAS
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


Título: Re: ayuda con pseudocodigo
Publicado por: Agente Naranja en 11 Octubre 2011, 19:48 pm
Si no puedes usar vectores, entonces creo que tu código es adecuado, tienes que leer cada nota y verificar a mano si es 0, 1, 2, 3...etcétera


Título: Re: ayuda con pseudocodigo
Publicado por: Saberuneko en 18 Octubre 2011, 11:09 am
Como ligera mejora, para hacer el código un poco más corto, podrías usar un switch/case (según valor)
Su estructura es la siguiente:

Código:
Según_Valor: <expresión>
<valor1>: <bloque de instrucción 1>
<valor2>: <bloque de instrucción 2>
<valorn>: <bloque de instrucción n>
Por_Defecto: <bloque de instrucción por defecto>
Fin_Según_Valor

Donde la variable a considerar en tu caso, sería la nota.
En "valorn" va la nota en cuestión, y en órdenes incrementarías el contador en una unidad
"Defecto" es la acción a tomar en caso de que no se cumpla ninguno de los otros casos, por ejemplo, si alguien introdujese como nota un 11, podrías hacer que el caso por defecto dijese "la nota introducida es errónea".

Más o menos te quedaría algo así:

Código:
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)

Segun_Valor(cal)
0:
con0<-con0 + 1
1:
con1<-con1 + 1
2:
con2<-con2 + 1
3:
con3<-con3 + 1
4:
con4<-con4 + 1
5:
con5<-con5 + 1
6:
con6<-con6 + 1
7:
con7<-con7 + 1
8:
con8<-con8 + 1
9:
con9<-con9 + 1
10:
con10<-con10 + 1
fin_segun_valor

    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;

Un saludo.