Lua Parte I. Overview. Linguagem pequena; Sintaxe simples e clara; Gerenciamento automático de memória; Execução controlada; Tipagem dinâmica.

Tamanho: px
Começar a partir da página:

Download "Lua Parte I. Overview. Linguagem pequena; Sintaxe simples e clara; Gerenciamento automático de memória; Execução controlada; Tipagem dinâmica."

Transcrição

1 Lua Parte I mleal@inf.puc-rio.br 1 Linguagem pequena; Overview Sintaxe simples e clara; Grande poder de descrição de dados; Gerenciamento automático de memória; Execução controlada; Tipagem dinâmica. mleal@inf.puc-rio.br 2

2 Linguagens de Extensão LPs de extensão (scripting languages) são LPs utilizadas para conectar ou configurar componentes de um sistema, geralmente em tempo de execução usam interpretadores. Assumem portanto a existência de componentes desenvolvidos em outras LPs (system programming languages). São menos estruturadas e oferecem um nível maior de abstração e de flexibilidade. Exemplos incluem Visual Basic, Perl, Tcl, Javascript e Lua. mleal@inf.puc-rio.br 3 Lua - Introdução Lua é uma linguagem de extensão projetada para ser usada como linguagem de configuração, acoplada a um programa hospedeiro (escrito na linguagem de programação C). Aplicações em geral podem acoplar códigos em Lua, permitindo prototipagem rápida e acesso programável pelo usuário à tecnologia implementada pela aplicação. mleal@inf.puc-rio.br 4

3 Lua - Introdução Um programa Lua é composto por blocos de código conhecidos como chunks. Todos os comandos e construções de Lua são executados em um único ambiente global. Este ambiente, que guarda todas as variáveis globais e definições de funções, é automaticamente inicializado quando o interpretador é ativado e persiste enquanto o interpretador estiver em execução. mleal@inf.puc-rio.br 5 Nil (nil)( Booleanos (boolean) Strings (string) Números (number) Funções (function) Tabelas (table) Corotinas (thread) Tipos de Lua Dados do usuário (userdata) mleal@inf.puc-rio.br 6

4 Números Números em Lua são sempre ponto flutuante d = 123 e = 4.2 print( d ) 123 print( d + e ) print( d + t ) erro mleal@inf.puc-rio.br 7 Strings Podem ser delimitadas por, ou [[ ]] a = "abc" abc" b = 'def' c = "abc" 'substring' abc" d = 'abc "substring" abc' Caracter de escape: \ \n quebra de linha \t tab \\ caracter \ mleal@inf.puc-rio.br 8

5 Strings com [[ ]] Permite strings com quebra de linha c = [[texto em duas linhas [[aninhado aninhado]] ]] print(c) texto em duas linhas [[aninhado aninhado]] mleal@inf.puc-rio.br 9 Concatenação de Strings Operador:.. e = "abc" abc" ".. 'def' print( e ) abcdef print( e.. [[ghi ghi]] ) abcdefghi mleal@inf.puc-rio.br 10

6 Conversão Implícita Lua converte implicitamente números para strings em concatenações print( 'string'.. 10 ) string10 print( ) 45.6 Lua tenta converter automaticamente strings para números em operações aritméticas print( 10 + '2' ) 12 print( 45 / 'string' ) erro mleal@inf.puc-rio.br 11 Userdata O tipo userdata permite armazenar numa variável de Lua um ponteiro qualquer de C. Este tipo corresponde ao tipo void* de C e só pode ser atribuído ou comparado para igualdade a outro valor de mesmo tipo em Lua. É útil para programadores que fazem a ligação Lua- C, mas não é manipulado por usuários que programam somente em Lua, pois não é possível criar dados deste tipo diretamente em Lua. mleal@inf.puc-rio.br 12

7 Tabelas O tipo table (tabela)) é o tipo mais expressivo da linguagem Lua. Este tipo implementa os chamados vetores associativos, que permitem indexação por valores de qualquer outro tipo,, com exceção do tipo nil. Mapeamento de valor valor (domínio( finito). Campos não incializados têm valor nil. Delimitadas por { }. mleal@inf.puc-rio.br 13 Exemplos tabela = {} -- cria uma tabela tabela[2] = 'abc tabela['string qualquer'] ] = 'valor print( tabela[2] ) abc print( tabela ) table: 10007c28 array = {1, 2, 3, 4} mleal@inf.puc-rio.br 14

8 Inicialização de Tabelas a = {} a.campo = 123 a.outro = 456 a = { campo = 123, outro = 456 } print( a.campo ) 123 print( a["outro outro"] ) 456 a = {} a[1] = primeiro a[2] = a = { primeiro primeiro, } print( a[1] ) primeiro print( a[2] ) 9.6 mleal@inf.puc-rio.br 15 Inicialização de Tabelas b = { 'primeiro', 'segundo'; funcao=fatorial fatorial, tabela = { 34 }} print( b[1] ) primeiro print( b[3] ) nil print( b.funcao funcao(5) ) 120 print( b.tabela tabela[1] ) 34 mleal@inf.puc-rio.br 16

9 Tabelas Campos indexados por strings podem ser acessados de duas formas distintas: tabela.campo = 123 print( tabela.campo ) 123 print( tabela['campo'] ) 123 Qualquer tentativa de indexar um valor que não seja uma tabela gera um erro. tabela = 34.7 tabela[3] = 666 erro print( tabela.campo ) erro mleal@inf.puc-rio.br 17 Tabelas Variáveis contém sempre referências para tabelas. b = tabela tabela[3] = 666 print( b[3] ) 666 print( b ) table: print( tabela ) table: mleal@inf.puc-rio.br 18

10 Estruturas de Dados Vetores vet = {} vet[1] = 2.3 vet[2] = 3.45 vet[3] = 5.0 Matrizes vet = { {}, {}, {} } vet[1][1] = 4 vet[1][2] = 34.5 Records strut = {} strut.campo = valor strut.outro = 2.3 Objetos obj = {} obj.atrib1 = 4 obj.met1 = f mleal@inf.puc-rio.br 19 Booleanos Introduzido apenas a partir da versão 5.0 de Lua. Corresponde aos valores true e false. Tanto false quanto nil tornam uma expressão condicional falsa. Qualquer outro valor torna a expressão condicional verdadeira. mleal@inf.puc-rio.br 20

11 Operadores Operadores relacionais e lógicos: <, >, <=, >=, ==, ~= and, or, not Operadores matemáticos +, -,, *, /, ^ (exponenciação( exponenciação) mleal@inf.puc-rio.br 21 Exemplos if not a then print("variavel a é igual a nil") if 2 ~= 2 then print("não não fez conversão automática") a = 2 b = if a == b then print( b contém um número ) mleal@inf.puc-rio.br 22

12 Variáveis Variáveis em Lua não precisam ser declaradas. Um comando de atribuição funciona como uma declaração implícita,, e o tipo da variável é associado ao dado que ela contém (tipagem dinâmica). Identificadores podem conter letras, números e _, mas não podem começar com números. Variáveis não inicializadas têm valor nil: print( f ) nil mleal@inf.puc-rio.br 23 Expressões Expressões em Lua podem ter vários valores. São avaliadas da esquerda para a direita: x, y, z = 1, 1+1, 3 print(x) 1 print(y) 2 x, y = y, x -- swap print(x) 2 print(y) 1 mleal@inf.puc-rio.br 24

13 Comandos de Seleção if if a ~= 'abc' then print("diferente diferente") if a ~= 'abc' then print("diferente diferente") else print("igual igual") if a == 1 then... elseif a == 3 then... elseif a == 'abc' then... mleal@inf.puc-rio.br 25 Comandos de Repetição while e repeat cont = 1 while cont <= 10 do print( cont ) cont = cont + 1 cont = 1 repeat print( cont ) cont = cont + 1 until cont > 10 mleal@inf.puc-rio.br 26

14 Comandos de Repetição for O comando for pode ser usado da forma tradicional: for cont=1,10,1 do print( cont ) Ou como um iterador: Define o step. Este valor é opcional e o default é 1. table = {x=1, y= 3, z= 5} for index,value in pairs(table) do print (index.. =..value) mleal@inf.puc-rio.br 27 Função next Uma outra forma de percorrer uma tabela Lua é através da função especial next: table = {x=1, y= 3, z= 5} index,value = next(table) while index do print (index.. =..value) index,value = next(table,index) mleal@inf.puc-rio.br 28

15 Funções Funções em Lua são definidas através da declaração function: function farenheit( celsius ) return 9/5*celsius + 32 function fatorial( ( n ) if n == 0 then return 1 return n * fatorial( ( n-1 n 1 ) print( farenheit( ( ) ) print( fatorial( ( 10 ) ) mleal@inf.puc-rio.br 29 Funções Em Lua funções são valores de primeira ordem, podo ser atribuídas a variáveis, passadas como parâmetros ou retornada por funções. Variáveis contém referência para as funções. Funções podem retornar mais de um valor. Não existe qualquer restrição a recursividade. mleal@inf.puc-rio.br 30

16 Exemplos a = function (x,y) return x+y print(a( 5,4 )) 9 print(a) function: show = print print = nil show( soma( 5,4 ) ) 9 function incrementa( ( a, b ) return a+1, b+1 x, y = incrementa( ( 10, 20 ) show( x ) 11 show( y ) 21 mleal@inf.puc-rio.br 31 Funções A passagem de parâmetros acontece por valor. Entretanto,, no caso de tabelas e funções as variáveis armazenam sempre referências. Logo a passagem de parâmetros é equivalente a uma passagem por referência. mleal@inf.puc-rio.br 32

17 Exemplos function muda( ( x ) x=1 a = 2 muda( ( a ) print( a ) 2 function muda( ( tab ) tab.x = 0 tabela = {} tabela.x = 666 muda( tabela ) print( tabela.x ) 0 mleal@inf.puc-rio.br 33 Escopo Lua apresenta escopo estático. O escopo de variáveis inicia-se no primeiro comando após a sua declaração e termina no final do bloco no qual foi declarado. Variáveis locais podem ser declaradas dentro de qualquer bloco através da palavra reservada local. mleal@inf.puc-rio.br 34

18 Exemplo x = variavel global do -- novo bloco local x = x -- novo `x' print(x) --> > 10 x = x+1 do -- outro bloco local x = x+1 -- outro `x' print(x) --> > 12 print(x) --> > 11 print(x) --> > 10 (x global) mleal@inf.puc-rio.br 35 Funções Básicas loadfile(filename) carrega um arquivo como um bloco de código Lua e, caso não existam erros, retorna a função correspondente. dofile(filename) - carrega um arquivo como um bloco de código Lua e, caso não existam erros, executa este bloco no escopo global. loadstring (string) compila string como se fosse um bloco de código Lua e, caso não existam erros, retorna a função correspondente. mleal@inf.puc-rio.br 36

19 Funções Básicas print (o1, o2,...) imprime os objetos o1, o2,, etc, no stdout. type(o) retorna um string descrevo o tipo de o.. Os resultados possíveis são "nil", "number", "string", "boolean, "table", "function", "thread", e "userdata". tostring(o) tenta transformar um objeto o qualquer em string. tonumber(o) tenta transformar o objeto o em um número. unpack(list) - retorna todos os elementos de list.. É equivalente a: return list[1], list[2],..., list[n] mleal@inf.puc-rio.br 37 Funções Básicas table.foreach (table, f) executa a função f para todos os elementos de table. table.getn (table) retorna o tamanho da tabela table se esta for um array. Caso exista um campo com índice n, retorna o valor deste campo. table.sort (table [, comp]) ordena os elementos de table usando a função comp como critério de comparação. Caso comp não seja fornecido como parâmetro, o operador > é utilizado. mleal@inf.puc-rio.br 38

20 Exemplo - Clone function ts.clone(o) if (type(o)~="table") then return o else local new_o ={} for i,v in pairs(o) do new_o[i] = ts.clone(v) return new_o mleal@inf.puc-rio.br 39 Exemplo - Serialização function serialize (o) if type(o) == "number" then write(o) elseif type(o) == "string" then write(format("%q", o)) elseif type(o) == "table" then write("{\n") for k,v in pairs(o) do write(" ", k, " = ") serialize(v) write("\n") write("}\n") else error("cannot serialize a "..type(o)) mleal@inf.puc-rio.br 40

21 Exemplo Lista (LIFO) function insert(list,o) if not(list) then list={} local node ={} node.data = o if list.last then list.last.next = node else list.first = node list.last = node return list function retrieve(list) if (list and list.first) then local o = list.first.data if (list.first==list.last) then list.first=nil list.last=nil else list.first = list.first.next return o else return mleal@inf.puc-rio.br 41

A Linguagem Lua Lua Puc-Rio

A Linguagem Lua Lua Puc-Rio A Linguagem Lua Lua foi projetada e implementada por uma equipe no Tecgraf, o Grupo de Computação Gráfica da Puc-Rio (Pontifícia Universidade Católica do Rio de Janeiro). 1 Exemplos de linguagens de scripts

Leia mais

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1 Descobrindo Lua Sérgio Queiroz de Medeiros smedeiros@inf.puc-rio.br LabLua Campus Party 2009 Sérgio Queiroz de Medeiros Descobrindo Lua 1 Instalando o Interpretador Para baixar o fonte: www.lua.org Para

Leia mais

Introdução à Linguagem Lua Variáveis e Expressões

Introdução à Linguagem Lua Variáveis e Expressões Introdução a Programação em Lua Introdução à Linguagem Lua Variáveis e Expressões 1 Tópicos Principais Programando em Lua Funções Variáveis Operadores e Expressões Entrada e Saída Exemplos 2 Programando

Leia mais

Linguagem de Programação e Compiladores

Linguagem de Programação e Compiladores Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução

Leia mais

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM. Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.

Leia mais

O que é uma variável?

O que é uma variável? Escopo, Ligação e Ambiente de Execução mleal@inf.puc-rio.br 1 O que é uma variável? Uma variável pode ser definida como uma tupla r nome é um string usado para

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

LUA. Deise Miranda Douglas Neves Luane Gomes Naara Soares

LUA. Deise Miranda Douglas Neves Luane Gomes Naara Soares LUA Deise Miranda Douglas Neves Luane Gomes Naara Soares Roteiro Histórico Visão Geral A Linguagem Aplicações Exemplos Práticos Histórico Substituir DEL (Data-Entry Language) e SOL (Linguagem para Descrição

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

Leia mais

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo Linguagem Python Inteligência Artificial Aula 7 Profª Bianca Zadrozny http://www.ic.uff.br/~bianca/ia Introdução Características de Python Rodando programas Módulos Tipos básicos Números e variáveis Strings

Leia mais

Introdução à Engenharia ENG1000

Introdução à Engenharia ENG1000 Introdução à Engenharia ENG1000 Aula 04 Introdução a Linguagem Lua 2016.1 Prof. Augusto Baffa Linguagem Lua Lua é uma linguagem de programação projetada para dar suporte à programação

Leia mais

Tópicos em LP. Fabio Mascarenhas

Tópicos em LP. Fabio Mascarenhas Tópicos em LP Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp2 Objetivo Durante esse curso iremos revisitar as técnicas de implementação de linguagens de programação Veremos novas técnicas

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings Processamento Estatístico da Linguagem Natural Aula 7 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ Linguagem Python Introdução Características de Python Rodando

Leia mais

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos

Leia mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program

Leia mais

Compiladores II. Fabio Mascarenhas

Compiladores II. Fabio Mascarenhas Compiladores II Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/comp2 Tabelas para tudo Tabelas são o único tipo estruturado de Lua Elas podem representar vetores, conjuntos, registros, objetos,

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Linguagem Java - Introdução

Linguagem Java - Introdução Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean

Leia mais

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Noçõ ções básicas b da linguagem Java Profs. Marcel Hugo e Jomi Fred Hübner Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Introduçã ção Origem Funcionamento Vantagens Linguagem

Leia mais

Linguagem de Programação III - PHP

Linguagem de Programação III - PHP Linguagem de Programação III - PHP Aula 1 Scripts PHP, VB.NET da Microsoft, C#, javascript, etc Sintaxe PHP Tudo que estiver delimitado por será processado no servidor. O navegador cliente

Leia mais

Programação Introdução

Programação Introdução PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,

Leia mais

Sintaxe Básica do Java. João Paulo Q. dos Santos

Sintaxe Básica do Java. João Paulo Q. dos Santos Sintaxe Básica do Java João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Plano de Aula Introdução; Método Main; Variáveis: Tipos primitivos; Referências para Objetos; Operadores; Estruturas: Condicionais

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Operações básicas + - / * ** ou pow(a,b) % = ==,!=, , = or, and, not Valor dos operadores 10/3 10.0/3 10/3.0 10%3

Leia mais

Estruturas de Controle

Estruturas de Controle Estruturas de Controle mleal@inf.puc-rio.br 1 Expressões Expressões são as construções básicas de qualquer LP. São utilizadas para a atribuição de valores a variáveis, ou em estruturas de controle condicionais.

Leia mais

Tópicos Especiais em Linguagens de Programação

Tópicos Especiais em Linguagens de Programação Tópicos Especiais em Linguagens de Programação Aula 03 Introdução à Linguagem Lua Edirlei Soares de Lima Linguagem Lua Lua é uma linguagem de programação projetada para dar suporte

Leia mais

MCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição

MCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição 3/26/18 MCG114 Programação de Computadores I Profa. Comandos de condição 20:32:09 1 2 Até agora... Todos os programas têm fluxo de execução único As instruções que serão executadas são sempre as mesmas,

Leia mais

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo

Leia mais

JavaScript (Elementos de Programação e Programação Básica)

JavaScript (Elementos de Programação e Programação Básica) Linguagem de Programação para Web JavaScript (Elementos de Programação e Programação Básica) Prof. Mauro Lopes 1 Objetivos Iniciaremos aqui o nosso estudo sobre a Linguagem de Programação JavaScript. Apresentaremos

Leia mais

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com

Leia mais

Lua. Simple things simple, complex things possible. André Martinelli, Breno Krohling, Israel Santos, Matheus Vieira, Pedro Henrique Flores

Lua. Simple things simple, complex things possible. André Martinelli, Breno Krohling, Israel Santos, Matheus Vieira, Pedro Henrique Flores Lua ple things simple, complex things possible André Martinelli, Breno Krohling, Israel Santos, Matheus Vieira, Pedro Henrique Flores 1 Introdução 2 Histórico Desenvolvida pelo grupo Tecgraf da PUC-Rio

Leia mais

Estruturas de controle no nível de sentença

Estruturas de controle no nível de sentença Estruturas de controle no nível de sentença Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons

Leia mais

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS Curso de PHP FATEC - Jundiaí TIPOS DE VARIÁVEIS - Inteiros - Ponto Flutuante - String - Array - Objetos - Booleanos PHP utiliza checagem de tipos dinâmica, ou seja, uma variável vel pode conter valores

Leia mais

Introdução ao Fortran 90-3

Introdução ao Fortran 90-3 Introdução ao Fortran 90-3 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

1.1 o que é um algoritmo... 6

1.1 o que é um algoritmo... 6 sumário introdução 1 1 fundamentos 5 1.1 o que é um algoritmo... 6 1.1.1 algoritmos executados por um computador...7 1.1.2 comandos básicos executados por um computador...11 1.1.3 da necessidade do desenvolvimento

Leia mais

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por

Leia mais

Linguagem de programação: Pascal

Linguagem de programação: Pascal Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este

Leia mais

PLANO DE UNIDADE DIDÁTICA- PUD

PLANO DE UNIDADE DIDÁTICA- PUD Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos + Introdução a JAVA Variáveis, tipos, expressões, comandos e blocos +Roteiro 2 Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos Introdução a JAVA Variaveis, tipos, expressões, comandos e blocos Roteiro Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 8 (30/09/15) Comentários sobre exercícios propostos Desvio condicional Simples Composto Exercícios Propostos

Leia mais

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

INSTITUTO FEDERAL CATARINENSE Campus Ibirama INSTITUTO FEDERAL CATARINENSE Campus Ibirama Estruturas de Decisão Professor Eduardo Stahnke Estruturas de Decisão As estruturas de decisão são utilizadas quando existe a necessidade de verificar condições

Leia mais

Revisão. Profa Marina Gomes

Revisão. Profa Marina Gomes Revisão Profa Marina Gomes Algoritmos Na construção de um programa, o problema que o algoritmo representa é composto por três fases. Entrada: dados de entrada do algoritmo. Processamento: ações sobre os

Leia mais

3 Co-rotinas completas assimétricas

3 Co-rotinas completas assimétricas 3 Co-rotinas completas assimétricas O objetivo deste capítulo é prover uma definição precisa para o nosso conceito de co-rotinas completas assimétricas. Em primeiro lugar, descrevemos os operadores básicos

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de

Leia mais

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema Python Listas e Strings Prof. Paulo Henrique Ribeiro Gabriel (Com base no material do Prof. André Backes) Listas Por que usar listas? Listas As variáveis declaradas até agora são capazes de armazenar um

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que

Leia mais

Laboratório de Programação II

Laboratório de Programação II Laboratório de Programação II Aula 02 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... 01 Introdução à linguagem C;

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.4. Estruturas de Controle 3.4.1. Comandos

Leia mais

Introdução a Programação

Introdução a Programação Introdução a Programação Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula 02 Primeiro Programa Roteiro Primeiros Passos Variáveis Expressões Comandos

Leia mais

Linguagens de Programação. Marco A L Barbosa

Linguagens de Programação. Marco A L Barbosa Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Programação II. Aula 3

Programação II. Aula 3 Programação II Aula 3 Algoritmo Algoritmo: REVISÃO qualquer procedimento bem definido que toma algum valor como entrada e produz algum valor como saída. Técnica de refinamentos sucessivos: dividir um processo

Leia mais

Tipos Primitivos, estruturas de iteração e decisão.

Tipos Primitivos, estruturas de iteração e decisão. Tipos Primitivos, estruturas de iteração e decisão. André Luis Meneses Silva andreluis.ms@gmail.com http://br.geocities.com/programacao2ufs/ Agenda Tipos Primitivos de Dados Variáveis e Constantes es Comandos

Leia mais

Expressões e sentença de atribuição

Expressões e sentença de atribuição Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays Programação Orientada a Objetos para Redes de Computadores Elias Mitre http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Arrays Estruturas de dados que contêm itens

Leia mais

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc. O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes

Leia mais

Capítulo 8. Estruturas de Controle no Nível de Sentença

Capítulo 8. Estruturas de Controle no Nível de Sentença Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação

Leia mais

Fundamentos de Programação em Python

Fundamentos de Programação em Python Fundamentos de Programação em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 23 de junho de 2017 Ementa do

Leia mais

Introdução à linguagem Perl

Introdução à linguagem Perl Introdução à linguagem Perl Assistente de ensino: Marcelo da Silva Reis 1 Professor: Fabio Kon 1 1 Instituto de Matemática e Estatística, Universidade de São Paulo MAC0211 - Laboratório de Programação

Leia mais

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático

Leia mais

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias SCC 12 - Introdução à Programação para Engenharias Tipos de Dados e Variáveis Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes

Leia mais

Introdução ao Fortran 90-4

Introdução ao Fortran 90-4 Introdução ao Fortran 90-4 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de

Leia mais

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais

Construção de Sites 2. Prof. Christiano Lima Santos

Construção de Sites 2. Prof. Christiano Lima Santos Construção de Sites 2 Prof. Christiano Lima Santos Introdução a JavaScript Parte 01 Como usar JavaScript em uma página 1.1 Forma #1 aplicando diretamente à tag HTML teste

Leia mais

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

Leia mais

Linguagens de Programação Aula 8

Linguagens de Programação Aula 8 Linguagens de Programação Aula 8 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Os tipos de dados de uma linguagem são uma grande parte do que determina o estilo e a utilidade de uma linguagem

Leia mais

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Expressões e Comandos Prof. Tiago Alves de Oliveira Expressões Uma expressão é uma frase do programa que necessita ser avaliada e produz como resultado um

Leia mais

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉCNICO DE INFORMÁTICA - SISTEMAS 782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar

Leia mais

Estruturas de Dados em Python

Estruturas de Dados em Python Estruturas de Dados em Python Carlos Camarão de Março de 7 Introdução Na segunda parte do curso vamos aprender a programar com estruturas (ou coleções) de dados, em Python. Python é uma linguagem orientada

Leia mais

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão

Leia mais

Aula 4 Estruturas de Controle

Aula 4 Estruturas de Controle UNIP Universidade Paulista Ciência da Computação Aula 4 Estruturas de Controle Prof. Célio Ricardo Castelano 1 Tópicos Abordados 1) Instruções de seleção em Java: 2) Instruções de repetição em Java: 2

Leia mais

Desenvolvimento de Sistemas para WEB Site:

Desenvolvimento de Sistemas para WEB Site: Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Desenvolvimento de Sistemas para WEB Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com Introdução

Leia mais

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,

Leia mais

Lua. mais uma linguagem dinâmica. linguagem de descrição de dados. ênfase em scripting. alguma similaridade com Python, Perl, e outras

Lua. mais uma linguagem dinâmica. linguagem de descrição de dados. ênfase em scripting. alguma similaridade com Python, Perl, e outras Lua + Löve Lua mais uma linguagem dinâmica alguma similaridade com Python, Perl, e outras linguagem de descrição de dados ênfase em scripting comunicação inter-linguagens tipagem dinâmica dinamismo verificações

Leia mais

Análise Semântica e Tratamento de Erros Dependentes de Contexto

Análise Semântica e Tratamento de Erros Dependentes de Contexto Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

Paradigmas de Linguagem de Programação. Paradigma Imperativo

Paradigmas de Linguagem de Programação. Paradigma Imperativo Paradigmas de Linguagem de Programação Paradigma Imperativo Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; São também chamadas de procedurais;

Leia mais

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR PIC - PROGRAMAÇÃO LINGUAGEM C AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br UBERABA MG 1º SEMESTRE 2009 FLUXOGRAMAS FLUXOGRAMAS Fluxograma para somar dois números e guardar em uma terceira

Leia mais

Computação I. Prof. Miguel Elias Mitre Campista.

Computação I. Prof. Miguel Elias Mitre Campista. Computação I Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Introdução ao Pascal Níveis de Linguagens de Programação Linguagens declarativas Linguagens

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Abaixo iremos pormenorizar cada um de seus atributos:

Abaixo iremos pormenorizar cada um de seus atributos: 1 PYTHON Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. A linguagem foi projetada com a filosofia

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Programação I Estruturas de Decisão

Programação I Estruturas de Decisão Programação I Estruturas de Decisão Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Expressões Lógicas Em C, não existe um tipo específico para a representação de valores lógicos.

Leia mais