Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc (http://foros.zackyfiles.com/forumdisplay.php?f=370)
-   -   Ejercicio C++, no entiendo lo que me pide... (http://foros.zackyfiles.com/showthread.php?t=379592)

Snake12 06/12/2005 17:00

Ejercicio C++, no entiendo lo que me pide...
 
Hola amigos, tengo que hacer un ejercicio y no sé ni lo que me pide, versa tal que así:

Construye un programa C++ que cuente hasta un valor introducido por teclado. Utiliza el operador "++" en un bucle "while".

No sé que he de hacer, si meter varios valores y que me diga cuántos hay....pués eso, ¿alguna sugerencia?.

Ta luego!!! y gracias!! :rolleyes:

Efirenet 06/12/2005 18:23

Hola, según ese enunciado, el programa es tan simple que te pide un número por teclado y luego en un bucle while cuentas desde 0 hasta ese número.

¿Estás empezando en C? Parece un ejercicio para practicar con los bucles.

Un saludo

Snake12 06/12/2005 18:45

Hola amigo Efirenet, como bien has adivinado, estoy empezando en C++, jejejeje, y me resulta un poco difícil, quizás por ser totalmente nuevo para mí, y que te pide que tengas mucha picardía para plasmar las cosas que te piden.

Entonces según tu respuesta lo que me pide es que por ejemplo yo introduzco el número 4 y en pantalla ha de aparecer

0
1
2
3
4

¿Es eso?. Bueno, lo intento así a ver como lo ahgo. Muchísimas gracias por tu ayuda y por tu respuesta en un tema que hice hace unos días.

Hasta luego!!!

Snake12 06/12/2005 19:05

Amigo Eferinet, he hecho el jercicio así, a ver qu te parece, el resultado es correcto, pero me gustaría saber si hay otra manera de hacerlo más sencilla, que me parece que no...

int main()
{
// Zona de Declaración de Variables del Programa principal
unsigned int numero, i;

cout << "Introduzca un valor: ";
cin >> numero;
cout << '\n' << endl;

i = 0;
while ( i <= numero )
{
cout << i << endl;
i++;
}

cout << '\n' << endl;

system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.
}

Una cosa curiosa es que si introduzco por ejemplo el valor 900, me cuenta hasta él, pero si queiro subir la pantalla hasta el principio, sólo aparece hasta el 604, ¿eso por qué?...

Bueno ahora voy a por el siguiente, que si que no tengo ni idea de hacerlo...trata de que introduzca un numero y me diga cuantas cifras tiene, sé que tengo que dividr por 10 hasta que no se pueda dividir más, y cada división cuente como una cifra, tengo que utilizar un contador ¿no?, pero no sé como expresarlo, ¿me echas una mano?.

Bueno, muchas gracias de nuevo, hasta luego!!!

Snake12 06/12/2005 20:46

Bueno Efirenet, ya he hecho el siguiente ejercicio, y el código me queda así:

int main()
{
// Zona de Declaración de Variables del Programa principal
unsigned int numero, i;

cout << "Introduzca un numero natural: ";
cin >> numero;
cout << '\n' << endl;

i = 1;
while ( numero >= 10 )
{
numero = numero / 10;
i ++;

}

if ( i == 1 )
{
cout << "Su numero tiene " << i << " cifra." << endl;
cout << '\n' << endl;

}

if ( i >=2 )
{
cout << "Su numero tiene " << i << " cifras." << endl;
cout << '\n' << endl;

}


system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.
}

Bueno, hecho está, pero no sé si de la mejor manera. Si le ves algo dímelo :)

Ta luego!!!

Efirenet 07/12/2005 02:38

Hola, con respecto al ejercicio 1, bien; si eso es lo que pide, es así como se hace. Por el enunciado ese que te pone, igual también quería el/la profe que practicaras con el operador ++. Supongo que te habrá explicado que existen dos formas de incrementar una variable con ese operador. En tu caso, las dos opciones serían:
1) i++;
2) ++i;

Tú has usado la primera de ellas. La pregunta es, ¿por qué hay dos formas de hacer eso?, ¿en qué se diferencian?

En tu caso, para reducir el código más todavía, tú podrías haber puesto lo siguiente:

[CODE]
i = 0;
while ( i <= numero )
cout << i++ << endl;
[/CODE]

Con respecto a tu código se ahorra una línea (es una tontería, pero por si no lo sabías... :D ). Si hubieras puesto esto otro:

[CODE]
i = 0;
while ( i <= numero )
cout << ++i << endl;
[/CODE]

El resultado habría sido diferente (te hubieran salido números del 1 al 10).

Explicación:
1) i++ : la variable se incrementa al terminar la sentencia de esa línea.
2) ++i : la variable se incrementa antes de trabajar con esa sentencia.


El segundo ejercicio también está bien (es una de las formas de hacerlo).

[QUOTE]
Una cosa curiosa es que si introduzco por ejemplo el valor 900, me cuenta hasta él, pero si queiro subir la pantalla hasta el principio, sólo aparece hasta el 604, ¿eso por qué?...
[/QUOTE]

No te preocupes por eso. Es cosa de Windows, no tuya. Es por el tamaño del buffer de pantalla. Si lo quieres ver todo, por ejemplo, haz click con el botón derecho del ratón sobre la barra de título de la ventana de comandos que tienes abierta y dale a "Propiedades". Ahí dentro vete a la pestaña "Diseño" y ponle, por ejemplo, un valor de 1024 al campo "Alto" del "Tamaño del buffer de pantalla". Prueba tu aplicación y verás que ahora sí te salen los 900 números.

Un saludo

Snake12 07/12/2005 11:32

Muchas gracias amigo Efirenet por tu explicación, de verdad. Ahora me toca hacer un ejercicio que calcule los n primeros primos, según he leído por ahí es mediante la criba de Eratóstenes, o eso creo...Bueno, ahora me voy a la uni, pero más tarde me pondré, si tengo alguna duda, y con tu permiso, te preguntaré ;).

Muchas gracias de nuevo, ta luego!!!


La franja horaria es GMT +2. Ahora son las 13:34.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate