• Viernes 8 de Noviembre de 2024, 17:07

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

Páginas: [1]
1
Java / Guardar la fecha de un JCalendarCombo
« en: Martes 9 de Noviembre de 2010, 11:31 »
Bueno lo que quiero hacer es que cuando haga un actionPerformed en el Jcalendarcombo y elija una fecha esa fecha extraerla a una variable string. Pero lo que no se es como extraer la fecha, para meterla en el string.

Un saludo y gracias.

2
Pascal / Guardar una pila, cola o listas
« en: Jueves 10 de Junio de 2010, 14:00 »
Hola me gustaria saber como guardar en archivo binario lo que es una pila o una lista.

Os pongo un ejemplo de una pila que estube haciendo.

Un saludo, y gracias.

Código: Pascal
  1. PROGRAM p;
  2. TYPE
  3. TElemento = char;
  4. TPila = ^TNodo;
  5. TNodo = RECORD
  6. e: TElemento;
  7. sig: TPila;
  8. END;
  9.  
  10. TFICHERO = FILE OF TPila;
  11.  
  12. VAR
  13.  pil:TPila;
  14.  ele:TElemento;
  15.  
  16.  PROCEDURE CargarDatos(VAR baraja:TPila);
  17.       VAR
  18.          ficher:TFICHERO;
  19.       BEGIN
  20.                Assign(ficher,'C:pila.dat');
  21.                RESET(ficher);
  22.                  read(ficher,baraja);
  23.                CLOSE(ficher);
  24.       END;
  25.  
  26.    {Esto lo que hace es guardar una partida en ficheros binario, lo hace guardando los 10 registros que contienen datos de la partida}
  27.  
  28.    PROCEDURE GuardarDatos(VAR baraja:TPila);
  29.       VAR
  30.          ficher:TFICHERO;
  31.       BEGIN
  32.  
  33.          Assign(ficher,'C:pila.dat');
  34.           REWRITE(ficher);
  35.            write(ficher,baraja);
  36.          CLOSE(ficher);
  37.  
  38.       END;
  39.  
  40.  
  41. PROCEDURE CrearPilaVacia(VAR pila: TPila);
  42. BEGIN
  43.         pila := NIL;
  44. END;
  45. FUNCTION EsPilaVacia(pila: TPila): boolean;
  46. BEGIN
  47. EsPilaVacia := (pila = NIL);
  48. END;
  49. PROCEDURE Apilar(VAR pila: TPila; e: TElemento);
  50. VAR
  51. aux: TPila;
  52. BEGIN
  53. new(aux);
  54. aux^.e:=e;
  55. aux^.sig:= pila;
  56. pila:=aux;
  57. END;
  58. PROCEDURE Desapilar(VAR pila: TPila);
  59. VAR
  60. aux: TPila;
  61. BEGIN
  62. IF NOT EsPilaVacia(pila) THEN
  63. BEGIN
  64. aux := pila;
  65. pila := pila^.sig;
  66. dispose(aux);
  67. END;
  68. END;
  69. PROCEDURE Cima(pila: TPila; VAR e: TElemento);
  70. {Implementado como procedimiento por generalidad. Una función
  71. podría no ser capaz de devolver TElemento.
  72. Se devuelve la cima sin eliminar el elemento de la pila.}
  73. BEGIN
  74. {Para un tipo simple la asignación simple es válida}
  75. e := pila^.e;
  76. writeln(e);
  77. END;
  78.  
  79.  
  80. BEGIN
  81. CrearPilaVacia(pil);
  82. CargarDatos(pil);
  83. cima(pil,ele);
  84. readln;
  85. END.
  86.  
  87.  

3
Java / Descomposicion de un numero entero
« en: Lunes 19 de Abril de 2010, 13:47 »
Hola estoy haciendo un programa de recursividad que dado un entero tiene que descomponerlo en todos los sumandos por ejemplo

numero = 4 seria:
1111
112
121
13
211
22
31
4

El problema que tengo que lo que llevo hecho me da:

1111
112
13
22
4

Si alguien me podría explicar como hacerlo, muchas gracias y un saludo a todos.

PD: no puedo utilizar arrays, solo recursividad.

Código: Java
  1. public class prueba
  2. {
  3.   public static void Descomponer(int numero)
  4.    {
  5.      DescomponEnSumando(numero, 1, 0, " ", numero);
  6.     }
  7.    
  8.  
  9.     public static void DescomponEnSumando(int n, int pos, int ninc, String s, int numero)
  10.     {
  11.      if (ninc == numero)
  12.                System.out.println(s);
  13.      for (int i = pos; i <= n+n; i++)
  14.           DescomponEnSumando(n - i, i, ninc + i, s+Integer.toString(i), numero);
  15.         }
  16.        
  17.    public static void main (String []args)
  18.    {
  19.         Descomponer(4);
  20.        
  21.     }
  22. }
  23.  

4
Java / Tabla hash Abierta, ArrayList
« en: Jueves 25 de Marzo de 2010, 16:04 »
Hola estoy haciendo una tabla hash abierta, y me gustaria saber como se declara un array de arraylist yo lo he hecho de la siguiente forma:

es un ejemplo para intentar entenderlo, no me funciona al añadir me da un error de compilacion.  Lo que queria saber si esta declaracion
List [] a = new ArrayList[20]; Lo que quiero saber si esto es un array de listas para poder hacer la tabla hash abierta.


Código: Java
  1.  
  2. import java.util.*;
  3. public class arr
  4. {
  5.     public static void main(String args[]){
  6.         List [] a = new ArrayList[20];
  7.        
  8.         for (int i=0;i<20;i++)
  9.                 a.add(new Integer(i));
  10.         for (int i=0;i<20;i++)
  11.             System.out.println(a[i]);
  12.         }      
  13. }
  14.  

5
Pascal / Practica necesito ....
« en: Jueves 15 de Enero de 2009, 18:29 »
Bueno mi problema es que al compilar mi programa me pone fatal: Unexpected end of file, y no se porque. Os voy a poner lo que me pide la practica y lo que tengo hecho, y por favor me la podeis mirar haber en que fallo, o algo que tenga mal, muchas gracias.

Lo que pide:

Un número entero está formado por secuencias de dígitos en un determinado orden. Si analizamos esas secuencias de dígitos podremos observar como, cada número, está formado por una cantidad de otros dígitos más pequeños que
denominaremos patrones. Por ejemplo:
Dado el patrón 13
Podemos deducir que entre 1 y 100 solo hay un número que lo contiene, esto es, el 13.
Sin embargo, entre 100 y 1000 hay 19 que lo contienen. Así, por ejemplo, el 131 y el 213.
Entre 1000 y 10000 hay 279 números que contienen el patrón 13.
Entre 10.000 y 100.000 encontramos 3671 números que repiten el patrón.
Hay que tener en cuenta que solo contabilizamos el patrón si se encuentra unido, es decir, 103 no contiene el patrón 13 sin embargo, 133 si contiene dicho patrón.
Práctica:
Dada esta información, se pide que desarrolléis un programa, que utilizará los subprogramas que creáis necesarios, que permita:
- Determinar cuántos enteros en un rango dado contienen un determinado patrón
- Mostrar los enteros comprendidos en ese rango dado que contienen dicho patrón
- Mostrar, en caso de que los haya, los dos números mayores, dentro del rango dado, que contienen dicho patrón. En caso de que solo exista un número que contenga el patrón, el primero tendrá un valor negativo (-1) y
el segundo contendrá dicho número. En caso de que no exista ningún número, ambos mostrarán un número negativo (-1).
Para ello el programa solicitará que el usuario elija la opción que desea ejecutar
y, a continuación, pedirá:
- Un entero positivo n que indicará el patrón y que puede tener desde 1 a 5
cifras y
- Dos enteros a y b (cuyos valores oscilarán entre 1 y MAXINT y siendo a menor que b).
A modo de ayuda, se presentan varios ejemplos de ejecución del programa (en negrita los mensajes mostrados por el programa y en cursiva los datos
introducidos por el usuario).

Codigo:
Código: Text
  1.  
  2. PROGRAM Pobligatoria;
  3.  
  4. VAR
  5. inicio,fin,patron,opcion:integer;
  6.  
  7. FUNCTION comprobar(x:integer):boolean;
  8. VAR
  9.  aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9:integer;
  10. BEGIN
  11.   CASE x OF
  12.           1..9:BEGIN
  13.                   IF x=patron THEN
  14.                      comprobar:=true;
  15.                END;
  16.  
  17.         10..99:BEGIN
  18.                   IF patron<10 THEN
  19.                      aux1:= x div 10;
  20.                      aux2:= aux1 mod 10;
  21.                      IF (x=aux1) OR (x=aux2) THEN
  22.                         comprobar:=true;
  23.                      END;{IF}
  24.                    END;{IF}
  25.                   IF (patron>9) AND (x=patron) THEN
  26.                       comprobar:=true;
  27.                   END;{IF}
  28.                 { END;{CASE 10..99}
  29.       100..999:BEGIN
  30.                 IF patron<10 THEN
  31.                   aux1:= x div 10;
  32.                   aux2:= aux1 mod 10;{el valor ultimo}
  33.                   aux3:= aux1 div 10;{el primer valor}
  34.                   aux4:= aux3 mod 10;{el valor central}
  35.                   IF (x=aux2) OR (x=aux3) OR (x=aux4) THEN
  36.                       comprobar:=true;
  37.                   END;{IF}
  38.                 END;_{IF patron<10}
  39.                 IF (patron>=10) AND (patron<=99) THEN
  40.                    aux1:= x div 10; {parte izquierda}
  41.                    aux2:= x div 100;
  42.                    aux3:= aux2 mod 100; {parte derecha}
  43.                    IF (x=aux1) OR (x=aux3) THEN
  44.                    comprobar:=true;
  45.                    END; {IF}
  46.                 END;{IF patron entre 10 hasta 99}
  47.                 IF (patron>99)  AND (patron<1000) AND (patron=x) THEN
  48.                    comprobar:=true;
  49.                 END;
  50.  
  51.     1000..9999:BEGIN
  52.                 IF patron<10 THEN
  53.                     aux1:= x div 1000; {el primer valor}
  54.                     aux2:= x div 10;
  55.                     aux3:= aux2 mod 10; {el cuarto valor}
  56.                     aux4:= aux2 div 10;
  57.                     aux5:= aux4 mod 10; {el tercer valor}
  58.                     aux6:= aux4 div 10;
  59.                     aux7:= aux4 mod 10; {el segundo valor}
  60.                     IF (x=aux1) OR (x=aux7) OR (x=aux5) OR (x=aux3) THEN
  61.                         comprobar:=true;
  62.                     END;
  63.                 END; {if del patron menor de 10}
  64.                 IF (patron>=10) AND (patron<=99) THEN
  65.                     aux1:= x div 100;{2 primeros numeros}
  66.                     aux2:= aux1 mod 100; {2 ultimos numeros}
  67.                     aux3:= x div 10;
  68.                     aux4:= aux3 div 100;
  69.                     aux5:= aux4 mod 100; {2 numeros del centro}
  70.                     IF (x=aux1) OR (x=aux2) OR (x=aux5) THEN
  71.                        comprobar:=true;
  72.                     END;
  73.                 END;{if de patron 10..99}
  74.                 IF (patron>=100) AND (patron<1000) THEN
  75.                    aux1:= x div 10; {los 3 primeros numeros}
  76.                    aux2:= x div 1000;
  77.                    aux3:= aux2 mod 1000; {los 3 ultimos numeros}
  78.                    IF (x=aux1) OR (x=aux3) THEN
  79.                       comprobar:=true;
  80.                    END;
  81.                 END; {if de patron 100..999}
  82.                 IF (patron>=1000) AND (patron<=9999) THEN
  83.                    IF patron=x THEN
  84.                       comprobar:=true;
  85.                    END;
  86.                 END;
  87.  
  88.   10000..32767:BEGIN
  89.                IF (patron>=0) AND (patron<=9) THEN
  90.                   aux1:= x div 10;
  91.                   aux2:= aux1 mod 10; {quinto numero}
  92.                   aux3:= aux1 div 10;
  93.                   aux4:= aux3 mod 10; {cuarto numero}
  94.                   aux5:= aux3 div 10;
  95.                   aux6:= aux5 mod 10; {tercer numero}
  96.                   aux7:= aux5 div 10;
  97.                   aux8:= aux7 mod 10; {segundo numero}
  98.                   aux9:= aux7 div 10; {primer numero}
  99.                   IF (x=aux2) OR (x=aux4) OR (x=aux6) OR (x=aux8) OR (x=aux9) THEN
  100.                       comprobar:=true;
  101.                   END;
  102.                END;
  103.                IF (patron>=10) AND (patron<=99) THEN
  104.                   aux1:= x div 100;
  105.                   aux2:= aux1 mod 100; {2 ultimos numeros}
  106.                   aux3:= x div 1000; {2 primeros numeros}
  107.                   aux4:= x div 10;
  108.                   aux5:= aux4 div 100;
  109.                   aux6:= aux5 mod 100; {2 penultimos}
  110.                   aux7:= aux1 div 100;
  111.                   aux8:= aux7 mod 100; {el 2 y 3}
  112.                   IF (x=aux2) OR (x=aux3) OR (x=aux6) OR (x=aux8) THEN
  113.                      comprobar:=true;
  114.                   END;
  115.                END;
  116.                IF (patron>=100) AND (patron<=999) THEN
  117.                   aux1:= x div 100; {numeros 123}
  118.                   aux2:= x div 1000;
  119.                   aux3:= aux2 mod 1000; {numeros 345}
  120.                   aux4:= x div 10;
  121.                   aux5:= aux4 div 1000;
  122.                   aux6:= aux5 mod 1000; {numeros 234}
  123.                   IF (x=aux1) OR (x=aux3) OR (x=aux6) THEN
  124.                       comprobar:=true;
  125.                   END;
  126.                END; {if de entre 100 y 999}
  127.                IF (patron>=1000) AND (patron<=9999) THEN
  128.                    aux1:= x div 10; {numeros 1234}
  129.                    aux2:= x div 10000;
  130.                    aux3:= aux2 mod 10000; {numeros 2345}
  131.                    IF (x=aux1) OR (x=aux3) THEN
  132.                       comprobar:=true;
  133.                    END;
  134.                END; {if de patron 1000..9999}
  135.                IF (patron>=10000) AND (patron<=32767) THEN
  136.                   IF x=patron THEN
  137.                      comprobar:=true;
  138.                   END;
  139.                END;
  140.  
  141. END;
  142.  
  143. PROCEDURE MostrarNumEnteros(ini,f,p:integer);
  144. VAR
  145.  
  146. BEGIN
  147.      cont:=0;
  148.      FOR i:=ini TO f DO BEGIN
  149.         comprobar(i);
  150.         IF comprobar=true THEN
  151.           cont:=cont+1;
  152.         END;{IF}
  153.      END;{FOR}
  154.      writeln('Existen ',cont,' numeros entre ',ini,' y ',f,' que tienen patron ',p);
  155.  
  156. END;
  157.  
  158. PROCEDURE EscribirEnteros(inicio,fin,patron:integer);
  159. VAR
  160. BEGIN
  161.  
  162.      FOR i:=ini TO f DO BEGIN
  163.         comprobar(i);
  164.         IF comprobar=true THEN
  165.           writeln('El numero: ',i,' contiene el patron: ',p);
  166.         END;{IF}
  167.      END;{FOR}
  168. END;
  169.  
  170. PROCEDURE Dosultimos(ini,f,p:integer);
  171. VAR
  172. BEGIN
  173.    cont:=0;
  174.    REPEAT
  175.       FOR i:=f DONWTO ini TO
  176.         comprobar(i);
  177.         IF comprobar:=true THEN
  178.           cont:=cont+1;
  179.             IF cont=1 THEN
  180.               aux1:=i;
  181.               IF cont=2 THEN
  182.                 aux2:=i;
  183.               END;
  184.            END;
  185.         END;
  186.    UNTIL (cont=2) OR (i<ini);
  187.    IF cont=0 THEN
  188.       writeln('Los 2 numeros mayores comprendidos entre: ',ini,' y ',f,' son -1 y -1');
  189.    END;
  190.    IF cont=1 THEN
  191.       writeln('Los 2 numeros mayores comprendidos entre: ',ini,' y ',f,' son -1 y ',aux1);
  192.    END;
  193.    IF cont=2 THEN
  194.       writeln('Los 2 numeros mayores comprendidos entre: ',ini,' y ',f,' son ',aux1,' y ',aux2);
  195.    END;
  196.  
  197. END;
  198.  
  199. PROCEDURE salir;
  200. BEGIN
  201.   writeln('Ha decidido salir del programa.');
  202. END;
  203.  
  204.  
  205. BEGIN
  206.   REPEAT
  207.     writeln('a.- Mostrar cu ntos enteros en un rango dado contiene un patr¢n: ');
  208.     writeln('b.- Mostrar los enteros en un rango dado que contiene un patr¢n: ');
  209.     writeln('c.- Mostrar los dos mayores n£meros que contiene un patr¢n en un rango dado: ');
  210.     writeln('d.- Finalizar');
  211.     readlln(opcion);
  212.     CASE opcion OF
  213.       'a':BEGIN
  214.            write('¨Patr¢n?: ');
  215.            readln(patron)
  216.            write('Valor inferior del rango: ');
  217.            readln(inicio);
  218.            write('Valor superior del rango: ');
  219.            readln(fin);
  220.           MostrarNumEnteros(inicio,fin,patron);
  221.           END;
  222.  
  223.       'b':BEGIN
  224.            write('¨Patr¢n?: ');
  225.            readln(patron)
  226.            write('Valor inferior del rango: ');
  227.            readln(inicio);
  228.            write('Valor superior del rango: ');
  229.            readln(fin);
  230.            EscribirEnteros(inicio,fin,patron);
  231.           END;
  232.  
  233.       'c':BEGIN
  234.               write('¨Patr¢n?: ');
  235.               readln(patron)
  236.               write('Valor inferior del rango: ');
  237.               readln(inicio);
  238.               write('Valor superior del rango: ');
  239.               readln(fin);
  240.             Dosultimos(inicio,fin,patron);
  241.  
  242.       'd':salir;
  243.       UNTIL (opc='d') OR (opcion='D');
  244. END.
  245.  

Páginas: [1]