Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#122
Programación C/C++ / Re: Ayuda con código
8 Septiembre 2021, 09:42 AM
Solo lo compile con VC++:
c:\src\???.cpp(19) : warning C4700: uninitialized local variable 'selector' used
c:\src\???.cpp(37) : warning C4700: uninitialized local variable 'preciou' used

Deberias inicializar esas 2 variables y seguramente selector ir cambiando segun lo que decida el usuario.
#123
Programación C/C++ / Re: Ciclo DO WHILE
8 Septiembre 2021, 09:26 AM
¿A que te referis con modificador? Ni isdigit ni cout tienen ningun efecto sobre la variable que se le pasa al primero ni la que se inserta al segundo, si podes asignar el valor de retorno de isdigit a una variable pero eso es otra cosa.

Para que isdigit pudiera asignarle un valor a su parametro tendria que recibirlo por referencia (eso se puede hacer con un puntero o una referencia; ver https://www.genbeta.com/desarrollo/punteros-y-referencias) y no por valor como lo hace (ver http://conclase.net/c/curso/cap15). Lo mismo pasa con el operador << cuando insertas en cout pero cin es diferente, cuando extraes le estas pasando un parametro por refrencia.

Código (c++) [Seleccionar]
int isdigit( int ch );

template< class Traits > basic_ostream<char,Traits>& operator<<(basic_ostream<char,Traits>& os, const char* s ); //insertar en cout

basic_istream& operator>>( int& value ); //extraer de cin


https://en.cppreference.com/w/cpp/string/byte/isdigit
https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2
https://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt

En las 3 primeras lineas de codigo que dejaste hay asignaciones, la primera es simplemente un literal de cadena, las 2 siguientes asignan el resultado de funciones (los metodos son funciones miembro de una clase) y en la 4 no cambia ninguna variable, se insertan 6 valores - de diferentes tipos y por eso se usan diferentes operadores (funciones) sobrecargados - en cout que los escribe en la consola o casi.

¿Como es posible insertar i en "\n"? ¿O peor aun como es posible que una funcion (std::endl es un manipulador) sea insertada en un float (f)? La clave esta en el valor de retorno del operador << que es basicamente una referencia a std::cout. En la ultima linea pasa esto:

Código (c++) [Seleccionar]
operator<<(operator<<(operator<<(cout, s), "\n").operator<<(i), "\n").operator<<(f).operator<<(endl);

Notese que la variable cout solo se pasa UNA vez en toda la linea y los operadores la van retornando, con funciones miembro (caso en el que llama al operador con un solo parametro) y no miembro (cuando usa dos parametros siendo el primero el valor de retorno de otro operador, siempre la referencia a cout en nuestro ejemplo).
#124
Programación C/C++ / Re: Ciclo DO WHILE
7 Septiembre 2021, 22:20 PM
cin y cout no son funciones (las funciones se llaman con sus parametros entre parentesis), son objetos y de hecho son variables del namespace std. Obviamente los operadores >> y << estan sobrecargados, en realidad lo que sucede es equivalente a esto:

Código (c++) [Seleccionar]
do
{
    operator<<(cout, "Introduzca un numero entre 1 y 9: "); //funcion no miembro
    cin.operator>>(n); //funcion miembro
} while (!(n > 0 && n < 10));


https://en.cppreference.com/w/cpp/io/cout
https://en.cppreference.com/w/cpp/io/cin
#125
Programación C/C++ / Re: Ciclo DO WHILE
7 Septiembre 2021, 11:09 AM
El punto del bucle es forzar a que se introduzca un valor entre 1 y 9, y solo cuando esto ocurra n se usara, no es un contador. El bucle puede haber finalizado pero a la variable n se le asigno un valor y no lo pierde por haberse terminado ... su ambito no es el bucle.
#126
Cita de: Serapis en  1 Junio 2021, 16:26 PMLa verdad se convierte en mentira cuando se omite el detalle, como acabas de hacer tú...

Cita de: Serapis en  2 Septiembre 2021, 09:05 AMSi en tu país fue invadido es normal que surja una resistencia y que al menos parcialmente sea armada.

Le explicaron con mucha claridad que la insurgencia ya estaba presente antes de la invasion de la URSS asi que aca esta MINTIENDO ALEVOSAMENTE o es un inculto que confunde causa con efecto.

Cita de: Serapis en  2 Septiembre 2021, 09:05 AM...en tu caso parece que el objetivo es cabalgar siempre contra todo, incluso hasta lo que es negro o blanco fuera de toda duda, pretendes llevarlo al extremo opuesto, y para ello 10 enlaces y 20 párrafos o los que hagan falta con tal de marear la perdiz y que la duda desborde al inculto.

Cita de: Serapis en  2 Septiembre 2021, 22:51 PM
USA simplemente les enseñó a luchar para defenderse de la invasión soviética

Falso; despues pretende hablar de que un articulo de Wikipedia esta sesgado cuando no pierde opurtunidad alguna para demostrar el suyo.

Cita de: Serapis en  2 Septiembre 2021, 22:51 PM"He dicho, cúmplase"... Así es como se pronuncian los dictadores.

¿Quiere un pañuelo para secarse las lagrimas de cocodrilo? No lo digo yo, lo dicen todas las fuentes citadas, no veo que tenga nada que argumentar al respecto. ¿Sabe como se pronuncia un necio? Regurgita lo que vagamente recuerda que dijeron los medios de comunicacion que consumia hace 40 años.

Cita de: Serapis en  2 Septiembre 2021, 22:51 PMMi 'ideología' como tu lo llamas no existe, tengo una visión de conjunto del ser humano, no individualizo porque no tiene sentido, pero no quita que analice y contemple los errores comunes que cada facción comete una y otra vez y si de mi dependiera, quedaba prohibdo la política en el mundo, izquierdas y derechas... Tú supones erróneamente que estar en desacuerdo con gente de izquierdas supone ser de derechas. Para ti las personas son como una moneda que solo tiene cara y cruz, pero las personas tienen demasiadas facciones para resumirlas en dos contrapuestas, pero como es más fácil controlar a las personas si simplemente los divides en dos grupos (el tuyo y el resto), pues hale...
El planeta está enfermo precisamente por la ideología política, al final sucederá como antaño...

Larga perorata para no admitir que toca de oido en el tema y lo que dijo era falso.
#127
Cita de: Serapis en 29 Agosto 2021, 19:02 PMAfganistán era pobre, pero estaban felices y en paz, hasta... la invasión de la URSS.

Esto es falso, asi de simple, no estaban felices y en paz, y se desprende de TODAS las fuentes que fueron citadas en este hilo. ¿No encaja con tu ideologia? Se siente.
#128
De nada  ::)
#129
Eso ya era otro problema en tu codigo de base, usaste \n que es un salto de linea y tenes que comprender que no lo lograste en ningun momento, tu bucle solamente llamaba a gotoxy en cada iteracion, nada mas, el cout estaba fuera del bucle y usaba otra variable i no inicializada. Ese 16 era una casualidad, podia ser cualquier valor y en mi caso era 0 por ejemplo.

Esto supongo que si hace lo que querias:
Código (c++) [Seleccionar]
for (int i = 0; i <= 10; ++i)
{
    gotoxy(3,19);
   cout << i << "\r";
}
#130
El problema no es el entorno, es el codigo.

Hay dos variables i, una solo tiene ambito dentro del bucle for y el mismo solo tiene una sentencia (la de gotoxy), despues tenes un bloque de codigo (las llaves ahi no cumplen ninguna funcion mas que la de agrupar, las podrias sacar y el codigo generado seria exactamente el mismo) que se ejecuta una sola vez y que empuja una variable i sin inicializar en cout.

gotoxy(3,19);
for (int i = 0; i <= 10;  ++i)
   cout << i << endl;



VC++ al compilar te da un aviso:
c:\src\???.cpp(31) : warning C4700: uninitialized local variable 'i' used