Sei sulla pagina 1di 33

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN. DIVIDE Y VENCERÁS


EN PRIMER LUGAR:
Antes de intentar resolver un problema, párate a pensar en los pasos que necesitas seguir para resolverlo, si es
demasiado complicado, divídelo en problemas más sencillos y resuelve cada uno de ellos por separado, cuando
sepas resolver los problemas sencillos podrás resolver el problema inicial.
INTRODUCCIÓN A LA PROGRAMACIÓN. DIVIDE Y VENCERÁS
EN SEGUNDO LUGAR:
Traduce al lenguaje que hayas elegido tu secuencia de instrucciones para resolver el problema

Para hablar en inglés primero hemos de tener claro lo que queremos decir, a continuación buscamos los
'palabros' y normas del idioma inglés para que nos entienda nuestro interlocutor inglés

En programación, los modos de resolver problemas son casi más importantes que el lenguaje en el que luego
plasmes esa solución, vamos a trabajar esos modos de resolver problemas en general; una vez entendamos el
proceso, lo 'traduciremos' a nuestro lenguaje: Lua
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
En un mismo instante, no necesitamos más de un valor para numPasos, por tanto definiremos (reservaremos
espacio) para una única variable numPasos.

Definimos una única variable numPasos y le vamos asignando los valores que vayamos necesitando
INTRODUCCIÓN A LA PROGRAMACIÓN EN LUA.VARIABLES

Al definir una variable lo que haremos será reservar un espacio para guardar un dato, a este espacio le
asignaremos una etiqueta (nombre de variable)

Imaginemos que tenemos un cajón con una etiqueta en el frontal: el cajón es la variable, la etiqueta es el nombre
de la variable y el contenido del cajón es el dato guardado en esa variable
PROGRAMACIÓN LUA. ALGUNOS OPERADORES...

Para relacionar nuestras variables con otras variables u otros


datos, usamos operadores

De asignación =
Cuando asignamos estamos guardando un valor en una variable

De concatenación ..
Concatenar es unir (lo vemos con más detalle a continuación)

De comparación ==, !=, <=, >=, >, <

Aritméticos +, -, /, *, % (% significa módulo o resto)

Lógicos AND, OR, NOT


Darán un resultado cierto o falso (lo vemos con más detalle a continuación)
PROGRAMACIÓN LUA. OPERADOR DE ASIGNACIÓN (=)

numPasos = 7

En la caja con etiqueta 'numPasos' guardamos valor 7


a partir de ahora:

'a la variable numPasos le asignamos valor 7'

numPasos
----------
7
PROGRAMACIÓN LUA. OPERADOR DE ASIGNACIÓN (=)

numPasos = 9

En la caja con etiqueta 'numPasos' guardamos valor 9


Qué ocurre con el valor anterior?...

Se pierde

numPasos
----------
9
PROGRAMACIÓN LUA
Sentencias. Asignación.

a=5 curso = "Lua"


print (a) --salida: 5 print (curso) --salida: Lua

a = a +1 horasCurso = 40
print (a) --salida: 6 print (horasCurso) --salida: 40

a = a *2 curso = "iOS"
print(a) --salida:12 print(curso) --salida:iOS

b=4 horasCurso = 20

c=a+b print(horasCurso) --salida 20


print(c) --salida 16
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Cadenas (Strings). Operador concatenación en Lua (..)

nombre = "Pepe"
apellido = "Garcia del Monte"

print(nombre) --Pepe
print(apellido) --Garcia del Monte

print(nombre .. apellido) --PepeGarcia del Monte

print(nombre .. " ".. apellido) --Pepe Garcia del Monte


print(apellido ..", ".. nombre) --Garcia del Monte, Pepe
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Expresiones. Operador de comparación (==, ~=)

La evaluación de una expresión siempre da un valor 'cierto' o 'falso' Diferenciemos...o mejor...DIFERENCIEMOS

local nombre = "Pepe" --a la variable nombre le asignamos el valor "Pepe"


nombre == "Pepe" --¿la variable nombre tiene valor Pepe?

nombre = "Pepe": sentencia de asignación (en nombre guardo


"Pepe"
nombre == "Pepe": expresión de comparación (¿nombre está
guardando "Pepe"?)
SENTENCIAS DE COMPARACIÓN (==, ~=)

local estado = "ok"


print (estado == "ok") --dime si la variable estado guarda valor "ok"

local valor = "ok"


print (valor ~= "ok") --dime si la variable estado guarda valor distinto de "ok"
CONVENCIONES LÉXICAS. PALABRAS RESERVADAS.
En Lua los identificadores para las variables (nombre de la variables), pueden estar formados por cualquier
secuencia de letras, dígitos y underscores ('_'), no siendo válidos los identificadores que comiencen por dígito.

Un nombre de variable tiene que comenzar con una letra o underscore. No se permite comenzar por un
número ni contener signos de puntuación.

Debemos evitar los identificadores que comiencen por '_' seguido de una o más letras mayúsculas, ya que este
tipo de identificadores están reservados para identificadores internos de Lua (ej. _VERSION).

Se recomienda nombrar a las variables con identificadores en minúscula y, en caso de que corresponda a más
de una palabra podemos seguir la regla del 'Camel case' (nombreAlumno) o unir con
under_score(nombre_alumno).

Los punto y coma al final de sentencia son opcionales.


PALABRAS RESERVADAS
Las palabras que siguen son 'Palabras Reservadas', no podemos usarlas como identificadores porque ya las usa
Lua.
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Qué tipos de datos podemos guardar en una variable?

Tipos de datos:

nil :indica que a una variable no se le ha asignado todavía ningún valor.

boolean : puede ser true o false (cierto o falso).

number : todos los números son reales, punto flotante doble precisión.

string : es una cadena de caracteres (secuencia de caracteres).

function : un bloque de código con nombre.

table : es similar a los objetos en otros lenguajes de programación(se verán más


adelante).
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores relacionales
<=
a=6
b=4
print(a <= b)

>=
>
<
~=
==
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores relacionales
num1

num1 = 3
num2 = 5

num1 < num2 --true

num1 > num2 --false

num1 == num2 --false

num2 = 1

num1 > num2 --true

num1 < num2 --false

num1 ~= num2 --true

num1 == num2 --false


INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores lógicos
si (te presentas a un examen) y (sacas nota>=5) has aprobado ------------and

si (te presentas a un examen) o (sacas nota>=5) has aprobado ------------or


INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores lógicos
Los operadores lógicos nos van a permitir construir expresiones compuestas de varias condiciones, tantas como
sean necesarias

and: se evalúa a cierto sólo si todas las condiciones son ciertas,


en el resto de casos se evalúa a falso

a=6
b=4
print(a>10 and b>3) --salida: false

a = 12
print(a>10 and b>3) --salida: true

b =2
print(a>10 and b>3) --salida: false

a=5
print(a>10 and b>3) --salida: false
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores lógicos

or: se evalúa a cierto si alguna de las condiciones es cierta

a=6
b=4
print(a>10 or b>3) --salida: true

a = 12
print(a>10 or b>3) --salida: true

b =2
print(a>10 or b>3) --salida: true

a=5
print(a>10 or b>3) --salida: false
INTRODUCCIÓN LENGUAJE DE PROGRAMACIÓN LUA
Operadores lógicos

not: da como resultado el valor lógico contrario al evaluado.


a = true
print(not a) --salida: false

a = false

print(not a) --salida: true


SENTENCIAS. SENTENCIAS CONDICIONALES
Condicional simple: if
a=3
if ( a <= 5 ) then
print("El valor de a ="..a.."es menor o igual que 5")
--El valor de a = 3 es menor o igual que 5
a = a +2

end

print("Valor de a = "..a) --Valor de a = 5


SENTENCIAS. SENTENCIAS CONDICIONALES
Condicional compuesto: if..else
a=3 a=7
if ( a<=5 ) then if ( a<=5 ) then
print("a ="..a.."es menor o igual que 5") print("a ="..a.."es menor o igual que

a = a +2 a = a +2

else else
print("Valor de a = "..a) print("Valor de a = "..a)

end end
EJEMPLOS CONDICIONAL COMPUESTO (IF..ELSE)

local estado= "ready"


if (estado =="ready") then
print("Tarea finalizada")
else
print("Tarea pendiente de finalización")
end

local valor= "ready"


if (valor ~="ready") then
print("Tarea pendiente de finalización")
else
print("Tarea finalizada")
end
SENTENCIAS CONDICIONALES Y OPERADORES LÓGICOS

nombre = "Ana"
apellido = "Martinez"

if (nombre == "Ana" and apellido =="Martinez")


print("Encontrada")

if(nombre =="Ana" or apellido == "Mas")


print("O se llama "..nombre.." o su apellido es "..apellido)
¿COMO AVERIGUAMOS SI UNA NOTA QUE ME HAN PUESTO ES
APROBADO O SUSPENSO?

'Si la nota es mayor o igual que 5 entonces he aprobado, sino he suspendido'


Ya tenemos clara la resolución del problema, únicamente ahora tendremos que 'traducirlo' al lenguaje de
programación que estemos utilizando (Lua)

Supongamos que tenemos una nota:

local nota = 4.5


¿Cómo escribimos en Lua 'Si la nota es mayor o igual que 5 entonces he aprobado, sino he suspendido'???

if (nota >= 5.0) then


print("Aprobado")
else
print("Suspenso")
end
ÁMBITO DE UNA VARIABLE. SCOPE. CHUNKS
Variables globales y locales
Una variable global es accesible en cualquier punto
Una variable local únicamente es accesible dentro del bloque (scope, chunk) donde fue
definida
a=3
if (a<5) then
local a =7
a=a+2
print('Valor de a = '..a)
else
print('Valor de a = '..a)
end

print('Valor de a = '..a)
ÁMBITO DE UNA VARIABLE. SCOPE. CHUNKS
¿Qué salida dará este código?

a=3 --variable global


if (a<5) then
a =7
a=a+2
print('Valor de a = '..a)
else
print('Valor de a = '..a)
end

print('Valor de a = '..a)
ÁMBITO DE UNA VARIABLE. SCOPE. CHUNKS
¿Salida?

a=6 --variable global


if (a<5) then
local a =7
a=a+2
print('Valor de a = '..a)
else
print('Valor de a = '..a)
end

print('Valor de a = '..a)

Potrebbero piacerti anche