Programacion
Octubre 17, 2017, 05:19:25 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: SMF - Just Installed!
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1] 2
 1 
 : Enero 10, 2011, 09:36:31  
Iniciado por rromero - Último mensaje por rromero
Hola este es el código principal para definir una matriz dispersa que contenga un árbol sintáctico en cada celda.

typedef struct _nodo {
         int fila;
         int columna;
         int valor;
         struct Arbol *t_arbol; //punter a un árbol.
         struct _nodo *abajo;
         struct _nodo *derecha;
} tipoNodo;

typedef tipoNodo *pNodo;



//****************************************************************
// Función Insertar_celda_a
// inserta una celda en la matriz dispersa
// parámetros:
// *lista: puntero al inicio de la matriz dispersa
// *var  : expresión regular ejem (5+4)/2
// v: valor a insertar en la celda
// f: fila
// c: columna
// Programador: RARF
// fecha de creación   : 01/05/2010
// fecha de actualización   : 01/11/2010
//****************************************************************
void Inserta_celda_a(Lista *lista, char *var, int v, int f, int c)
{
pNodo actual, anterior, cab_col, cab_fil, pos_col, pos_fil,aux_col,aux_fil;
   int flag_busca=0;

   //Busca la Cabecera de Columnas

anterior = actual = *lista;

   do{
      if ((actual->columna) == c){flag_busca=1;aux_col=actual;}
      actual = actual->derecha;
   }while(actual != *lista);

   if(flag_busca==0){
      if(f == -1){
      cab_col=Insertar_cabeza_col_a(lista, var, v, f, c);
      return;
      }
      else{
      cab_col=Insertar_cabeza_col_a(lista, "0",0, -1, c);
      pos_col=Insertar_en_col_a(cab_col, var,v, f, c);
      }
   }else{
      pos_col=Insertar_en_col_a(aux_col,var,v, f, c);
   }
   flag_busca=0;

   //Busca la Cabecera de Filas

anterior = actual = *lista;

   do{
      if ((actual->fila) == f){flag_busca=1;aux_fil=actual;}
      actual = actual->abajo;
   }while(actual != *lista);

   if(flag_busca==0){
      if(c == -1){
      cab_fil=Insertar_cabeza_fil_a(lista, var, v, f, c);
      return;
      }
      else{
      cab_fil=Insertar_cabeza_fil_a(lista, "0", 0, f,-1);
      pos_fil=Insertar_en_fil_a(cab_fil, pos_col, var, v, f, c);

      }
   }else{
      pos_fil=Insertar_en_fil_a(aux_fil,pos_col,var, v, f, c);
   }

}//fin inserta_celda_a


//****************************************************************
// Función Insertar_en_col_a
// inserta una celda en una columnda de la matriz dispersa
// retorna un puntero al nodo cabecera de la columna
// parámetros:
// cab_col: puntero al inicio de la cabecera de la columna matriz dispersa
// *var  : expresión regular ejem (5+4)/2
// v: valor a insertar en la celda
// f: fila
// c: columna
// Programador: RARF
// fecha de creación   : 01/05/2010
// fecha de actualización   : 01/11/2010
//****************************************************************

pNodo Insertar_en_col_a(pNodo cab_col, char *var, int v, int f, int c){
   pNodo actual, anterior, nuevo;
   struct Arbol *nuevo_a=NULL;
   anterior = actual = cab_col;

   // Creamos un nodo para el nuevo valor a insertar
   nuevo  = (pNodo)  malloc(sizeof( tipoNodo));
   nuevo->t_arbol = crea_arbol(&nuevo_a,var);
   nuevo->valor = v;
   nuevo->fila = f;
   nuevo->columna = c;


   if((cab_col) == NULL) {
      cab_col = nuevo;
      cab_col->fila = -1;
      cab_col->columna = c;
      cab_col->valor = 0;
      cab_col->abajo = nuevo;
      cab_col->derecha = nuevo;
      
   return nuevo;}

   // Ubicamos el Elemento
   while(actual->abajo != cab_col  && actual->fila < f){
       anterior = actual;
      actual = actual->abajo;
   }

   //Insertamos el elemento
   if (anterior == NULL || anterior == actual) { /* inserta al principio */
    nuevo->abajo = anterior;
    nuevo->derecha = nuevo;         //Debe Repararse al Insertar en FILA !!!!
   
    nuevo->fila=f;
    nuevo->columna=c;
    nuevo->valor =v;
   
    cab_col->abajo = nuevo;  /* importante: al insertar al principio actuliza la cabecera */
  }
  else {                        /* inserta entre medias o al final */
     if (f<actual->fila){
         nuevo->abajo = actual;
         nuevo->derecha = nuevo;         //Debe Repararse al Insertar en FILA !!!!
   
         nuevo->fila=f;
         nuevo->columna=c;
         nuevo->valor =v;

         anterior->abajo = nuevo;
     }
     else{
         anterior=actual;
         actual = actual->abajo;

         nuevo->abajo = actual;
         nuevo->derecha = nuevo;         //Debe Repararse al Insertar en FILA !!!!
   
         nuevo->fila=f;
         nuevo->columna=c;
         nuevo->valor =v;

         anterior->abajo = nuevo;
     }
  }
  return nuevo;
}//Insertar_en_col_a

 2 
 : Octubre 03, 2010, 04:35:16  
Iniciado por rromero - Último mensaje por rromero
Hola a todos,

todavia no habilito que puedan añadir mensajes pues hay muchos malos elementos que se dedicaron a colocar informacion inapropiada.

Encontre en Internet este codigo que esta interesante el codigo modificado y definitivo lo publicare pronto estoy trabajando en el, este funciona muy bien

Enjoy it

<?php
$status = "";
if ($_POST["action"] == "upload") {
   // obtenemos los datos del archivo
   $tamano = $_FILES["archivo"]['size'];
   $tipo = $_FILES["archivo"]['type'];
   $archivo = $_FILES["archivo"]['name'];
   $prefijo = substr(md5(uniqid(rand())),0,6);
   
   if ($archivo != "") {
      // guardamos el archivo a la carpeta files
      $destino =  "files/".$prefijo."_".$archivo;
      if (copy($_FILES['archivo']['tmp_name'],$destino)) {
         $status = "Archivo subido: <b>".$archivo."</b>";
      } else {
         $status = "Error al subir el archivo";
      }
   } else {
      $status = "Error al subir archivo";
   }
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP upload - unijimpe</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="413" height="40" class="titulo">PHP upload - unijimpe </td>
  </tr>
  <tr>
    <td class="text">Por favor seleccione el archivo a subir:</td>
  </tr>
  <tr>
  <form action="upload.php" method="post" enctype="multipart/form-data">
    <td class="text">
      <input name="archivo" type="file" class="casilla" id="archivo" size="35" />
      <input name="enviar" type="submit" class="boton" id="enviar" value="Upload File" />
     <input name="action" type="hidden" value="upload" />     </td>
   </form>
  </tr>
  <tr>
    <td class="text" style="color:#990000"><?php echo $status; ?></td>
  </tr>
  <tr>
    <td height="30" class="subtitulo">Listado de Archivos Subidos </td>
  </tr>
  <tr>
    <td class="infsub">
   <?php
   if ($gestor = opendir('files')) {
      echo "<ul>";
       while (false !== ($arch = readdir($gestor))) {
         if ($arch != "." && $arch != "..") {
            echo "<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
         }
       }
       closedir($gestor);
      echo "</ul>";
   }
   ?>   </td>
  </tr>
</table>
</body>
</html>

 3 
 : Septiembre 17, 2010, 04:38:04  
Iniciado por rromero - Último mensaje por rromero
Hola les traigo la implementación de como imprimir un arbol sintactico Ej:
primero almaceno en un arbol: 2*4+3 y luego debo recorrer el arbol y mientras lo recorro debo ir calculando las operaciones respectivas hasta que al final me de el resultado.

struct Arbol{
 char Dato;
 struct Arbol *Izq;
 struct Arbol *Der;
};


char operador[4]={'*','/','+','-'};
int prioridad[4]={3,2,1,0};

int EvaPostOrden(struct Arbol *Raiz)
{
  int r,op1,op2;
  char c;
  if(!Raiz) return;
  op1=EvaPostOrden(Raiz->Izq);
  op2=EvaPostOrden(Raiz->Der);
  if(Raiz->Dato)
  //printf("%c-> ",Raiz->Dato);
  switch(Raiz->Dato){
   case '*': return(op1*op2);
           break;
   case '/': return(op1/op2);
           break;
   case '+': return(op1+op2);
           break;
   case '-': return(op1-op2);
           break;
   default :   c=Raiz->Dato;
      r=toascii(c)-48;
      return r;
     break;
  }//fin switch
}

Espero os guste
 Gui&ntilde;ar

 4 
 : Septiembre 15, 2010, 07:11:25  
Iniciado por rromero - Último mensaje por rromero
Los virus por lo general para jecutarse estan en el autorun.ini

pero si ya llegaron a infectar la maquina se ubicaran en el registro del sistema, para ver el contenido ejeccuta el comando REGEDIT
y revisa la siguiente entrada:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

esta entrada del registro del sistema es la responable de ejecutar programas necesarios para el sistema apenas se inicia el Sistema Operativo lo cual es aprovecha por los virus

si ves algun programa con nombre extraño no dudes en borrar la entrada, este truco me ha servido por mucho tiempo.


 5 
 : Septiembre 15, 2010, 07:04:47  
Iniciado por rromero - Último mensaje por rromero
Hola

Actualmente existe una serie de plagas en el internet que ocultan los directorios para poder recuperarlos desde el simbolo de sistema ejecuta:

attrib -s -h -r f:/*.* /s /d

Tambien puedes invocar a Ejecutar programas con la tecla Windows + R, f: es la unidad del USB donde quieres recuperar los directorios ocultos.

LUEGO de que termine la ejecucion del comando ATTRIB con el explorador de Windows ve a la unidad y elimina el arhcivo AUTORUN.INI que es el responsable de que se carguen los virus.




 6 
 : Septiembre 04, 2010, 08:39:17  
Iniciado por rromero - Último mensaje por rromero
Indice
1. Introducción
2. "La edad de los sistemas"
3. Bibliografía

1. Introducción

Con el presente documento no pretendo inventar la pólvora, ni mucho menos reinventar la Teoría General de Sistemas (TGS) sino más bien aportar a clarificar algunas dudas que sobre la TGS se han venido generando en los profesionales de Ingeniería de Sistemas; más aún considero de importancia que todos los profesionales de las diversas áreas puedan tener este documento como una referencia importante para el desenvolvimiento de su profesión. Si desean profundizar en el tema recomiendo la lectura de "Rediseñando el Futuro" cuyo autor es Rusell Ackoff.
Javier Arancil en una breve introducción a su libro comenta: "En la década de los 30 se desarrolla la teoría de los servomecanismos, ingenios cuya característica fundamental es la existencia en los mismos de una realimentación de información. Se entiende por realimentación el proceso en virtud del cual, cuando se actúa sobre un determinado sistema, se obtiene realimentación continuamente información sobre los resultados de las decisiones tomadas, información sobre los resultados de las decisiones tomadas, información que servirá para tomas las decisiones sucesivas. La teoría de los servomecanismos tiene dos características particularmente interesantes: el estudio sistemático del concepto de realimentación y un amplio desarrollo del estudio del comportamiento dinámico de los sistemas, en el cual se encuentra el germen de la noción de sistema dinámico.
Las ideas desarrolladas inicialmente para el estudio de los servomecanismos se aplicaron inmediatamente a otro tipo de problemas, como por ejemplo la regulación de procesosquímicos, pero tanto en los servomecanismos como en las demás aplicaciones se trataba de procesos cuyo componentes eran tecnológicos de tipo mecánico, eléctrico, químico, etc.
Posteriormente la fecundidad de las ideas de realimentación y de sistema dinámico indujo a intentar su generalización al estudio de procesos socioeconómicos, es decir, a procesos en los que además de componentes tecnológicos apareciesen colectividades humanas.
En "gran medida" las leyes que rigen las interacciones elementales que se producen en el seno de las mismas. Sin embargo
hay que constatar que todas las organizacionessociales o económicas muestran un comportamiento dinámico y una fuerte interacción entre sus partes. Es decir las variables con que se mide su estado: ventas, habitantes, producción, etc. Fluctúan considerablemente, como consecuencia de las interacciones que se producen entre ellas".
La Teoría General de Sistemas a partir de estos estudios es el "lenguaje universal entre todas las ciencias". Las ciencias sociales eran las que menos importancia recibían en razón a que en tal época predominaba el mecanisismo y el reduccionismo y la parte humana era poco atendida, así se pensó que los principios y leyes que habían sido ya descubiertas en las ciencias, químicas y físicas podían ser aplicadas en los "sistemas sociales" lo que se hizo con la finalidad de evitar doble esfuerzo y que los principios ya descubiertos no se redescubran y de esa manera el Sociólogo y el Biólogo podían compartir términos iguales aplicados a sus áreas pero podían comprenderse perfectamente, por eso el Administrador y el Químico podían utilizar el mismo término y entenderse; la pregunta es ¿Cómo?. Para esto voy a pasar a explicar dos ejemplos muy conocidos ( y que en algunos textos no se explican con la claridad debida)

Ejemplo Nro 01


 Ciencias Biológicas
 Ciencias Sociales
 
Homeóstasis:

R. La cuna de este principio son las cienciencias biológicas.
 "Capacidad de los organismos de mantener su estado pleno de salud" Ejm:

Si Juan se enferma de gripe, el cuerpo humano empieza el proceso de generar síntomas, anticuerpos, etc. Hasta que Juan regrese a tener un buen estado de salud o tambien denominado punto homeostático.
 "Capacidad de los grupos sociales para mantener su vigencia" Ejm:

La Sociedad Peruana de Informáticos ha notado que en los últimos 02 años el número de profesionales inscritos se ha reducido a la quinta parte, el cuerpo directivo 2002 empieza el proceso de levantar un diagnóstico y tomar decisiones, etc. hasta que el número de afiliados regrese a 1500 afiliados o también regrese a su punto homeostático.
 

Por cuestiones didácticos los principios compartidos en ambas ciencias han sido sombreados del mismo color.

Ejemplo Nro 02


 Ciencias Químicas – Físicas
 Ciencias Administrativas
 
Sinergia:

R. La cuna de este principio son las ciencias químicas-físicas.

"La características funcionales de un sistema son diferentes a la suma de las partes estructurales del sistema".
 Una molécula de Agua, está conformada por dos moléculas de Oxígeno y una de hidrógeno. Sin embargo el agua tiene características como sabor, color, olor, etc. Que no existen en las moléculas de oxígeno e hidrógeno,
 La empresa BalaNet, está conformada por los departamentos de gerencia de sistemas, gerencia de recursoshumanos y gerencia financiera. Sin embargo BalaNet tiene características como rentabilidad, solidez, prestigio, etc. Que no existen en los departamentos que conforman la empresa,
 

 

Espero que los ejemplos sean lo suficientemente claros y entendibles; se recomienda comprender el término de punto homeostático (homeóstasis), pues mostraremos una aplicación más práctica (de TGS) en secciones posteriores de este documento.

¿Donde está la aplicación de la TGS?
Este punto es importante de aclarar pues muchos profesionales "modernos" en las oportunidades que he conversado con ellos ignorantemente han puesto en tela de juicio la aplicabilidad de la TGS y demás temas relacionados como: enfoque de sistemas, dinámica de sistemas y hasta la propia Ingeniería de Sistemas, dando sobre esta última ciencia conceptos, enfoque y orientaciones totalmente equivocados y antojadizos.
Para despejar cualquier duda sobre la aplicabilidad de la TGS afirmaremos que: La TGS es madre de la concepción de ciencias y enfoques modernos que son consecuencia de la era del Post-Capitalismo o también llamada Era del Conocimiento o:

2. "La edad de los sistemas"

Lamentablemente por ahora no podemos tratar conceptos claves como: enfoque de sistemas, reduccionismo, extensionismo, cibernética, etc., pero se recomienda dar una revisión a la bibliografíaanotada al final del documento.
En un inicio pensé que las tendencias contrarias a la TGS y la Ingeniería de Sistemas eran tendencias personales o grupales; sin embargo al observar mediante el internet las tendencias mundiales se observa la mutación de Ingeniería de Sistemas a un nuevo y marqueteable término como es IT (Information Technology) tendencia lamentablemente apoyada por Ingenieros de Sistemas bajo el eslogan de "Adecuarse al Mercado".
Sin embargo es muy gratificante saber que muchas otras ciencias sociales han adoptado mejor la TGS tal es el caso de: Sociología, Antropología, etc., y en las oportunidades que he conversado con profesionales de organismos internacionales han hecho del enfoque de sistema su cultura organizacional y cuando se requiere de nuevo personal el requisito es conocer y saber aplicar "enfoque de sistemas", ojalá y este requisito en lo posterior sea solicitado para los futuros Ingenieros de Sistemas.

Una Aplicación.
Boulding en su Jerarquía de Sistemas presenta desde el más simple de los sistemas pasando por organismos unicelulares (sistemas cibernéticos) que intercambian información con su medio ambientepara asegurar su estabilidad, luego sistemas sociales como podría ser el Mercado de Software donde la oferta S, la demanda D y el precio P del productointeractúan para lograr la estabilidad, el monitoreo del sistema se realiza cada mes, supongamos que la oferta al tiempo T depende linealmente del precio que se obtuvo en el intervalo anterior; la oferta aumenta con el precio, entonces:
S = a + bP-1, Donde b >0
La demanda depende del precio actual y aumenta al aumentar el precio.
D = c – dP, Donde d>0
Por simplicidad, suponemos que cada mes se limpia el mercado, es decir que:
D = S
Lo cual implica que el precio cambia al nivel al que la oferta iguala a la demanda.
Ahora veamos la posibilidad de la existencia de dos condiciones de mercado, cuyos valores son:


Mercado A
 Mercado B
 
Po = 1.0

A = 1.0

B = 0.9

C = 12.4

D = 1.2
 Po = 5.0

A = -2.4

B = 1.2

C = 10.0

D = 0.9

Observe que para el mercado a el precio se estabiliza (alcanza su punto homeostático en el mes 18 con 5,4 unidades monetarias), mientras que en el mercado b por las decisiones tomadas el mercado se muestra muy inestable, lo mismo se puede apreciar en los siguientes gráficos:

Gráfico Nro 01
Comportamiento en el Tiempo para el Mercado a



Gráfico Nro 02
Comportamiento en el Tiempo para el Mercado b



3. Bibliografía

[1] ACKOFF RUSELL L.. "Rediseñando el Futuro". Primera Edición. Limusa Noriega Editores. México D.F. 1994.
[2] ARANCIL JAVIER.. "Introducción a la Dinámica de Sistemas". Primera Edición.
[3] ARBONES MALISANI EDUARDO A.. "Ingeniería de Sistemas". Primera Edición. Marcombo S.A. Barcelona España. 1991.
[4] BOOCH GRADY. "Análisis y Diseño Orientado a Objetos". Segunda Edición. Addison-Wesley / Diaz de Santos Iberoamericana S.A. Delaware. U.S.A. 1996.
[5] CAMPOVERDE AYRES JOSE. "Visión de Líder Calidad Total". Primera Edición. Editorial Apoyo S.A. Lima, Perú. 1993.
[6] DRUCKER PETER F.. "La Sociedad Post Capitalista". Primera Edición. Grupo Editorial Norma. Bogota, Colombia. 1994.
[7] FORRESTER Jay W: Dinámica Industrial. Editorial Ateneo, Buenos Aires, 1981.
[8] GORDON GEOFFREY. "Simulaciónde Sistemas". Primera Edición. Editorial Diana S.A. México. 1980.
[9] JOHANSSON-MCHUGH, PENDLEBURY-WHEELER. "REINGENIERIA de Procesos de Negocios". Primera Edición. Editorial LIMUSA S.A. México 1994.
[10] KENNETH E. KENDALL JULIE E. KENDALL. "Análisis y Diseño de Sistemas". Tercera Edición. Prentice Hall Hipanoamericana S.A. México Tercera Edición. 1997.
[11] LAUDON KENNETH C.. LAUDON JANE P. 1996. " Administración de los Sistemas de Información Organización y Tecnología". Tercera Edición. Prentice Hall Hispanoamericana S.A. México Tercera Edición. 1996
[12] MANUAL de Vensim: User’s Guide Versión 1.62. Ventana Sistems 1995.
[13] MEADOWS Dennis L: Dynamics of Commodity Production Cycles. U.S.A. Wright Allen, 1969.
[14] NANCY Roberts y Otros: Introduction to Computer Simulation for System Dynamics Modeling Approach. Productivity Press, 1996.
[15] REFERENCE Manual Profesional Dynamo, US.A. 1986.
[16] RICHARDSON G. Pugh III A. Introduction to System Dynamics Modeling With Dynamo. Productivity Press. US.A. 1981.
[17] RODRIGUEZ FRANCISO J.. "Introducción a la Metodología de las Investigaciones Sociales". Primera Edición. Editora Política. La Habana 1984.
[18] RODRIGUEZ ULLOA RICARDO. "La Sistémica, los sistemas blandos y los sistemas de información". Primea Edición. Editorial Universidaddel Pacífico. Lima, Perú, 1993.
[19] ROEL PINEDA VIRGILIO. "La Tercera Revolución Industrial y la Era del Conocimiento". Primera Edición. CONCYTEC. Lima, Perú. 1997.
[20] ZILL Denis G: EcuacionesDiferenciales con Aplicaciones. Editorial Grupo Iberoamérica, México. 1982.
[21] JAY W. Forrester: Principles of Systems. Text and Workbook. MIT Press/Wright-Allen, 1968.

Autor:
Ing. Robert Antonio, Romero Flores.

 7 
 : Septiembre 01, 2010, 03:02:42  
Iniciado por rromero - Último mensaje por rromero
Hola .

El problema de las jarras de agua consiste en que con dos jarras de 4 y 2 litros de capacidad con diferentes movidas logremos que la primera jarra contenga 2 litros son utilizar una jarra adicional.
Enjoy it !!!:


max_en_j1(1,4).
max_en_j2(2,3).

muestra_contenido(C1,C2):- write('J1 tiene: '),write(C1),write(' J2 tiene: '),writeln(C2).

pasar_de_j1_a_j2(C1,C2,NC1,NC2):-      max_en_j2(2,Y), Disponible is Y - C2,
                                       C1 >= Disponible,
                                       writeln('Pasar de J1 a J2'),
                                       NC2 is Disponible+C2,
                                       NC1 is C1-Disponible;
                                       /* No hay otra opcion?*/
                                       max_en_j2(2,Y), Disponible is Y - C2,
                                       C1 < Disponible,
                                       writeln('Pasar de J1 a J2'),
                                       NC2 is C1+C2,
                                       NC1 is 0.

pasar_de_j2_a_j1(C1,C2,NC1,NC2):-      max_en_j1(1,Y), Disponible is Y - C1,
                                       Disponible >= C2,
                                       writeln('Pasar de J2 a J1'),
                                       NC1 is C2,
                                       NC2 is 0;
                                       max_en_j1(1,Y),
                                       Disponible is Y - C1,
                                       Disponible < C2,
                                       writeln('Pasar de J2 a J1'),
                                       NC2 is C2 - Disponible,
                                       NC1 is C1 + (C2-NC2).

contenido_en_j(J1,X,J2,Y):- 1 is J1, number(X),2 is X, write('Objetivo Logrado J1 tiene '), write(X), write(' litros').
contenido_en_j(J1,X,J2,Y):- 2 is J2, number(Y),2 is Y, NX = 0,
                            muestra_contenido(NX,Y),
                            NX2 = Y,
                            NY = 0,
                            muestra_contenido(NX2,NY),
                            contenido_en_j(J1,NX2,J2,Y).

contenido_en_j(J1,C1,J2,C2):-
                      0 is C2, max_en_j1(1,Y), C1 is Y, writeln('Rama Izquierda'),
                      pasar_de_j1_a_j2(C1,C2,NC1,NC2),
                      muestra_contenido(NC1,NC2),
                      NNC2 =0,
                      muestra_contenido(NC1,NNC2),
                      pasar_de_j1_a_j2(NC1,NNC2,NNC1,NNNC2),
                      muestra_contenido(NNC1,NNNC2),
                      max_en_j1(1,NLC1),
                      muestra_contenido(NLC1,NNNC2),
                      pasar_de_j1_a_j2(NLC1,NNNC2,NNNC1,NNNNC2),
                      muestra_contenido(NNNC1,NNNNC2),
                      contenido_en_j(1,NNNC1,2,NNNNC2)
                      ;
                      0 is C1, max_en_j2(2,Y), C2 is Y, writeln('Rama Derecha'),
                      muestra_contenido(C1,C2),
                      pasar_de_j2_a_j1(C1,C2,NC1,NC2),
                      muestra_contenido(NC1,NC2),
                      max_en_j2(2,NC21),
                      muestra_contenido(NC1,NC21),
                      pasar_de_j2_a_j1(NC1,NC21,NNC1,NNC2),
                      muestra_contenido(NNC1,NNC2),
                      contenido_en_j(1,NNC1,2,NNC2).

Rpta.
Caso 1: Jarra 1 tiene 4 litros y Jarra 2 tiene 0 litros.
contenido_en_j(1,4,2,0).
 Rama Izquierda
Pasar de J1 a J2
J1 tiene: 1 J2 tiene: 3
J1 tiene: 1 J2 tiene: 0
Pasar de J1 a J2
J1 tiene: 0 J2 tiene: 1
J1 tiene: 4 J2 tiene: 1
Pasar de J1 a J2
J1 tiene: 2 J2 tiene: 3
Objetivo Logrado J1 tiene 2 litros
true

Caso 2: Jarra 1 tiene 0 litros y Jarra 2 tiene 3 litros.
contenido_en_j(1,0,2,3).
 Rama Derecha
J1 tiene: 0 J2 tiene: 3
Pasar de J2 a J1
J1 tiene: 3 J2 tiene: 0
J1 tiene: 3 J2 tiene: 3
Pasar de J2 a J1
J1 tiene: 4 J2 tiene: 2
J1 tiene: 0 J2 tiene: 2
J1 tiene: 2 J2 tiene: 0
Objetivo Logrado J1 tiene 2 litros
true

Páginas: [1] 2
Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC XHTML 1.0 válido! CSS válido!