martini002
06-06-2012, 00:17:57
Salud Amigos, donde quiera que se encuentren ;)
esta vez me presento con un problemita que mas alla del lenguaje
tiene su dificultad en la logica, que despues de mas de 48 horas
de analisis y ensayo y error no he podido resolver
y me gustaria conocer su punto de vista y su logica
ya que la mia se agoto :(
he estado haciendo esto por partes ya que estoy
construyendo el proyecto de programacion de este año
para la universidad, y el cual publicare aqui en el momento
de su culminacion, en agradecimiento a toda la ayuda
que me han prestado :)
Begin,
el problema es el siguiente,
necesito un vector donde se almacenen numeros aleatorios
en un rango determinado.
en este caso usaremos del 1 al 3
he intentado de todo, ensayo y error,
nuevos metodos de resolucion pero no le encuentro solucion,
esto es lo ultimo a lo que he llegado,
quedandose en un bucle infinito.
intentando analizar la cosa esta,
se aprecia que en el ciclo cuando empieza
el Repeat es donde comienza el bucle,
les agradeceria muchisimo su colaboracion
y su tiempo, para ayudarme a reestructurar si es necesario
este programita
Saludos,
Best,
Martin
var
Form1: TForm1;
Vector:Array[1..3] of integer;
implementation
{$R *.dfm}
procedure InicializarVector();
var
i:integer;
begin
for i:=1 to 3 do
begin
Vector[i]:=0;
end;
end;
Function Comprobar(Num:Integer):Boolean;
var
i:Integer;
begin
for i:=1 to 3 do
if Num=Vector[i] then
begin
Result:=True;
end
else
begin
Result:=False;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var
i, NumRandom, Aux:integer;
begin
for i:=1 to 3 do
begin
Randomize;
NumRandom:=RandomRange(1,4);
Vector[i]:=NumRandom;
end;
Aux:=1;
i:=3;
while i>1 do
begin
repeat //Aqui es donde empieza la agonia...
Comprobar(Vector[i]);
if Comprobar(Vector[i])=True then
begin
Vector[i]:=Aux+1
end;
until Comprobar(Vector[i])=False;
i:=i-1;
end;
Edit1.Text:=IntToStr(Vector[1]);
Edit2.Text:=IntToStr(Vector[2]);
Edit3.Text:=IntToStr(Vector[3]);
end;
begin
InicializarVector;
end.
esta vez me presento con un problemita que mas alla del lenguaje
tiene su dificultad en la logica, que despues de mas de 48 horas
de analisis y ensayo y error no he podido resolver
y me gustaria conocer su punto de vista y su logica
ya que la mia se agoto :(
he estado haciendo esto por partes ya que estoy
construyendo el proyecto de programacion de este año
para la universidad, y el cual publicare aqui en el momento
de su culminacion, en agradecimiento a toda la ayuda
que me han prestado :)
Begin,
el problema es el siguiente,
necesito un vector donde se almacenen numeros aleatorios
en un rango determinado.
en este caso usaremos del 1 al 3
he intentado de todo, ensayo y error,
nuevos metodos de resolucion pero no le encuentro solucion,
esto es lo ultimo a lo que he llegado,
quedandose en un bucle infinito.
intentando analizar la cosa esta,
se aprecia que en el ciclo cuando empieza
el Repeat es donde comienza el bucle,
les agradeceria muchisimo su colaboracion
y su tiempo, para ayudarme a reestructurar si es necesario
este programita
Saludos,
Best,
Martin
var
Form1: TForm1;
Vector:Array[1..3] of integer;
implementation
{$R *.dfm}
procedure InicializarVector();
var
i:integer;
begin
for i:=1 to 3 do
begin
Vector[i]:=0;
end;
end;
Function Comprobar(Num:Integer):Boolean;
var
i:Integer;
begin
for i:=1 to 3 do
if Num=Vector[i] then
begin
Result:=True;
end
else
begin
Result:=False;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var
i, NumRandom, Aux:integer;
begin
for i:=1 to 3 do
begin
Randomize;
NumRandom:=RandomRange(1,4);
Vector[i]:=NumRandom;
end;
Aux:=1;
i:=3;
while i>1 do
begin
repeat //Aqui es donde empieza la agonia...
Comprobar(Vector[i]);
if Comprobar(Vector[i])=True then
begin
Vector[i]:=Aux+1
end;
until Comprobar(Vector[i])=False;
i:=i-1;
end;
Edit1.Text:=IntToStr(Vector[1]);
Edit2.Text:=IntToStr(Vector[2]);
Edit3.Text:=IntToStr(Vector[3]);
end;
begin
InicializarVector;
end.