[perl] Lo que enviaste... (fwd)
Gunnar Wolf
gwolf@campus.iztacala.unam.mx
Mon, 24 Apr 2000 13:22:19 -0500 (CDT)
Hola!
Soy el administrador de la lista de Perl. Enviaste un mensaje, pero no
estas subscrito con esta direccion a la lista, por lo que fue rechazado.
Creo que yo te lo puedo responder... Pero de todos modos, te sugiero
subscribirte.
Mando este mensaje con copia a la lista, pues puede ser de interes para
otros, y otros pueden encontrar mejores respuestas.
> Hola a todos,
> Dentro de un ciclo while necesito imprimir una linea
> blanca y otra gris, para esto se me ocurre hacerlo con
> un contador de linea y ver si es par o impar...
>
> de casualidad alguien tiene alguna rutina o función
> para saber si un número es par o impar, por ejemplo si
> en perl existiese la función mod() la cual me daria el
> residuo de un número dividido entre otro, tendria algo
> asi:
>
> if mod(numero,2)=0 {
> x="Es par";
> } else {
> x="Es impar"; }
>
> Pero esa función no existe en perl, alguna idea o
> sugerencia???
Lo primero que se me ocurre (no lo he probado, es a ver si pega) es
utilizar integrer, que obliga a Perl a usar aritmetica de enteros:
use integrer;
$mitad=$numero/2;
if ($mitad*2 == $numero) {
&siEsPar;
} else {
&noEsPar;
}
no use integrer;
(no estoy seguro de la ultima linea... Es posible que se escriba diferente
o que no sea asi como se utiliza... Pero es importante que regreses a perl
al modo de punto flotante si vas a usar numeros :) )
La otra manera que se me ocurre es tratar al resultado como una cadena:
$mitad=$numero/2
if ($mitad =~ /\./) {
&noEsPar;
} else {
&esPar;
}
Aqui estoy utilizando una expresion regular para encontrar un punto en la
cadena. Si aparece el punto, entonces el resultado es fraccional, ergo no
es par.
El primero metodo seguramente sera mas rapido.
Saludos!
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text : unsubscribe perl