[ Foro de Pascal ]

QUE INDICA LA EXPRESION EN LA FUNCION... ???

13-May-2011 15:35
oscar gomez
1 Respuestas

Cordial saludo profesor Nacho.

En el siguiente procedimiento de codigo:

procedure generar(cadena:string;indice:integer);
var cad:string;
     i:integer;

begin
 if(cadant<>cadena) or sw then
  begin
    if indice=tam then
      begin
       k:=k+1;
       if cadena=cadmay then
         writeln(k);
       end
        else
          begin
           for i:=indice to tam do
             begin
              sw:=(i=indice);
              indiceanterior:=indice;
              intercambiar(cadena[indice],cadena[i]);
              generar(cadena,indice+1);
             end;
            end;
      end;
 end;

sw,esta declarada como boolean (como variable global)
y k,indiceanterior como integer como variables globales

quisiera me ayudaras a entender que hace la expresion:
sw:=(i=indice);
pues la verdad aunque se que (i=indice) es una expresion booleana que puede ser false o true, no entiendo si es correcto hacer el indice del for igual al indice o de que otra forma podria hacerse para mejor claridad,por que el programa es de un libro y ejecuta correcto, pero la verdad no entiendo bien la asignacion.

mil gracias por tu orientacion.


13-May-2011 23:24
Nacho Cabanes (+30)

La expresión

sw:=(i=indice);

equivale a escribir

if i=indice then
 sw := true
else
 sw := false;






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)