• Sábado 27 de Julio de 2024, 09:20

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.


Mensajes - droezva

Páginas: [1]
1
C/C++ / Re:Código de César en C
« en: Jueves 3 de Mayo de 2012, 16:34 »
Bueno no entendí, necesitas que el texto que va a encriptar o desencriptar se encuentre en un archivo

2
C/C++ / Re:CALENDARIO EN C
« en: Miércoles 2 de Mayo de 2012, 23:42 »
Bueno realmente es sencillo el utilizar los parametros para main
en teoria cuando compilar tu programa se crea un archivo ejecutable *.EXE en windows ;D

entonces desde consola o tambien conocido como simbolo de sistema puedes ejecutar es programa que se creo cuando compilastes y ejecutastes tu programa.

bueno digamos que estamos en consola nosotros podemos escribir lo siguiente:

c:\FECHA.EXE

o

c:\FECHA

Entonces se ejecutara nuestro programa, ahora si nosotros queremos pasarle algunos datos iniciales a nuestro programa como en este caso que le podamos pasar un numero que sea el mes y otro que sea el año lo tendriamos que hacer asi:

c:\FECHA 12 2012

o

c:\FECHA.EXE 12 2012

pero para que en nuestro programa entienda que pasamos estos valores tendriamos que colocar ciertos parametros en la funcion main()
asi:

Código: C
  1. void main(int argc,char *argv[],char *ent[])
  2. {
  3. }

Realmente los nombre pueden ser a tu gusto jejeje!! podrian ser asi:

Código: C
  1. void main(int numeroDeParametro,char *valoresDeParametro[],char *variableEntorno[])
  2. {
  3. }

ahora te explico que pasa en main cuando le colocas estos parametros y cuando pasas valores cuando ejecutas tu programa

cuando llamas tu programa a ejecutar pasas los siguiente valores de esta forma

c:\FECHA 12 2012

En main pasa lo siguiente

en argv se asignan los valores que has pasado cuando llamastes a tu programa

argv[0] tendra el valor de FECHA (siempre tendra el nombre del programa)
argv[1] tendra el valor de 12
argv[2] tendra el valor de 2012

y en la variable argc tendra el valore de 3 si pasaras mas valores el valor de argc corresponderia siempre a los valores que pasastes + 1 que es el nombre del programa

Código: C
  1. void main(int argc,char *argv[])
  2. {
  3. // asi podemos hacer uso de estos valores
  4.   int mes = atoi(argv[1]);
  5.   int agno = atoi(argv[2]);
  6. }


bueno espero que te sirva la explicación y bueno se me ha acabado el tiempo
pero te dejo el programa modificado saludos  :suerte:
Código: C
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5.  
  6. char *meses[] = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
  7.  
  8.  
  9. int agnoBisiesto(int agno)
  10. {
  11.         return !(agno%4) && (agno%100 || !(agno%400));
  12. }
  13.  
  14. int diaFecha(int dia, int mes, int agno)
  15. {       //Algoritmo de Doomsday
  16.         int modA[2][12]= {{0,3,3,6,1,4,6,2,5,0,3,5},{0,3,4,0,2,5,0,3,6,1,4,6}};
  17.         agno--;
  18.         return ( (agno%7) + ((agno/4)-(3*(agno/100+1))/4) +  modA[agnoBisiesto(agno+1)][mes-1]  + dia%7  )%7;
  19. }
  20.  
  21. int diaFinal(int mes, int agno)
  22. {
  23.         int dias[] = {31,28 + agnoBisiesto(agno),31,30,31,30,31,31,30,31,30,31};
  24.         return dias[mes-1];
  25. }
  26.  
  27. void mostrarMes(int mes, int agno)
  28. {
  29.         clrscr();
  30.         int diaSem = diaFecha(1,mes, agno);
  31.         int ultimoDia = diaFinal(mes, agno);
  32.         int x;
  33.         printf("%s de %d\n",meses[mes-1],agno);
  34.         printf("Dom\tLun\tMar\tMie\tJue\tVie\tSab\n");
  35.         for(x = 0; x < diaSem; x++) //Imprime la tabulacion de los dias vacios inciales del Mes
  36.                 printf("\t");
  37.         for(x = 1; x <= ultimoDia; x++)
  38.         {
  39.                 printf("%d\t",x);
  40.                 if( !( ++diaSem % 7 ) )//si el modulo de diaSem despues de incrementar es 0 inicia en una nuea linea
  41.                         printf("\n");
  42.         }
  43.         //Por si te gusta reducir el codido :D
  44.         //for(x = 0; x < diaSem; printf("\t"), x++);
  45.         //for(x = 1; x <= ultimoDia; printf("%d%s",x++, (++diaSem % 7 ) ? "\t":"\n" ) );
  46. }
  47. /*
  48. Funcion para evitar errores al ingresar un valor que no se un numero
  49. Se lee primero como cadena y despues se convierte a numero entero -> atoi
  50. si es numero es valido se convertira correctamente sino sera un cero
  51. */
  52. int leerNum()
  53. {
  54.         char valorTexto[4];
  55.         scanf("%4s",valorTexto);
  56.         return atoi(valorTexto);
  57. }
  58. int mesValido(int mes)
  59. {
  60.         int valido = !(mes < 1 || mes > 12);
  61.         if (!valido)
  62.                 printf("El %d no es un mes valido (1-12)\n",mes);
  63.         return valido;
  64. }
  65.  
  66. int agnoValido(int agno)
  67. {
  68.         int valido = !(agno < 1900);
  69.         if (!valido)
  70.                 printf("El %d no es un agno valido (>=1900)\n",agno);
  71.         return valido;
  72. }
  73.  
  74. void leerMesAgno(int *mes, int *agno)
  75. {
  76.         printf("Ingrese el mes y agno para visualizarlo\n");
  77.         do{
  78.                 printf("Mes(1-12): ");
  79.                 *mes = leerNum();
  80.                 if (mesValido(*mes))
  81.                         break;
  82.         }while(1);
  83.         printf("Mes Seleccionado: %s(%d)\n",meses[*mes-1],*mes);
  84.         do{
  85.                 printf("Agno(>=1900): ");
  86.                 *agno = leerNum();
  87.                 if (agnoValido(*agno))
  88.                         break;
  89.         }while(1);
  90. }
  91.  
  92. int continuar()
  93. {
  94.         printf("\nDesea ver otro mes (s/n): ");
  95.         return tolower(getch())!='n';
  96. }
  97.  
  98. int main(int argc, char *arg[])
  99. {
  100.         int mes, agno, resp=1;
  101.         if(argc==3)
  102.         {
  103.                 mes = atoi(arg[1]);
  104.                 agno = atoi(arg[2]);
  105.                 clrscr();
  106.                 printf("Mes: %d[%s]    Agno: %d[%s]\n", mes,arg[1],agno,arg[2]);
  107.                 if( (mesValido(mes) && agnoValido(agno)) )
  108.                         mostrarMes(mes, agno);
  109.                 else
  110.                         printf("Se esperaban 2 parametros: Mes(1-12) y Agno(>=1900)\nEn el Formato(mm yyyy)");
  111.                 resp = continuar();
  112.         }
  113.         while(resp)
  114.         {
  115.                 clrscr();
  116.                 leerMesAgno(&mes, &agno);
  117.                 mostrarMes(mes, agno);
  118.                 resp = continuar();
  119.         }
  120. }
  121.  


3
C/C++ / Re:CALENDARIO EN C
« en: Sábado 28 de Abril de 2012, 21:26 »
Hola que tal,

checate este codigo que tenia, lo modifique un poco.

Utilizo el Algoritmo DoomsDay para obtener el dia de una fecha dada, con eso se puede saber que dia de la semana es el primer dia del mes que se quiere ver.

se validan el mes y año y se imprimen los días del mes.

bueno ahi dentro del codigo he colocado algunas explicaciones

No dudes en preguntar, Saludos  :suerte:

Código: C
  1. #include <conio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5.  
  6. char *meses[] = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
  7.  
  8. int agnoBisiesto(int agno)
  9. {
  10.         return !(agno%4) && (agno%100 || !(agno%400));
  11. }
  12.  
  13. int diaFecha(int dia, int mes, int agno)
  14. {       //Algoritmo de Doomsday
  15.         int modA[2][12]= {{0,3,3,6,1,4,6,2,5,0,3,5},{0,3,4,0,2,5,0,3,6,1,4,6}};
  16.         agno--;
  17.         return ( (agno%7) + ((agno/4)-(3*(agno/100+1))/4) +  modA[agnoBisiesto(agno+1)][mes-1]  + dia%7  )%7;
  18. }
  19.  
  20. int diaFinal(int mes, int agno)
  21. {
  22.         int dias[] = {31,28 + agnoBisiesto(agno),31,30,31,30,31,31,30,31,30,31};
  23.         return dias[mes-1];
  24. }
  25.  
  26. void mostrarMes(int mes, int agno)
  27. {
  28.         clrscr();
  29.         int diaSem = diaFecha(1,mes, agno);
  30.         int ultimoDia = diaFinal(mes, agno);
  31.         int x;
  32.         printf("%s de %d\n",meses[mes-1],agno);
  33.         printf("Dom\tLun\tMar\tMie\tJue\tVie\tSab\n");
  34.         for(x = 0; x < diaSem; x++) //Imprime la tabulacion de los dias vacios inciales del Mes
  35.                 printf("\t");
  36.         for(x = 1; x <= ultimoDia; x++)
  37.         {
  38.                 printf("%d\t",x);
  39.                 if( !( ++diaSem % 7 ) )//si el modulo de diaSem despues de incrementar es 0 inicia en una nuea linea
  40.                         printf("\n");
  41.         }
  42.         //Por si te gusta reducir el codido :D
  43.         //for(x = 0; x < diaSem; printf("\t"), x++);
  44.         //for(x = 1; x <= ultimoDia; printf("%d%s",x++, (++diaSem % 7 ) ? "\t":"\n" ) );
  45. }
  46. /*
  47. Funcion para evitar errores al ingresar un valor que no se un numero
  48. Se lee primero como cadena y despues se convierte a numero entero -> atoi
  49. si el numero es valido se convertira correctamente sino sera un cero
  50. */
  51. int leerNum()
  52. {
  53.         char valorTexto[4];
  54.         scanf("%4s",valorTexto);
  55.         return atoi(valorTexto);
  56. }
  57.  
  58. void leerMesAgno(int *mes, int *agno)
  59. {
  60.         printf("Ingrese el mes y agno para visualizarlo\n");
  61.         do{
  62.                 printf("Mes(1-12): ");
  63.                 *mes = leerNum();
  64.                 if (*mes < 1 || *mes > 12)
  65.                         printf("Ingresa un mes valido\n");
  66.                 else
  67.                         break;
  68.         }while(1);
  69.         printf("Mes Seleccionado: %s(%d)\n",meses[*mes-1],*mes);
  70.         do{
  71.                 printf("Agno(>1900): ");
  72.                 *agno = leerNum();
  73.                 if (*agno < 1900)
  74.                         printf("Ingresa un Agno valido\n");
  75.                 else
  76.                         break;
  77.         }while(1);
  78. }
  79.  
  80. void main()
  81. {
  82.         int mes, agno, resp;
  83.         do{
  84.                 clrscr();
  85.                 leerMesAgno(&mes, &agno);
  86.                 mostrarMes(mes, agno);
  87.                 printf("\nDesea ver otro mes (s/n): ");
  88.                 resp = tolower(getch());
  89.         }while(resp!='n');
  90. }

4
C/C++ / Re:como puedo quitar la funcion struct y hacer que siga funcionando?
« en: Jueves 26 de Abril de 2012, 10:30 »
 Hola!!

Lo que tienes que hacer es extraer las variables de struct y practicamente quedaran como globales

Código: C
  1. typedef int matriz[26][280];
  2.  
  3.  struct registro {
  4.        char name[30];
  5.        int color;
  6.        int efecto;
  7.        int fondo;
  8.        int rellenoletra;
  9.        int letra;
  10.        int rellenofondo;
  11.        char archivo[8];
  12.  
  13.    } R;
  14.  
  15.    FILE *arch;

y deberan quedar asi

Código: C
  1. typedef int matriz[26][280];
  2.  
  3. char name[30];
  4. int color;
  5. int efecto;
  6. int fondo;
  7. int rellenoLetra;
  8. int letra;
  9. int rellenoFondo;
  10. char archivo[8];
  11.  
  12. FILE *arch;
  13.  

donde utilices a R como aqui
Código: C
  1. void nuevo(int x, int y)
  2. {
  3.  char tecla;
  4.  int pos,i;
  5.  R.archivo[0]='\x0';

Solamente usaras archivo
Código: C
  1. void nuevo(int x, int y)
  2. {
  3.  char tecla;
  4.  int pos,i;
  5.  archivo[0]='\x0';

ahora el detalle es que como tus variables ya no estan dentro del struct y son practicamente individuales, entonces las tienes que ir guardando una por una dentro del archivo y de igual manera irlas leyendo, lo que muy bien se puede colocar dentro de unos procedimientos, y asi nada mas llamarlos cuando los necesites.

Código: C
  1. void leerArchivo(FILE *arch)
  2. {
  3.    fread(name,sizeof(char),30,arch);
  4.    fread(&color,sizeof(int),1,arch);
  5.    fread(&efecto,sizeof(int),1,arch);
  6.    fread(&fondo,sizeof(int),1,arch);
  7.    fread(&rellenoLetra,sizeof(int),1,arch);
  8.    fread(&letra,sizeof(int),1,arch);
  9.    fread(&rellenoFondo,sizeof(int),1,arch);
  10.    fread(archivo,sizeof(char),8,arch);
  11. }
  12.  
  13. void escribirArchivo(FILE *arch)
  14. {
  15.    fwrite(name,sizeof(char),30,arch);
  16.    fwrite(&color,sizeof(int),1,arch);
  17.    fwrite(&efecto,sizeof(int),1,arch);
  18.    fwrite(&fondo,sizeof(int),1,arch);
  19.    fwrite(&rellenoLetra,sizeof(int),1,arch);
  20.    fwrite(&letra,sizeof(int),1,arch);
  21.    fwrite(&rellenoFondo,sizeof(int),1,arch);
  22.    fwrite(archivo,sizeof(char),8,arch);
  23. }

si anteriormente tendias que hacer esto
Código: C
  1. void guardar()
  2. {
  3.    arch=fopen(R.archivo,"a+");
  4.    fwrite(&R,sizeof(struct registro),1,arch);
  5.    fclose(arch);
  6. }

ahora tendras que hacer esto
Código: C
  1. void guardar()
  2. {
  3.    arch=fopen(archivo,"a+");
  4.    escribirArchivo(arch);
  5.    fclose(arch);
  6. }

Saludos Espero y te sirva, va el archivo adjunto Modificado :suerte:

5
C# / Re:datagrid en user control
« en: Domingo 22 de Abril de 2012, 06:46 »
Hola que  tal, pues al parece no tiene ningún problema tal vez el detalle se da como se crea el contenido de tus dataGrid
bueno hay te dejo un ejemplo que hice tratando de ver cual era el problema practicamente es como el que tu comentas, al menos si me funcionó aunque pasaba lo que tu me dices hasta que rellene los datos de esta forma ;D espero que te sirva igual cargo los datos desde una Base de Datos.

Código: vb.net
  1. <%@ Page Language="C#" AutoEventWireup="True" %>
  2. <%@ Import Namespace="System.Data" %>
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  5.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml" >
  7.  
  8.  
  9.    <script language="C#" runat="server">
  10.            
  11.       ICollection CreateDataSource()
  12.       {          
  13.          DataView dbv = (DataView)SqlDataSource.Select(DataSourceSelectArguments.Empty);                      
  14.          DataTable dt = new DataTable();
  15.          DataRow dr;
  16.          dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
  17.          for (int i = 0; i < dbv.Table.Rows.Count; i++)
  18.          {
  19.             dr = dt.NewRow();
  20.             dr[0] = dbv.Table.Rows[i][0];          
  21.             dt.Rows.Add(dr);
  22.          }
  23.          return new DataView(dt);
  24.       }
  25.  
  26.       void Page_Load(Object sender, EventArgs e)
  27.       {
  28.          if (!IsPostBack)
  29.          {            
  30.             dataGrid1.DataSource = CreateDataSource();
  31.             dataGrid1.DataBind();
  32.          }
  33.       }
  34.  
  35.       ArrayList Seleccionados()
  36.       {
  37.           ArrayList lista = new ArrayList();
  38.           DataGridItemCollection items = dataGrid1.Items;
  39.           for (int i = 0; i < items.Count; i++)
  40.           {
  41.               CheckBox cb = (CheckBox)items[i].FindControl("checkboxSelect");              
  42.               if ((cb != null) && cb.Checked)            
  43.                   lista.Add(  items[i].Cells[0].Text );
  44.           }
  45.           return lista;          
  46.       }
  47.        
  48.       void SubmitBtn_Click(Object sender, EventArgs e)      
  49.       {
  50.           ArrayList lista = Seleccionados();
  51.           string text = "Seleccionados:<br />";
  52.           for (int i = 0; i < lista.Count; i++)
  53.               text += (lista[i] + "<br />");
  54.           Mensaje.Text = text;
  55.       }
  56.    </script>
  57.  
  58. <head runat="server">
  59.     <title>CheckBox</title>
  60. </head>
  61. <body>
  62.     <asp:SqlDataSource
  63.           id="SqlDataSource"
  64.           runat="server"
  65.           ConnectionString="<%$ ConnectionStrings:ApplicationServices%>"
  66.           SelectCommand="SELECT descripcion FROM datosGrid">
  67.       </asp:SqlDataSource>
  68.    <form id="Formulario" runat="server">
  69.  
  70.    <h3>Seleccionar Datos</h3>
  71.  
  72.    <table cellpadding="5">
  73.       <tr valign="top">
  74.          <td>
  75.  
  76.             <b>Datos</b>
  77.  
  78.             <asp:DataGrid id="dataGrid1"                
  79.                  BorderWidth="1"                
  80.                  AutoGenerateColumns="false"
  81.                  runat="server">
  82.  
  83.                <HeaderStyle BackColor="#006699" />              
  84.  
  85.                <Columns>
  86.                   <asp:BoundColumn
  87.                        HeaderText="Item"
  88.                        DataField="StringValue"/>
  89.    
  90.                   <asp:TemplateColumn HeaderText="Seleccion" >
  91.                         <ItemTemplate>
  92.                             <asp:CheckBox ID="checkboxSelect" runat="server" />
  93.                         </ItemTemplate>
  94.                      </asp:TemplateColumn>
  95.                </Columns>
  96.  
  97.             </asp:DataGrid>
  98.  
  99.          </td>        
  100.       </tr>
  101.    </table>
  102.       <asp:Button id="BotonEnviar"
  103.            Text="Verificar"
  104.            OnClick="SubmitBtn_Click"
  105.            runat="server"/>
  106.    </form>
  107.    <asp:label id="Mensaje" runat="server"/>
  108. </body>
  109. </html>
  110.  

Saludos

6
C/C++ / Re:Programa en c++
« en: Domingo 22 de Abril de 2012, 01:28 »
Efectivamente tiene algunos errores bueno ahí te dejo el código donde encontré los errores en comentario, en teoria ya funciona ;D

Código: C++
  1. #include <iostream.h>    //Error tenias #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.         char articulos[10][30];
  7.         int cantidades[10][3];     // Error Logico int cantidades[3][10]; debe ser int cantidades[10][3];
  8.         for(int i=0;i<10;i++)
  9.         {
  10.                 cout<<"Ingrese el nombre del articulo Nº"<<i+1<<" : ";
  11.                 cin.getline(articulos[i],30); //Error se debia indicar la posision tenias cin.getline(articulos,30);
  12.                 cout<<"Ingrese la produccion en el primer turno : ";
  13.                 cin>>cantidades[i][0];         //Error tenias cantidades[0];
  14.                 cout<<"Ingrese la produccion en el segundo turno : ";
  15.                 cin>>cantidades[i][1];         //Error tenias cantidades[1];
  16.                 cout<<"Ingrese la produccion en el tercer turno : ";
  17.                 cin>>cantidades[i][2];         //Error tenias cantidades[2];
  18.                 cin.ignore();
  19.         }
  20.         int mayor=0,indmay=0;
  21.         //total de produccion por articulo
  22.         cout<<endl<<endl<<"******* Produccion por articulo ******"<<endl;
  23.         for(i=0;i<10;i++){    // aqui habia un error que redeclaraba la variable i esta fue declara en tu anterior for
  24.                 cout<<"Articulo: "<<articulos[i]; // Error Logico indicaba el arreglo no a las posciciones del arreglo  tenias cout<<"Articulo: "<<articulos;
  25.                 cout<<" Produccion total: "<<cantidades[i][0]+cantidades[i][1]+cantidades[i][2]<<endl;
  26.                 //este if detecta el articulo con mayor produccion, y se usará luego.
  27.                 if(mayor<cantidades[i][0]+cantidades[i][1]+cantidades[i][2])
  28.                 {
  29.                         mayor=cantidades[i][0]+cantidades[i][1]+cantidades[i][2];
  30.                         indmay=i;
  31.                 }
  32.                 cout<<endl;
  33.         }
  34.  
  35.         cout<<endl<<endl<<"******* Produccion por turno ******"<<endl;
  36.         //total de produccion por turno
  37.         int suma;
  38.         for(i=0;i<3;i++)
  39.         {
  40.                 cout<<"Turno "<<i+1;
  41.                 suma=0;
  42.                 for(int j=0;j<10;j++)
  43.                 {
  44.                         suma=suma+cantidades[j][i];
  45.                 }
  46.                 cout<<"Produccion total: "<<suma<<endl;
  47.                 cout<<endl;
  48.         }
  49.  
  50.         cout<<endl<<endl<<"******* Articulo con mayor produccion ******"<<endl;
  51.         //articulo con mayor produccion.
  52.         cout<<"Articulo con mayor produccion: "<<articulos[indmay]<<endl;
  53.         cout<<"Cantidad producida: "<<mayor<<endl;
  54.         return 0;
  55. }
  56.  

y de todos modos mejore un poco el codigo espero que te sirva saludos

La idea es que las constantes serviran para ampliar el rango de productos asi como el de los Turnos sin necesidad de modificar el codigo tan solo con cambiar el valor a las constantes.

Código: C++
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. const MAX = 10;  //Productos
  5. const MAX_T = 3; //Turnos
  6.  
  7. int main()
  8. {
  9.         char articulos[MAX][30];
  10.         int cantidades[MAX][MAX_T], totalXArticulos[MAX], sumaTurnos[MAX_T], indexMayor=0;
  11.         for(int i = 0; i < MAX_T; sumaTurnos[i++]=0); // Inicializar en 0 a sumaTurnos
  12.         for(i = 0; i < MAX; i++)
  13.         {
  14.                 totalXArticulos[i] = 0;
  15.                 cout<<"Ingrese el nombre del articulo Nº "<<i+1<<" : ";
  16.                 cin.getline(articulos[i],30);
  17.                 for(int j = 0; j < MAX_T; j++)
  18.                 {
  19.                         cout<<"Ingrese la produccion del turno "<<j+1<<": ";
  20.                         cin>>cantidades[i][j];
  21.                         sumaTurnos[j] += cantidades[i][j];   // suma[j] = suma[j] + cantidades[i][j];
  22.                         totalXArticulos[i] += cantidades[i][j];
  23.                 }
  24.                 if(totalXArticulos[i] > totalXArticulos[indexMayor])
  25.                         indexMayor = i;
  26.                 cin.ignore();
  27.                 clrscr();
  28.         }      
  29.         cout<<"*******Total de Produccion por articulo ******"<<endl;
  30.         for(i = 0; i < MAX; i++)
  31.                 cout<<"Articulo: "<<articulos[i]<<" ->  Produccion total: "<<totalXArticulos[i]<<endl;
  32.  
  33.         cout<<endl<<endl<<"******* Produccion por turno ******"<<endl;
  34.         for(i = 0; i < MAX_T; i++)
  35.                 cout<<"Turno: "<<i+1<<" -> Produccion total: "<<sumaTurnos[i]<<endl;
  36.  
  37.         cout<<endl<<endl<<"******* Articulo con mayor produccion ******"<<endl;
  38.         cout<<"Articulo con mayor produccion: "<<articulos[indexMayor]<<endl;
  39.         cout<<"Cantidad producida: "<<totalXArticulos[indexMayor]<<endl;
  40.         return 0;
  41. }
  42.  

Saludos

7
Java / Re:¿Cómo llamar a mi formularios desde una base de datos con java?
« en: Martes 17 de Abril de 2012, 05:42 »
checate este proyecto que hice en donde desde la base de datos saco los formulario y los ligo a una opción de un menú, espero que te sirva este ejemplo  jejeje esta en NetBeans 7

Saludos y cualquier cosa preguntas!!   :suerte:

8
Java / Re:¿Cómo llamar a mi formularios desde una base de datos con java?
« en: Lunes 9 de Abril de 2012, 07:10 »
Hola Saludos

Bueno creo que se puede resolver asi:

Utilizo la Clase "Class", para obtener la clase buscada utilizamos su método forName(String ClassName) el parámetro ClassName debe de llevar el nombre de la clase, lo que regresa el método forName es la clase segun el nombre que hemos dado, una vez teniendo la Clase podemos invocar el método llamado newInstance() que crea un nuevo objeto o nueva instancia de la clase y la podemos utilizar directamente o asignarlo a una variable, en tu caso ya sabemos que son Objetos que heredan de JFrame por lo que hacemos un cast.

Código: Java(TM) 2 Platform Standard Edition 5.0
  1. String formulario = "crearFrame.NewJFrame"; //crearFrame es el paquete y NewJFrame es el nombre de la clase
  2. ((JFrame) Class.forName(formulario).newInstance()).setVisible(true);

ó

Código: Java(TM) 2 Platform Standard Edition 5.0
  1. String formulario = "crearFrame.NewJFrame";
  2. JFrame frame = (JFrame) Class.forName(formulario).newInstance();
  3. frame.setVisible(true);

y así logramos llamar nuestro formulario dado su nombre mediante una String.
Espero que te sirva, talvez algo tarde!! jejeje!!

Código Completo
Código: Java(TM) 2 Platform Standard Edition 5.0
  1. package crearFrame;
  2.  
  3. import java.util.logging.Level;
  4. import java.util.logging.Logger;
  5. import javax.swing.JFrame;
  6.  
  7. public class crearFrame {
  8.  
  9.     public static void main(String[] args) {
  10.         String formulario = "crearFrame.NewJFrame"; // este puede ser el campo de tu BD que contiene tu formulario
  11.         try {
  12.             ((JFrame) Class.forName(formulario).newInstance()).setVisible(true);    
  13.             /*Asignandolo a una variable;
  14.             JFrame frame = (JFrame) Class.forName(formulario).newInstance();          
  15.             frame.setVisible(true);            
  16.             */
  17.         } catch (IllegalAccessException ex) {
  18.             Logger.getLogger(crearFrame.class.getName()).log(Level.SEVERE, null, ex);
  19.         } catch (InstantiationException ex) {
  20.             Logger.getLogger(crearFrame.class.getName()).log(Level.SEVERE, null, ex);
  21.         } catch (ClassNotFoundException ex) {
  22.             Logger.getLogger(crearFrame.class.getName()).log(Level.SEVERE, null, ex);
  23.         }        
  24.     }
  25. }

9
Java / Re: Tabla hash Abierta, ArrayList
« en: Viernes 26 de Marzo de 2010, 19:12 »
Espero que te sirva:

Código: Java
  1.  
  2. public class NewClass {
  3.     public static void main(String args[])
  4.     {
  5.          List[] a = new ArrayList[20];
  6.          // Tienes que inicializar cada uno de los elementos del arreglo en este caso con objetos de tipo ArratList
  7.          // ya que al crear el arreglo de ArrayList cada elemento tiene null.
  8.          for (int i=0;i<20;i++)
  9.             a[i] = new ArrayList();
  10.          // Aqui tenias a.add(new Integer(i));
  11.          // Ahi estabas accediendo al arreglo "a" y los arreglos no cuentan con  un metodo add
  12.          // tienes que acceder a cada elemento del arreglo a[i] para hacer uso del metodo add
  13.          // de cada uno de los ArrayList del arreglo.
  14.          for (int i=0;i<20;i++)
  15.             a[i].add(new Integer(i));
  16.          
  17.          for (int i=0;i<20;i++)
  18.              System.out.println(a[i]);
  19.     }
  20. }
  21.  
  22.  
  23.  

Ahi comentas cualquier duda.

10
Java / Re: Java Lee Letras??
« en: Viernes 26 de Marzo de 2010, 08:02 »
Hola te dejo la forma en que puedes contar las letras en un texto una vez que leiste el texto.
queda asi:

Código: Java
  1.  
  2. public class Ejercicio {
  3.     public static void main(String a[])
  4.     {
  5.         String miTexto = "si jAva puede leer y contar cuandas letras ay en unA oracion";
  6.         System.out.println(miTexto);
  7.         System.out.println("El texto contiene "+ contar(miTexto,'a',true) +" veces la letra a");
  8.         System.out.println("El texto contiene "+ contar(miTexto,'a',false) +" veces la letra a");
  9.         System.out.println("El texto contiene "+ contar(miTexto,'E',false) +" veces la letra E");
  10.         System.out.println("El texto contiene "+ contar(miTexto,'e',true) +" veces la letra e");
  11.     }
  12.  
  13. // texto: el texto donde de donde se contaran las letra
  14. // letra: letra a buscar para contar
  15. // distincion: definir si vamos a hacer diferencia entre Mayúscula y Minúscula
  16.     public static int contar(String texto, Character letra, boolean distincion)
  17.     {
  18.  
  19. //en  si se utiliza una expresion regular para reemplazar todo letra diferente a la buscada por "" lo que hace que nada mas que las letra buscada
  20. // y de esa cadena optemos la longitud
  21.         if(distincion)
  22.             // si deseas que SI exista distincion entre mayúsculas y minúsculas
  23.             return texto.replaceAll("[^"+letra+"]","").length();
  24.         else
  25.             // si deseas que NO exista distincion entre mayúsculas y minúsculas
  26.             return texto.toLowerCase().replaceAll("[^"+letra.toString().toLowerCase()+"]","").length();
  27.     }
  28. }
  29.  
  30.  

Espero que t sirva, culquier duda ahi Comentas!!! :)

11
Visual Basic para principiantes / Re: Varios listbox
« en: Sábado 6 de Marzo de 2010, 17:33 »
Hola Mira ahi te mando un ejemplo espero que te sirva!!
Mira en el ejemplo tiene dos forma de resolver este problema:
 1.- Mediante Lista independientes:
 2.- Utilizando Arreglos de Componentes en este Caso List ( Recomendado :) )

Bueno espero que te sirva alguna duda, no dudes en preguntar

Espero que te Sirva.

12
C# / Re: Camino entre dos coordenadas
« en: Viernes 26 de Febrero de 2010, 07:50 »
Hola, pues bueno aqui te dejo la solución que encontre, la verdad no soy muy bueno en las cuestiones de matematicas y trigonometria pero es lo que mas o menos se, y por otra parte pues en C# no he programado realmente mucho nada mas lo que he leido.
Pero lo he implementedo en java espero te sirva y de todos modos tambien lo escribi en C#(no es seguro que funcione ya que no tengo como compilarlo  :D)
Supongo que necesitas algo asi :
las / es la linea recta que une los dos puntos y los * son los puntos(x,y) que vas a calcular a distancias en incremento de 2.
Y
|.............. *(10,6)
|............/
|........../*(x1,y1) distancia 4                
|.. 8.54 /
|......../*(x1,y1) distancia 2
|......./
| ..... *(2,3)
|
--------------------------------------- X

Código: Java
  1.  
  2. import java.text.DecimalFormat;
  3.  
  4. public class Main {
  5.     public static void main(String[] args) {
  6.         DecimalFormat formato = new DecimalFormat("####.##"); // Formato de salida de dos decimales
  7.         double x1, x2, y1, y2, hipo, nuevaX, nuevaY, tan, nuevaDistancia ;
  8.         final double DISTANCIA_INC = 2;
  9.         int j = 1;
  10.         x1 = 2; y1 = 3;  //Coordenadas del 1er punto
  11.         x2 = 10; y2 = 6;  //Coordenadas del 2do punto
  12.         hipo =  Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));  //Calculo la distancia entre los dos puntos = hipotenusa
  13.         tan = Math.atan((y2-y1)/(x2-x1)); // Radianes del Angulo Opuesto
  14.  
  15.         System.out.println("Punto Inicial-> x: " + x1 + " , y: " + y1);
  16.         System.out.println("Punto Final-> x: " + x2 + ", y: " + y2 );
  17.         System.out.println("Distancia entro los Puntos: " + hipo );
  18.         System.out.println("Coordenas de (X,Y) de los puntos intermedios");
  19.         System.out.println("por la recta de los dos puntos desplanzandose cada " + DISTANCIA_INC + " unidades");
  20.         System.out.println("");
  21.         // La nuevaDistancia se ira incrementando en 2 unidades, simulando la construcción de un triangulo con una
  22.         // hipotenusa de 2, 4, 6 hasta < a la distancia entre los dos puntos.
  23.         for(nuevaDistancia = 0; nuevaDistancia < hipo; nuevaDistancia+=DISTANCIA_INC)
  24.         {
  25.                 nuevaY = Math.sin(tan) * nuevaDistancia + y1; // Calculo de la Y a la nuevaDistancia
  26.                 nuevaX = Math.cos(tan) * nuevaDistancia + x1; // Calculo de la X a la nuevaDistancia
  27.                 // Asi obtenemos la nueva cordenada que pasa por la recta entre los dos punto
  28.                 System.out.println("(" + j++ + ")"+" Distancia: " + nuevaDistancia + " | X: " + formato.format(nuevaX) + " | Y: " + formato.format(nuevaY));
  29.         }
  30.         //El ultimo punto lo mostramos directo
  31.         System.out.println("(f) Distancia: " + hipo + " | X: " + x2 + " | Y: " +  y2);
  32.     }
  33. }
  34.  
  35.  

Salida del programa de JAVA:

Código: Text
  1.  
  2. Punto Inicial-> x: 2.0 , y: 3.0
  3. Punto Final-> x: 10.0, y: 6.0
  4. Distancia entro los Puntos: 8.54400374531753
  5. Coordenas de (X,Y) de los puntos intermedios
  6. por la recta de los dos puntos desplanzandose cada 2.0 unidades
  7.  
  8. (1) Distancia: 0.0 | X: 2 | Y: 3
  9. (2) Distancia: 2.0 | X: 3.87 | Y: 3.7
  10. (3) Distancia: 4.0 | X: 5.75 | Y: 4.4
  11. (4) Distancia: 6.0 | X: 7.62 | Y: 5.11
  12. (5) Distancia: 8.0 | X: 9.49 | Y: 5.81
  13. (f) Distancia: 8.54400374531753 | X: 10.0 | Y: 6.0
  14.  
  15.  

y en C# tal vez tenga errores es que no tengo para probarlo!!

Código: C#
  1.  
  2.  class calcular
  3. {
  4.     public static main()
  5.     {
  6.         float x1, x2, y1, y2, hipo, nuevaX, nuevaY, tan, nuevaDistancia ;
  7.         const float DISTANCIA_INC = 2;
  8.            
  9.         x1 = 2; y1 = 3;
  10.         x2 = 10; y2 = 6;
  11.         hipo = Math.Sqrt(Math.Pow(x2-x1,2)+Math.Pow(y2-y1,2));
  12.  
  13.         tan = Math.atan((y2-y1)/(x2-x1));
  14.        
  15.         Console.WriteLine("Punto Inicial-> x: {0}, y: {1}", x1, y1);
  16.         Console.WriteLine("Punto Final-> x: {0}, y: {1}", x2, y2);
  17.  
  18.         Console.WriteLine("Coordenas de (X,Y) de los puntos intermedios");
  19.         Console.WriteLine("por la recta de los dos puntos desplanzandose cada {0} unidades", DISTANCIA_INC);
  20.        
  21.         Console.WriteLine("");
  22.         Console.WriteLine("Distancia: 0 | X: {0} | Y: {1}", x1, y1);
  23.         for(nuevaDistancia = 0; nuevaDistancia < hipo; nuevaDistancia+=DISTANCIA_INC)
  24.         {
  25.             nuevaY = Math.sen(tan) * nuevaDistancia + y1;
  26.             nuevaX = Math.cos(tan) * nuevaDistancia + x1;
  27.             Console.WriteLine("Distancia: {0} | X: {1} | Y: {2}", i, nuevaX, nuevaY);
  28.         }
  29.         Console.WriteLine("Distancia: {0} | X: {1} | Y: {2}", hipo, x2, y2);
  30.     }
  31. }
  32.  
  33.  

Pero Bueno Espero que te  ayude y sirva para resolver el problema; en C# no lo he compilado no tengo con que, lo hice en Bloc de nota guiandome del que hice en JAVA con lo que he leido en C#.

13
C/C++ / Re: invertir cadena en el mismo array
« en: Viernes 26 de Febrero de 2010, 03:34 »
Bueno te dejo una explicación y el desarrollo de la solucion espero que te sirva :)

Código: C
  1.  
  2. /*
  3. Lo que te hiso falta fue utilizar el metodo para intercambiar valores entre dos variables
  4. sin perder ninguno de los dos, lo que hace es  almacenar el valor de una de las variables en una variable temporal.
  5. Normalmente esto se ve en temas de Ordenamiento de Vectores y cosas asi.
  6. Ejemplo:
  7. temp = v[0];
  8. v[0] = v[4];
  9. v[4] = temp;
  10.  
  11. Bueno si lo que se quiere es invertir la cadena que la vamos a tratar como un vector, analisando
  12. que el problema vemos que el primer elemento corresponde con el ultimo algo asi:
  13. cadena = "abcde";
  14.  |-----------|
  15.  |   |----|  |
  16. [a][b][c][d][e]
  17.  
  18. Intercambiando quedaria asi
  19.  
  20.  |-----------|
  21.  |   |----|  |
  22. [e][d][c][b][a]
  23.  
  24. Podemos ver que nada mas tenemos que hacer dos veces el procesos de intercambiar los valores.
  25. el a con e y el de b con d, puesto que c esta en el centro no hay que hacerlo.
  26.  
  27. Observando esto determinamos que para invertir la cadena tenemos que hacer (n / 2) veces
  28. el intercambio, donde n es la longitud de la cadena.
  29.  
  30. */
  31. #include <stdio.h>
  32. #include <string.h>
  33. #define N 100
  34.  
  35. void main()
  36. {
  37.     char cadena[N];
  38.     int i, mitad, lon=0;
  39.     char *cad = NULL, temp;
  40.  
  41.     cad = cadena;
  42.  
  43.     gets(cadena);
  44.     fflush(stdin);
  45.     lon = strlen(cadena);
  46.     mitad = lon / 2;
  47.     for( i=0; i < mitad; i++)
  48.     {
  49.       temp = *(cad+i);
  50.       *(cad+i) = *(cad+lon-1-i);
  51.       *(cad+lon-1-i) = temp;
  52.     }
  53.     puts(cad);
  54. }
  55.  
  56.  
  57.  

14
Visual Basic 6.0 e inferiores / Re: Ordenar una matriz
« en: Jueves 25 de Febrero de 2010, 03:46 »
Hola, pues aqui esta mi ayuda!! espero y te sirva y sea lo que necesitabas.

Cualquier duda o comentario me comentas.

Código: Visual Basic
  1.  
  2. 'Funcion para saber hacia donde se ordenaran los elementos de los vectores
  3. Function CondicionDireccion(v1 As Integer, v2 As Integer, D As String) As Boolean
  4. Dim R As Boolean
  5.  
  6. If "ASC" = UCase(D) Then
  7.     If v1 > v2 Then
  8.         R = True
  9.     Else
  10.         R = False
  11.     End If
  12. ElseIf "DES" = UCase(D) Then
  13.     If v1 < v2 Then
  14.         R = True
  15.     Else
  16.         R = False
  17.     End If
  18. End If
  19. CondicionDireccion = R
  20. End Function
  21.  
  22.  
  23. 'los parametros son
  24. 'M as MSFlexGrid el componente donde se encuentra los datos
  25. 'FI as Integer es el valor de la fila donde inician los datos
  26. 'FF as Integer es el valor de la fila donde finalizan los datos
  27. 'CI as Integer es el valor de la columna donde inician los datos
  28. 'CI as Integer es el valor de la columna donde finaliza los datos
  29. 'Direccion as String es el valor que indica la direccion de Ordenamiento ASC o DES
  30. Sub OrdenarMatrix(M As MSFlexGrid, FI As Integer, FF As Integer, CI As Integer, CF As Integer, Direccion As String)
  31. Dim vector() As Integer
  32. Dim longVector As Integer
  33. longVector = ((FF - FI + 1) * (CF - CI + 1))
  34. ReDim vector(longVector - 1) As Integer
  35. Dim index As Integer
  36. Dim temp As Integer
  37.  
  38. 'Los datos de la matriz son ingresados a un vector mediante
  39. 'el recorrido fila columna
  40. index = 0
  41. For i = FI To FF
  42.     For j = CI To CF
  43.         vector(index) = M.TextMatrix(i, j)
  44.         index = index + 1
  45.     Next j
  46. Next i
  47.  
  48. 'El vector es ordenado por medio del Método de la Burbuja
  49. For i = 0 To longVector - 2
  50.     For j = i + 1 To longVector - 1
  51.         If CondicionDireccion(vector(i), vector(j), Direccion) = True Then
  52.             temp = vector(i)
  53.             vector(i) = vector(j)
  54.             vector(j) = temp
  55.         End If
  56.     Next j
  57. Next i
  58.  
  59. 'El vector ya ordenado es vaciado a la matrix
  60. index = 0
  61. For i = FI To FF
  62.     For j = CI To CF
  63.         M.TextMatrix(i, j) = vector(index)
  64.         index = index + 1
  65.     Next j
  66. Next i
  67. End Sub
  68.  
  69. Private Sub btnOrdenar_Click()
  70. OrdenarMatrix MSFlexGrid1, 0, 4, 0, 3, "ASC"
  71. OrdenarMatrix MSFlexGrid2, 0, 4, 0, 0, "DES"
  72. End Sub
  73.  
  74. Private Sub Form_Load()
  75.  MSFlexGrid1.TextMatrix(0, 0) = 5
  76.  MSFlexGrid1.TextMatrix(0, 1) = 8
  77.  MSFlexGrid1.TextMatrix(0, 2) = 4
  78.  MSFlexGrid1.TextMatrix(0, 3) = 13
  79.  MSFlexGrid1.TextMatrix(1, 0) = 21
  80.  MSFlexGrid1.TextMatrix(1, 1) = 53
  81.  MSFlexGrid1.TextMatrix(1, 2) = 90
  82.  MSFlexGrid1.TextMatrix(1, 3) = 9
  83.  MSFlexGrid1.TextMatrix(2, 0) = 2
  84.  MSFlexGrid1.TextMatrix(2, 1) = 1
  85.  MSFlexGrid1.TextMatrix(2, 2) = 0
  86.  MSFlexGrid1.TextMatrix(2, 3) = 57
  87.  MSFlexGrid1.TextMatrix(3, 0) = 56
  88.  MSFlexGrid1.TextMatrix(3, 1) = 7
  89.  MSFlexGrid1.TextMatrix(3, 2) = 20
  90.  MSFlexGrid1.TextMatrix(3, 3) = 18
  91.  MSFlexGrid1.TextMatrix(4, 0) = 10
  92.  MSFlexGrid1.TextMatrix(4, 1) = 15
  93.  MSFlexGrid1.TextMatrix(4, 2) = 27
  94.  MSFlexGrid1.TextMatrix(4, 3) = 34
  95.  
  96.  MSFlexGrid2.TextMatrix(0, 0) = 8
  97.  MSFlexGrid2.TextMatrix(1, 0) = 6
  98.  MSFlexGrid2.TextMatrix(2, 0) = 20
  99.  MSFlexGrid2.TextMatrix(3, 0) = 11
  100.  MSFlexGrid2.TextMatrix(4, 0) = 5
  101. End Sub
  102.  
  103.  
  104.  

Nos vemos Exito.  :)

Ahi te adjunto el proyecto!!

15
Visual Basic 6.0 e inferiores / Re: Ordenar una matriz
« en: Miércoles 24 de Febrero de 2010, 09:58 »
Fijate que he estado viendo el problema nada mas que no entiendo como deseas ordenar la matriz, si deseas que cada columna quede ordenada o cada fila o que se ordenen los numeros segun lo muestras, si me explicas un poco mas te prodría ayudar!!

Saludos!!

16
Pascal / Re: validacion captura de datos
« en: Miércoles 24 de Febrero de 2010, 09:44 »
Hola que tal, pues ya tenía rato que no programaba en Pascal pero me acorde de algunas cosillas!!!
te dejo un ejemplo de validación que yo utilizaba.
Este ejemplo es muy sencillo nada mas esta validado para capturar los digitos, la tecla de retroceso y el enter para indicar que terminamos de ingresar el numero, cabe mencionar que no saldra de la captura de numero hasta que se capture aunque sea un digito. Esta claro que se puede mejorar mucho más. pero bueno creo que te puede servir.

Código: Pascal
  1.  
  2. uses crt;
  3.  
  4. function leerNumero(longitud: integer): string;
  5. var
  6.    numero : string;
  7.    tecla  : char;
  8.    i,x,y  : integer;
  9. begin
  10.      x := whereX;
  11.      y := whereY;
  12.      numero := '';
  13.      i := 1;
  14.      repeat
  15.            tecla := readKey;
  16.            case tecla of
  17.                 '0'..'9' : {Teclas del 0 al 9}
  18.                          if i <= longitud then
  19.                          begin
  20.                               numero := numero + tecla;
  21.                               i := i  + 1;
  22.                          end;
  23.                 chr(8)   : { Tecla de retroceso para borrar el ultimo digito}
  24.                          if i > 1 then
  25.                          begin
  26.                               i := i - 1;
  27.                               numero[i] := ' ';
  28.                               gotoxy(x,y);
  29.                               write(numero);
  30.                               numero := copy(numero,1,i-1);
  31.                         end
  32.            end;
  33.            gotoxy(x,y);
  34.            write(numero);
  35.      until ( tecla = chr(13) ) and ( length(numero) > 0 );
  36.      leerNumero := numero;
  37. end;
  38.  
  39. var
  40.    numeroTxt  : string[20];
  41.    numeroLong : longInt;
  42.    estado     : integer;
  43. begin
  44.      clrscr;
  45.      write('Ingrese un numero maximo de 20 digitos: ');
  46.      numeroTxt := leerNumero(20);
  47.      writeln;
  48.      writeln('Usted ingreso: ',numeroTxt);
  49.  
  50.      {Conversion del Texto a Entero}
  51.      val(numeroTxt,numeroLong, estado);
  52.      writeln('El valor desde la variable longInt: ',numeroLong);
  53.  
  54.      readKey;
  55. end.
  56.  
  57.  

Espero que te sirva. :)

17
Java / Re: for-each
« en: Miércoles 24 de Febrero de 2010, 07:49 »
Oyes me da mucho gusto que te sirvió la información. Éxito.

Nos Vemos.. :)

18
C/C++ / Re: Funcion isdigit() con un arreglo char puros numeros
« en: Lunes 22 de Febrero de 2010, 09:41 »
Hola, bueno lo que te suguiero es que recorras tu array con un for e ir validando cada uno de los elementos del array con la función isdigit() o si es el signo +.

Aunque si el caso es de almacenar un numero positivo pues tambien podrias tratar de convertir esa cadena en un int con la funcion atoi, esta funcion regresa 0 cuando no se ha logrado convertir la cadena a un valor entero. y podrias verificar si es positivo o negativo.

Bueno espero que te sirva. :)

19
Java / Re: for-each
« en: Domingo 21 de Febrero de 2010, 05:06 »
Hola.

Bueno a primera vista parece ser que no has relacionado el ArrayList donde guardas los Objetos Tipo Detalle a una Factura,
te falta algo asi como:
Código: Java
  1. fact1.setRefDetalle(deta1);
  2.  
Esto antes de usarlo en el for-each.

En la parte de la Definición de los ArrayList segun la Sintaxis Adecuada se debe indicar el tipo de Elementos que va almacenar,
de la Siguiente forma:
Código: Java
  1. ArrayList<Detalle> deta1 = new ArrayList<Detalle>();
  2.  

Por otra parte te recomendaria que en la parte del for-each  lo manejes de la siguiente forma:
Código: Java
  1. ArrayList<Detalle> detalleFatura = fact1.getRefDetalle();
  2. for (Detalle deta : detalleFatura) {
  3.             System.out.println("" + deta.getRefArticulo().getCodigo()+" "+deta.getRefArticulo().getDescripcion());
  4. }
  5.  

Al parecer el error se da ya que el método getRefDetalle() del Objeto fact1 debe de regresar un Objeto ArrayList pero como no se le ha relacionado ningun Objeto pues esta vacio.

Bueno espero que te sirva. y espero que con esto puedas resolver tu problema.  :)

20
Diseño de Algoritmos / Re: invertir numero
« en: Jueves 19 de Noviembre de 2009, 06:21 »
Curioso en mi prueba si funciona correctamente pero bueno de todos modos te dejo la prueba que hice yo, chekeala y me comentas  :D

Código: Java
  1.  
  2. Valores iniciales
  3. num1 = 187
  4. num2 = 0
  5. num3 = 0
  6.  
  7. num1     num1 > 0    num3=(num3*10)  num2=(num1 % 10)  num1=(num1/10)  num3=(num3+num2)
  8. 187      true        0 = 0*10        7=187 % 10        18 = 187/10      7=0 + 7
  9. 18       true        70              8=18 % 10         1 = 18/10        78=70+8
  10. 1        true        780 = 78*10     1=1%10            0 = 1/10         781=780+1
  11. 0        false
  12.  
  13.  

Coloco otra forma en la que puede funcionar que es practicamente similar al que tu comentas por excepto la condición del while y la eliminación del paso despues de terminar el ciclo:

Código: Java
  1.  
  2. Var
  3.      Entero:  num1, num2
  4. Inicio
  5.      Leer( num1 )
  6.      num2 <- 0
  7.      Mientras( num1 > 0 )
  8.           num2 <- num2 * 10 + num1 mod 10
  9.           num1 <- num1 div 10
  10.      FinMientras
  11. Fin
  12.  
  13.  

Bueno ahi nos vemos!!  :D

21
Diseño de Algoritmos / Re: invertir numero
« en: Sábado 14 de Noviembre de 2009, 05:12 »
Hola que tal espero que te pueda servir esto.

Algoritmo InvertirNumero
Código: Pascal
  1. Var
  2.      Entero: num0, num1, num2
  3. Inicio
  4.     Leer( num0 )
  5.      num1 <- 0
  6.      num2 <- 0
  7.      Mientras( num0 > 0 )
  8.            num2 <- num2 * 10
  9.            num1 <- num0 mod 10
  10.            num0 <- num0 div 10
  11.            num2 <- num2 + num1
  12.     FinMientras
  13. Fin
  14.  

22
Java / Re: numeros
« en: Miércoles 28 de Octubre de 2009, 20:27 »
Esto tambien puede resolver el problema
Código: Java
  1.        
  2.                 //maxValue es el valor maximo que deseas que salga nada mas que funciona hasta el 0 al 9  :D
  3.                 int maxValue = 5, i, j = maxValue;
  4.         String cadena="", salida="";
  5.         for(i = 1; i<=maxValue; cadena+=i++);
  6.         i = 1;
  7.         while(j != 0)
  8.         {
  9.             salida = cadena.substring(0,(i < maxValue)?i++:j--);    
  10.             System.out.println(salida);
  11.         }
  12.  
  13.  

23
Java / Propongo Una Solución
« en: Miércoles 28 de Octubre de 2009, 00:03 »
Bueno soy nuevo aqui y vi este TEma y pues me intereso proponer una solucion al problema algo tarde creo.
Pero espero que sirva.

Código: Java
  1.  
  2. import java.util.*;
  3.  
  4. public class Cadena {
  5.  
  6.    public static void main(String args[])    
  7.     {
  8.         /*
  9.          Se utilizo parte del codigo que propuso el usuario "cuper90"
  10.          inicio codigo cuper90
  11.          **/
  12.         String palabra = "supercalifragilistico";
  13.         char[] letras;     
  14.         TreeSet letrasOrdenadas = new TreeSet();           
  15.         for(int i=0; i<palabra.length(); i++){
  16.           letrasOrdenadas.add(palabra.charAt(i));
  17.         }
  18.         /**
  19.              fin codigo cuper90
  20.         **/
  21.         /*
  22.          El Objeto letrasOrdenadas(TreeSet) mediante el metodo toString
  23.          regresa una cadena que es la misma si mandase
  24.          a imprimir la variable directamente con el metodo el println();
  25.          una vez que tenemos la cadena devuelta con toString()
  26.          utilizamos la metodo replaceAll que utiliza una sencilla
  27.          expresión regular que busca los "[" que aparecen al inicio, las ",",
  28.          el corchete "]" que aparece al fina y los espacios en blanco en blanco
  29.          remplazandolos por "", el metodo replaceAll() regresa una cadena
  30.          resultante con los reemplazos hechos, la cual la convertimos
  31.          a su vez en un arreglo de char con el metodo toChatArray()
  32.          y este arreglo es asignado a la variable letras que es un array.
  33.          */     
  34.         letras = letrasOrdenadas.toString().replaceAll("[\[|\]|,| ]", "").toCharArray();
  35.        
  36.         /*
  37.          Podemos recorre correctamente el arreglo de tipo char
  38.          **/
  39.         for(int i = 0; i < letras.length ; i ++)       
  40.             System.out.print(letras[i]);
  41.     }
  42. }
  43.  
  44.  

Páginas: [1]