• Jueves 14 de Noviembre de 2024, 23:39

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - XOR AND

Páginas: [1]
1
Visual Basic para principiantes / Ordenamiento CL.O.N.
« en: Sábado 13 de Agosto de 2005, 07:59 »
HOLA:
Esto sigue siendo Vbscript (mientras aprendo algo de ASM)
Tal vez sea redundante y hasta trivial pero tal vez por lo mismo es sencillo o simple ( Yo creo que no puede haber nada mas simple)
Me comprometo a que cuando sepa lo suficiente de ASM posteare el codigo en este lenguaje.
XOR - AND

' Script
'=====================================================
'Guardar como COLN.vbs
' Ejecutar en Consola (cmd.exe)
' Invocandolo con cscript.exe clon.vbs
'=================================================
dim a()
dim b()
wscript.echo vbtab & vbtab & "ALGORITMO CL.O.N. ( CLasificacion por Orden Natural)" & vbcrlf
wscript.echo  "Redundante y trivial, pero rapido, exacto y estable - O(n) "
wscript.echo "Desarrollado por TOMAS XORDAN (Xor -And)"
wscript.echo "Informes : xordan_co@yahoo.com"

wscript.stdout.write vbcrlf & vbcrlf & "Cuantos numeros desea ordenar ?  "

q= wscript.stdin.readline
wscript.echo vbcrlf & "Se estan generando al azar " & q & " numeros positivos enteros " & vbcrlf
redim a(q)

Randomize
For n = 0 To q
a(n)= Int(q*Rnd)
wscript.stdout.write a(n) & "-"
Next


Wscript.echo "Estos son los mismos " & q & " numeros ya clasificados en orden natural : " & vbcrlf

For x= 0 to ubound(B)
u= b(x)
If u > 0  Then
For y = 1 To u
wscript.stdout.write   x & "-"
Next
End if
u=0
Next

wscript.stdout.write vbcrlf

2
Visual Basic 6.0 e inferiores / Multiplicacion de varias cifras
« en: Domingo 7 de Agosto de 2005, 04:53 »
Hola, soy totalmente nuevo en este foro; no soy programador profesional sino solo un aficionado que se quedo en el siglo pasado (inicie con basic y sigo pensando en basic).

Hace bastantes años desarrolle un programa en basic que hacia exactamente lo que esta pidiendo "chinho"; podia por ejemplo multiplicar un numero de  1000 (mil) cifras por otro de otras tantas. En aquella epoca basic me limitaba a “solamente”  numeros de 32000 (treinta y dos mil) cifras.

 Desarrolle la suma la resta, la multiplicacion pero quede estancado en la division.

Y esto lo hacia sin mayor demanda de memoria y en tiempo real.

Cuando lo presente a algunas personas que estaban en la industria de la programacion la sola respuesta que obtuve (ademas de un ligero meneo de cabeza y una seña con el dedo apuntando a la sien ) fue:  " .... Y para
Que diablos sirve ....?"

Ademas , para comprobar los resultados en grandes cifras haria falta un mainframe.

Esto lo hacia en un viejo ( para aquella epoca no tanto )  “XT” CON 64 kb  en RAM con sistema operativo DOS  no recuerdo que versión y creo que gwbasic (si no era basica) como lenguaje de programación.

De casualidad entre a este foro de assembler porque he querido aprender algo de asm y he venido pensando que seria una buena cosa portar varios algoritmos que dearrolle en aquella epoca ( sin ningun uso practico real)  del  antiguo basic a assembler como una forma de entrenamiento y aprendizaje.
 
Y he aqui que me encuentro con esta solicitud de "chinho" ( Te pido, chinho, por favor que aclares que no somos la misma persona en busca de publicidad ).

Esto me ha hecho  reconstruir el algoritmo  ( de memoria pues  no tengo ningun archivo de aquella epoca) y pasarlo a VBSCRIPT que es lo mas parecido al antiguo basic  que pueda uno encontrar en estos tiempos.

El script GOGOL.vbs que anexo es un ejemplo de la operación de multiplicación , de el  se puede deducir como se haria la suma y la resta.
La division -como ya dije - nunca la desarrolle totalmente aunque tengo varias ideas acerca de cómo podria hacerse.

Ejecutese en una ventana de consola (cmd) invocándolo con “ cscript.exe gogol.vbs ”  

El script solo alcanza a manejar numeros (multiplicando y multiplicador) de hasta 254 cifras debido a las limitaciones del tamaño de  los strings que se pueden introducir por via de consola ( orden “wscript.stdin.readline”) , Si se quieren manejar numeros mayores podria hacerse  - por ejemplo  - que el script los leyera de un archivo.  

Si en assembler se puede hacer cualquier cosa que se pueda hacer con un lenguaje de alto nivel, entonces este algoritmo es portable a assembler.  

Y en assembler no habria necesidad de declarar matrices bastaria con reservar determinada cantidad de memoria teniendo en cuenta que con este algoritmo cada cifra ( 0 – 9 ) ocuparia un byte por lo tanto un numero de 1000 cifras
(multiplicando ) no utilizaria mas que un kb,  el multiplicador de 1000 cifras otro kb y el resultado algo mas de 2 kb:  en total 4 kb.
Si quiere hacerlo con tamaño  de megas tambien se puede. (Creo ....)

El script que anexo tiene varias fallas como por ejemplo  un molesto punto al final que no logro quitar. Lo reconstrui en unas pocas horas despues de leer el post de chinho.

Quien haya conocido el antiguo basic vera claramente la programacion lineal ( no estructurada como se estila ahora).
 
Se que los verdaderos profesionales en esta materia hallaran la solucion “trivial” o falta de elegancia ; por eso cuando lo   pongo a disposición del publico, tengo perfecta conciencia de que actuo como  si abandonara a un hijo paralitico en la selva; solo pido que si alguien le encuentra un uso practico no deje de recordar donde lo hallo y mantenga el nombre que le he puesto:  GOGOL.

TOMAS XORDAN
XOR AND

Páginas: [1]