PDA

Ver la Versión Completa : Mikropascal , La asignación a la variable de bucle no está permitido


gaston260
30-10-2010, 19:53:36
hola a todos ! tengo una pregunta que es la del titulo y no entiendo nada ! , hay $1.000.000 al que conteste correctamente :D:D:D

var RH_MSB,RH_LSB,T_MSB,T_LSB,CHKS: byte; //bajtove vystupy z cidla
sht_rh,sht_t: word; //vystup z cidla
T,RH: integer; //vysledek T= 2531, RH= 7523
tmp1,tmp2,pom,pom2,pom3,pom4,pom5: word;

...

procedure CtiSHT;
begin
Trans;
Write_Byte(Code_Temp);
TRISA := %00000001; //PORTA je output jen RA0 je input
//cekame az to zmeri a stahne do 0
for pom4 :=1 to 65000 do
begin
if TestBit(PORTA,DATA)=0 then pom4 := 65000; <<<< (en pom4 me da el error !!)
end;

Saludos !

duilioisola
01-11-2010, 21:57:59
El asunto de este mensaje es una afirmación y no una pregunta:
Mikropascal , La asignación a la variable de bucle no está permitido

Si MikroPascal tiene esa regla/limitación, porqué no resuelves el tema con un while:

while pom4 <= 65000 do
begin
porm4 := porm4 + 1;
if TestBit(PORTA,DATA)=0 then pom4 := 65000;
end;


Diche sea de paso, creo que es la forma correcta de hacerlo. El bucle FOR repite una cantidad definida de veces. El bucle while o repeat..until, se repiten mientras una condición sea verdadera.

¿Me he ganada el millón?

duilioisola
01-11-2010, 22:03:24
Acabo de probarlo en Delphi 6, porque tenía el presentimiento de que no estaba primitido modificar la variable utilizada en el FOR.

Delphi 6 tampoco permite esta asignación.

gaston260
02-11-2010, 02:04:53
claro que te ganaste el millón !! donde yo vivo el sigo $ significa (gracias) ! , te sirve 1.000.000 de gracias ? .

saludos y sumale un muchas gracias mas al millón !!!! .