Mais operadores e fun¸ c˜ oes pr´ e-definidas
INF1031 – Introdu¸c˜ao a Computa¸c˜ao
Noemi Rodriguez
Departamento de Inform´atica, PUC-Rio
2 de Setembro de 2020
d´ uvidas?
Linguagem Lua: conceitos b´ asicos
Exemplo de uso de operadores
I Converter a altura em cent´ımetros para p´es e polegadas I Exemplo: h= 180cm−→5 p´es e 10.866 pol
Sabe-se:
1 p´e −→ 30.48 cm 1 pol −→ 2.54 cm
p r i n t( 1 8 0 / 3 0 . 4 8 ) - - > 5 . 9 0 5 5 1 1 8 1 1 0 2 3 6
p r i n t( 1 8 0 % 3 0 . 4 8 ) - - > 2 7 . 6
- - > = 3 0 . 4 8 * 0 . 9 0 5 5 1 1 8 1 1 0 2 3 6
I Quantos p´es (n´umero inteiro) tem em 180 cm? I Quantas pol tem no que restou?
Linguagem Lua: conceitos b´ asicos
Exemplo de uso de operadores
I Converter a altura em cent´ımetros para p´es e polegadas I Exemplo: h= 180cm−→5 p´es e 10.866 pol
Sabe-se:
1 p´e −→ 30.48 cm 1 pol −→ 2.54 cm
p r i n t( 1 8 0 / 3 0 . 4 8 ) - - > 5 . 9 0 5 5 1 1 8 1 1 0 2 3 6
p r i n t( 1 8 0 % 3 0 . 4 8 ) - - > 2 7 . 6
- - > = 3 0 . 4 8 * 0 . 9 0 5 5 1 1 8 1 1 0 2 3 6
I Quantos p´es (n´umero inteiro) tem em 180 cm? I Quantas pol tem no que restou?
Linguagem Lua: conceitos b´ asicos
Exemplo de uso de operadores
I Converter a altura em cent´ımetros para p´es e polegadas I Exemplo: h= 180cm−→5 p´es e 10.866 pol
Sabe-se:
1 p´e −→ 30.48 cm 1 pol −→ 2.54 cm
p r i n t( 1 8 0 / 3 0 . 4 8 ) - - > 5 . 9 0 5 5 1 1 8 1 1 0 2 3 6
p r i n t( 1 8 0 % 3 0 . 4 8 ) - - > 2 7 . 6
- - > = 3 0 . 4 8 * 0 . 9 0 5 5 1 1 8 1 1 0 2 3 6
I Quantos p´es (n´umero inteiro) tem em 180 cm? I Quantas pol tem no que restou?
Linguagem Lua: conceitos b´ asicos
Exemplo de uso de operadores
I Converter a altura em cent´ımetros para p´es e polegadas I Exemplo: h= 180cm−→5 p´es e 10.866 pol
Sabe-se:
1 p´e −→ 30.48 cm 1 pol −→ 2.54 cm
p r i n t( 1 8 0 / 3 0 . 4 8 ) - - > 5 . 9 0 5 5 1 1 8 1 1 0 2 3 6
p r i n t( 1 8 0 % 3 0 . 4 8 ) - - > 2 7 . 6
- - > = 3 0 . 4 8 * 0 . 9 0 5 5 1 1 8 1 1 0 2 3 6
I Quantos p´es (n´umero inteiro) tem em 180 cm? I Quantas pol tem no que restou?
Linguagem Lua: conceitos b´ asicos
Exemplo de uso de operadores
I Converter a altura em cent´ımetros para p´es e polegadas I Exemplo: h= 180cm−→5 p´es e 10.866 pol
Sabe-se:
1 p´e −→ 30.48 cm 1 pol −→ 2.54 cm
p r i n t( 1 8 0 / 3 0 . 4 8 ) - - > 5 . 9 0 5 5 1 1 8 1 1 0 2 3 6
p r i n t( 1 8 0 % 3 0 . 4 8 ) - - > 2 7 . 6
- - > = 3 0 . 4 8 * 0 . 9 0 5 5 1 1 8 1 1 0 2 3 6
I Quantos p´es (n´umero inteiro) tem em 180 cm?
I Quantas pol tem no que restou?
Linguagem Lua: conceitos b´ asicos
Converter a altura em cent´ımetros para p´es e polegadas I Usando fun¸c˜ao math.floor(x)
I Retorna o maior inteiro menor quex
a l t u r a = i o.r e a d(" * n ")
p e s = m a t h.f l o o r( a l t u r a / 3 0 . 4 8 ) p o l = ( a l t u r a % 3 0 . 4 8 ) / 2 . 5 4 p r i n t(" p e s : ", p e s ," p o l : ", p o l )
Linguagem Lua: conceitos b´ asicos
Converter a altura em cent´ımetros para p´es e polegadas I Usando Lua 5.3
I Introduz operadorfloor division(//)
a l t u r a = i o.r e a d(" * n ")
p e s = a l t u r a / / 3 0 . 4 8 - - v a l o r i n t e i r o d a d i v i s ~a o p o l = ( a l t u r a % 3 0 . 4 8 ) / 2 . 5 4
p r i n t(" p e s : ", p e s ," p o l : ", p o l )
Fun¸c˜ oes e M´ odulos
Fun¸c˜oes pr´e-definidas
I Definidos no ambiente global I Definidos dentro de m´odulos
Exemplos defun¸c˜oes globais pr´e-definidas em Lua I print: exibe valor na tela
I type: retorna uma string indicando o tipo do valor I ...
Exemplos defun¸c˜oes em m´odulos pr´e-definidas em Lua I io: m´odulo de fun¸c˜oes de entrada e sa´ıda (input & output)
I io.read: fun¸c˜ao para capturar (ler) valores I ...
I math: m´odulo de fun¸c˜oes matem´aticas
I math.floor: fun¸c˜ao que extrai maior inteiro do valor I math.pi: valor deπ
I ...
Fun¸c˜ oes e M´ odulos
Fun¸c˜oes pr´e-definidas
I Definidos no ambiente global I Definidos dentro de m´odulos
Exemplos defun¸c˜oes globais pr´e-definidas em Lua I print: exibe valor na tela
I type: retorna uma string indicando o tipo do valor I ...
Exemplos defun¸c˜oes em m´odulos pr´e-definidas em Lua I io: m´odulo de fun¸c˜oes de entrada e sa´ıda (input & output)
I io.read: fun¸c˜ao para capturar (ler) valores I ...
I math: m´odulo de fun¸c˜oes matem´aticas
I math.floor: fun¸c˜ao que extrai maior inteiro do valor I math.pi: valor deπ
I ...
Fun¸c˜ oes e M´ odulos
Fun¸c˜oes pr´e-definidas
I Definidos no ambiente global I Definidos dentro de m´odulos
Exemplos defun¸c˜oes globais pr´e-definidas em Lua I print: exibe valor na tela
I type: retorna uma string indicando o tipo do valor I ...
Exemplos defun¸c˜oes em m´odulos pr´e-definidas em Lua I io: m´odulo de fun¸c˜oes de entrada e sa´ıda (input & output)
I io.read: fun¸c˜ao para capturar (ler) valores I ...
Opera¸c˜ oes b´ asicas de entrada e sa´ıda
Fun¸c˜ao b´asica de leitura: io.read ([format])
I Formato *n: lˆe (captura) valor num´erico; retornanil se falhar
a = i o.r e a d(" * n ") - - c a p t u r a v a l o r n u m ´e r i c o x , y = i o.r e a d(" * n "," * n ") - - c a p t u r a d o i s v a l o r e s
I Outros formatos
I *l: lˆe a linha (cadeia de caracteres); ´e o formato default I *a: lˆe todo o conte´udo fornecido (m´ultiplas linhas)
l = i o.r e a d(" * l ") - - c a p t u r a t e x t o d a l i n h a
Opera¸c˜ oes b´ asicas de entrada e sa´ıda
Fun¸c˜ao b´asica de leitura: io.read ([format])
I Formato *n: lˆe (captura) valor num´erico; retornanil se falhar
a = i o.r e a d(" * n ") - - c a p t u r a v a l o r n u m ´e r i c o x , y = i o.r e a d(" * n "," * n ") - - c a p t u r a d o i s v a l o r e s
I Outros formatos
I *l: lˆe a linha (cadeia de caracteres); ´e o formato default I *a: lˆe todo o conte´udo fornecido (m´ultiplas linhas)
l = i o.r e a d(" * l ") - - c a p t u r a t e x t o d a l i n h a
Opera¸c˜ oes b´ asicas de entrada e sa´ıda
Fun¸c˜oes de escrita
I Fun¸c˜ao prim´aria de sa´ıda: print I Exibe valores separados por espa¸cos I Cadaprint exibe uma linha diferente
x = 5
p r i n t( x , 8 ) - - > 5 8 p r i n t( x + 2 ) - - > 7
I Fun¸c˜ao b´asica de escrita formatada: io.write (...) I Deve-se explicitar espa¸cos e mudan¸cas de linha (\n)
I Total controle do formato de sa´ıda s = " a l o "
i o.w r i t e( 2 3 , s ," \ n ") - - > 2 3 a l o i o.w r i t e( 2 3 ," ", s ," \ n ") - - > 2 3 a l o i o.w r i t e( 2 3 ," \ n ", s ," \ n f i m \ n ") - - > 2 3
- - > a l o - - > f i m
Opera¸c˜ oes b´ asicas de entrada e sa´ıda
Fun¸c˜oes de escrita
I Fun¸c˜ao prim´aria de sa´ıda: print I Exibe valores separados por espa¸cos I Cadaprint exibe uma linha diferente
x = 5
p r i n t( x , 8 ) - - > 5 8 p r i n t( x + 2 ) - - > 7
I Fun¸c˜ao b´asica de escrita formatada: io.write (...) I Deve-se explicitar espa¸cos e mudan¸cas de linha (\n)
I Total controle do formato de sa´ıda s = " a l o "
i o.w r i t e( 2 3 , s ," \ n ") - - > 2 3 a l o i o.w r i t e( 2 3 ," ", s ," \ n ") - - > 2 3 a l o
Opera¸c˜ oes com texto: o m´ odulo string
Manipula¸c˜ao de cadeias de caracteresou strings I string.lower
I string.upper I ...
I string.len
s t r i n g . l e n (" a l o a l o ") - - > 7
I string.find
s t r i n g . f i n d (" a l o a l o ", " l o ") - - > 2 , 4 - - p o s i ¸c ~a o o n d e e n c o n t r o u !
I e muitas outras que veremos depois
Opera¸c˜ oes com texto: o m´ odulo string
Manipula¸c˜ao de cadeias de caracteresou strings I string.lower
I string.upper I ...
I string.len
s t r i n g . l e n (" a l o a l o ") - - > 7
I string.find
s t r i n g . f i n d (" a l o a l o ", " l o ") - - > 2 , 4 - - p o s i ¸c ~a o o n d e e n c o n t r o u !
I e muitas outras que veremos depois
Opera¸c˜ oes com texto: o m´ odulo string
Manipula¸c˜ao de cadeias de caracteresou strings I string.lower
I string.upper I ...
I string.len
s t r i n g . l e n (" a l o a l o ") - - > 7
I string.find
s t r i n g . f i n d (" a l o a l o ", " l o ") - - > 2 , 4 - - p o s i ¸c ~a o o n d e e n c o n t r o u !
I e muitas outras que veremos depois
Opera¸c˜ oes com texto: o m´ odulo string
maior controle sobre formato de sa´ıda:
string.format
I cria nova string, substituindo cada diretiva pelo valor correspondente
I string.format("x = %d, y = %d", 10, 10)
p r i n t( s t r i n g . f o r m a t (" % d p e s e % d p o l e g a d a s ", p e s , p o l ) )
Opera¸c˜ oes com texto: o m´ odulo string
maior controle sobre formato de sa´ıda:
string.format
I cria nova string, substituindo cada diretiva pelo valor correspondente
I string.format("x = %d, y = %d", 10, 10)
p r i n t( s t r i n g . f o r m a t (" % d p e s e % d p o l e g a d a s ", p e s , p o l ) )