Artículo
|
Bucles en Euphoria |
Repasemos los tipos fundamentales de variables Euphoria : atom y integer
Ejemplo
atom vector
integer años
Son dos tipos de variables parecidas pero solo atom puede tener numeros decimales y enteros.
Si vector = 3 o cualquier entero entonces Euphoria lo almacenará en la memoria como entero de 4 bytes, si en cambio vector = 3.0 entonces lo almacena como float de doble precisión de 8 bytes. Eso es fundamental si queremos velocidad en nuestro programa, solo si vamos a usar enteros comprendidos entre (-1073741824, 1073741823) usaremos integer para el resto usar atom.
sequence, pues eso, es una secuencia de datos y por lo tanto podemos almacenar atomos que es lo que realmente se almacena.
Ejemplo:
sequence nombres
nombres = {"Maria","Juan","Carlos"}
cada nombre es en realidad una sequence usted ve esos nombres pero
Euphoria ve esto:
nombres = { {77,97,114,105,97},{74,117,97,110},{67,97,114,108,111,115} }
para Euphoria son todo atom y sequence.
En esta continuación veremos el proceso de un bucle anidado. Además usaremos un nuevo tipo de variable llamada object, que engloba en un mismo conjunto a secuencias y atomos.
Ejemplo división finita
En este programa usaremos la libreria get.e que viene en la instalación la cual nos ofrece la función gets(0) que espera a que el usuario introduzca un número y devuelve una secuencia la cual es recibida por un object.
include get.e
incluimos la libreria necesitada.
object ans
declaramos un object para la función gets(0)
integer a,b,c,d,e,f,g
definimos varios integer a la vez en vez de integer a integer b
a=rand(999999)
rand(x) es una funcion que devuelve un numero aleatorio entre 1
y 999999 en este proceso aleatorio solo hay numeros enteros.
puts(1," ")
Imprime un caracter o varios dependiendo la longitud de la cadena.
while e<c do
end while
Esta es la manera de crear un bucle infinito mientras e sea menor
que c y se pueden anidar cuantos bucles sean necesarios.
Ejemplo :
Estos bucles anidados consumen 10*10*10 iteraciones. Otra forma de hacer bucles es el famoso for
Ejemplo :
for contador=1 to 100 do
end for
La ventaja de for es que no tienes que declarar la variable contador su desventaja es que no puedes modificarla es un bucle invariable a diferencia de while que puede ser infinito o no.
Autor:Vicente Exposito
Ejemplo
atom vector
integer años
Son dos tipos de variables parecidas pero solo atom puede tener numeros decimales y enteros.
Si vector = 3 o cualquier entero entonces Euphoria lo almacenará en la memoria como entero de 4 bytes, si en cambio vector = 3.0 entonces lo almacena como float de doble precisión de 8 bytes. Eso es fundamental si queremos velocidad en nuestro programa, solo si vamos a usar enteros comprendidos entre (-1073741824, 1073741823) usaremos integer para el resto usar atom.
sequence, pues eso, es una secuencia de datos y por lo tanto podemos almacenar atomos que es lo que realmente se almacena.
Ejemplo:
sequence nombres
nombres = {"Maria","Juan","Carlos"}
cada nombre es en realidad una sequence usted ve esos nombres pero
Euphoria ve esto:
nombres = { {77,97,114,105,97},{74,117,97,110},{67,97,114,108,111,115} }
para Euphoria son todo atom y sequence.
En esta continuación veremos el proceso de un bucle anidado. Además usaremos un nuevo tipo de variable llamada object, que engloba en un mismo conjunto a secuencias y atomos.
Ejemplo división finita
include all_lib.ew object ans integer a,b,c,d,e,f, g a=rand(999999)+999999 puts(1,"Dividendo = ") ?a -- No modificar estos valores b=rand(9999)+199999 puts(1,"Divisor = ") ?b -- No modificar estos valores puts(1,"Numero de decimales ? ") ans=gets(0) ans=value(ans) c=ans[2] c+=1 puts(1,"nnResultados :") puts(1,"nnpor hardware = ") ?a/b puts(1,"nnpor software = ") d=0 e=0 f=0 g=0 g=a while e<c do while a<b do a-=b d+=1 end while if e<c then puts(1,d+48) e+=1 a*=10 d=0 end if if f=0 then puts(1,".") f=1 end if end while while get_key()=-1 do end while
En este programa usaremos la libreria get.e que viene en la instalación la cual nos ofrece la función gets(0) que espera a que el usuario introduzca un número y devuelve una secuencia la cual es recibida por un object.
include get.e
incluimos la libreria necesitada.
object ans
declaramos un object para la función gets(0)
integer a,b,c,d,e,f,g
definimos varios integer a la vez en vez de integer a integer b
a=rand(999999)
rand(x) es una funcion que devuelve un numero aleatorio entre 1
y 999999 en este proceso aleatorio solo hay numeros enteros.
puts(1," ")
Imprime un caracter o varios dependiendo la longitud de la cadena.
while e<c do
end while
Esta es la manera de crear un bucle infinito mientras e sea menor
que c y se pueden anidar cuantos bucles sean necesarios.
Ejemplo :
integer a, b, c a=10 while a>0 do b=10 while b>0 do c=10 while c>0 do c-=1 decrementamos c end while b-=1 decrementamos b end while a-=1 decrementamos a end while
Estos bucles anidados consumen 10*10*10 iteraciones. Otra forma de hacer bucles es el famoso for
Ejemplo :
for contador=1 to 100 do
end for
La ventaja de for es que no tienes que declarar la variable contador su desventaja es que no puedes modificarla es un bucle invariable a diferencia de while que puede ser infinito o no.
Autor:Vicente Exposito
![]() |
Publicado por: angel carrero |
|
|
Comentarios
Últimas noticias
· factura
Últimos artículos














































