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

#121
Lee sobre setters y getters ya que establecerNombreCurso() es un setter o sea una funcion (o metodo) que te sirve para "setear" (establecer) el valor de un campo en tu objeto y obtenerNombreCurso() un getter (te devuelve el valor de un campo)


Le sobre visibilidad en POO : miembros* publicos, privados, protegidos, etc


*
tanto los campos (propiedades) como los metodos son miembros de la clase
#122
Simplemente buscas una cadena y la reemplazas por otra del mismo tamaño (si del mismo tamaño)

Y guardas el archivo modificado (puede ser el mismo) o uno nuevo.


PD: si conoces la estructura del archivo, ya puedes hacer otras cosas...... pero sino lo conoces no puedes cambiar el tamaño de los strings (ya que no sabes si son de longitud fija o variable) aunque claro podrias probar (verifica si hay un caracter terminador en las cadenas)
#123
Cuanto mide el archivo origen ? cuanto mide el archivo destino ?

Si los ves con un editor...... ves lo mismo ?
#124
Veo estas mezclando bastante:

Citar#include <complex.h>

void funcion(complex <double>, complex <double>, complex <double>, int);

Dices que usas GCC asi que te muestro un ejemplo en C pero tambien por si quieres usar C++ el mismo ejemplo traducido:


#include <stdio.h>    
#include <complex.h>  

int main(void)
{
   double complex z1 = 1.0 + 3.0 * I;
   double complex z2 = 1.0 - 4.0 * I;

   printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n",
          creal(z1),
          cimag(z1),
          creal(z2),
          cimag(z2));

   double complex sum = z1 + z2;
   printf("Z1 + Z2 = %.2f %+.2fi\n", creal(sum), cimag(sum));
}



Código (cpp) [Seleccionar]

#include <stdio.h>    
#include <complex>    
using namespace std;

int main(void)
{
// definiciones
typedef complex<double> cpx;
cpx i = cpx (0.0, 1.0); // defino la parte imaginaria

cpx z1,z2,z3,sum;

   z1 = 1.0 + 3.0 * i;
   z2 = 1.0 - 4.0 * i;
   
   printf("Z1 = %.2f + %.2fi\nZ2 = %.2f %+.2fi\n\n",
          real(z1),
          imag(z1),
          real(z2),
          imag(z2));

   sum = z1 + z2;
   printf("Z1 + Z2 = %.2f %+.2fi\n", real(sum), imag(sum));
}


Hay unas cuantas diferencias como podras ver y la version en C++ no te compilará en C (con gcc) ni viceversa
#125
Me di cuenta   :xD :laugh:
#126
Está mucho mejor!

Aun faltaría usar alguna convención en el nombre las funciones y me gustó la macro  ;-)


#define ARRAY_SIZE(x) sizeof((x))/sizeof((x)[0])


Que licencia tiene ? podré usarla ?  ;)
#127
No se si es "eficiente" pero esta bien estructurado (a mejorar: no usar variables globales)


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;


struct matrix {
int rows,cols;
char **cells;
};

matrix m;

void make_board(int h,char c=' ');
void put_block(int x,int y, int len, char c = '*');
void triangle(int x,int y, int h, char c = '*');
void render(void);
void release(void);


int main(void) {
int h = 4;
make_board(h);
triangle(h*2-1,0,h);
triangle(h-1,h,h);
triangle(h*3-1,h,h);
render();
release();
   return 0;
}

void make_board(int h, char c=' ')
{
int i,j;

m.cols = h*4-1; m.rows = h*2;
m.cells = (char**) malloc(m.cols* sizeof(char*));
for (i=0; i<m.cols; i++)
m.cells[i] = (char*) malloc(m.rows * sizeof(char));

for (i=0; i<m.rows; i++)
for (j=0; j<m.cols; j++)
m.cells[i][j]= c;

}

void release(void){ free(m.cells); }

void render(void)
{
int i,j;
for (i=0; i<m.rows; i++){ // fila
for (j=0; j<m.cols; j++) // columna
cout << m.cells[i][j];
cout << endl;
   }
}

void put_block(int x,int y, int len, char c = '*'){
int ix, iy=y;
for (ix=x; ix<x+len; ix++){
m.cells[iy][ix] = c;
}
}

void triangle(int x,int y, int h, char c = '*')
{
int ix=x,iy,len=1;
for (iy=y; iy<y+h; iy++){
put_block(ix,iy,len,c);
ix--;
len+=2;
}
}



UPDATE: hay una mini-libreria que he hecho y sirve para hacer eso mucho mas facil aun, aqui
#128
Es porque nunca asignas la dificultad:

dificultad = NivelDificultad();

ó

dificultad = NivelDificultad(&dificultad)  // pasas un puntero



De todas formas hacerlo asi digamos que es poco ortodoxo, en todo caso NivelDificultad es un setter asi que en vez de devolver el problema al main() debrias ahi mismo asignar la dificultad
#129
Interpreto quisiste hacer esto:

Código (cpp) [Seleccionar]

class Foo {
   typedef int tipo_entero;

   public:
    tipo_entero valor;    

   private:
       /* Aquí las variables de la clase */
};


int main(void) {
   Foo objeto;

   objeto.valor = 54;    

   return 0;
}


Desde el exterior, el tipo de valor es int ya que no esta declarado en ese ámbito.
#130
Lo mas facil seria crear una matriz bidimensional de 2H*2H siendo H la altura del trinangulo, hacer una simple funcion que cree el triangulo con un caracter, y colocar el "cursor" dentro de la matriz  donde se necesite  e ir pintando cada triangulo

(sin son los llenos con asteriscos son solo 3 de ellos, si son rellenos con espacios sobre un fondo de asteriscos son mas triangulos y ni siquiera son equilateros)