PDA

Ver la Versión Completa : Traducción de JS a Delphi: FOR e ¿incrementos?


Delphius
01-06-2007, 17:16:13
Buenas, hace mucho que intento meterme en JavaScript y buscando info para mi tesis me di con algoritmos implementados en JavaScript y Java.

Yo de JS no se mucho (de hecho, me he limitado a hacer COPY/PASTE desde un programita con miles de códigos scripts :D y alguno que otro intento de escribir mis propios)... y como estoy traduciendo código... me ha aparacido unas dudas (que muy posiblemente sean tontas). La mayor cantidad de operaciones del algoritmo se lleva a cabo por instrucciones FOR:


for (j=i ; j<n ; j++) {
bla , bla
}


¿A ello lo debería entender como:

for j := i to n-1 do


O es que debería ser?:

to n do


Otro aspecto de mi duda es como interpretar algo como:

iq += n ;


¿Su traducción sería algo como:

iq := iq + n;


O me equivoco? ¿Si viene el menos, significaría una resta?

Disculpen por la serie de preguntas, ¿la interpretación de j++, y j-- sería algo como?:

inc(j)
dec(j)


Estas mismas preguntas son válidas también para JAVA y no se si habrir un hilo en la sección de JAVA sabiendo que estaría repitiendo las preguntas... asi que me preguntaba si me podrían aclarar si es igual la traducción de JAVA a Delphi.

Nuevamente disculpa por hacer más de una pregunta...
Si no es correcto haber preguntado sobre si es válido también esta traducción de JAVA a Delphi en esta sección, haganmelo saber para que inicie la pregunta en su correspondiente sección.

Muchas gracias.
Saludos,

roman
01-06-2007, 18:51:01
Básicamente le has atinado.


for (j=i ; j<n ; j++)


En C, el ciclo for se compone de tres partes, la inicialización (j=i) la condición para entrar al ciclo (j<n) y lo que se hace al final de cada ciclo (j++).


i += n


es lo que piensas


i = i + n


y vale para otros operadores también.

Los operadores de incremento y decremento


i++;
j--;


son lo que piensas pero también hay


++i;
--j;


que es lo mismo pero no es igual :D

Si haces algo como:


j = 84;
a = j++;


el valor de a será 84 pues el incremento a j se hace después de la asignación. Si haces


j = 84;
a = ++j;


el incremento se hace antes, por lo que a valdrá 85.

// Saludos

Delphius
01-06-2007, 21:33:56
Muchisimas gracias roman, creo que con tu ayuda puedo seguir traduciendo.
Desconocía la segunda variante. Voy a tener que proseguir con mucho cuidado... el cambio entre j++ y ++j es motivo para darle mucha atención a los códigos.

Saludos,

roman
01-06-2007, 21:50:58
Fíjate que la sentencia for es muy curiosa. Las secciones pueden ser casi cualquier cosa, no sólo asignaciones e incrementos. Por ejemplo:


for (nombre = prompt('Hola, ¿cuál es tu nombre?', ''), i=0; i < 5; document.write('Hola ' + nombre + '<br>'), i++)
{
}


El cuerpo del for no tienen nada porque todo se hace al final de cada vuelta.

// Saludos

Delphius
01-06-2007, 22:09:11
He visto cosas curiosas en JS, pero no tanto como esas...
Por el momento no me he topado con algo asi.

Menos mal que dentro de todo, el algoritmo se limita a hacer operaciones y luego mostrar los resultados. El código el cual estoy estudiando puede ser visto en: http://www.colby.edu/chemistry/PChem/eigen.html, por si a alguien le interesa.

Por el momento estoy evaluando y analizando diversos métodos y algoritmos. Y cada uno está en diferentes lenguajes. Y me topé con el JS y JAVA, lenguajes que como ves... a penas los "veo" y que por falta de tiempo y por otras circunstancias de la vida nunca pude estudiar.

Saludos,