Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2007
baby baby is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
baby Va por buen camino
ordenacion de un array mediante el metodo de la burbuja

muy buenas a todos
soy novato en eso de delphi y queria hacer un programa que me ordena un array(p.e de 5 elementos) mediante el metodo de la bubuja pero al compilarlo me da error que no se localizarlo haber por favor si me podeis hechar la mano
esta es la codificacion que hice
var
Form1 : TForm1;
vector:array[1..5]of integer;
i,cont:integer;
implementation
procedure ordenar;
var
ord :string;
k,l,j,tmp:integer;
begin
ord:=' ';
for l:=1 to 5 do
for j:=1 to 4 do
begin
if (vector[j+1]<vector[j])then
begin
tmp:=vector[j+1];
vector[j+1]:=vector[j];
vector[j]:=tmp;
end;
end;
for k:=1 to 5 do
ord:=ord+' '+inttostr(vector[k]);
Form1.lblordenado.caption:='los datos del array ordenado sera '+ord;
end;
procedure mostrar;
var
s :string;
l :integer;
begin
s:=' ';
for l:=1 to 5 do
s:=s+' '+inttostr(vector[l]);

Form1.lblsinorde.Caption:='los datos del array son : '+s;
end;
{$R *.dfm}
procedure TForm1.BBTclClick(Sender: TObject);
begin
close;
end;
procedure TForm1.bbtacepClick(Sender: TObject);
var
n:integer;
begin
i:=i+1; // el indice k me lleva la cuenta de los datos en el array
n:=strtoint(Edtnum.Text);
cont:=cont+1; // contador de los datos
if (cont=6)then
mostrar // llamo al procedimiento mostrar
else
vector[i]:=n;
Edtnum.Clear;
Edtnum.SetFocus;
end;
procedure TForm1.btnorClick(Sender: TObject);
begin
ordenar;
end;
end.
gracias de antemano
disculparme compadres si existe la solucion en otro sitio
saludos cordiales
Responder Con Cita
  #2  
Antiguo 07-05-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Este código es muy poco claro, edita el mensaje y utiliza la etiqueda de código delphi para hacerlo más legible (y si puedes añade identación).
Se verá así:
Código Delphi [-]
procedure TForm1.btnorClick(Sender: TObject);
begin
  ordenar;
end;
Responder Con Cita
  #3  
Antiguo 07-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Además de lo que comenta kuan-yiu, indica cuál es el error que te da, porque de otra forma es muy difícil ayudarte.

// Saludos
Responder Con Cita
  #4  
Antiguo 07-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por kuan-yiu
Se verá así:
Asi es
Código Delphi [-]
var
  Form1 : TForm1;
  vector:array[1..5]of integer;
  i,cont:integer;
implementation
procedure ordenar;
var
  ord :string;
  k,l,j,tmp:integer;
begin
  ord:=' ';
  for  l:=1  to 5  do
      for j:=1 to 4 do
         begin
            if (vector[j+1]< vector[j])then
              begin
                tmp:=vector[j+1];
                vector[j+1]:=vector[j];
                vector[j]:=tmp;
              end;
         end;
  for k:=1 to 5 do
    ord:=ord+'    '+inttostr(vector[k]);
  Form1.lblordenado.caption:='los datos del array ordenado sera   '+ord;
end;
procedure mostrar;
var
  s :string;
  l :integer;
begin
  s:=' ';
  for l:=1 to 5 do
    s:=s+'   '+inttostr(vector[l]);

  Form1.lblsinorde.Caption:='los datos del array son : '+s;
end;
{$R *.dfm}
procedure TForm1.BBTclClick(Sender: TObject);
begin
  close;
end;
procedure TForm1.bbtacepClick(Sender: TObject);
var
  n:integer;
begin
  i:=i+1;                 // el indice k me lleva la cuenta de los datos en el array
  n:=strtoint(Edtnum.Text);
  cont:=cont+1;           // contador de los datos
  if (cont=6)then
     mostrar              // llamo al procedimiento mostrar
  else
    vector[i]:=n;
  Edtnum.Clear;
  Edtnum.SetFocus;
end;
procedure TForm1.btnorClick(Sender: TObject);
begin
  ordenar;
end;
end.
Pero lo que me gustaría saber es exactamente el error que te da. Eso nos daría una pista de pro donde empezar.
Responder Con Cita
  #5  
Antiguo 07-05-2007
baby baby is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
baby Va por buen camino
gracias semone por la reescitura del codigo
en el momento de compilarlo me salta al fichero del project poniendo el cursor
a la ultima linea pero antes un mensaje de violacion de memoria ....
Responder Con Cita
  #6  
Antiguo 07-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por baby
gracias semone por la reescitura del codigo
en el momento de compilarlo me salta al fichero del project poniendo el cursor
a la ultima linea pero antes un mensaje de violacion de memoria ....
Vamos mejorando, y si ya pusieras el mensaje completo seria perfecto

De todas formas, parece que el problema es que accedes a un componente que no esta creado. Pero viendo el código no se donde puede estar el error.
Responder Con Cita
  #7  
Antiguo 07-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por seoane
parece que el problema es que accedes a un componente que no esta creado.
Eso, o un índice fuera de rango. El procedimiento bbtacepClick incrementa sospechosamente un índice i que no parece haber sido inicializado, pero realmente es muy difícil saber.

// Saludos
Responder Con Cita
  #8  
Antiguo 07-05-2007
baby baby is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
baby Va por buen camino
nose que os digo compadres
acabo de ejecutarlo varias veces y no me daba el error que me estaba dando
antes
el problema que me resulta ahora al insertar numeros iguales en el edit
en el momento de llamar al metodo ordenar se muestra el mismo numero 2 veces aunque no se insertan en el mismo orden

Responder Con Cita
  #9  
Antiguo 07-05-2007
baby baby is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
baby Va por buen camino
tiene razon roman
pero aquel indice tio solamente lo hago para que se muestra al lado del control(label) la cuenta de los numeros que voy insertando
Responder Con Cita
  #10  
Antiguo 07-05-2007
jacanche jacanche is offline
Miembro
 
Registrado: may 2003
Ubicación: Campeche,Campeche,Mexico
Posts: 137
Poder: 21
jacanche Va por buen camino
Cita:
Empezado por baby
nose que os digo compadres
acabo de ejecutarlo varias veces y no me daba el error que me estaba dando
antes
Al menos pienso que deberias inicializar los valores de las variables globales, delphi inicializa las variables globales pero no deberiamos confiarnos en esa caracteristica.

Cita:
Empezado por baby
el problema que me resulta ahora al insertar numeros iguales en el edit
en el momento de llamar al metodo ordenar se muestra el mismo numero 2 veces aunque no se insertan en el mismo orden

Si entiendo bien el parrafo, no le veo cual es el problema, en un arreglo de elementos ordenados siempre van a estar juntos los elementos iguales. Si el comportamiento que esperas es que solo aparezca una vez, al momento de insertar deberias de hacer una busqueda, si se encuentra el elemento ya no lo insertarias.
En fin, espero no confundir mas.

Saludos
__________________
Saludos

Alfredo
Responder Con Cita
  #11  
Antiguo 07-05-2007
baby baby is offline
Miembro
 
Registrado: may 2007
Posts: 15
Poder: 0
baby Va por buen camino
gracias jagach
entonces a cada vaz k kiero insertar tengo k efectuar la busqueda para saber si esta el elemento o no ¿?
saludos








==> recordar nuestros origines nos ayuda a no olvidar quien somos
Responder Con Cita
  #12  
Antiguo 08-05-2007
jacanche jacanche is offline
Miembro
 
Registrado: may 2003
Ubicación: Campeche,Campeche,Mexico
Posts: 137
Poder: 21
jacanche Va por buen camino
Si, asi es...
__________________
Saludos

Alfredo
Responder Con Cita
Respuesta



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
ordenacion arrays halizia PHP 7 07-02-2007 10:47:03
metodo de burbuja utilizando el random() soma25 C++ Builder 3 21-06-2006 01:36:15
Metodos de Ordenamiento. QuickSort vs Burbuja Mejorado Delphius Varios 9 22-07-2005 02:37:50
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Ordenacion tabla jfloro OOP 1 03-09-2003 02:08:51


La franja horaria es GMT +2. Ahora son las 11:57:40.


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