[C con Clase] ejercicio do/while

Mariano Demarchi marchi.hh en gmail.com
Vie Ago 14 00:19:32 CEST 2009


Hola Ignacio, cuando contestes asegurate de no cambiar el asunto.

Respecto de tus preguntas:

- Un array (al igual que otras variables) se declara global dejandolo fuera
de cualquier funcion. El tamaño debe ser una constante. Si no se conoce a
priori el tamaño que se necesitara, o se declara de un tamaño mayor a
cualquiera posible o se usa memoria dinamica, usando 'new' en c++ o malloc o
alloc en c.

-Un bucle 'for' es esencialmente un bucle while en el que se la
inicializacion, la comprobacion de condicion y el control se integran a la
sintaxis del bucle. En el do-while, la diferencia radica en qué se hace
antes.

Un Do-While se podria reescribir con un While de la siguiente manera:
-----------------------------------------
inic
do
{
codigo
ctrl
}while(cond)
-----------------------------------------
inic
codigo
ctrl
while(cond)
{
codigo
ctrl
}
-----------------------------------------

y con un For de la siguiente:

----------------------------------------
inic
codigo
ctrl
for(;cond;ctrl)
{
codigo
}
-----------------------------------------

Siempre (creo no equivocarme, corrijanme) que se puede usar uno, se puede
usar el otro. Solo que a veces uno es mas intuitivo y/o facil de implementar
que otro.

En la practica se usa el Do-While siempre que codigo debe ejecutarse al
menos una vez.


Saludos

El 13 de agosto de 2009 18:07, josé Ignacio Retamal Thomsen <
pproma302 en hotmail.com> escribió:

>  Hola, visto que yo tambien estoy aprendiendo c++ resolvi el problema de
> Sandra(*). Y me nacieron 2 dudas:
> - Como se puedo declarar un array con n carracteres como una variable de
> todo el programa; si no se puede como hago para llamar una variable de una
> funcion desde
> otra?
> - Cuando son necesarios los bulces do-while(en gueneral)? ya que se ve como
> ejemplo en el problema que se puede usar un bucle do-while como un bucle for
> siendo mucho mas simple de implementar el for. Son realmente necesarios los
> bucles do-while?
>
> Bueno ahi adjunto mi respuesta al problema usando bucles do-while y for,
> para utilisar el programa con los bulces for basta sacar de los comentarios
> los bucles for y borrar todos los "//".
>
>
> *  2. El maestro del grupo 01 del primer semestre de la preparatoria Bosco
> desea obtener un reporte final de los alumnos de su grupo, que
> > obtuvieron un promedio por encima del promedio general del grupo con
>
> > el fin de tomar en cuenta el número de alumnos que estuvieron por
> > encima del promedio general del grupo par formar los grupos para el
> > siguiente semestre. Desarrollar un programa en C++ que pida al
> > usuario los n promedios de los alumnos y calcule el número de
> > alumnos que estuvieron por encima del promedio general y el total de
> > reprobados. Mostrar en pantalla el promedio general del grupo, el
> > total de alumnos que estuvieron por encima del promedio general y el
> > total de alumnos reprobados.
> ########################################################################################################################################
>  #include <iostream>
> using namespace std;
>
> int N;
> float suma;
> int T = 0;
> float promedio;
>
>
>
> int LeerNotas();
> int Media();
>
>
>
> int main()
> {
>     LeerNotas();
>
> }
>
> int LeerNotas()
> {
>     cout<<"Introdusca la cantidad de alumnos"<<endl;
>     cin >> N;
>     float Notas[N];
>     int s = 0;
>     int b = 0;
>     /*
>    for(int i = 0; i < N; i++)
>     {
>         cout<<"introdusca la nota del alumno "<<i+1<<":"<<endl;
>         cin >>Notas[i];
>         suma += Notas[i];
>         T++;
>
>     }
>               */
>
>     //    /*
>     do
>     {
>         cout<<"Introdusca la nota del alumno "<<T+1<<":"<<endl;
>         cin >>Notas[T];
>         suma += Notas[T];
>         T++;
>     }
>     while(T < N);
>    // */
>     promedio = suma/T;
>
>     /*
>     for(int i = 0; i < N; i++)
>     {
>         if(Notas[i] > promedio)
>         {
>             s++;
>         }
>         else b++;
>     }
>   */
>
>    //  /*
>    int i = 0;
>    do
>     {
>
>     if(Notas[i] > promedio)
>         {
>             s++;
>             i++;
>         }
>         else {
>             b++;
>             i++;
>         }
>         }
>         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");
>
> }
>
> #####################################################################################################################################
>
>
>
>
> ------------------------------
> Guarda correos, fotos, archivos, documentos, todo. ¡Ahora Hotmail te da
> espacio ILIMITADO!<http://www.microsoft.com/latam/windows/windowslive/default.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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090813/44e28eb0/attachment.html>


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