Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - AgnesBlack

#21
Scripting / Re: Tipo de dato ARRAY en Batch
24 Julio 2012, 22:50 PM
muy bueno increible esta para crear un nuevo vector , desplazamiento y dems genial  ;-)
se merece un buen relajamiento un tema por los datos en bath
http://www.youtube.com/watch?v=VurhzANQ_B0

ahora me pondre a ver bien estos temas de vectores y matrices gracias :D
#22
Cita de: BatchianoISpyxolo en 23 Julio 2012, 23:58 PM
También estaría bien que buscaras algún tutorial sobre Nesting.

en bath tambien se puede hacer recursividad  :o wuau genial
#23
genial :D ya posteare los avanze que hice en bath claro son todos ejercicios matematicos hmmm mira tengo una duda viste el codigo que me pasaste? bueno me sale un error al ejecutarlo me dice

Citar"El sistema no  encuentra la etiqueta por lotes especificada: _calc
   Resultado de la resta:

:D ya voy entendiendo mas el tema de bath hmm se puede hacer matrices en ella no?? vi en un pdf la explicacion de como insertar decimales en una matris en bath pero no se donde guarde el pdf pero esta interesante
#24
Ejercicios / Re: Formula o algoritmo???
23 Julio 2012, 15:28 PM
tarde respondo el mensaje y si hay un metodo es usando el metodo el Binary tree sort  o el de busqueda con puntero te dejo un ejemplo de uno que hice principio de año
este es con busqueda de puntero que es lo mas eficiente y rapido para buscar dicho nodo que buscas

unit uabb2;



{arbol binario de busqueda con punteros}



interface

type



  tipoClave=integer;

  tipoElemento=record

      clave:tipoClave;

  end;



  tipoPuntero=^tipoNodoArbol;

  tipoNodoArbol=record

      elemento:tipoElemento;

      izquierdo:tipoPuntero;

      derecho:tipoPuntero;

  end;



  tipoArbol=tipoPuntero;





var

  raizArbol:tipoArbol;



  procedure buscar(nodoArbol:tipoArbol; valorClave:tipoClave; var infoElemento:tipoElemento; var estaEnArbol:boolean);

  procedure insertar(var nodoArbol:tipoArbol; infoElemento:tipoElemento);

  procedure suprimir(var nodoArbol:tipoArbol; valorClave:TipoClave);

  procedure inOrden(nodoArbol:tipoArbol);

  procedure preOrden(nodoArbol:tipoArbol);

  procedure crearArbol(var nodoArbol:tipoArbol);

  function arbolVacio(nodoArbol:tipoArbol):boolean;



implementation



  procedure crearArbol(var nodoArbol:tipoArbol);

  begin

      raizArbol:=nil;

  end;





  procedure imprime(nodoArbol:tipoElemento);

  begin

       writeln('elemento ', nodoArbol.clave);

  end;





  function arbolVacio(nodoArbol:tipoArbol):boolean;

  begin

  if nodoArbol=nil then arbolVacio:=true

  else

      arbolVacio:=false;

  end;





  procedure preOrden(nodoArbol:tipoArbol);

  begin

      if not ArbolVacio(nodoArbol) then begin

         imprime(nodoArbol^.elemento);

         preOrden(nodoArbol^.izquierdo);

         preOrden(nodoArbol^.derecho);

      end

  end;

 



  procedure inOrden(nodoArbol:tipoArbol);

  begin

      if not ArbolVacio(nodoArbol) then begin

         inOrden(nodoArbol^.izquierdo);

         imprime(nodoArbol^.elemento);

         inOrden(nodoArbol^.derecho);

      end

  end;







  procedure buscar(nodoArbol:tipoArbol; valorClave:tipoClave; var infoElemento:tipoElemento; var estaEnArbol:boolean);

  var

     temp:tipoArbol;

  begin

       temp:=raizArbol;

       estaEnArbol:=false;



       while ((not ArbolVacio(temp)) and (not estaEnArbol)) do

           if temp^.elemento.clave=valorClave then

              estaEnArbol:=true

           else

               if temp^.elemento.clave>valorClave then

                   temp:=temp^.izquierdo

               else

                   temp:=temp^.derecho;



       if estaEnArbol then infoElemento:=temp^.elemento

  end;

 



  procedure insertar(var nodoArbol:tipoArbol; infoElemento:tipoElemento);

  var

     nuevoNodo:tipoArbol;

     temp,anterior:tipoArbol;

     claveNueva:tipoClave;

  begin

       new(nuevoNodo);

       nuevoNodo^.izquierdo:=nil;

       nuevoNodo^.derecho:=nil;

       nuevoNodo^.elemento:=infoElemento;



       claveNueva:=infoElemento.clave;



       temp:=nodoArbol;

       anterior:=nil;



       while not ArbolVacio(temp) do begin

           anterior:=temp;

           if temp^.elemento.clave>claveNueva then

              temp:=temp^.izquierdo

           else

              temp:=temp^.derecho

       end;



       if ArbolVacio(anterior) then {vacio}

           nodoArbol:=nuevoNodo

       else

           if anterior^.elemento.clave>claveNueva then

              anterior^.izquierdo:=nuevoNodo  {nuevo nodo a izq del padre}

           else

              anterior^.derecho:=nuevoNodo

  end;





  procedure suprimirNodo(var nodoArbol:tipoArbol; temp,anterior:tipoArbol);

  var

     auxiliar:tipoArbol;

  begin

      if (temp^.derecho=nil) and (temp^.izquierdo=nil) then

         if anterior=nil then

            nodoArbol:=nil {xq el arbol solo tenia un nodo!}

         else

            if anterior^.derecho=temp then  {eliminando una hoja}

                anterior^.derecho:=nil

            else

                anterior^.izquierdo:=nil



      else

          if (temp^.derecho<>nil) and (temp^.izquierdo<>nil) then begin

               anterior:=temp;

               auxiliar:=temp^.izquierdo;



               while auxiliar^.derecho<>nil do begin

                   anterior:=auxiliar;

                   auxiliar:=auxiliar^.derecho;

               end;



               temp^.elemento:=auxiliar^.elemento;

               if anterior=temp then

                   anterior^.izquierdo:=auxiliar^.izquierdo

               else

                   anterior^.derecho:=auxiliar^.izquierdo;



               temp:=auxiliar



          end

          else begin

               {el nodo tiene un hijo. debe subir}

               if temp^.derecho<>nil then {hijo derecho}

                  if anterior=nil then

                    anterior^.derecho:=temp^.derecho

                  else

                      if anterior^.derecho=temp then

                         anterior^.derecho:=temp^.derecho

                      else

                         anterior^.izquierdo:=temp^.derecho



               else {hijo izquierdo}

                    if anterior=nil then

                       anterior^.izquierdo:=temp^.izquierdo

                    else

                       if anterior^.derecho=temp then

                           anterior^.derecho:=temp^.izquierdo

                       else

                           anterior^.izquierdo:=temp^.izquierdo;

          end;





       dispose(temp);

  end;



  procedure suprimir(var nodoArbol:tipoArbol; valorClave:TipoClave);

  var

    temp, anterior:tipoArbol;

  begin

       temp:=nodoArbol;

       anterior:=nil;



       while temp^.elemento.clave<>valorClave do begin

           anterior:=temp;

           if temp^.elemento.clave>valorClave then

              temp:=temp^.izquierdo

           else

              temp:=temp^.derecho

       end;



       suprimirNodo(raizArbol,temp, anterior)

  end;







end.


ah traves de esto podes modificarlo para buscar el nodo que quieras y eliminarlo

#25
bien gracias ya intentare probar y ver si me sale algo para la division gracias :D
#26
bueno aun poco se de bath pero lo hice en pascal y decidi dejarlo en pseucodigo para no ser sucio en mezclar lenguaje
bueno este es en pseucodigo

Iniciar x=2,cont=0,s=1
Ingresar CP(Cantidad de primos)
Iniciar m=0
Mientras cont<cp
          hacer pd[m+1]=1
          iniciar r=1
          Mientras mod[x,[pd]]<>0
                     hacer r=r+1
           preguntar si r>m
           si es verdadero
                               mostrar x + mensaje"es primo"
                               hacer m=m+1
                               hacer pd[m]=x
                               hacer cont=cont+1
                               preguntar x=3
                               si es verdadero  s=2
                               si es falso  (queda vacio)

            si es falso (queda vacio)
            hacer x=x+s (aca vuelve al ciclo de arriba)


y una mejora que le hice y es mas eficiente corre mas rapido en pascal es el siguiente

iniciar x=2 , cont=0
ingresar lim (el limite de primos ah buscar)
iniciar m=0
mientras cont<lim
              hacer pd[m+1]=1
              iniciar r=1
              mientras mod[x;pd[r]]<>0
                           hacer r=r+1
               preguntar r>m
               si es verdadero
               muestro   x y mensaje "es primo"
               hacer m=m÷1
               hacer pd[m]=x
               si es falso queda vacio
               hacer x=x+1
               hacer cont =cont+1
                y de aca vuelve al ciclo



bueno es lo que haria para generar el limite de numeros primos lo probe y en pascal bueno funciona hasta 32000 lo max hay que usar el longint para generar numeros mayores bueno saludos y disculpen por no pasarlo a bath
#27
genial wuau una duda hay en la parte de

call :_calc sub "12.72-8.189605-1.0025" "adt"
call :_calc add "%adt%+521.27" "adt"


podria poner

echo ingrese primer numero
set  /p a=
echo ingrese segundo numero
set /p b=

call :_cal sub "a-b" "adt"


hmm no entiendo muy bien el procedimiento pero como generaria dependiendo un numero dado?
#28
si ya lo intentare estoy metido a full con bath , lo podria hacer pero con el metodo de la burbuja de plomo o la de shell en bath ya que el algoritmo es sencillo ahora leere bien el de Quicksort lastima que me queda 1 semana de vacaciones la semana que viene tengo que finalizar analisis matematico 1 y programacion numerica pero lo aseguro que lo vos ah hacer  no ahora pero lo voy ah hacer gracias Binary_Death
#29
muchas gracias Binary_Death me despejaste muchas dudas :D de verdad muchas gracias y me pondre a practicar y resolver ejercicios que me piden estos temas de mod y div gracias como no se puede dar puntos te dejo como hacen en taringa +10 jaja saludos y gracias Binary_Death

pd: ya intentare hacer alguna funcion que devuelva enteros decimales y ya guarde tus codec en block de nota ahora los copio en hoja y los vere mas detalladamente
#30
solo hay que hacerlo en bath ?? aun toy profundizando temas en bath pero puedo hacerlo en pascal o en C++ y lindo algoritmo tenia ejercicios de estos tipos en los practicos jaja si que son entretenido