Asignación


In [1]:
a = 1 + 1


Out[1]:
2

In [2]:
b = "hola mundo"


Out[2]:
"hola mundo"

In [3]:
α = 25
β = 35


Out[3]:
35

In [4]:
α + β


Out[4]:
60

Se debe tener cuidado al asignar como variables las siguientes constantes matemáticas.


In [5]:
pi


Out[5]:
π = 3.1415926535897...

In [6]:
e


Out[6]:
e = 2.7182818284590...

In [7]:
eu


Out[7]:
e = 2.7182818284590...

In [8]:
catalan


Out[8]:
catalan = 0.9159655941772...

In [9]:
eulergamma


Out[9]:
γ = 0.5772156649015...

In [10]:
golden


Out[10]:
φ = 1.6180339887498...

Tipos


In [11]:
x = 1
y = 2.0
u = 1 + 2im
v = 1.1 + 2.3im
a = true
b = "hola"
c = 'c'
d = "año"

println(typeof(x))
println(typeof(y))
println(typeof(u))
println(typeof(v))
println(typeof(a))
println(typeof(b))
println(typeof(c))
println(typeof(d))


Int32
Float64
Complex{Int32}
Complex{Float64}
Bool
ASCIIString
Char
UTF8String

También podemos usar números de precisión arbitraria:


In [12]:
factorial(12)


Out[12]:
479001600

In [13]:
factorial(13) # error por desbordamiento


OverflowError()
while loading In[13], in expression starting on line 1

 in factorial_lookup at combinatorics.jl:27
 in factorial at combinatorics.jl:39

In [14]:
x = big(13)   # número de entero de precisión arbitraria


Out[14]:
13

In [15]:
typeof(x)


Out[15]:
BigInt (constructor with 10 methods)

In [16]:
factorial(x)


Out[16]:
6227020800

In [17]:
y = big(12.2) # número de punto flotante de precisión arbitraria


Out[17]:
1.2199999999999999289457264239899814128875732421875e+01 with 256 bits of precision

In [18]:
typeof(y)


Out[18]:
BigFloat (constructor with 14 methods)

Operaciones aritméticas

Recordemos que los números se representan en forma aproximada


In [19]:
1.1 + 0.1


Out[19]:
1.2000000000000002

In [20]:
0.01 + 0.2


Out[20]:
0.21000000000000002

Las operaciones aritméticas son binarias y existe precedencia de operadores


In [21]:
1 + 2


Out[21]:
3

In [22]:
1 - 2 + 3 # -1 + 3


Out[22]:
2

In [23]:
1/2


Out[23]:
0.5

In [24]:
1\2 # división inversa


Out[24]:
2.0

In [25]:
1//2 # número fraccional


Out[25]:
1//2

Coeficientes literales


In [26]:
a = 1
b = 2
c = 3


Out[26]:
3

In [27]:
2a^2 + 4b + c


Out[27]:
13

In [28]:
2(a^2) + 4(b) + c


Out[28]:
13

In [29]:
1.2a^1.5 + 7.5b + c


Out[29]:
19.2

In [30]:
1.2(a^1.5) + 7.5(b) + c


Out[30]:
19.2

Actualización de variables


In [31]:
x = 1


Out[31]:
1

In [32]:
x = x + 3


Out[32]:
4

In [33]:
y = 1


Out[33]:
1

In [34]:
y -= 5


Out[34]:
-4

Comparación


In [35]:
1 == 1


Out[35]:
true

In [36]:
1.0 == 1


Out[36]:
true

In [37]:
1.1 > 1.2


Out[37]:
false

In [38]:
1.2 > 1.1


Out[38]:
true

In [39]:
1.2 == 1.2


Out[39]:
true

In [40]:
1 >= 1.0


Out[40]:
true

In [41]:
2 <= 3


Out[41]:
true

In [42]:
2 != 2


Out[42]:
false

En números de punto flotante existen +0 y -0


In [43]:
-0.0 == 0.0


Out[43]:
true

Si se quiere saber si son idénticos usar isequal()


In [44]:
isequal(-0.0, 0.0)


Out[44]:
false

In [45]:
isequal(1.0, 1)


Out[45]:
true

Valores especiales de numeros de punto flotante


In [46]:
1/0 # ∞


Out[46]:
Inf

In [47]:
-1/0 # -∞


Out[47]:
-Inf

In [48]:
0/0 # indeterminado


Out[48]:
NaN

In [49]:
1 + Inf


Out[49]:
Inf

In [50]:
1 - Inf


Out[50]:
-Inf

In [51]:
Inf + Inf


Out[51]:
Inf

In [52]:
Inf - Inf


Out[52]:
NaN