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

#91
Cita de: 718208 en 26 Julio 2014, 00:37 AM
Gracias Blaster, ivancea96 y leosansan  ;-) solucionaron mi problema, aparte había puesto potencia*= potencia, cuando era potencia*=2

Saludos

¡¡¡ De nada ¡¡¡¡ ,  para eso nos "asomamos" por aquí.

¡¡¡¡ Saluditos! ..... !!!!


#92
Cita de: 718208 en 25 Julio 2014, 23:29 PM
Hola gente, tengo que imprimir las potencias del entero 2, para eso uso un ciclo infinito: while (true) y siempre me imprime cero...
....................................................

No siempre te imprime cero, lo que pasa es que sucede tan rápido que ni lo ves. Usa:

Código (cpp) [Seleccionar]
int potencia= 1;
    while(1)
    {
         cout << potencia << endl;
         system("pause");//para verlos uno a uno y veras como al final salen ceros
         potencia *= 2;
    }


para ver los resultados poco a poco.

¡¡¡¡ Saluditos! ..... !!!!


#93
Cita de: ivancea96 en 25 Julio 2014, 22:21 PM
<iostream> ya me incluye el system.
......................................................

No lo dudo pero el error que te comenté en el anterior mensaje es lo que me indica a mí Code::Blocks, no así el Dev-C++.  :o

Como se trata de un aporte, que no hacer una tarea, espero que el moderador de turno no se tome a mal mi siguiente aportación, pequeña y humilde que no soy un experto en estas lides, y no la borre.  ;D

Y es que los seguidores de C nos quedamos si no desvalidos ya que la mayor parte de los portes son en C++.

En esencia es la misma propuesta de ivancea96, por no variar el tema, sólo que al ser en C hago uso de arrays en lugar de Clases. Nos movemos en el menú con las flechas UP y DOWN y se selecciona la opción con la flecha RIGHT. El menú se muestra en color invertido y a cada respuestas le corresponde un color diferente.   ;)

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void contraste ( int abajo ) ;
int gotoxy ( int x , int y ) ;
void Respuesta ( int Abajo ) ;

void color ( int n ) ;

const char *pregunta_respuesta [] = {
  "1. Un Dios." ,       "*** Piensas a lo Grande ***" ,
  "2. Un gobernador." , "*** Deseas Poder ***" ,
  "3. Un pensador." ,   "*** Eres Sabio ***" ,
  "4. Un trabajador." , "*** Menudo Currante estas hecho ***" ,
  "5. Un esclavo." ,    "*** Eres Servil ***"
  };

const int Color[] = { 30 , 62 , 181 , 45 , 123 } ;

int main (){
  int i , abajo = 0 ;
  puts ( "Que querrias ser en otra vida?" ) ;
  for ( i = 0 ; i < 9 ; i += 2){
    puts ( pregunta_respuesta [i] );
  }
  gotoxy (0,1);
  while (1)    {
    contraste ( abajo ) ;
    if ( abajo > 4 ){
      gotoxy (0,1) ;
      abajo = 0 ;
    }
    else if ( abajo < 0 ){
      gotoxy (0,5);
      abajo = 4 ;
    }
    else if (GetAsyncKeyState(VK_ESCAPE))
      {gotoxy (0,5);system("pause"); return 1;}

    else if (GetAsyncKeyState(VK_DOWN)){
      contraste ( abajo );
      gotoxy (0,abajo+1);
      abajo++;
      Sleep(100);
    }
    else if (GetAsyncKeyState(VK_UP)){
      contraste ( abajo );
      gotoxy (0,abajo-1);
      contraste ( abajo);
      abajo--;
      Sleep(100);
    }
    else  if (GetAsyncKeyState(VK_RIGHT)){
      Respuesta ( abajo ) ;
      break ;
    }
  }
  system ("pause");
  return 0;
}

int gotoxy(int x, int y){
  COORD coord;
  HANDLE h_stdout;
  coord.X = x;
  coord.Y = y;
  if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
    return 0;
  if (SetConsoleCursorPosition(h_stdout, coord) == 0)
    return 0;
  return 1;
}

void color (int n){
        SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}

void contraste (int abajo){
  int i ;
  color (7) ;
  gotoxy (0,0);
  puts ("Que querrias ser en otra vida?");
  for ( i = 0 ; i < 9 ; i+= 2){
    color ( abajo == i / 2 ? 112 : 7 ) ;
    puts ( pregunta_respuesta [i] );
  }
  color ( 7 ) ;
  gotoxy (0,abajo-1);
  Sleep(100);
}

void Respuesta ( int Abajo ){
  system ( "cls" ) ;
  gotoxy (0,0) ;
  color ( Color[Abajo] ) ;
  puts ( pregunta_respuesta [2 * Abajo + 1] ) ;
  color ( 7 ) ;
}


¡¡¡¡ Saluditos! ..... !!!!



#94
Cita de: ivancea96 en 25 Julio 2014, 21:17 PM
............................................................
Y la cstdlib no la puse porque no la requería xD

En mi caso está de más ya que uso windows.h, pero en tu caso ""creo" que es necesaria para el uso de "system":

Código (cpp) [Seleccionar]
error: 'system' was not declared in this scope

Pero es sólo una opinión, no quiero que te molestes por una nimiedad como ésta.  ;) ;)

Lo realmente importante es que es una aportación interesante. Me obligas a meterme de lleno en las "clases" de C++.

¡¡¡¡ Saluditos! ..... !!!!


#95
Cita de: ivancea96 en 25 Julio 2014, 18:40 PM
Hola a todos. Hace mucho que no hago alguna aportación por aquí, y por cutre que sea, voy a poner un selector de opciones, en el que no hay que elegir el número de la opción, sinó hay que mover el marcador con W y S. Bueno, aquí va:
..........................................................................
Utilizo la función system("cls") y getch(). Quién las quiera cambiar por otras, es libre de hacerlo, este código no tiene copyright xD

Usé getch() de conio.h porque es la más rápida y sencilla.

Jeje esto lo hice hace unos 4 años, pero lo hice a lo cutre con 2 solas opciones (y me costó). Ahora, años después, he visto lo terriblemente sencilo que es jaja.

"Una vez más, la experiencia marca la aptitud."

Saludos, espero que a alguien le sea útil :p

;-) ;-) ;-)

Antes que nada un fuerte saludo ivancea96 y gracias por el aporte.

Bueno, ya que no tiene "copyright" espero que no te moleste que lo modifique un poco.

El objetivo es no usar conio.h y su acólita getch, en su defecto sí windows. h  :rolleyes:  y se controla el menú con las teclas de flechas UP y DOWN y por cierto, incluyo la librería cstdlib que se te paso  ;) . También uso una nueva variable "tam" para que no me dé warnings por comparar signed ("i", index"") con unsigned ("_options.size()") y ya de paso enumero las opciones:  :o

Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>
#include <cstdlib>
#include <windows.h>
using namespace std;
int gotoxy(int x, int y);

class options{
    vector<string> _options;
    string _title;

    void coutTitle()const{
        if(_title.size()==0) return;
        vector<string> v;
        string t = _title;
        while(t.size()>80){
            v.push_back(t.substr(0,80));
            t.erase(0,80);
        }
        v.push_back(t);
        while(v.size()>1){
            cout << v[0];
            v.erase(v.begin());
        }
        cout << string((80-v[0].size())/2,' ') << v[0] << endl << endl;
    }

public:
    options(){}
    options(string title):_title(title){}
    options(const options& o):_options(o.getOptions()),_title(o.getTitle()){}
    void setTitle(string title){
        _title = title;
    }
    string getTitle()const{
        return _title;
    }
    vector<string> getOptions()const{
        return _options;
    }
    string getOption(size_t i)const{
        if(i<_options.size()) return _options[i];
        return "";
    }
    void addOption(string option){
        _options.push_back(option);
    }
    void addOptions(const vector<string>& v){
        for(size_t i=0; i<v.size(); i++)
            _options.push_back(v[i]);
    }
    void setOptions(const vector<string>& v){
        _options = v;
    }
    int show()const{
        int index = 0;
        while(1){
            gotoxy (0,1);
            Sleep(100);
            //system("cls");
            coutTitle();
            int tam=_options.size();
            char indice ;
            for(int i=0; i<tam; i++){
                indice =  i+'0';
                cout << '[' << (i==index?'X':indice) << "] " << _options[i] << endl;
            }
            if(GetAsyncKeyState(VK_UP) && index>0){
              --index;
            }
            else if(GetAsyncKeyState(VK_UP) && index==0){
              index=_options.size()-1;
            }
            else if(GetAsyncKeyState(VK_DOWN) && index<tam-1){
              ++index;
            }
            else if(GetAsyncKeyState(VK_DOWN) && index==tam-1){
              index=0;
            }
            else if (GetAsyncKeyState(VK_RETURN)){
              cin.get();
              return index;
            }
        }
    }
};

int main(){
    options op;
    op.setTitle("Que querrias ser en otra vida?");
    op.addOption("Un Dios.");
    op.addOption("Un gobernador.");
    op.addOption("Un pensador.");
    op.addOption("Un trabajador.");
    op.addOption("Un esclavo.");
    cout << endl << endl << op.show();

}

int gotoxy(int x, int y){
  COORD coord;
  HANDLE h_stdout;
  coord.X = x;
  coord.Y = y;
  if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
    return 0;
  if (SetConsoleCursorPosition(h_stdout, coord) == 0)
    return 0;
  return 1;
}


Espero que no te disguste la modificación.  ;) ;) ;)

¡¡¡¡ Saluditos! ..... !!!!


#96
Cita de: kutcher en 24 Julio 2014, 22:02 PM
Buenas, estoy codificando un programa y me urge saber cuantos dígitos tiene un
número que es de tipo int
...........................

Por ejemplo, como comentó ivancea96:

Código (cpp) [Seleccionar]
 int digitos , n = 123456789 ;
 for ( digitos = 0 ; n ; digitos++ , n /= 10 ) ;
 printf ( "%d" , digitos ) ;


¡¡¡¡ Saluditos! ..... !!!!


#97
Cita de: dato000 en 24 Julio 2014, 17:35 PM
bueno aquí va el mio que hace tiempo no venia................



EI: Codigo borrado, no se hacen tareas.



no es el mejor código, pero funciona bien o eso creo, de todas maneras una cosa más: DEV-C++ APESTA

Creo que te sobra, y a GatitoCai93 también:

Código (cpp) [Seleccionar]
cascara = cascara - corazon;

¡¡¡¡ Saluditos! ..... !!!!


#98
Para que no se diga   :rolleyes:  que no hay más opciones  :o  mi propuesta  :silbar: :

Código (cpp) [Seleccionar]
n1 = ( n1 % 100 ) < 50 ? 100 * ( n1 / 100 ) : 100 + 100 * ( n1  / 100 ) ;

donde 100 se puede sustituir por n2 supuesta potencia de 10:

Código (cpp) [Seleccionar]
n1 = ( n1 % n2 ) < n2 / 2 ? n2 * ( n1 / n2 ) : n2 + n2 * ( n1 / n2 ) ;




¡¡¡¡ Saluditos! ..... !!!!




#99
Cita de: Baal_30 en 21 Julio 2014, 15:11 PM
Perdonarme por continuar con el post y por mi ignorancia, pero ahora no consigo que me funciona con una canción que quiero.
.......................................................
He probado mil cosas, y buscado por google, pero no me funciona con ninguna. La primera vez, cuando me funcionó, en me salió una pestaña en el DEV++ que salían funciones y cosas que no entendía, pero relacionadas con los audios y el sonido. Ahora al crear el proyecto y linkar el libwinmm.a, no me ha salido ¿quizás sea eso? ¿Como me puede salir otra vez encontes? ¿Quizás lo haya borrado yo de la librería o algo de eso?
......................................................

Prueba a añadir nuevamente la librería como ya te indiqué en un mensaje anterior. La prueba que he hecho si me funciona, linkando la librería, claro.

Y aprovecho para indicarte otra manera "simple" de reproducir .mp3:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(){
  mciSendString ("cancion.mp3",NULL,0,0);
  system("pause");
  return 0;
}





¡¡¡¡ Saluditos! ..... !!!!






#100
Cita de: julianbesso1 en 21 Julio 2014, 01:41 AM
Primero quiero agradecer la buena predisposición que tienen para ayudarme a terminar :)
Lamentablemente, me sigue devolviendo lo mismo. Parece ser que dentro del bulce while ocurre algo que luego no me deja imprimir la cadena menor
................................................
Aclaro que puse palabras<c+1 porque solo poniendo <c me deja ingresar una palabra menos (creo que se debe a getline)
Quedo a la espera de alguna solución.
...............................................

En realidad estas confirmando al poner c+1 que un cin se lleva por delante el '\n' del primer cin, lo que indica que hay que hacer limpieza del buffer, de ahí lo que te indiqué en el mensaje anterior.

A mí si me funciona como te indiqué, que te amplio para que lo veas mejor:

Código (cpp) [Seleccionar]
******************
 p=new char[c*13];
 for(int i=0; i<c*13; i++){
   p[i]=' ';
 }
 while (cin.get() != '\n');
 while(palabras<c){
   cin.getline(pal, 13);
   strcpy(&p[ac], pal);
   ac+=strlen(pal)+1;
   palabras++;
   if(strcmp(menor,pal)>0){
     strcpy(menor,pal);
     cout<<"menor parcial = "<< menor<<endl;
   }
 }
 for(int i=0; i<c*13; i++){
   cout<<p[i];
 }
 cout<<endl<<"menor final = "<<menor<<endl;
***********************


Lo único a tener en cuenta es que como haces distinción de mayúsculas y minúsculas da lugar a que, por ejemplo, "Canvas" sea menor que "anda", ya que que en código ASCII "C" es "menor" que "a".  ;)

No obstante suscribo las palabras de CalgaryCorpus:

Cita de: CalgaryCorpus en 21 Julio 2014, 02:40 AM
Sugiero que pongas las entradas y salidas que obtienes versus la que esperas. Decir que obtienes "lo mismo" no es clarificador, en mi opinion.

Pon un ejemplo en que falle o no obtengas lo esperado indicando que esperabas.

¡¡¡¡ Saluditos! ..... !!!!