PDA

Ver la Versión Completa : Problemas con un Grid ( integer values )


aragorneuf
24-04-2004, 02:24:28
Me aparece este error ' no es un valor ineger ' cuando hice un programa que mas o menos dice así:

Rellenar una Grid de 10 x 10 con números aleatorios comprendidos entre el 0 y el 100 y posteriormente encontrar cuantas veces se repite un número dado/indicado por el usuario.

Lo que yo hice fue esto :


procedure TForm1.B_TClick(Sender: TObject);
var
Cols, Reng, Numero: Integer;
A : String;
Begin
Randomize;
E_1.Text := A;
For cols := 0 to 9 do
For reng := 0 to 9 do
begin
Numero := Random(101);
SG_1.Cells[Cols,Reng] := IntToStr(Numero);
If StrToInt(A) = Numero then
Showmessage(A);
end;
end;
end.


De antemano mil gracias.

sanxpue
24-04-2004, 03:12:24
procedure TForm1.B_TClick(Sender: TObject);
var
Cols, Reng, Numero: Integer;
A : String;
Begin
Randomize;
E_1.Text := A;
For cols := 0 to 9 do
For reng := 0 to 9 do
begin
Numero := Random(101);
SG_1.Cells[Cols,Reng] := IntToStr(Numero);
//aqui esta tu error por que nunca inicializas con un numero tu
//variable A y A en este momento esta vacio
// y por eso te marca el error en StrToInt(A)

If StrToInt(A) = Numero then
Showmessage(A);
end;
end;

end.

aragorneuf
24-04-2004, 13:26:06
Pues he hecho esto: Cambiar La variable A de String a Integer, ya me corre pero no me marca las veces que se repite el numero que dio el usuario, siempre me marca 0.


procedure TForm1.B_TClick(Sender: TObject);
var
Cols, Reng, Numero: Integer;
A : Integer;
Begin
Randomize;
E_1.Text := IntToStr(A);
For cols := 0 to 9 do
For reng := 0 to 9 do
begin
Numero := Random(101);
SG_1.Cells[Cols,Reng] := IntToStr(Numero);
if A = Numero then
Showmessage(IntToStr(A));
end;
end;
end.


De antemano Gracias

jachguate
24-04-2004, 23:32:49
es que no estas comparando contra ningun número dado por el usuario... estas comparando contra el valor (no inicializado por cierto, que debiera aparecer en un hint de tu compilador) de la variable A.

Hasta luego.

;)

sanxpue
26-04-2004, 17:46:12
como dice jachguate nunca lo inicializas

debes de hacer esto


A := StrToInt(E_1.Text);

pongase listo por que si E_1.Text esta vacio te va a marcar de nuevo un error

aragorneuf
27-04-2004, 00:02:10
Gracias a todos, ya hice el codigo y ya me funciona perfectamente, mañana lo ponga para que lo chequen, no lo pongo ahora porque el codigo lo hice en la pc de la escuela el idiota de mi se le olvido copiarlo.

aragorneuf
28-04-2004, 00:18:20
Pues esto fue lo que hice:


var
Primo: Boolean;
cols, reng, numero, Buscando: integer;
begin
randomize;
Buscando:= StrToInt(E_1.text);
for cols:=0 to 9 do
for reng:=0 to 9 do
begin
Primo:= True;
Numero:=random(101);
SG_1.Cells[Cols,Reng] := IntToStr(Numero);
If numero = Buscando then
M_1.Lines.Add(IntToStr(Cols) + ',' + IntToStr(Reng));
end;
end;
end.