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

#101
Cita de: MAFUS en 23 Abril 2016, 15:38 PM
Se refiere a las cabeceras stdio, math, stdlib, etc.
Mientras en C son stdio.h, math.h, stdlib.h, ...
En C++ son cstdio, cmath, cstdlib, ...

Es que uso solo cabeceras .h excepto para iostream que he leido que desde la estandarización de C no es más iostream.h (en compiladores modernos)

Entonces, salvo por el comentario de los namespace (corregido) no veo que estoy usando de C++ realmente.
#103
ivancea96: podrás mostrarme alguna implementación de lo que busco ?  realmente llevo pocos dias con C / C++ y no estoy ni cerca de poder lograr lo que necesito, gracias

Cita de: MAFUS en 23 Abril 2016, 14:03 PM
Recuerda que los números naturales empiezan en el 1, sino son enteros.


Ups, vale, que existen las dos formas: la que incluye 0 en el conjunto de los naturales y la que no incluye el 0 en el conjunto de los naturales. No he dicho nada.  :silbar:

Cierto, asi es.....   :xD
#104
Se ha solventado ya el asunto del uso de librerias y se mantendrán (mientras esté en desarrollo) dos versiones distintas: C y C++  ;D
#105
Muchas gracias crack81, muy buena información ;D
#106
A sabiendas del problema de crear tipos unsigned int he intentado manejarlos en un programa simple pero que tenia como variables distancias, longitud de cadenas y otras magnitudes que se definen  de forma positiva.

typedef unsigned int longitud;  // etc -> falta algo para que sea útil


Quisiera poder hacer algo parecido a lo anterior pero con una instancia de clase por ejemplo (pero no necesariamente) donde pueda hacer que el setter chequee si el valor es positivo y sino arroje una excepcion pero que internamente sea un entero y por tanto me habilite a: operaciones sin casting entre enteros y enteros-sin-signo (entre ellas las comparaciones)

A groso modo...... muy grosero claro..... quiero implementar con algo de azucar sintactica esto:

Código (cpp) [Seleccionar]

#include <stdio.h>

class Natural
{
private:
int valor;

public:
void setVal(int v){
if (v<0){
printf("Error! %d no es un numero natural positivo! \n",v);
exit(EXIT_FAILURE);
}

this->valor = v;
}

int getVal(){
return valor;
}

};

int main(){
Natural n;
n.setVal(10);

//if (n.getVal()==10)
// someTask();
}


Quisiera poder usarlo asi:

Natural n1 5; // declaro 5 de tipo Natural
Natural n2 -3; // aca se lanzaria excepcion o error en tiempo de compilacion (de implementarse de alguna manera que no me imagino con macros que lo dudo)


Si pudiera la solucion servirme para C y no solo C++ genial.......  :P


#107
Programación C/C++ / Re: programando en c
23 Abril 2016, 02:10 AM
Creo puedes hacer el reloj de arena más facil que con bucles, mirá aqui

Si le hago la funcion Pintar(), y borras y redibujas la pantalla.... hasta puede tener movimiento tu reloj de arena (que creo es lo que quieres hacer en ultimo caso)

Si lo miras...... la forma de trabajar se ha simplificado del todo
#108
Presento una mini-libreria para dibujar en modo texto en C / C++ de forma muy sencilla y es facil de extender.




Funciones:

void setcursor(int x, int y);
void right(int inc);
void left(int inc);
void up(int inc);
void down(int inc);
void dot(int x, int y, char c);
void dotAt(char c);
void xblock(int x, int y, int len, char c);
void yblock(int x, int y, int len, char c);
void sline(int x1,int y1, int x2, int y2, char c);
void slineto(int x2, int y2, char c);
void line(int x1, int y1, int delta_x, int delta_y, int len, char c);
void lineto(int delta_x, int delta_y, int len, char c);
void diamond(int h, char c);
void rectangle(int h, int w, char c);
void rect(int x1, int y1, int x2, int y2, char c);
void triangle(int h, int angle, char c);

Hay una version en C y otra en C++ y las pueden ver aqui
#109
Programación C/C++ / Re: programando en c
22 Abril 2016, 17:51 PM
MAFUS Tenes toda la razon  ;D




Tengo poco tiempo... pero me pude poner un rato y lo saqué  :xD


int main(void) {
int diag = 6;

make_board(diag+1,diag+1,' ');

// rombo
line(diag/2,0,1,1,diag/2,'a');
line(diag,diag/2,-1,1,diag/2,'b');
line(diag/2,diag,-1,-1,diag/2,'c');
line(0,diag/2,1,-1,diag/2,'d');

// linea para x=0
yblock(0,0,diag+1,'+');

//centro
yblock(0,0,1,'&');

render();

release();
   return 0;
}



Uso una implementación similar a la del problema de la pirámide y la definicion de line() es esta:


// Las lineas pueden ser discontinuas con deltas <> -1,0,+1 (por diseño)
void line(int x1, int y1, int delta_x, int delta_y, int len, char c = '*'){


Otras implementaciones de lineas que me hice fueron para:


void sline(int x1,int y1, int x2, int y2, char c = '*');
void xblock(int x, int y, int len, char c = '*');
void yblock(int x, int y, int len, char c = '*')


Obviamente todo se puede hacer con line() y no se necesita más pero para lineas verticales y horizontales usar yblock() y xblock() puede ser mas comodo.

Si lo tuviera que re-hacer, dejaria un cursor en la posicion final de cada punto, linea, figura dibujada para no tener que calcular a mano ese valor de nuevo como punto de inicio de otras subsiguientes.

Obviamente el programa no compila porque no lo posté completo haciendo caso a recomendaciones del staff
#110
Quiere buscar un dato en un arbol y si lo encuentra quitarlo; la idea es de forma de ir rapidamente encontrando todos los valores de un conjunto (supongo no se repiten) y quitarlos de esa bolsa.

Supongo que si usara la estructura set seria mas lenta en las operacion de busqueda (seguro) y eliminacion de los elementos porque el arbol binario es una estructura donde los datos estan ordenados..