Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
No lo probe pero deberia ser algo asi:
Código Delphi [-]
var
  i: integer;
  m1, m2: array[1..10] of Cardinal;
begin
  m1[1]:= 1;
  m2[1]:= 1;
  for i:= 2 to 10 do
  begin
     m1[i]:= i;
     m2[i]:= m2[i-1] * i;
  end;
end;

Última edición por seoane fecha: 18-06-2006 a las 02:21:37.
Responder Con Cita
  #2  
Antiguo 18-06-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 22
OSKR Va por buen camino
galmacland:
Cita:
en la primera se almacenen los 10 primeros numeros naturales, empezando desde 0
Veo q no se ha tomado en cuenta el "0" y q su factorial es 1
Modificando el código de seoane
Código Delphi [-]
var
  i: integer;
  m1, m2: array[0..10] of Cardinal;
begin
  for i:= 0 to 10 do
  begin
     m1[i]:= i;
     m2[i]:=1;
     if(i>1)then
       m2[i]:= m2[i-1] * i;
  end;
end;
//Nota: No lo he probado
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).

Última edición por OSKR fecha: 18-06-2006 a las 17:04:53.
Responder Con Cita
  #3  
Antiguo 18-06-2006
Innovacl Innovacl is offline
Registrado
 
Registrado: jun 2006
Posts: 6
Poder: 0
Innovacl Va por buen camino
Thumbs up

Una pequeña modificación al algoritmo de galmacland

var
i: integer;
m1, m2: array[0..10] of Cardinal;
begin
m1[0]:=0;
m2[0]:=1;
for i:= 1 to 10 do
begin
m1[i]:= i;
m2[i]:= m2[i-1] * i;
end
end;

... no requiere el if y ahorra un ciclo. Con recursividad es un poco más elegante.
Responder Con Cita
  #4  
Antiguo 18-06-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 22
OSKR Va por buen camino
Innovacl:
Cita:
no requiere el if y ahorra un ciclo
Pues si...aunqe reqiere 2 instrucciones mas y además el algoritmo es de seoane.
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #5  
Antiguo 18-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por OSKR
Pues si...aunqe reqiere 2 instrucciones mas y además el algoritmo es de seoane.
Si parece que me ignoran ... En cuanto a lo de que son dos instrucciones mas, no hay que ver quien escribe mas si no quien ejecuta menos instrucciones. Me explico, en mi algoritmo ejecuto 2 instrucciones fuera del bucle y 2 dentro. En el que pones tu con el "if" ejecutas 4 instrcciones dentro del bucle (3 si no consideras el if una instruccion) eso multiplicalo por las 10 veces que se repite el bucle y veras que es mas rapido de la forma que yo digo. Pero para la tonteria de problema que es creo que le estamos dando muchas vueltas.
Responder Con Cita
  #6  
Antiguo 20-06-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 22
OSKR Va por buen camino
seoane:
Cita:
En cuanto a lo de que son dos instrucciones mas, no hay que ver quien escribe mas si no quien ejecuta menos instrucciones.
Sip, lo sé, a simple vista se ve, solo hago imcapié en q el algoritmo la faltaba el factorial de 0 y q es tuyo no de gamacland.
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #7  
Antiguo 20-06-2006
raulmm26 raulmm26 is offline
Miembro
 
Registrado: feb 2005
Posts: 37
Poder: 0
raulmm26 Va por buen camino
lo que sucede con lo que haceis con el factorial es que lo haceis mal no se pone un for despues sino un while y multiplicar quitando a la posicion en que se encuentra hasta que sea uno,quedaria algo asi:
var
i,fact,n: integer;
m1, m2: array[1..10] of Cardinal;
begin
m1[1]:= 1;
m2[1]:=1;
fact:=1;
for i:= 2 to 10 do
begin
m1[i]:= i;
n:=i;
while n>=1 do
begin
fact:=fact*n;
n:=n-1;
end;
m2[i]:= fact;
fact:=1;
end;
end;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como logro consultas desde clientdatset y SqlQuery Arturo Conexión con bases de datos 0 22-05-2006 16:41:09
que necesito resolver problema. evgoab SQL 5 12-03-2005 02:19:53
no logro ver datos reales de una bd de informix picapica Conexión con bases de datos 0 08-12-2004 22:27:52
Como logro la suma por grupo alcides SQL 2 19-07-2004 21:11:06
No logro que funcionen un FOREIGN KEY orfeo MySQL 2 16-07-2003 19:52:58


La franja horaria es GMT +2. Ahora son las 11:34:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi