Delphi - invertir orden

 
Vista:

invertir orden

Publicado por Laura (1 intervención) el 03/11/2008 23:20:28
hola a todos
queria ver si me pueden ayudar con un programa en lenguaje delphi.
el programa dice asi:

dado un arreglo unidimensional ordenado A(I) ; I=1,n. Invertir su orden mediante un algoritmo que no utilice un arreglo auxiliar y muestre los pasos intermedios, segun la siguiente secuencia:
A0=[2 4 6 7 10]
A1=[2 4 6 10 7]
A2=[2 4 10 7 6]
A3=[2 10 7 6 4]
A4=[10 7 6 4 2]

bueno eso seria todo, intente hacer el programa y logre hacer uno que invierte su orden, pero no puedo hacer uno que muestre los pasos intermedios y no utilice un arreglo auxiliar.
si me ayudaran se los agradeceria mucho
graicas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:invertir orden

Publicado por E.T. (1244 intervenciones) el 04/11/2008 00:11:53
Que tal, para que funcione necesitas un edit y un botón, y funciona de la siguiente manera:

Para llenar el arreglo con los valores, sólo pon en el edit números separados por una coma ( , ), pero sin dejar espacio entre ellos (1,2,3,4,5,6,7,8,9,10,11...etc), luego al dar click en el botón, en un mensaje te mostrará el resultado de cada movimiento que hay en el arreglo, así quedaría la unidad de codigo:

NOTA. para hacerlo funcionar haz lo siguiente: Crea un nuevo proyecto, luego inserta un botón y un edit, cuando lo hagas, borra todo el codigo de tu unidad, y pega el que yo te dejo, luego selecciona el botón y ve a sus procedimientos, luego en el evento OnClick, despliega la lista y selecciona el unico que hay, luego ejecuta el programa

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
function ordena(indice:integer):string;
private
a:array of integer;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses StrUtils;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=1;
SetLength(a,0);
while {PosEx(',',Edit1.Text,i)}i<=length(Edit1.Text) do begin
SetLength(a,length(a)+1);
if PosEx(',',Edit1.Text,i)<>0 then begin
a[length(a)-1]:=strtoint(copy(Edit1.Text,i,PosEx(',',Edit1.Text,i)-i));
i:=PosEx(',',Edit1.Text,i)+1;
end else begin
a[length(a)-1]:=strtoint(copy(Edit1.Text,i,Length(Edit1.Text)));
i:=length(Edit1.Text)+1;
end;
end;
ShowMessage(Edit1.Text);
ordena(length(a)-2);
end;

function TForm1.ordena(indice: integer): string;
var aux,i:integer;
salida:string;
begin
for i:= indice to length(a)-2 do begin
aux:=a[i];
a[i]:=a[i+1];
a[i+1]:=aux;
end;
salida:='';
for i:= 1 to length(a) do begin
salida:=salida+inttostr(a[i-1]);
if i<>length(a) then
salida:=salida+',';
end;
ShowMessage(salida);
if indice>0 then
result:=(ordena(indice-1))
else
Result:=salida;
end;

end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Boton Nuevo

Publicado por Viodilitsi (1 intervención) el 21/11/2008 15:45:59
Hola Buenos Dias:

Soy nueva programando en Delphi....quisiera saber como hago para que el boton Nuevo funcione, es decir que me guarde los datos copiados y luego me limpie los TEdit para volver a escribir en ellos.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Boton Nuevo

Publicado por E.T. (1244 intervenciones) el 21/11/2008 17:27:35
Que botón nuevo?, si pudieras hacer una nueva nota estaría mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar