[ Foro de Pascal ]
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.
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.)