Post on 19-Jan-2016
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br2
Aulas1 - Conceitos de Algoritmo2 - Compiladores, Dados, Variáveis, Comandos leia e escreva3 - Comando de atribuição, Expressões Aritméticas4 - Comando Condicional – SE5 - Comando Condicional – CASO6 - Comando de Repetição – PARA7 - Séries Matemáticas8 - Comando de Repetição – REPITA9 - Comando de Repetição – ENQUANTO10 – Vetor11 – Matriz12 – Mapeamento ALGORITMO x PASCAL
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br3
Aula 1
Conceito de ALGORITMOS Estruturas básicas de um Algoritmo
Seqüencial Condicional Repetição
Exercício
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br4
Conceitos de Algoritmos
Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma tarefa;
Algoritmo é uma seqüência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional;
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br5
Exemplos de Algoritmos
Como fazer um sanduíche?Passo 1 – Pegar um pão
Passo 2 – Cortar o pão ao meio
Passo 3 – Pegar a maionese
Passo 4 – Passar a maionese no pão
Passo 5 – Pegar o alface e o tomate
Passo 6 – Cortar o tomate
Passo 7 – Colocar alface e o tomate no pão
Passo 8 – Pegar o hambúrguer
Passo 9 – Fritar o hambúrguer
Passo 10 – Colocar o hambúrguer no pão
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br6
Um robô conseguiria executar o algoritmo e fazer um sanduíche?
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br7
Como fazer um sanduíche (versão 2)Passo 1 – Pegar um pão
Passo 2 – Cortar o pão ao meio em sentido longitudinal
Passo 3.1 – Abrir a geladeira
Passo 3.2 – Pegar o vidro de maionese na geladeira
Passo 3.3 – Fechar a porta da geladeira
Passo 3.4 – Girar a tampa do vidro de maionese em sentido horário
Passo 3.5 – Tirar a tampa
Passo 3.6 – Pegar uma espátula no armário
Passo 3.7 – Colocar a espátula dentro do vidro de maionese
Passo 3.8 – Pegar um pouco de maionese
Passo 3.9 – Tirar a espátula do vidro
Passo 4 – Passar a maionese no pão
...
Refinamento do passo 3 “Pegar a
maionese”
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br8
Estruturas básicas de um Algoritmo Estrutura Seqüencial
Estrutura Condicional (ou seletiva)
Estrutura de Repetição Repetições definidas Repetições indefinidas
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br9
Estrutura Seqüencial
As ações são executadas uma após a outra, na mesma ordem em que aparecem:
Trazer a cesta com batatas Pegar uma panela do armário Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br10
Estrutura Condicional - SE
A execução ou não de uma ação depende se o resultado de uma condição é verdadeiro ou falso
Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Condição
Ação
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br11
Estrutura Condicional - SE
O se..então.. é uma estrutura condicional ou seletiva, onde a ação (ou mais de uma) é executada somente se o resultado da condição for verdadeiro:
Se sua roupa é clara então Colocar o avental Lavar as mãos Pentear o cabelo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br12
Estrutura Condicional - SE
Podemos utilizar também se..então..senão... para tornar a seleção de ações mais completa:
Se sua roupa é clara então Colocar o avental Lavar as mãos
Senão Colocar a toca
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br13
Estrutura de Repetição Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Pegar uma batata na cesta Lavar a batata Descascar a batata ... ... Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
50 vezes
Refinamento do passo “Descascar
as batatas”
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br14
Estrutura de Repetição - DEFINIDA Trazer a cesta com batatas
Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Repetir 50 vezes Pegar uma batata na cesta Lavar a batata Descascar a batata
Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
E se não soubermos quantas batatas tem no cesto?
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br15
Estrutura de Repetição - INDEFINIDA Trazer a cesta com batatas
Pegar uma panela no armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Enquanto ainda tivermos batatas no cesto Pegar uma batata na cesta Lavar a batata Descascar a batata
Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br16
A linguagem é um elemento chave na construção de Algoritmos
Schlieben sie Ihre augen. Fermez vos yeux. Cierre sus ojos. Close your eyes. Feche seus olhos.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br17
Conclusão
Para a construção e execução de algoritmos é necessário que tanto a pessoa que dará as ordens quanto a pessoa (ou máquina) que executará o algoritmo entendam a mesma linguagem e, dessa forma, consigam comunicar-se.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br18
Exercício (para entregar)
Suponha que você não possa vir a escola em um dia de entrega do trabalho final de curso. Faça um ALGORITMO que sirva para programar um robô que será acionado na calçada em frente a entrada da FUMEC. O robô deverá ir até o laboratório onde a aula está acontecendo, imprimir o trabalho, que está armazenado na rede, e entregar o mesmo ao professor, quando se auto desligará.
Instruções no próximo slide...
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br19
Exercício (para entregar) Fazer no Word; Valores mínimos para o algoritmo: 50 ações (1 verbo por
ação), 2 estruturas condicionais e 2 estruturas de repetição; Valor: 1 ponto extra (se estiver dentro das regras); Forma de entrega: “Área do Aluno” ou “SINEF” na página da
escola na internet (Apoio Didático / Entrega de Trabalhos); Data máxima de entrega: FINAL DO DIA; Poderá ser feito em dupla (somente um elemento da dupla
entregará o exercício); Colocar seu nome, e de seu colega (se for o caso), no início
do algoritmo; Exercícios sem nome, iguais e mal feitos serão zerados.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br20
Aula 2 Compiladores Compilador VisuAlg Dados Identificadores Variáveis Comando de entrada de dados – LEIA Comando de saída de dados – ESCREVA Exercícios
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br21
Compiladores São programas utilizados para se criar outros programas; Etapas:
Edição: digitação e alteração do programa; Compilação: verificação de erros de sintaxe do programa; Execução: rodar o programa, entrando com os dados e obtendo
os resultados. Erros que podem aparecer:
Sintaxe: identificado pelo compilador na etapa de compilação; Lógica: identificado pelo usuário na etapa de execução.
Exemplos: Visualg = Portugol PascalZIM = Pascal Delphi = Pascal Dreamworks = HTML
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br22
Compilador VisuAlg
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br23
Compilador VisuAlg
Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Novo (Ctrl-N): Cria um novo "esqueleto" de algoritmo, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é gravado, o VisuAlg pede seu nome e localização.Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br24
Compilador VisuAlg
Executar (F9): Inicia (ou continua) a execução automática do algoritmo.Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo.Passo (F8): Inicia (ou continua) a execução linha por linha do algoritmo, dando ao usuário a oportunidade de acompanhar o fluxo de execução e os valores das variáveis.Parar (Ctrl-F2): Termina imediatamente a execução do algoritmo. Evidentemente, este botão fica desabilitado quando o algoritmo não está sendo executado.Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br25
Estrutura básica de um Algoritmo no VisuAlg
algoritmo "semnome"// Função :// Autor :// Data : 1/8/2011// Seção de declaraçõesvar
inicio// Seção de Comandos
fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br26
Exemploalgoritmo "CalcSomaMedia"var n1, n2, n3, soma : inteiro media : realInicio escreva("Informe um número = ") leia(n1) escreva("Informe outro número = ") leia(n2) escreva("Informe mais um número = ") leia(n3) soma <- n1 + n2 + n3 media <- soma / 3 escreval("Média = ",media)fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br27
Dados
O dado é a própria essência de um algoritmo ou programa de computador.
Ele pode ser informado pelo usuário, gerado pelo programa, processado pelo computador, e impresso para o usuário como uma informação.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br28
Tipos de dados
Tipos de dados são maneiras pelas quais os dados são tratados
Constantes: são aqueles dados cujos valores não se alteram durante a execução do algoritmo
Variáveis: são aqueles dados cujos valores podem ser alterados durante a execução do algoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br29
Tipos de dados Classificação
Simples Numéricos
Inteiro Real
Não Numéricos Lógico Caractere
Estruturados Arquivos Vetores Matrizes
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br30
Tipos de dados
Numéricos INTEIRO
São os valores numéricos inteiros (sem casas decimais) Podem ser valores positivos ou negativos Variando entre -999999999 e 999999999 Ex: 0, -2, 47, 58, 123220, -34235
REAL São os valores numéricos que possuem casas decimais Podem ser valores positivos ou negativos Ex: 0.12, -45.17, 3.14159, 0.000001, 2
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br31
Tipos de dados Não Numéricos
LÓGICO Representadas por apenas 2 valores:
Verdadeiro Falso
CARACTERE Representadas por uma seqüência de caracteres
(letras, números ou caracteres especiais) Textos em geral Geralmente são delimitadas por aspas (“ ”) Ex: “Rua”, “Computação”, “20/10/1998”, “1234”
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br32
Identificadores
Todas as variáveis ou constantes são identificadas por um nome que chamamos de IDENTIFICADOR
Exemplos: Salario Idade J Xpto NomeDaVariavel
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br33
Identificadores Regras para formação de identificadores
Só podem conter LETRAS e NÚMEROS Devem começar OBRIGATORIAMENTE com uma LETRA Não podem conter ESPAÇOS ou caracteres especiais
(@, ?, !, -, caracteres acentuados, etc.) Composto por no máximo 30 caracteres
Nomes válidos: i, j, FRUTA, salario, a12, i23ER21, umnomequalquer
Nomes inválidos: 1, 25, nome-fruta, 5JOSE, A$1, um nome qualquer, média
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br34
Identificadores O identificador deve passar ao programador (ou quem está
lendo o programa/algoritmo) o tipo de dados que a variável ou constante vai armazenar, ou seja, não devemos criar nomes que não tem nada a ver com o conteúdo da variável ou constante:
Nomes inapropriados: i, j, a12, i23ER21, xyz, xibobo, ricardo
Nomes apropriados: idade, salario, nomefruta, contador, enderecocorrespondencia
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br35
Algoritmo Exemplo (identificadores apropriados e inapropriados)
algoritmo "X"var a, b, c : inteiroinicio
leia(a) b <- 1 para c de 2 ate a faca
b <- b * c fimpara escreval(b)fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br36
Algoritmo Exemplo (identificadores apropriados e inapropriados)
algoritmo "CalculaFatorial"var Numero, Fatorial, Contador : inteiroinicio escreva("Informe um número: ") leia(Numero) Fatorial <- 1 para Contador de 2 ate Numero faca
Fatorial <- Fatorial * Contador
fimpara escreval("Fatorial = ",Fatorial)fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br37
Variáveis(abreviação de dados variáveis)
O que é uma Variável?
Variável é uma posição na memória do computador reservada pelo algoritmo durante a sua execução para armazenar dados a serem utilizados pelo próprio algoritmo
Estes dados podem ter sido gerados pelo próprio algoritmo (comandos de repetição, comando de atribuição, etc.) ou inseridos pelo usuário quando da execução de um comando de entrada/leitura de dados
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br38
Cláusula VAR (declaração de variáveis)
var (declaração das variáveis do algoritmo)
As variáveis (ou dados) podem ser de vários tipos: inteiro: define variáveis numéricas do tipo inteiro, ou seja,
sem casas decimais. (Ex: 12, 1000, 5, 345) real: define variáveis numéricas do tipo real, ou seja, com
casas decimais. (Ex: 1.45, 0.05, 500.4, 3.4) caractere: define variáveis do tipo caractere, ou seja, cadeia
de caracteres. (Ex: “ABC”, “Ricardo”, “Agosto/2006”).
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br39
Cláusula VAR (declaração de variáveis)
Exemplo
algoritmo "PrimeiroAlgoritmo"
var IDADE, NUMERO : inteiro
ALTURA, PESO, SALARIO : real
NOMEPAI, RUA, BAIRRO, DTNASC : caractere
inicio
...
fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br40
Etapas de um algoritmo
1ª etapa : entrada de dados (informados pelo usuário)
2ª etapa : processamento (cálculos)
3ª etapa : saída de dados (exibição dos resultados)
Processamento(cálculos)
Entradade dados
Saídade dados
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br41
Comando LEIA(comando de I/O – entrada de dados)
Comando utilizado para receber os valores digitados pelos usuário, atribuindo-os às variáveis cujos nomes estão em <lista-de-variáveis> (é respeitada a ordem especificada nesta lista).
leia(<lista-de-variáveis>)
Exemplos leia(nome) leia(idade, peso, altura)
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br42
Comando LEIA(comando de I/O – entrada de dados)
O tipo de dado a ser digitado pelo usuário depende do tipo da variável utilizada no comando, se a variável for do tipo INTEIRO não podemos digitar um texto ou um valor numérico real, pois abortará a execução do algoritmo.
O usuário digita o dado via teclado e aperta ENTER. O dado é gravado na VARIAVEL e o cursor da tela pula para a primeira coluna da próxima linha.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br43
Comando ESCREVA(comando de I/O – saída de dados)
Comando utilizado para se escrever (imprimir) informações na tela ou em qualquer dispositivo de saída de dados (impressora, fax, modem, etc) pelo algoritmo.
escreva(...) A informação entre parênteses é impressa e o cursor
permanece na mesma linha. escreval(...)
Idem, porém o cursor pula para a primeira coluna da próxima linha.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br44
Comando ESCREVA(comando de I/O – saída de dados)
Temos as seguintes variações para o comando:
escreva("Mensagem a ser impressa") O texto entre aspas é impresso.
escreva(variavel) O conteúdo na memória de VARIAVEL é impresso.
escreva("Mensagem 1 ",var1," Mensagem 2 ",var2) Os textos são impressos junto com os conteúdos das variáveis var1 e
var2, na mesma linha e um depois do outro totalmente colados uns aos outros.
ATENÇÃO: É importante o uso de espaços dentro das aspas a fim de que os dados (textos e conteúdos de variáveis) sejam impressos separados uns dos outros
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br45
Comando ESCREVA(comando de I/O – saída de dados)
Exemplos de uso do escreva/escreval:
var NOME : caractere IDADE : inteiro SALARIO, INSS : real
escreva("Nome: ",nome) impressão: Nome: Joselito Sem Noçãoescreval("Sua idade é de ",idade) impressão: Sua idade é de 39escreval("Salário de ",salario," INSS de ",inss)® impressão: Salário de 850.65 INSS de 87.40
escreval salto de uma linha em branco
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br46
Exemplo 1
algoritmo "CalcSomaMedia"
var n1, n2, soma : inteiro media : realinicio leia(n1) leia(n2) soma <- n1 + n2 media <- soma / 2 escreval(soma) escreval(media)fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br47
Exemplo 1
algoritmo "CalcSomaMedia"var n1, n2, soma : inteiro media : realInicio escreva("Digite um número : ")
leia(n1) escreva("Digite outro número : ") leia(n2) soma <- n1 + n2 media <- soma / 2 escreval("Soma = ",soma) escreval("Média = ",media)fimalgoritmo
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br48
Exemplo 2
Faça um algoritmo que solicite ao usuário o seu nome completo e o número de filhos que ele tem, e depois imprima estas informações.
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br49
Exemplo 2 (algoritmo resolvido)
algoritmo "TerceiroAlgoritmo"var nome : caractere numfilhos : inteiroinicio escreva("Qual o seu nome? ") leia(nome) escreva("Quantos filhos você tem? ") leia(numfilhos) escreval("Nome: ",nome) escreval("Número de filhos: ",numfilhos)fimalgoritmo
Entrada de Dados
Saída de Dados
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br50
Exemplo 3
Faça um algoritmo que solicite ao usuário o seu nome, seu endereço completo (logradouro, número, bairro, cidade, estado e CEP), seu peso (em Kg) e o número do sapato. Depois imprima uma etiqueta com estas informações de acordo com o layout abaixo:
x---------------------nome------------------------xx---------logradouro----------x, x---numero---xBairro x-----------------bairro-------------------xx-----------cidade---------------x – x--estado—xCEP x---cep---x
Peso (kg): x---peso---xNúmero do sapato: x--numero do sapato--x
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br51
Exemplo 3
Exemplo de saída de dados:
RICARDO LUIZ DE FREITASRUA COBRE, 200Bairro CRUZEIROBELO HORIZONTE – MGCEP 30150-101
Peso (kg): 86.5Número do sapato: 40
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br52
Exemplo 3 (algoritmo resolvido)
algoritmo "Etiqueta"var nome, logradouro, bairro, cidade, uf, cep, numero: caractere sapato : inteiro peso : realinicio escreva("Informe o seu nome: ") leia(nome) escreva("Informe o logradouro: ") leia(logradouro) escreva("Informe o número: ") leia(numero) escreva("Informe o bairro: ") leia(bairro)
(continua...)
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br53
Exemplo 3(algoritmo resolvido)
(continuação...)
escreva("Informe a cidade: ") leia(cidade) escreva("Informe a UF: ") leia(uf) escreva("Informe o CEP: ") leia(cep) escreva("Informe o número do seu sapato: ") leia(sapato) escreva("Informe o seu peso em Kg: ") leia(peso)
(continua...)
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br54
Exemplo 3(algoritmo resolvido)
(continuação...)
limpatela escreval(nome) escreval(logradouro,", ",numero) escreval("Bairro ",bairro) escreval(cidade," - ",uf) escreval("CEP ",cep) escreval escreval("Peso (Kg): ",peso) escreval("Número do sapato: ",sapato)fimalgoritmo
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br55
Exercício 1Faça um algoritmo que solicite ao usuário o seu nome, seus documentos (CPF, identidade, título de eleitor, carteira de motorista), seu salário e o nome da empresa em que trabalha, e depois imprima a sua FICHA FUNCIONAL de acordo com o layout abaixo:
FICHA FUNCIONAL DE: x---------------------nome------------------------x
Documentos:CPF ............................................. x-----cpf-----x C.I. ............................................... x---identidade---xTitulo de eleitor ........................... x---título de eleitor---xCarteira de motorista ................... x---carteira de motorista ---x
Empresa: x-----nome da empresa------xSalário: R$ x-----salário-----x
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br56
Exercício 1
Exemplo de saída de dados:
FICHA FUNCIONAL DE: RICARDO LUIZ DE FREITAS
Documentos:CPF ............................................. 415467889-03 C.I. ............................................... M5677823Titulo de eleitor ........................... 458690688444Carteira de motorista ................... 22349377
Empresa: FEA-FUMECSalario: R$ 10500.45
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br57
Exercício 2A Secretaria do Meio Ambiente mediu a quantidade de poluentes atmosféricos emitidos por uma empresa. Dependendo do valor obtido, a empresa foi multada conforme a tabela abaixo. Faça um algoritmo que monte esta tabela, solicitando as informações variáveis (xxx) para o usuário:
Quantidade de Poluente Emitido x Valor da Multa
Até xxx (1) multa de R$ xxx (3)
Entre xxx (1) e xxx (2) multa de R$ xxx (4)
Acima de xxx (2) multa de R$ xxx (5) por poluente emitido
Prof. Ricardo Luiz de Freitas – ricardo@fumec.br58
Exercício 2
Exemplo de saída de dados:
Quantidade de Poluente Emitido x Valor da Multa
Até 1500 multa de R$ 1000.55
Entre 1500 e 3000 multa de R$ 3550.34
Acima de 3000 multa de R$ 1200.21 por poluente emitido