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

#241
Usa wxWidgets, es una libreria multiplataforma que llama a las funciones nativas de cada SO.

Más intuitiva que las Windows API y además multiplataforma. ¿Que mas quieres? xD
#242
Bueno que no se diga, dibujare señales cuadradas. Aquí teneís varias a distintas escalas:



Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

void DibujarSenyalCuadrada(const int frecuencia = 1,char caracter = '*',ostream &fout = cout);

int main()
{
    int frecuencia;
    //cout<<"Introduca frecuencia: ";
    //cin>>frecuencia;
    for (int i = 3; i < 20;i++)
    {
        DibujarSenyalCuadrada(i);
        cout<<endl;
    }
    return 0;
}

void DibujarSenyalCuadrada(const int frecuencia,char caracter,ostream &fout)
{
    const int max_asci = 50;
    int j = 0;
    string separador(frecuencia-2,' ');
    string escalon(frecuencia,caracter);

    while (j < max_asci)
    {
        fout<<escalon;
        fout<<separador;
        j += 2*frecuencia;
    }

    fout<<endl;
    // escalones de bajada

    for (int i = 0; i < frecuencia;i++)
    {
        j = 0;
        fout<<' ';
        while (j < max_asci)
        {
            fout<<separador;
            fout<<caracter;
            j += frecuencia;
        }
        fout<<endl;
    }

    // barreras inferiores
   
    fout<<separador;
    fout<<' ';
    j = 0;

    while (j < max_asci)
    {
        fout<<escalon;
        fout<<separador;
        j += 2*frecuencia;
    }
    fout<<endl;
}


Notese que escribo en fout en vez de cout. De esa forma puedo decirle a la función que escriba en un fichero externo en vez de la pantalla:

Código (cpp) [Seleccionar]
int main()
{
   ofstream fichero("cuadrada.txt");

   for (int i = 3; i < 20;i++)
   {
       DibujarSenyalCuadrada(i,'*',fichero);
       fichero<<endl;
   }
   return 0;
}
#243
Cita de: leosansan en 14 Marzo 2014, 17:29 PM
¿Me podrías informar sobres ese plugin?
Una imagen vale más que mil palabras:
https://dl.dropboxusercontent.com/u/69551225/Plugin%20Codeblocks.png

Pulsas ahí y automaticamente te indenta el código y te lo pone bonito. Muy util si copias un código del foro y se te descuadra.

También se puede configurar (Settings -> Editor -> Source Formater). Aunque con la configuración por defecto ya va muy bien.
#244
Programación C/C++ / Re: tableros
14 Marzo 2014, 21:13 PM
Que artista estas hecho Leo.

Sin embargo:

Código (cpp) [Seleccionar]
for (j=0;j<dim_plus;j++)
  printf("%c",a0[j]);
putchar ('\n');
for (j=0;j<dim_plus;j++)
  printf("%c",a3[j]);
for (i=0;i<dim-1;i++){
  putchar ('\n');
  for (j=0;j<dim_plus;j++)
    printf("%c",a1[j]);
  putchar ('\n');
  for (j=0;j<dim_plus;j++)
    printf("%c",a3[j]);
}
putchar ('\n');
for (j=0;j<dim_plus;j++)
  printf("%c",a2[j]);


Es mejor que declares los vectores como array de chars y le metas un nulo al final. De ese modo:

Código (cpp) [Seleccionar]
printf("%s\n%s",a0,a3);
for (i=0;i<dim-1;i++){
  putchar ('\n');
  printf(a1);
  putchar ('\n');
  printf(a3);
}
putchar ('\n');
printf(a2);


Más compacto y nos ahorramos llamadas a printf (lo que tarda no es el printf en sí, sino llamar al sistema para escribir en la pantalla). Si siguieramos rascando podríamos meter la figura entera en un solo vector y lanzarlo del tiron:
Código (cpp) [Seleccionar]
printf(figura);

Una ventaja de estas técnicas esque no tenemos que ceñirnos a dibujar la figura de arriba a abajo. Podemos generarla en el orden que queramos y después imprimirla.

Aunque es una ventaja relativa, ya que el enfoque arriba-abajo es bastante claro y intuitivo.
#245
Programación C/C++ / Re: Contadores en c++
14 Marzo 2014, 14:45 PM
Pon dos couts y haz el salto de línea en el segundo.
#246
Programación C/C++ / Re: Contadores en c++
14 Marzo 2014, 13:57 PM
Quita el \n que tienes en el cout.
#247
Error de instalación, se te ha olvidado hacer algún link.

Las variables no necesitan ser linkadas, las funciones sí.
#248
Huy, a mi dibujar formas en ASCII me da un dolor de cabeza... Es de los ejercicios que no puedo xD

Solo decir que las llamadas a printf/cout tienen mucho retraso, es más eficiente pintar línea a línea que caracter a caracter.

Pero vamos, son detallitos. Para que empezases a notar la diferencia tendría que ser rombos de más de 1000 o cosa así.

PD: El triangulo de pascal... ¿Recursivo?
#249
Es lo mismo, solo tienes que leer la entrada como texto:

Código (cpp) [Seleccionar]
string texto;
cin>>texto;

mpz_set_str(num1,texto.c_str(), 10); // desconozco si tiene sobrecarga para strings, asi que lo dejo como const char*
#250
Programación C/C++ / Re: tableros
14 Marzo 2014, 01:03 AM
La eficiencia es buena, como mucho se puede mejorar creandote un vector fila y ir imprimiendo filas del tirón.

Aparte de eso. El código podría ser más claro. Y sobre todo más genérico (para cualquier tamaño del tablero).

Ah, y los pegotes se puede resolver pintandolos al reves (primero el pegote y despues el cuadrado).