• Viernes 29 de Marzo de 2024, 11:35

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - portirijillo

Páginas: [1]
1
C/C++ / Monitor de impresiones
« en: Jueves 12 de Septiembre de 2013, 18:14 »
Saludos. He estado programando un poco en C++, me ha gustado porque no es difícil asimilarlo si ya programaste en C.
Pero hoy vengo a consultarles o que me orienten, como podría monitorear las impresoras instaladas en el equipo. Con el programa necesito que se de cuenta cuantas hojas se imprimen y que impresora las atendió.

Agradezco cualquier ayuda.

2
C# / Multi Thread y referencias a otro objeto desde otra clase
« en: Viernes 12 de Julio de 2013, 20:28 »
Saludos.
Me gusta programar en lenguaje Java, pero ha surgido la necesidad de crear un programa escrito en C#. Pero tengo un problema en el uso de multi threads (multi hilos), ahora les explico como era en java.

Si en java queria hace un contador y que se reflejara en un JLabel, hacia lo siguiente.
Código: [Seleccionar]
class Frame extends JFrame {
    JPanel panel;
    JLabel label;
    public Frame() {
        inicializarTodo();
    }

    public void contador() {
Controlador x = new Controlador(this.label);
new Thread(x).start();
}
}

//Segunda clasee
class Controlador implements Runnable {
JLabel label;

public Controlador(JLabel label) {
this.label = label;
}

public void run() {
/*inicializar x e y*/
...
int contador = 0;
while(true) {
x++; y++;
label.setLocation(x,y); //Aqui hago entender que el label se movera por todo el JFrame
label.setText("" + contador);
contador++;
}
}
}

Pongo ese ejemplo porque creo seria mas entendible a que coloque en concreto mi problema que se resolveria de igual forma.
Ahora en C# no puedo mandar la referencia de un componente a otra clase y modificar sus propiedades al ejecutar un nuevo Thread porque aparece una exepcion sobre Cross-thread.

A lo que mi pregunta es como se haria eso de Java en C#, requiero que quede asi puesto a que mi clase controlador divide la tarea importante para mover y modificar componentes del windows form.

Cualquier ayuda les agradezco.

3
Java / ArrayList de objetos contains para variable especifica SOLUCIONADO
« en: Miércoles 30 de Enero de 2013, 04:18 »
Saludos, he jugado un poco con los arraylist y vector, sus interesantes métodos, etc.

Cuando tenemos un arraylist de Strings por ejemplo:
Código: [Seleccionar]
ArrayList<String> nombre = new ArrayList<String>();
nombre.add("el");
nombre.add("yo");
nombre.add("usted");

nombre.contains("el");

Al hacer contains en dicho array, resultara true porque existe un objeto de tipo string "el" en la lista.

Pero ahora tengo un array de pelotas
Código: [Seleccionar]
class Pelota {
   String nombre;
   int precio;
 ......
..
}

al hacer contains tengo entendido compara objetos, sea el hascode o referencia del objeto. Pero me habian dicho que si sobreescribia el metodo equals de la clase Object, se podia personalizar el contains, para que pudiera hacer lo siguiente

Código: [Seleccionar]
ArrayList<Pelota> pelotas = new ArrayList<Pelota>();

pelotas.add(new Pelota("basquet",80));
pelotas.add(new Pelota("beis",100));

pelotas.contais("futbol");

Entonces si se sobreescribio el metodo equals en Pelota
Código: [Seleccionar]
   
public boolean equals (Object o) {
    String x = (String) o;
        if (x.equals(nombre)) return true;
        return false;
}

deberia responder correctamente el metodo contains, pero no es asi. Alguien puede orientarme.

4
Java / Monitor de impresiones
« en: Sábado 29 de Diciembre de 2012, 01:20 »
Saludos a todos, he estado leyendo un poco sobre como manipular la impresora en java. Hay mucha info sobre como imprimir, saber que impresoras hay. Pero lo que necesito es monitorear las impresiones. Es decir una aplicación java que cuente cuantas veces se ha mandado a imprimir y cuantas hojas se ha impreso, solamente eso y pues de que impresora se mando  (de las que tiene el equipo instalado).
No se si se puede ni como obtener dicha informacion del sistema.

Cualquier ayuda muchas gracias.

Solo tengo como obtener las impresoras instaladas
Código: [Seleccionar]
//Coger todas las impresoras instaladas (tanto en local como en red)
PrintService[] impresoras = PrintServiceLookup.lookupPrintServices(null, null);

5
Java / Detectar actualizado en datos en JAva con MySql
« en: Domingo 21 de Octubre de 2012, 23:19 »
Saludos a todos, recientemente empece a conectar programas java a una base de datos para acceder y guardar datos, es realmente impresionante lo que se logra. Pero lo que ahora me planteo es para dejar a un lado la tarea de usar multisockets es lograr un chat conectándolos a MySql. La idea es tener la tabla usuarios que guarden en su fila un registro mensaje, que se este actualizando según el mensaje que se le escriba.
Por lo que viene mi pregunta. Hay alguna forma de que mi aplicación java inicie un Thread que este al pendiente de los datos que se actualicen en una tabla para asi recibir los mensajes.

O que me recomiendan usar para implementar esta tarea, la idea es que no sea un chat únicamente de 2 personas, por eso me voy iniciando en la conexión a MySql.
Alguna idea u orientación con el tema se los agradecería.

6
C/C++ / Copiado, capturar, cadenas dinamicas.
« en: Miércoles 5 de Septiembre de 2012, 08:54 »
Saludos a todos, ahora me encuentro en un lio, tratando de hacer de forma dinamica el uso de cadenas. Ya que dada 2 o mas cadenas desde la linea de comandos, ocupo hacer cosas como copiar, concatenar o volver a capturar la cadena dentro del programa.

La forma de introducir la cadena despues de la compilacion es
C:\>programa.exe cadena1 cadena2
ejemplo que he estado testeando
C:\>programa.exe ana fantasia

El codigo es el siguiente:
Código: C
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5.  
  6. void copia(char *, char*);
  7. char tamano(char *);
  8. void capturar(char *);
  9.  
  10. int main(int argc, char **argv) {
  11.     /*Primer elemento es el origne, el segundo el destino*/
  12.     copia(argv[2],argv[1]);
  13.     printf("\nOrigen : %s",argv[2]);
  14.     printf("\nDestino : %s",argv[1]);
  15.     capturar(argv[1]);
  16.     printf("\nOrigen : %s",argv[2]);
  17.     printf("\nDestino capturado : %s",argv[1]);
  18.     return 0;
  19. }
  20.  
  21. void capturar(char *cadena){
  22.      char *tmp;
  23.      printf("\nInserte la cadena : ");
  24.      gets(cadena);
  25.      fflush(stdin);
  26.      printf("%s",cadena);
  27. }
  28.  
  29. void copia(char *origen, char *destino) {
  30.      int i=0;
  31.      while(origen[i]){
  32.          destino[i]=origen[i];
  33.          i++;
  34.      }
  35.      if(tamano(destino)>tamano(origen))
  36.          while(destino[i]) {
  37.              destino[i]=0;
  38.              i++;
  39.      }
  40. }
  41.  
  42. char tamano(char *palabra) {
  43.      int i=0;
  44.      while(palabra[i])
  45.          i++;
  46.      return i;
  47. }

Primero presento problemas al cocatenar las cadenas, por lo que me puse a revisar las direcciones en que se estan guardando, al parecer estan consecuivas, bueno deje la funcion de concatenar pendiente. Pero por ahora ocupo de su ayuda para la copia y capturacion nueva.

Es decir, si yo puse "C:\>programa ana fantasia" el programa debe ser capaz de pasar la palabra1 (ana) copiarla a la palabra2(fantasia). Imprimiendo
p1: ana
p2: ana
Pero tambien debe podre pasar al palabra2(fantasia) a la palabra1(ana). Imprimiendo
p1: fantasia
p2: fantasia
Este paso no sucede asi. Por el manejo de memoria que no encuentro como solucionar.

Despues de haber hecho una copia de cadenas, independientemente si p1 paso a p2 o p2 paso a p1, debo tener la opcion de capturar nuevamente la cadena ya dentro del programa, ejemplo.
Desde la linea de comandos se mando
C:\>programa ana fantasia
p1: ana
p2: fantasia
Captura nueva dentro del programa: "el perico verde", imprime
p1: el perico verde
p2: fantasia

He tratado de usar realloc, malloc, y calloc, pero no me da algun resultado, por favor alguien me podria hechar la mano con estas 2 funciones.

7
C/C++ / Ruptura de codigo en define SOLUCIONADO
« en: Domingo 8 de Abril de 2012, 00:46 »
Saludo a todos. Estoy haciendo un programa que usa el metodo de Maehly para encontrar raices de una funcion.
Actualmente tengo un #define para usar mi funcion en el metodo.
Código: C
  1. #define F csin(x+csin(x+M_PI*1i)*1i)-(ccos(M_PI*x*1i))*(ccos(M_PI*x*1i))*csin(x)+1

Todo va bien al momento de usarla, el problema es que el metodo ocupa su derivada, he intentado con el teorema fundamental de calculo, pero como se requiere mucha exactitud es preferible usar la funcion derivada de forma algebraica. El problema es que ocupa una linea muy larga, algo inconveniente para compilar.

Por aca le llamamos ruptura de codigo cuando se ocupa una linea de codigo muy larga y la separamos haciendo una ruptura, por ejemplo en la linea
Código: C
  1. y = 7 + 28*x + 16*x - 14; // La asignacion ahora lo hare con una ruptura
  2. y = 7 + 28*x
  3.             + 16*x -14;

Pero no se como hacer una ruptura en un #define si es que se pueda. Tengo a
Código: C
  1. #define DF ccos(x)*ccos(M_PI*x*1i)*ccos(M_PI*x*1i) + 2*M_PI*csin(M_PI*x*1i)*csin(x)*ccos(M_PI*x*1i)*1i + ccos(x + csin(x + M_PI*1i)*1i)*(1 + ccos(x + M_PI*1i)*1i)

8
Matlab / De c a matlab problema con complejos
« en: Domingo 11 de Marzo de 2012, 19:29 »
Hola a todos, espero que este en la seccion correcta con esta pregunta.
Pasa que llevo varios dias haciendo programas en c, posteriormente compilados con matlab usando el mexfuction, para que sean usados dentro de él.
Y ahora me surge un problema. El programa resuelve raices de polinomios, y para introducir el polinomio y que arroje el resultado se usa la sintaxis " x = polinomio([1,0,-1]) " que equivale a introducir x²-1, ya el programa arroja las raices en la variable x sean reales o complejas.

El problema ahora es que necesito introducir numeros complejos, ya sea reales puros, imaginarios puros o ambos. Aqui es donde tengo problema, ya que matlab no me da problemas si el vector es solo imaginario o complejo (mixto real e imaginario) el problema viene cuando es real puro. Dejo mi codigo.

Código: [Seleccionar]
  #include "mex.h"
     
     void oper(double *vro, double *vio, double *vii, double *vri){
               vro [0] = vri[0];
               vio [0] = vii [0]; //Aqui solo reflejaremos lo que se introdujo real e imaginario
}

void mexFunction (int nlhs, mxArray* plhs[], int nrhs,
                  const mxArray* prhs[])
     {
       mwIndex i;
       mwSize n;
       double *vri, *vro;
   double *vii, *vio;
       if (nrhs != 1 || ! mxIsNumeric (prhs[0]))
         mexErrMsgTxt ("expects matrix");
     
       n = mxGetNumberOfElements (prhs[0]);
       plhs[0] = (mxArray *) mxCreateNumericArray
         (mxGetNumberOfDimensions (prhs[0]),
          mxGetDimensions (prhs[0]), mxGetClassID (prhs[0]),
          mxIsComplex (prhs[0]));       
vii = mxGetPi (prhs[0]); //Parte imaginaria del vector de entrada
vri = mxGetPr (prhs[0]); //PArte real del vector de entrada
vro = mxGetPr (plhs[0]); //Parte real de la salida
        vio = mxGetPi (plhs[0]);//Parte imaginaria de la salida
        oper(vro,vio,vii,vri);
     }

Para usarlo en matlab
mex nombrearchivo.c
x = nombrearchivo([5+2i])
y = nombrearchivo([2i])
z = nombrearchivo([5]) //Aqui es donde se friega la cosa, ya no sirve en este caso.
Espero haberme explicado, y saludos.

9
C/C++ / Como mejorar mis ifs
« en: Jueves 10 de Noviembre de 2011, 08:50 »
Hola a todos, estoy elaborando un programa y me quede atorado en unos ifs, hacen lo que les pido, pero quisiera saber de que otra forma se podria escribir la siguiente instruccion, es decir si se puede hacer en uno solo o en 2 a lo mas. Lo pregunto porque ultimamente me revuelve mi cabeza visual, bash y c, a tal punto que no se como usar los && y los || para cada lenguaje.

Código: C
  1.  
  2. if(i)
  3.    if(num[i]=='+' || num[i]=='-')
  4.       if(num[i-1]=='+' || num[i-1]=='-')
  5.           return 0;

Saludos

10
C/C++ / Comparando una string, dos veces
« en: Viernes 7 de Octubre de 2011, 03:47 »
Hola a todos nuevamente y tan rapido, ahora tengo otro problemita, busco tener impreso en pantalla el abecedario completo, y pedir al usuario introducir una tecla de estas. Si se introdujo una letra desaparecera de pantalla, Hasta aqui todo bien, el problema surge cuando el usuario vuelve a introducir una tecla previamente ya usada, deberia mostrar un mensaje dicioendo que ya fue introducida, pero para mi suerte las condiciones no las lleva como deseo. Este es mi codigo, espero puedan ayudarme.

Código: C
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4.  
  5. #define ENTER 13
  6. #define MAX 30
  7.  
  8. void main(void);
  9. char cuenta(char [MAX],char,int,int);
  10. void inicializa(char [MAX],int *,int *);
  11. void pausa(void);
  12.  
  13. void main(void){
  14.    char abc[]="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
  15.    char letra=0;
  16.    int x,y,intentos=0;
  17.    clrscr();
  18.    inicializa(abc,&x,&y);
  19.    do{
  20.    gotoxy(5,3);
  21.    printf("\nInserte la palabra : ");
  22.    letra=getche();
  23.    cuenta(abc,letra,x,y);
  24.    if(cuenta(abc,letra,x,y))
  25.       intentos++;
  26.    else
  27.       printf("\nYa la pusiste");
  28.    }while(intentos<3);
  29.    pausa();
  30. }
  31.  
  32. void pausa(void){
  33.    printf("\nPresione enter para continuar");
  34.    while(getch()!=ENTER);
  35. }
  36.  
  37. void inicializa(char a[MAX], int *x, int *y){
  38.    int i;
  39.    gotoxy(2,8);
  40.    *x=wherex();
  41.    *y=wherey();
  42.    puts(a);
  43. }
  44.  
  45.  
  46. char cuenta(char abc[MAX], char l, int x, int y){
  47.    int i;
  48.    gotoxy(x,y);
  49.    for(i=0;abc[i];i++)
  50.       if(abc[i]==toupper(l)){
  51.          abc[i]='_';
  52.          puts(abc);
  53.          return 1;
  54.       }
  55.    return 0;
  56. }
  57.  

11
C/C++ / Capturando una matriz con cadena
« en: Jueves 6 de Octubre de 2011, 07:03 »
Hola a todos, empeze con lo que son cadenas de texto en matrices, pero ahora quiero capturar una cadena de texto que esta en una matriz m*n, ya que planeo mostrar un dibujo.

El codigo que tengo es asi, lo unico que logro es declarar el arreglo como un vector para la primera linea, no se como hacerle para toda la matriz.

Código: C
  1. /*r -- renglones
  2. c --- columnas */
  3.  
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <time.h>
  7. #include <stdlib.h>
  8. #include <windows.h>
  9.  
  10. int main(){
  11.   int i,j;
  12.   char cadena[][]={
  13.        "@@@@@_____@@@@@@"
  14.        "@@@@@____@@@@@@"
  15.        "@@@@@___@@@@@@"
  16.        "@@@@@__@@@@@@"
  17.        "@@@@@_@@@@@@"
  18.        "@@@@@@@@@@@"
  19.        "@@@@@_@@@@@@"
  20.        "@@@@@__@@@@@@"
  21.        "@@@@@___@@@@@@"
  22.        "@@@@@____@@@@@@"
  23.        "@@@@@_____@@@@@@"
  24.        "@@@@@______@@@@@@"};
  25.   for(i=0;cadena[i];i++){            
  26.      printf("%c",cadena[i]);
  27.   }
  28.   printf("\n");
  29.   system("PAUSE");
  30.   return 0;
  31. }

12
C/C++ / No encuentro mi error (Solucionado)
« en: Sábado 17 de Septiembre de 2011, 22:51 »
Espero me puedan ayudar con el siguiente programa, el cual despliega la cantidad de monedas que se deben dar como cambio, en la que se pide monto a pagar y dinero recibido.
Las monedas son de 25 centavos 10 centavos 5 centavos y 1 centavo

Tengo el programa el problema es cuando lo evalua para>
Monto a pagar: 4.63
Dinero recibido: 10
el resultado me roba 1 centavo, si cambio la condicion del ultimo ciclo a while(x>0)
el problema resulta al evaluar
Monto a pagar: 5
Dinero recibido: 10
roba 1 centavo
Cualquier ayuda la agradesco, no encuentro porque el problema.
Código: C
  1. /*Programa que calcula el cambio desplegando las monedas de 25, 10, 5 y 1 centavo
  2. */
  3.  
  4. #include <stdio.h>
  5. #include <conio.h>
  6.  
  7. #define ENTER 13 /*13 es la tecla Enter*/
  8.  
  9. void main(void);
  10. void pausa(void);
  11. void captura(void);
  12. void monedas(float);
  13.  
  14. void main(){
  15.    clrscr();
  16.    captura();
  17.    pausa();
  18. }
  19.  
  20. void pausa(){
  21.    printf("\nPresione Enter para continuar\n");
  22.    while(getch()!=ENTER);
  23. }
  24.  
  25. void captura(){
  26.    float monto,pago,cambio=0;
  27.    printf("Programa que calcula el cambio con monedas");
  28.    printf("\nInserte el total a pagar >");
  29.    scanf("%f",&monto);
  30.    printf("Inserte el dinero recibido >");
  31.    scanf("%f",&pago);
  32.    cambio=pago-monto;
  33.    printf("Su cambio es %.2f",cambio);
  34.    monedas(cambio);
  35. }
  36.  
  37. void monedas(float x){
  38.    int c25=0,c10=0,c5=0,c1=0;
  39.    while(x>0.25){
  40.       x-=0.25;
  41.       c25++;
  42.    }
  43.    printf("\n\nRegresar %d monedas de 25 centavos",c25);
  44.    while(x>0.1){
  45.       x-=0.1;
  46.       c10++;
  47.    }
  48.    printf("\nRegresar %d monedas de 10 centavos",c10);
  49.    while(x>0.05){
  50.       x-=0.05;
  51.       c5++;
  52.    }
  53.    printf("\nRegresar %d monedas de 10 centavos",c5);
  54.    while(x>=0.01){
  55.       c1++;
  56.       x-=0.01;
  57.       printf("\n%f",x);
  58.    }
  59.    printf("\nRegresar %d monedas de 10 centavos",c1);
  60. }

13
C/C++ / Recomendaciones para aprender C
« en: Sábado 4 de Junio de 2011, 07:56 »
Saludos a todos
Espero este posteando esto en el lugar correcto
Necesito que me recomienden un buen libro para programar en c. Planeo aventarme un autocurso intensivo de este lenguaje para llegar fuerte a mi siguiente semestre.

Plano que en c pueda manejar archivos, es decir como ej, generar txt de lo que hace C y hacer comparaciones, como base de datos.

Y tener buenas bases.

Gracias

14
C/C++ / Reconocer las flechas del teclado
« en: Lunes 9 de Mayo de 2011, 20:23 »
He estado leyendo como hacer para reconocer cuando el usuario presione las flechas del teclado en C.

Vi que usando el codigo ascii se podia, pero no logro entender porque con migo parece no funcionar, he visto otros codigos que parece estar igual al mio pero si corre. Tal ves me tengo bloqueada mi mente, por eso les pido una ayudadita.
Tengo el siguiente codigo, que supone evaluar la flecha que se presiono, en caso de ser positiva muestra cual fue, pero no logra funcionar, no me aparece nada.
Me aferro a entender primero como capturar las flechas del teclado con este codigo, ya que lo lleve a una escala mayor y pues no funciono.
Código: C
  1. #include <stdio.h>
  2.  
  3. void main()
  4. {
  5.     char a;
  6.     clrscr();
  7.     a=getche();
  8.     if (a==13){ printf("Enter");}
  9.     if (a==75){ printf("Flecha izquierda");}
  10.     if (a==80){ printf("Flecha abajo");}
  11.     if (a==77){ printf("Flecha derecha");}
  12.     if (a==72){ printf("Flecha arriba");}
  13.     getch();
  14. }
  15.  

Saludos

15
C/C++ / Punteros en modo grafico
« en: Miércoles 4 de Mayo de 2011, 02:55 »
Hola a todos en el foro, estoy empezando a usar punteros, y los usare en modo grafico. Lo que quiero conseguir es hacer caer las letras una por una en un orden que esta determinado.

El problema es que para imprimir en modo grafico con lo unico que lo he conseguido es usando punteros.
Pero lo que veo es que imprime la todas las letras en decremento, es decir empieza por toda la palabra y termina con la ultima. Aqui mi codigo para dar a entender que lo que busco es un resultado inverso.

Código: C
  1. #include <stdio.h>
  2. #include <graphics.h>
  3.  
  4. void modegraph()
  5. {
  6. int gd,gm;
  7. gd = DETECT;
  8. initgraph(&gd,&gm,"C:\tc\bgi");
  9. }
  10.  
  11. void letras (char *punt)
  12. {
  13.     clearviewport();
  14.     outtextxy(120,80,punt);
  15. }
  16.  
  17. void main()
  18. {
  19.     char *punt,titulo[]={'T','S','E','I','T','R'};
  20.     int i=0,p;
  21.     punt = titulo;
  22.     modegraph();
  23.     clearviewport();
  24.     while(i<=5){
  25.     for(p=0;p<=160;p++)
  26.     {
  27.         letras(punt);
  28.     }
  29.             punt++;
  30.             i++;
  31.     }
  32.     getch();
  33. }
  34.  

16
C/C++ / Sin asunto
« en: Sábado 2 de Abril de 2011, 06:11 »
Pido una disculpa por este doblepost, y eto me ocurrio por problemas tecnicos.

17
C/C++ / Abrir informacion en otra ventana
« en: Sábado 2 de Abril de 2011, 06:06 »
Hola a todos he estado programando en C, pero me surgio una duda la cual aun no encuentro respuesta, por eso acudo a esta sabiduria. Agradesco cualquier orientacion.

Mi duda es, se puede desplegar los datos,texto,valores,etc en otra ventana en C. Es decir lo que muestra el printf es un texto,valor,etc. en pantalla. Pero se puede lograr que lo muestre en una nueva, esto para permitir ver dos ventanas de datos con el mismo programa.????

18
C/C++ / Podrian colaborar para aprender a programar
« en: Lunes 21 de Febrero de 2011, 02:34 »
Hola a todos, espero no les moleste esta publicacion, yo se que aqui hay mucho talento, por eso me dirijo a uestedes por este medio.
Estoy elaborando un foro exclusivo para la programacion en C, para los estudiantes (incluyendome) de una universidad mexicana. Vengo a pedir voluntarios que quieran formar parte de nuestra comunidad, ya que apenas esta empezando.
Para aquellos expertos de este foro ofrezco una dministracion completa, para motivar la colaboracion.
Colabrorar, es decir participar en nuestro foro, que apenas esta por iniciar.

Espero me halla dado a entender y espero voluntarios gracias.
El foro es : goorkuabcinc.activo.ws

Páginas: [1]