[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