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 - snoopty

#21
Hola ! El siguiente Codigo que busca imprimir la Dirección de Memoria Física de una Variable al tomar el valor 80 ( ya de por sí me arroja un valor inexacto, " 0X404004 " ), si cambio 80 por cualquier otro valor siempre vuelve a imprimir " 0X404004 " =

Código (cpp) [Seleccionar]
#include <iostream>
#include <conio.h>
using namespace std;


int numero = 10;

// " * " : OPERADOR UNARIO DE INDIRECCIÓN
//       : Indica q lo q sigue a continuación es un PUNTERO
int * puntero1;


int main( )
{
// " & " : OPERADOR DE DIRECCIONAMIENTO
puntero1 = & numero; // Con " & " logramos que puntero1
                     // APUNTE A LA DIRECCIÓN DE MEMORIA FÍSICA
                     // donde se encuentre EL ÚLTIMO VALOR
                     // q se le asignó a la Variable " numero "

                     // EN ESTE EJEMPLO devolverá
                     // LA DIRECCIÓN DE MEMORIA DEL VALOR 80
                     // porque en el cout NO LE ANTEPONGO
                     // a puntero1 " * "

numero = 80;

cout << puntero1 <<endl;

getch ();
}


Gracias por leer el mensaje. Saludos !

#22
Gracias ! .... sucede que pensaba que el algoritmo, por ser exigente " y por defecto " evaluaria el hecho de que
" 10 sea menor que 10 " como un error, por una
cuestión de comparar el mismo número sin que
haya una igualdad mediante.




Cita de: MAFUS en 24 Noviembre 2021, 10:30 AM
Comparas y haces la pregunta:
¿Diez es menor que diez?
El programa te responde: No, por lo que no hago el cuerpo del if y ejecuto directamente pila.pop();
La siguiente iteración comparas y preguntas:
¿Tres es menor que diez?
El programa te responde: Sí, ejecuto el cuerpo del if y escribo en 'menor' el valor actual del top de la pila; después borro ese número del top.

Gracias, MAFUS : El siguiente Esquema Iterativo, qué te parece ? =
ITERACiÓN 0
Top es 10 ( 10 < " 10 menor " ) ( LA CONDICIÓN NO SE CUMPLE ) => menor =  10  && Se borró el 10( menor )
ITERACiÓN 1
Top es 3  ( 3  < " 10 menor " )                               => menor =   3  && Se borró el 10( pila.top )
ITERACiÓN 2
Top es 20 ( 20 <  " 3 menor " ) ( LA CONDICIÓN NO SE CUMPLE ) => menor =   3  && Se borró el 20
ITERACIÓN
Top es 40 ( 40 <  " 3 menor " ) ( LA CONDICIÓN NO SE CUMPLE ) => menor =   3  && Se borró el 40
ITERACiÓN 4
Top es 35 ( 35 <  " 3 menor " ) ( LA CONDICIÓN NO SE CUMPLE ) => menor =   3  && Se borró el 35
#23
/*
Cuando analizo la 1er ITERACIÓN ,LA ITERACiÓN 0, ME DÁ QUE
Top es 10 ( para mí es así a partir de lo explicado al lado de la línea arriba del " while " )
¿ Cómo puede ser esto ?
el if compara " if 10 < 10 " .... ESTO ES UNA INCOHERENCIA ( ? )

LAS SIGUIENTES ITERACIONES SON ENTENDIBLES YA QUE EN LA SGTE
3 ES MENOR QUE 10 , y se mantiene ese criterio hasta el final;
pero no comprendo lo de " if 10 < 10 "
*/
Código (cpp) [Seleccionar]
#include <iostream>
#include <conio.h>
#include <stack>
// PILAS " LIFO "
// Es como una Pila de Platos =
// PRIMERO sale ( o muestro ) el LAST último hasta llegar al
//                               FIRST primero
using namespace std;

stack <int> pila;

int menor;      // Declaro la Variable " menor" ya que
               // estoy buscando el Dato de tipo INT Menor de toda la Pila

int main( )
{
pila.push(35);
pila.push(40);
pila.push(20);
pila.push(3);
pila.push(10);

// A DIFERENCIA DE LAS " COLAS " EN LAS " PILAS " para
// mostrar el 1er Dato ( o sea, el 5to ) NO SE UTILIZA
// ''' front ''' SINO SE UTILIZA ''' top '''

menor = pila.top(); // Esta Linea es NECESARIA puesto que cuando se evalue
                    // " if ( pila.top() < menor ) ", si no definieramos previamente
                    // que '' menor '' tome el valor del Dato que este AL COMIENZO DE LA PILA
                    // " el IF " arrojaria '' 0 '' PUESTO QUE CUANDO AL PRINCIPIO DEFINIMOS
                    // '' int menor '' COMO VARIABLE GLOBAL ( Ya que la definimos antes del
                    // cuerpo de main ) ESTA SIEMPRE COMIENZA VALIENDO '' 0 ''
                    // -- no hay ningun Nro menor que 0 dentro de la Pila --
while ( pila.size() > 0 ) // pila.size() determina la cantidad de Elementos que
{                         // se encuentran en la Pila

if ( pila.top() < menor )
{

menor = pila.top();

}
pila.pop();           // " BORRO " el Elemento actual para que el Bucle EVALUE otro
                          // Elemento -- si no, seguiria siempre Evaluando a '' menor '' --
}

cout << menor << endl;


getch ();
}
#24
Thanks !!!!!!
#25
Gracias x reponder.
Hay dos cosas que no entiendo :
1 ) Cuando decís =
Iteracion 0:
top() devuelve 10 y mayor es 0, mayor pasa a ser 10

Porque mayor es 0 ? ;
es acaso porque " sólo por haber estado al Comienzo de la
pila el 10 ", después de ser eliminado con el primer pop,
la pila, que queda temporalmente vacía, asume como valor de
Comienzo al 0 ?

2 ) SI por ejemplo en vez de " mayor " la variable fuera " a ",
Si análogamente itero =

Si top 10 > a
ENTONCES
a = 10

Si top 3 > 10
NO ES CIERTO :
a = 10

Si top 20 > 10
ENTONCES
a = 20

Si top 20 > 40
ENTONCES
¿ Porqué SI NO SE CUMPLE CON " 3 "
aquí se debería de cumplir ???? .... que
a = 40 ( ? )


Gracias por leer el mensaje. Saludos !







#26
Código (cpp) [Seleccionar]
/* En el Codigo a continuacion, en la linea " " if ( pila.top() > mayor ) " " no logro comprender
del todo --- por mas que haya escrito un comentario justificando lo que hace el IF ---
como puede ser que el elemento que esta al comienzo de la Pila ( 10 )
sea MAYOR que la variable '' mayor ''', que alojara al Nro 40 . A continuacion, el Codigo = */
#include <iostream>
#include <conio.h>
#include <stack>
// PILAS " LIFO "
// Es como una Pila de Platos =
// PRIMERO sale ( o muestro ) el LAST ultimo hasta llegar al
//                               FIRST primero
using namespace std;

stack <int> pila; // Defino una Pila con Datos de Tipo Int

int mayor;      // Declaro la Variable " mayor " ya que
                // estoy buscando el Dato de tipo INT Mayor de toda la Pila


int main( )
{

pila.push(35); // Agrego el 1er Dato
               // Puedo LEERLO ... PERO NO ELIMINARLO
pila.push(40); // Agrego el 2do Dato

pila.push(20); // Agrego el 3er Dato

pila.push(3); // Agrego el 4to Dato

pila.push(10); // Agrego el 5to Dato :
               // Puedo LEERLO y ... ELIMINARLO ( P/ Leer/Editar los Anteriores Datos )

// A DIFERENCIA DE LAS " COLAS " EN LAS " PILAS " para
// mostrar el 1er Dato ( o sea, el 5to ) NO SE UTILIZA
// ''' front ''' SINO SE UTILIZA ''' top '''

while ( pila.size() > 0 ) // pila.size() determina la cantidad de Elementos que
{                         // se encuentran en la Pila

if ( pila.top() > mayor ) // Pese a q esto parezca incoherente ( 10 no es mayor que 40 )
{                         // ..... decimos " Si el Número actual que está al Comienzo de
                          // la Pila ( QUE PARA ESTE RAZONAMIENTO YA NO ES EL " 10 " )
                          // es MAYOR al contenido en '' mayor '' .....
                          // ENTONCES Cambio el Valor que estaba '''' como MENOR ''''
                          // Asignándole el LUGAR de '' Comienzo de la Pila ''

mayor = pila.top();       // Le " Confiero " a '' mayor '' que sea el que esté
                          // al Comienzo de la Pila

}
pila.pop();               // " BORRO " a éste para que el Bucle EVALÚE otro
                          // Elemento -- si no, seguiría siempre Evaluando a '' mayor '' --

}



cout << mayor << endl;


getch ();
}
// Gracias de antemano. Saludos !   
#27
Hola como estan ? Recientemente me pase de Windows 7 a 10 Home 64 bits. Me inicie hace poco utilizando bajo W 7 64 " Dev c ++ 5.11, pero como había Codigos que no podia correrre me pase a la ultima version, " Dev c ++ Embarcadero " , donde no volví a tener problemas. Lo que si, es que desde donde lo descargue creo que vino con un malware ( ALGUIEN SABE UN SITIO SEGURO p descargar C ++ Embarcadero - es bueno bajo W 10 64 ?? ) ..... Ahora, ya bajo Windows 10 Home 64, intente con Dev c ++ 5.11 pero igual presentaba los mismos problemas; me pase a Codeblocks 20.03 y esos problemas desaparecieron, pero ante mensajes de error y otras complicaciones ( de compilacion ) le instalé el Pack MinGW y aquello se soluciono; ..... Lo que me hace desconfiar es la posibilidad de algun malware pues - solamente mientras se carga - aparece un ícono con su logo en la Barra de Tareas que comienza a titilar rapidísimo y luego desaparece. Espero me puedan aconsejar en C ++ bajo W 10 64 = = si esto ultimo seria un malware - ya hice un scaneo con Malwarebytes Premium y no detecto nada - ; si ALGUIEN no ha tenido problemas con correr Codigo en Dev 5.11 ( hay algo que debo configurar ? ..... pues el 5.11 esta muy bien conceptuado x muchos ) ; Si hay algo mejor que Dev c ++ y Codeblocks ..... Muchas gracias y Saludos !
#28
Programación C/C++ / Teclado para programar
10 Octubre 2021, 07:29 AM
Hola a todos ! .... Para programar en una Notebook cuál es el mejor teclado que se debería elegir ( es decir, elegir la Notebook acorde ) ....... Para todo tipo de cosas supongo que el ideal sería el Teclado con el Pad Numérico a la derecha : ese mismo también sería el mejor para programar ?? Y si éste no es el ideal : en qué idioma tengo que configurarlo ? .... Gracias x leer el Post
#29
Programación C/C++ / DOS BUCLES FOR ANIDADOS : DUDA
21 Septiembre 2021, 06:56 AM
Código (cpp) [Seleccionar]

// Hola a todos. Encontre por fin un Codigo que haga lo mismo que en """ QBasic un  ' For i = 1 to 6 -- print"SHIFT"--Next i ' """ y consta de dos bucles FOR anidados ...... Alguien me podria explicar la logica del porque el FOR EXTERNO imprime de arriba hacia abajo (( Y )) el FOR INTERNO de izquierda a derecha ??

#include <iostream>
using namespace std;

int main( )
{

   for (int i = 1; i <=10 ; i++)
   {
   // EL 1er FOR indica cuantas veces se
   // imprimirá de arriba hacia abajo
 
      for (int j = 1; j <= 2; j++)
      // EL 2do FOR indica cuantas veces se
     // imprimirá de izquierda a derecha
        {

           if (i > 6)
           // Limita la impresión a 6 renglones de arriba hacia abajo
               break;

           else

               cout << "SHIFT";

     }

     cout << endl;

   }

return 0;

}

#30
/* Buen día ! No entiendo dónde está el error que hace que al oprimir la s en vez de salir del programa se genera un loop que no para */

#include <iostream>


using namespace std;


int main ( )

{

int o, p, q;

bool s;

   

    do

     {

     

     cout<< "\n\n\n\n\tTecla s para salir"<<endl;

 

     cout<<"\n\n\tIngrese el 1er Nro"<<endl;
     cin>>o;

     cout<<"\n\n\tIngrese el 2do Nro"<<endl;
     cin>>p;

     q = (o + p);

     cout<<"\n\n\n\n\tRESULTADO :"<<q<<endl;      

            }

      while ((s == 0 ));

     

     while ((s == 1))

      {

      cout<<"\n\n\n\n\tNros Utilizados  :"<<o<<"  Y "<<p<<endl;

    cout<<"\n\n\n\n\tFIN  PROGRAMA"<<endl;

   return 0;

    }

     }

 /* Gracias por leer el mensaje */