[C con Clase] A la duda directa de sandra

Samuel Porras samuelporras en gmail.com
Vie Ago 14 19:06:46 CEST 2009



josé Ignacio Retamal Thomsen escribió:
> hola Sandra, te respondo a la duda que me planteaste, antes te recomiendo que estudies tranquilamente los 10 primero capitulos del curso
> c++ con classe  (http://c.conclase.net/curso/index.php?cap=001) ya que son buenos y yo asi lo hise yo. Depues de que tranquilamente estudiaste
> y entendiste esto resuelves los 5 primeros problemas propuestos. yo por ejemplo estoy recien empesando el capitulo 11 y no tengo apuro pieso
> resolver los problemas primero con javascript. chao saludos.
> (
> Viendo esta parte de tu programa José Ignacio>>
>  
>  
>  
> cout<<"introduzca la nota del alumno "<<i+1<<":"<<endl;
>  
>  
>  
>                 cin >>Notas[i];
>  
>                 suma += Notas[i];
>  
>                 T++;
>  
>                 }
>  
>  
>  
>                 do    {
>  
>                        cout<<"Introduzca la nota del alumno "<<T+1
> <<":"<<endl;
>  
>                        cin >>Notas[T];        suma += Notas[T];
>  
>                                T++;    }
>  
>  
>  
>  
>  
> Lo que pude entender ahí es: el primer Array es para definir la longitud de
> la matriz Notas[i] y el segundo para almacenar la información, Notas [T].)
>
>  Primero te digo que estas confundida porque el programa tiene 2 programas en uno y los estas confundiedon
> te doy los 2 por separado con comentarios.
>
> 1)con do-while
> ##################################################################################################################################
> #include <iostream>
> using namespace std;
>
> int N;
> float suma;
> int T = 0;
> float promedio;
>
>
>
> int LeerNotas();
> int Media();
>
>
>
> int main()
> {
>     LeerNotas();
>   
Yo pondría todo el código en main, sin utilizar una funcion LeerNotas().
Media() nosé donde lo utilizas, pero parece que se te ha olvidado 
pornerla o yo estoy un poco ciego que no lo veo, todo puede ser...
>     
> }
>
> int LeerNotas()
> {
>     cout<<"Introdusca la cantidad de alumnos"<<endl;
>   

>     cin >> N;        //lee N    
>     float Notas[N]; //defino la longitud  N del array
Esto no se puede hacer, para crear un array en tiempo de ejecución con 
una cantidad definida de elementos se ha de utilizar memória dinámica 
con new, por ejemplo:
float* Notas = new float[n];

Cuanto utilizas memória dinámica necesitas eliminar la memória 
adjudicada por new al terminar de utilizar el array o el programa con 
delete[] Notas;

lo mejor es crear un Array asi:
float Notas[500], como dijo Salvador.
luego utilizas la variable N, para saber cuantos espacios vas a utilizar 
y crear como un rango del 0 a N-1 y así nunca te saldrias de los alumnos 
dados por N.
>     int s = 0;
>     int b = 0;
>    
>     do
>     {
>         cout<<"Introdusca la nota del alumno "<<T+1<<":"<<endl;
>         cin >>Notas[T]; //lee la nota del alumno T
>         suma += Notas[T]; //(suma += Notas[T]) == (suma = suma + Notas[T])
>         T++;                 
>     }
>     while(T < N);
>   
podemos hacerlo también de esta manera:
do
{
    ...
} while(T++ < N);

por lo tanto la variable contador es la misma, al poner el 
postincremento, primero se evalua y luego se incrementa.
>   
>     promedio = suma/T;
>
>   
>    int i = 0;
>    do
>     {
>           
>     if(Notas[i] > promedio)
>         {
>             s++;
>             i++;
>         }
>         else {
>             b++;
>             i++;
>         }
>         }
>         while(i < N);
>   
lo mismo que antes:
do
{
    ....
}while(i++ < N);
>         
>     
>         
>         cout<<"EL promedio de "<<N<<" alumnos es:"<<promedio<<endl;
>         cout<<"EL numero de alumnos sobre la norma es:"<<s<<endl;
>         cout<<"EL numero en o bajo la norma es:"<<b<<endl;
>         system("PAUSE");
>     
> }
>   
Un cordial saludo ^^.
>   
>
>
>   
>
> ------------------------------------------------------------------------
> ¿Querías más espacio para tus correos? Hotmail te da espacio 
> ILIMITADO. ¡Disfruta del Nuevo Hotmail! 
> <http://www.microsoft.com/latam/windows/windowslive/products/hotmail.aspx> 
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ




Más información sobre la lista de distribución Cconclase