Abril 19, 2018, 07:49:30 am

Autor Tema: Biblioteca del algoritmo  (Leído 20278 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #15 en: Enero 03, 2012, 05:44:16 pm »
Algoritmo: Voraz(Cambio)

Lenguaje: Pascal

Descripción: Se trata de un típico algoritmo voraz que devuelve el cambio a un monto dado (entero) ocupando la menor cantidad de monedas. Los valores de las monedas son: 100, 25, 10, 5 y 1 $.

Código: You are not allowed to view links. Register or Login
{Voraz |SC123+|  }
{Turbo Pascal 0.7}


uses
    crt;
var
    a,b,c,d,e,f,n:integer;

begin
    clrscr;
    a:=0;b:=0;c:=0;d:=0;e:=0;f:=0;

    writeln('*********INGRESE MONTO A CAMBIAR*********');
    readln(n);

    repeat
        if (n-100) >= 0 then
      begin
        n:=n-100;
        a:=a+1;
      end;
    until n<100;

    repeat
        if (n-50) >= 0 then
      begin
        n:=n-50;
        b:=b+1;
      end;
    until n<50;

    repeat
        if (n-25) >= 0 then
      begin
        n:=n-25;
        c:=c+1;
      end;
    until n<25;

    repeat
        if (n-10) >= 0 then
      begin
        n:=n-10;
        d:=d+1;
      end;
    until n<10;

    repeat
        if (n-5) >= 0 then
      begin
        n:=n-5;
        e:=e+1;
      end;
    until n<5;

    repeat
        if (n-1) >= 0 then
      begin
        n:=n-1;
        f:=f+1;
      end;
    until n=0;

    writeln('**************CAMBIO****************');
    writeln('$100x',a,'  $50x',b,'  $25x',c,'  $10x',d,'  $5x',e,' $1x',f);
    readkey;

end.
« Última modificación: Enero 04, 2012, 06:01:39 am por jep »

Desconectado kicasta

  • Moderador
  • *****
  • Mensajes: 578
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #16 en: Julio 27, 2012, 09:27:26 am »
Cálculo de Pi

Lenguaje: C#

El algoritmo hace uso de la productoria infinita descubierta por Francois Vièta en 1593 y narrada en el libro The Irrationals de Julian Havil, que converge rápidamente:

2/Pi = √2/2 *  √(2+ √2)/2 *  √(2 + √(2+ √2))/2 * ...

Código: (CSharp) You are not allowed to view links. Register or Login
static void Pi()
        {
            double prod = 1.0;
            double radic = 0.0;

            for (int i = 0; i < 20; i++)
            {
                radic = Math.Sqrt(2.0 + radic);
                prod *= 0.5 * radic;
                Console.WriteLine(2.0 / prod);
            }
        }

Fuente original con código en Python: You are not allowed to view links. Register or Login

Saludos

“When all you have is a hammer, every problem looks like a nail.”

You are not allowed to view links. Register or Login: You are not allowed to view links. Register or Login - You are not allowed to view links. Register or Login

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #17 en: Agosto 19, 2012, 10:32:25 am »
Algoritmo: carga y ordenamiento de una lista simple que vi en una duda del foro publicada por CMV (ordenamiento por selección).
Lenguaje: Pascal.
Complejidad: O(n^2).

Código: You are not allowed to view links. Register or Login
uses crt;



type puntero=^nodo;

     nodo=record

     fecha:string;

     numero_cuenta:integer;

     sig:puntero;

end;



var datoFecha:string;

    datoCuenta,opc:integer;

    encontro:boolean;

    listaActual,listaAlternativa,datoActual,datoMayor:puntero;

    ultimoDato,ultimoDato2,ultimoMayor:puntero;



procedure mostrarMenu;

begin

writeln('Elija una opcion:');

writeln('0)SALIR');

writeln('1)Insertar elemento');

writeln('2)Mostar lista');

writeln('3)Ordenar lista');

end;



begin

listaActual:=nil;

ultimoDato:=nil;

clrscr;



repeat

mostrarMenu;

readln(opc);

case opc of



1:{insertar elemento al final de la lista}

     begin

     writeln();

     writeln('Ingrese el numero de cuenta:');

     readln(datoCuenta);

     writeln('Ingrese la fecha de transaccion (aaaa/mm/dd):');

     readln(datoFecha);

     new(datoActual);

     datoActual^.numero_cuenta:=datoCuenta;

     datoActual^.fecha:=datoFecha;

     datoActual^.sig:=nil;



     if listaActual=nil then             {si no hay datos anteriores queda primero}

        listaActual:=datoActual

     else

        ultimoDato^.sig:=datoActual;



     ultimoDato:=datoActual             {queda al ultimo}

     end;



2:{--- mostrar la lista ---}

     begin

     datoActual:=listaActual;



     while datoActual<>nil do

          begin

          writeln();

          writeln('Numero de cuenta: ',datoActual^.numero_cuenta);

          writeln('Fecha del tramite: ',datoActual^.fecha);

          datoActual:=datoActual^.sig;

          end;

     end;



3:{--- ordenamiento de la lista ---}

     begin

     listaAlternativa:=nil;

     datoActual:=listaActual;

     ultimoMayor:=nil;

     while (listaActual<>nil) do

           begin

           new(datoMayor);              {reserva espacio}

           datoMayor^.sig:=nil;



   {--- Busqueda del mayor dato, comienzo del ordenamiento por seleccion ---}

           while (datoActual<>nil)do

                 begin

                     if datoActual=listaActual then                                  {si es el primer nodo se lo asigna a mayor }

                        begin

                        datoMayor^.numero_cuenta:=datoActual^.numero_cuenta;

                        datoMayor^.fecha:=datoActual^.fecha;

                        end

                     else

                        begin

                        if datoActual^.fecha>datoMayor^.fecha then                   {busca la mayor fecha}

                           begin

                           datoMayor^.numero_cuenta:=datoActual^.numero_cuenta;

                           datoMayor^.fecha:=datoActual^.fecha;

                           end

                        else

                           begin

                           if datoActual^.fecha=datoMayor^.fecha then                        {si las fechas son iguales se busca el}

                              begin                                                          {numero de cuenta mas grande          }

                              if datoActual^.numero_cuenta=datoMayor^.numero_cuenta then

                                 begin

                                 datoMayor^.numero_cuenta:=datoActual^.numero_cuenta;

                                 datoMayor^.fecha:=datoActual^.fecha;

                                 end;

                              end;

                           end;

                        end;

                 datoActual:=datoActual^.sig;

                 end;



   {--- Ordenado en la lista alternativa ---}



           if listaAlternativa=nil then       {si no hay datos sera primero}

              listaAlternativa:=datoMayor

           else

              ultimoMayor^.sig:=datoMayor;

           ultimoMayor:=datoMayor;            {queda en ultimo lugar}



   {--- Borrado del nodo mayor en la lista actual ---}

           datoActual:=listaActual;

           ultimoDato2:=nil;

           encontro:=false;

           while (datoActual<>nil) and (encontro=false) do

                 begin

                 if (datoActual^.fecha=datoMayor^.fecha)and(datoActual^.numero_cuenta=datoMayor^.numero_cuenta) then

                    begin

                    if datoActual=listaActual then

                       begin

                       listaActual:=listaActual^.sig;

                       dispose(datoActual);

                       encontro:=true;

                       end

                    else

                       begin

                       ultimoDato2^.sig:=datoActual^.sig;

                       dispose(datoActual);

                       encontro:=true;

                       end;

                    end

                 else

                    begin

                    ultimoDato2:=datoActual;

                    datoActual:=datoActual^.sig;

                    end;

                 end;



           datoActual:=listaActual;

           end;

     ultimoDato:=datoMayor;  {permite volver a ingresar otro dato y ligarlo a la lista}

     listaActual:=listaAlternativa; {asigna la lista ordenada a la actual para volver a trabajar si se requiere}

     end;

end;

until opc=0;

end.
« Última modificación: Agosto 19, 2012, 10:37:16 am por SC123+ »

Desconectado masterfermin02

  • CPQUE??
  • *
  • Mensajes: 1
  • Sexo: Masculino
  • programs come from day-to-day works
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #18 en: Octubre 13, 2012, 03:34:45 pm »
Algoritmo: te devuelve el maximo comun divisor de manera recursiva.
Lenguaje: java
Código: You are not allowed to view links. Register or Login
public int mcd(int x, int y){
                // si 'x' es divisible entre 'y' entonce devuelve a 'y'
if( x % y == 0) return y;
else
               
return mcd( y, x % y);

}
FPD

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #19 en: Mayo 14, 2013, 09:29:06 am »
Algoritmo: Generador de You are not allowed to view links. Register or Login
Lenguaje: Pascal

Código: You are not allowed to view links. Register or Login
program CodGray;

uses crt;

var
a:string;
n:integer;

begin
clrscr;
writeln();
writeln('ingrese codigo binario:');
readln(a);
n:=length(a);
writeln();
writeln('el codigo binario es:',a);
while n>1 do
      begin
           if a[n]=a[n-1] then
              a[n]:='0'
           else
               a[n]:='1';
n:=n-1;
end;
writeln();
writeln('el codigo correspondiente de gray es:',a);
readkey();
end.
« Última modificación: Mayo 17, 2013, 10:49:23 am por kicasta »

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #20 en: Julio 01, 2013, 01:04:15 am »
Algoritmo: Lista simple con sus operaciones básicas
Lenguaje:Pascal

Código: You are not allowed to view links. Register or Login
uses crt;

type
    tipolista=^tnodo;
    tnodo=record
    info:integer;
    sig:tipolista;
    end;


var
   init,nuevo,inicio,actual:tipolista;

procedure insertar_nodo(var lista:tipolista;valor:integer);
          begin
               new(nuevo);
               nuevo^.info:=valor;
               nuevo^.sig:=nil;

               if lista=nil then
                  lista:=nuevo
               else
                   actual^.sig:=nuevo;

               actual:=nuevo;
          end;

procedure mostrar_lista(lista:tipolista);
          begin
               writeln;
               writeln;
               while lista<>nil do
                     begin
                          writeln(lista^.info);
                          lista:=lista^.sig;
                     end;
          end;

procedure borrar_nodo;

          var
             aux:tipolista;

          begin
          aux:=actual;
          actual:=nuevo;
          dispose(aux);
          end;

begin
     clrscr;
     insertar_nodo(inicio,4);
     insertar_nodo(inicio,42);
     insertar_nodo(inicio,4);
     insertar_nodo(inicio,43);
     insertar_nodo(inicio,4);
     insertar_nodo(inicio,455);
     insertar_nodo(inicio,4);
     borrar_nodo;
     insertar_nodo(inicio,6);
     insertar_nodo(inicio,8);
     insertar_nodo(inicio,10);
     insertar_nodo(init,4);
     insertar_nodo(init,4);
     insertar_nodo(init,4);
     mostrar_lista(inicio);
     mostrar_lista(init);
     readkey();
end.
« Última modificación: Julio 01, 2013, 01:12:30 am por SC123+ »

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #21 en: Noviembre 16, 2014, 03:07:31 pm »
Algoritmo: Ordenamiento Burbuja
Lenguaje: Matlab
Complejidad: O(n^2)


Código: You are not allowed to view links. Register or Login
%-X vector con los valores a ordenar
function Y=Burbuja(X)
n=length(X);
for i=1:(n-1)
    for j=(i+1):n
        if X(i)>X(j)
            tmp=X(i);
            X(i)=X(j);
            X(j)=tmp;
        end
    end
end
Y=X;

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #22 en: Noviembre 16, 2014, 03:13:02 pm »
Algoritmo: Generador de permutaciones de elementos sin repetición
Lenguaje: Matlab


Código: You are not allowed to view links. Register or Login
%- permutaciones sin repeticion de elementos
%- x string con los elementos de los cuales tomar ej: 'abcde'
%- act string de elementos permutados actualmente, para empezar ''
%- n numero de elementos a tomar
%- tener en cuenta que n<=r
function permutacion(x,act,n)
r=length(x);
if n==0
    disp(act);
else
    for i=1:r
        if ~contiene(act,x(i))
            permutacion(x,strcat(act,x(i)),n-1);
        end
    end
end

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #23 en: Noviembre 16, 2014, 03:16:35 pm »
Algoritmo: Permutación con repetición de elementos
Lenguaje: Matlab


Código: You are not allowed to view links. Register or Login
%-permutaciones con repeticion de elementos
%- n>=1
function permutacionr(x,act,n)
r=length(x);
if n==0
    disp(act);
else
    for i=1:r
        permutacionr(x,strcat(act,x(i)),n-1);
    end
end

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #24 en: Noviembre 16, 2014, 09:05:08 pm »
Algoritmo: Comparador de elementos(utilizado en permutaciones sin repetición 'ver mas arriba')
Lenguaje: Matlab


Código: You are not allowed to view links. Register or Login
%-x matriz de elementos
%-a elemento, se quiere saber si esta o no en la matriz
function y=contiene(x,a)
n=length(x);
y=false;
for i=1:n
    if x(i)==a,y=true;end
end

Desconectado SC123+

  • Me das tu IP?
  • *
  • Mensajes: 64
  • EN/DECRyPT TIS MADAFACKER!!!!
    • Ver Perfil
Re:Biblioteca del algoritmo
« Respuesta #25 en: Noviembre 30, 2014, 12:48:48 am »
Algoritmo: Generador de números aleatorios (Método Multiplicativo)
Lenguaje: Matlab


Código: You are not allowed to view links. Register or Login
%funcion para generar 300 numeros aleatorios a partir de una semilla y
%parámetros dados mediante el metodo multiplicativo. Los numeros estan
%comprendidos en el intervalo [0,1].
% - u0 = numero semilla
% - b = multiplo
% - c = sumando
% - R = matriz de n aleatorios
%
function R=numal(u0,b,c,m)
u=zeros(1,301);
R=zeros(300,1);
u(1)=u0;
for n=2:301
    u(n)=mod(b*u(n-1)+c,m);
end
for n=1:300
    R(n,1)=u(n+1)/m;
end


question
Biblioteca CPH

Iniciado por the dark-angel

4 Respuestas
2399 Vistas
Último mensaje Abril 08, 2011, 10:26:38 am
por the dark-angel
xx
Biblioteca [HashMap]

Iniciado por Kreusser

0 Respuestas
2289 Vistas
Último mensaje Octubre 08, 2010, 09:14:59 pm
por Kreusser
xx
La Biblioteca de los Sabios

Iniciado por unomas01

3 Respuestas
2091 Vistas
Último mensaje Diciembre 18, 2011, 09:17:43 am
por Beor15
xx
Biblioteca de programas

Iniciado por Cagalas

7 Respuestas
4531 Vistas
Último mensaje Abril 05, 2006, 08:11:45 pm
por Cagalas
exclamation
biblioteca de Api de windows

Iniciado por alexmanycool

15 Respuestas
9776 Vistas
Último mensaje Febrero 05, 2010, 02:13:41 pm
por alexmanycool
xx
Biblioteca de Kamui

Iniciado por kamui23

5 Respuestas
5961 Vistas
Último mensaje Noviembre 04, 2014, 06:44:57 pm
por Kreusser
exclamation
[C] Biblioteca Escolar

Iniciado por Mitos

4 Respuestas
3045 Vistas
Último mensaje Mayo 10, 2012, 08:29:43 pm
por javisuma
xx
biblioteca de programas

Iniciado por Cagalas

0 Respuestas
2971 Vistas
Último mensaje Abril 11, 2006, 05:03:04 am
por Cagalas
exclamation
LA BIBLIOTECA DE ALDEBARAN

Iniciado por Nyx

88 Respuestas
35588 Vistas
Último mensaje Marzo 22, 2009, 07:38:10 pm
por Bl@ster25
exclamation
La biblioteca de Kamui

Iniciado por kamui23

0 Respuestas
4889 Vistas
Último mensaje Marzo 22, 2009, 05:49:28 am
por kamui23