Fundamentos de Algoritmos
|
|
|
- Evelyn de Escobar Dinis
- 9 Há anos
- Visualizações:
Transcrição
1 Fundamentos de Algoritmos CIC/UFRGS 2006/1
2 Mais em definições auto-referenciáveis foi visto como definir árvores de ascendência, definindo dois campos do tipo nó que indicam os dois pais árvores de descendência requerem uma forma de identificar um número arbitário de filhos 1
3 Roteiro 2 Listas de estruturas, listas em estruturas Definindo funções para definições mutuamente referenciáveis Mais sobre páginas web
4 3 Figura 1: Árvore de hereditariedade: tipo descendente
5 Estrutura de cada indivíduo 4 (define-struct parent (filhos nome data olhos)) um parent pode contar um número arbitário de filhos. filhos deve conter um número indeterminado de nós. Então o campo Um parent é uma estrutura: (make-parent lf n d o) onde lf é uma estrutura do tipo lista de filhos n e o são símbolos e d é número. lista de filhos é: empty ou (cons p lf) onde p é um parent e lf é uma lista de filhos
6 Definições Mutuamente Referenciáveis 5
7 6 Árvore de descendência ;; Geração nova: (define Gustav (make-parent empty Gustav 1988 brown)) (define Fred&Eva (list Gustav)) ;; Geração intermediária: (define Adam (make-parent empty Adam 1950 yellow)) (define Dave (make-parent empty Dave 1955 black)) (define Eva (make-parent Fred&Eva Eva 1965 blue)) (define Fred (make-parent Fred&Eva Fred 1966 pink)) (define Carl&Bettina (list Adam Dave Eva) ;; Geração antiga: (define Carl (make-parent Carl&Bettina Carl 1926 green)) (define Bettina (make-parent Carl&Bettina Bettina 1926 green))
8 Determinar descendente de olhos azuis ;; descendente-olhos-azuis? parent -> boolean ;; determina se p1 ou algum de seus descendentes ;; possui olhos azuis (define (descendente-olhos-azuis? p1)...) (boolean=? (descendente-olhos-azuis? Gustav) false) (boolean=? (descendente-olhos-azuis? Eva) true) (boolean=? (descendente-olhos-azuis? Bettina) true) 7
9 Template para funções que determina descendente de olhos azuis ;; descendente-olhos-azuis? parent -> boolean (define (descendente-olhos-azuis? p1)...) (cond [(symbol=? (parent-olhos p1) blue) true] [else... (parent-filhos p1) (parent-nome p1) (parent-data p1) (parent-olhos p1)... ] ) ) 8
10 Descendente com olhos azuis ;; descendente-olhos-azuis? parent -> boolean ;; determina se p1 ou algum de seus descendentes ;; possui olhos azuis (define (descendente-olhos-azuis? p1) (cond [(symbol=? (parent-olhos p1) blue) true] [else (filho-olhos-azuis? (parent-filhos p1))])) 9
11 Verifica filho com olhos azuis (define (filho-olhos-azuis? lf) (cond [(empty? lf)...] [else... (first lf) (filho-olhos-azuis? (rest lf))...])) 10
12 descendente de olhos azuis: versão com cond ;; descendente-olhos-azuis? parent -> boolean ;; determina se p1 ou algum de seus descendentes possui olhos azuis (define (descendent-olhos-azuis? p1) (cond [(symbol=? (parent-olhos p1) blue) true] [else (filho-olhos-azuis? (parent-filhos p1))])) ;; filho-olhos-azuis? : lista-de-filhos -> booleano ;; determina se um filho da lista, ou possui olhos azuis (define (filho-olhos-azuis? lf) (cond [(empty? lf) false] [else (cond [(descendent-olhos-azuis? (first lf)) true] [else (filho-olhos-azuis? (rest lf))])])) 11
13 descendente olhos azuis: versão or ;; descendente-olhos-azuis? parent -> boolean ;; determina se p1 ou algum de seus descendentes possui olhos azuis (define (descendent-olhos-azuis? p1) (or (symbol=? (parent-olhos p1) blue) (filho-olhos-azuis? (parent-filhos p1)))) ;; filho-olhos-azuis? : lista-de-filhos -> booleano ;; determina se um filho da lista possui olhos azuis (define (blue-eyed-children? lf) (cond [(empty? lf) false] [else (or (descendente-olhos-azuis? (first lf)) (filho-olhos-azuis? (rest lf)))])) 12
14 Exercícios Desenvolva a função quanto-longe. A função determina o quanto longe está o mais próximo descendente de olhos azuis. Se nenhum é encontrado, retorne false Desenvolva a função conte-descendentes, o qual conta o número de descendentes. Desenvolva uma variante que conta o no atual como descendente e uma variante que não Desenvolva a função cor-dos-olhos o qual produz uma lista da cor dos olhos dos descendentes. Uma cor pode ocorrer mais que uma vez na lista.
15 Projetando Funções para Definições Mutuamente Referenciáveis Fase: Análise de dados e projeto Objetivo: formular um grupo de definições de dados Atividade: desenvolva um grupo de definições de dados mutuamente recursivas; identifique explicitamente todas as referências entre as definições de dados 14
16 Expressões Condicionais e Funções 15 Fase: Template Objetivo: determine esquemas para um grupo de funções Atividade: desenvolva tantos templates quanto as definições de dados simultâneas
17 Expressões Condicionais e Funções 16 Fase: Corpo da função Objetivo: determine um grupo de funções condicional Atividade: formule uma expressão para cada cláusula cond; use funções auxiliares quando necessário
18 (define-struct wp (header body)) Mais sobre páginas web Uma página web é uma estrutura do tipo: (make-wp h p) onde h é um símbolo e p é um documento web. Um documento web é: empty 2. (cons s p) onde s é um símbolo e p é um documento 3. (cons w p) onde w é uma página web e p é um documento.
19 Exercícios 18 Exercício Defina a função size, que consome um página Web e retorna o número de símbolos (words) que esta contém. Exercícios Defina a função wp-to-file. A função consome uma página Web e produz uma lista de símbolos. A lista contém todas as palavras no corpo e todos os cabeçalhos das páginas associadas no mesmo domínio. Os corpo do texto das páginas associadas é ignorado. Exercício Defina a função occurs. Ele consome um símbolo e uma página Web e determina se o símbolo ocorrem em algum lugar da página, incluindo páginas associadas no mesmo domínio.
20 Exercícios 19 Exercícios Defina a função find. A função consome uma página Web e um símbolo. Ela produz false, se o símbolo não ocorre no corpo da página ou nas associadas. Se o símbolo ocorre pelo menos uma vez, é produzida uma lista dos cabeçalhos que foram encontrados no caminho ao símbolo. Dica: Defina uma auxiliar find que produz apenas true quando uma página Web contém a palavra desejada. Use esta para definir find. Alternativamente, use boolean? para determinar se uma recursão natural de find produziu uma lista ou um booleano. Então calcule o resultado novamente. Iremos discutiresta segunda técnica chamada backtracking, em seções adiante.
Exercícios sobre Listas, Árvores, Grafos e Recursão Generativa
Exercícios sobre Listas, Árvores, Grafos e Recursão Generativa Fundamentos de Algoritmos INF05008 Esta listanão épara entrega,massimpara aferiropreparo individualdoalunopara a última prova; dúvidas poderão
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc. Para que? Sentinela Beth
Folha 4.1 Análise sintática descendente
1. Dada a seguinte gramática G = (Σ, T, P, S), onde : Σ = { S, A, B } T = { a, b, c } S a b A c A A a S b S c B B a B b S b) Verifique que G é do tipo LL(1). c) Construa a tabela sintática predicativa
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS Bruno Maffeo Departamento de Informática PUC-Rio MÉTODO INDUTIVO O método indutivo para resolver problemas aqui empregado inspira-se na formulação mais
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando
Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.
Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens
Métodos para a construção de algoritmo
Métodos para a construção de algoritmo Compreender o problema Identificar os dados de entrada e objetos desse cenário-problema Definir o processamento Identificar/definir os dados de saída Construir o
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.
Processamento da Informação Teoria. Desvio Condicional
Processamento da Informação Teoria Desvio Condicional Semana 03 Prof. Jesús P. Mena-Chalco 08/05/2013 Operador módulo O operador módulo trabalha com inteiros e produz o resto quando o primeiro operando
Aula 03 Introdução à Programação com a Linguagem Python
Aula 03 Introdução à Programação com a Linguagem Python Gilberto Ribeiro de Queiroz Thales Sehn Körting Fabiano Morelli 26 de Março de 2018 Tópicos Tipo Lógico e Operadores Lógicos. Operadores Relacionais.
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
Recursividade, Tentativa e Erro
Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho [email protected] BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas
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,
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
Comando de Seleção em Java
Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Comando de Seleção Comando de Seleção em Java Conteúdo 1. Introdução... 1 2. Comando de seleção... 2 3. Comandos
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
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
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.
Programação em C. Victor Amorim dos Santos
Programação em C Victor Amorim dos Santos Proposições Lógicas Expressões Lógicas e o tipo Boolean Importante para a tomada de decisão; Tipo Boolean: tipo de dados para representar a satisfação ou não de
Árvores & Árvores Binárias
Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente
Módulo: PYTHON. Felipe Oliveira
Módulo: PYTHON Felipe Oliveira Tudo Blzinha? https://pip.pypa.io/en/stable/installing/ Ctrl + S Variáveis Palavras reservadas! Operadores Aritméticos Operadores básicos Operação Operador adição +
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Linguagens de Programação Aula 14
Linguagens de Programação Aula 14 Celso Olivete Júnior [email protected] Na aula passada Linguagem Haskell Funções Tipos básicos Expressões 2 Na aula de hoje Linguagem Haskell Listas 3 Listas e Tuplas
LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL
LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL Prof. André Backes FLUXOGRAMAS Condição ou Decisão Representado por losangos Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso.
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
SCC 202 Algoritmos e Estruturas de Dados I. Listas Lineares Encadeadas Alocação dinâmica
SCC 202 Algoritmos e Estruturas de Dados I Listas Lineares Encadeadas Alocação dinâmica Lista Encadeada Dinâmica Utiliza alocação dinâmica de memória ao invés de arranjos (vetores) pré-alocados. Inserção
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
Simulado de Linguagem de Programação Java
Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as
Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas
Programação Funcional 5 a Aula Definições recursivas Pedro Vasconcelos DCC/FCUP 2014 Definições usando outras funções Podemos definir funções usando outras previamente definidas (e.g. do prelúdio-padrão).
Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
Recursividade. Recursividade
A recursão é uma técnica que define um problema em termos de uma ou mais versões menores deste mesmo problema. Esta ferramenta pode ser utilizada sempre que for possível expressar a solução de um problema
Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias
SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de
Aula 4: Álgebra booleana
Aula 4: Álgebra booleana Circuitos Digitais Rodrigo Hausen CMCC UFABC 01 de fevereiro de 2013 http://compscinet.org/circuitos Rodrigo Hausen (CMCC UFABC) Aula 4: Álgebra booleana 01 de fevereiro de 2013
UNIVERSIDADE DE SÃO PAULO - ICMC Departamento de Ciências da Computação SCC-203 Algoritmos e Estruturas de Dados 2-2 Sem /2012 Profa.
UNIVERSIDADE DE SÃO AULO - ICMC Departamento de Ciências da Computação SCC-203 Algoritmos e Estruturas de Dados 2-2 Sem /2012 rofa.: Maria Cristina 3 a ROVA (27 de junho) Aluno: N o US: Atenção: favor
Fluxogramas e variáveis
Fluxogramas e variáveis Patrícia de Siqueira Ramos UNIFAL-MG, campus Varginha 11 de Março de 2019 Patrícia de Siqueira Ramos Fundamentos da programação 1 / 20 Fases de um algoritmo Patrícia de Siqueira
Problemas NP-completos
Problemas NP-completos Marina Andretta ICMC-USP 15 de setembro de 2015 Marina Andretta (ICMC-USP) sme0216 e 5826 15 de setembro de 2015 1 / 26 Sat é NP-completo Já vimos que o primeiro problema que se
LÓGICA I ANDRÉ PONTES
LÓGICA I ANDRÉ PONTES 4. Lógica Proposicional A Linguagem da Lógica Proposicional Letras Proposicionais: P, Q, R, S, T,... Conectivos Lógicos: Símbolos auxiliares: (, ), = Conectivo Leitura Símbolo Símbolos
ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Estruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Fundamentos de Programação
Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
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: [email protected] [email protected]
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
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Problema das n rainhas
AULA 24 Problema das n rainhas Fonte: http://www.bhmpics.com/ PF 12 http://www.ime.usp.br/ pf/algoritmos/aulas/enum.html http://en.wikipedia.org/wiki/eight_queens_puzzle Problema das n rainhas Problema:
DOSSIER DA DISCIPLINA
DOSSIER DA DISCIPLINA PI - PROGRAMAÇÃO IMPERATIVA Licenciatura em Matemática e Ciências da Computação (1º ano) Docente responsável: José Carlos Ramalho Ano lectivo de 2004/2005-2º semestre INDICE Apresentação...
Recursividade Exaustiva e Backtracking
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Recursividade Exaustiva e Tópicos Especiais em Programação Site: http://jeiks.net E-mail: [email protected]
Introdução à Computação - aulas 01 e 02 -
MAC2166 Introdução à Computação - aulas 01 e 02 - Mauro Cesar Bernardes 25/Fevereiro/2014 Agenda Instalação do Python Python Shell Variáveis Operadores relacionais Operadores numéricos Comando de saída
Introdução a Programação
Introdução a Programação Prof. André Gustavo Duarte de Almeida [email protected] docente.ifrn.edu.br/andrealmeida Aula 02 Primeiro Programa Roteiro Primeiros Passos Variáveis Expressões Comandos
Aula 05: - Recursão (parte 1)
MCTA028 Programação Estruturada Aula 05: - Recursão (parte 1) Prof. Jesús P. Mena-Chalco [email protected] 3Q-20107 1 Recursão: Se você ainda não entendeu; Ver: "Recursão". Efeito Droste Anuncio
Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Técnico Agropecuário/TO AOCP 2012
Técnico Agropecuário/TO AOCP 2012 01. Entre um grupo de amigos existe o seguinte arranjo: Se João vai ao cinema, Maria vai para a lanchonete. Se Maria vai para a lanchonete, José vai ao cinema. Se José
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/26 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Listas generalizadas. SCC-202 Algoritmos e Estruturas de Dados I
Listas generalizadas SCC-202 Algoritmos e Estruturas de Dados I Lista generalizada Uma lista generalizada é aquela que pode ter como elemento ou um átomo ou uma outra lista (sub-lista) Átomo: integer,
Programação de Computadores II TCC
Programação de Computadores II TCC-00.174 Profs.: Leandro A. F. Fernandes (Turma A1) & Marcos Lage (Turma B1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage Conteúdo: Material elaborado
Técnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]
Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo
Algoritmos e Estruturas de Dados I IEC012 Linguagem C - Estruturas de Controle - Seleção Prof. César Melo Estruturas de Controle: Condicional Estruturas: Simples Composta Múltipla escolha Estrutura Condicional
