Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: JonaLamper en 8 Enero 2018, 14:06 PM

Título: Script para intercambiar símbolos en un texto
Publicado por: JonaLamper en 8 Enero 2018, 14:06 PM
Muy buenos días,

Estoy tratando de buscar alguna forma de, teniendo este código (no es más que un pseudocódigo):


x = 5
r = 1
while 0 < x
    r = r * x
    x = x - 1
endwhile
write r
end


Al ejecutar un script me intercambie los símbolos. Por ejemplo: donde hay un < debería poner, aleatoriamente, un >, <= o >=. Donde hay un *, debería poner, aleatoriamente, un -, + o /. Y al programa modificado, guardarlo en un fichero diferente. Así podría hacer muchas modificaciones de ese programa y tener muchos mutantes diferentes.

¿Alguien me podría decir o dar ideas sobre cómo podría hacerlo de una forma más o menos sencilla?

Como siempre, muchísimas gracias  ;D
Título: Re: Script para intercambiar símbolos en un texto
Publicado por: JonaLamper en 9 Enero 2018, 18:00 PM
up  :-(
Título: Re: Script para intercambiar símbolos en un texto
Publicado por: fary en 9 Enero 2018, 21:02 PM
¿En que lenguaje lo quieres hacer?
Título: Re: Script para intercambiar símbolos en un texto
Publicado por: JonaLamper en 9 Enero 2018, 21:58 PM
Tenía pensado hacer un script en linux.
Título: Re: Script para intercambiar símbolos en un texto
Publicado por: fary en 10 Enero 2018, 16:39 PM
Ya que trabajas en Linux te he hecho este pequeño script en Perl :laugh:, espero que te sirva.

Código (perl) [Seleccionar]
#!/usr/bin/perl

use strict;

my @Operacion = ('+', '-','*',"/");
my @Signos = ('<','>',"<=", ">=");
my $Aleatorio;
my  $archivo = <<"FIN_DATOS";
x = 5
r = 1
while 0 F x
    r = r J x
    x = x K 1
endwhile
write r
end
FIN_DATOS

$Aleatorio = int(rand(3));
$archivo =~ s/J/$Operacion[$Aleatorio]/;
$Aleatorio = int(rand(3));
$archivo =~ s/K/$Operacion[$Aleatorio]/;
$Aleatorio = int(rand(3));
$archivo =~ s/F/$Signos[$Aleatorio]/;   

open (my $file,">archivo.txt") or die "No se pudo crear el archivo";
print $file $archivo;
close ($file);

exit;


Cada vez que lo ejecutes te generará un archivo diferente en la ruta en la que este el script.

espero que te sirva...

saludos.