PDA

Ver la Versión Completa : procedimiento que no responde


chechu
24-11-2005, 17:22:30
aqui de nuevo , alguien puede decirme porque este procedimiento no me da error pero solo responde 0 (cero)en el label?


procedure TForm1.BitBtn1Click(Sender: TObject);
var
n, Alquilados,PerdidaND, PerdidaO,Ociosos: integer;
u: real;
begin
randomize;
n:=(StrToInt(Edit1.text));
u:= (random(10))/10;
if (u < 0.1) then
N:=0
else
if (u>=0.1)and (u<0.2)then
N:=1
else
if (u>=0.2)and (u<0.45)then
N:=2
else
if (u>=0.45)and (u<0.75)then
N:=3
else
if (u>=0.75)and (u<1)then
N:=4;

if ((n-N)>=0) then
begin
Alquilados:= N;
Ociosos:= n-N;
PerdidaO:= Ociosos*50;
n:=n-N;
end
else
PerdidaND:= (n-N)*200;

if (n>0)then
begin
Alquilados:= (N-n);
n:=0;
end
else
Alquilados:=0;
n:=0;

label1.Caption:=IntToSTr(Alquilados);


end;

defcon1_es
24-11-2005, 17:43:13
Hola Chechu.
La respuesta es simple: ¡¡¡ n y N son la misma variable !!!
Delphi no distingue entre mayúsculas y minúsculas en los nombres de variables, por lo que cuando haces n:=n-N; el resultado SIEMPRE es cero.

Por cierto, N no la tienes definida.

Cambia el nombre de la variables n y N por n1 y n2 y verás el resultado.

jachguate
24-11-2005, 18:08:52
Hola.

He editado tu mensaje para añadir la etiqueta [delphi], de uso obligatorio para publicar código.

También están disponibles las etiquetas [sql], [php] y [code]

Favor usarlas de ahora en adelante.

Hasta luego.

;)

chechu
24-11-2005, 18:10:22
esa fue una noticia nueva para mi gracias daniel