Avaliação de expressões. Prof: Sérgio Souza Costa

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

Download "Avaliação de expressões. Prof: Sérgio Souza Costa"

Transcrição

1 Avaliação de expressões Prof: Sérgio Souza Costa

2 Avaliação de expressões Como efetuar o cálculo de uma expressão em um computador? A / B * (D + C)

3 Avaliação de expressões - Notações

4 Avaliação de expressões - Notações Infixa: A + (B*C) / D

5 Avaliação de expressões - Notações Infixa: A + (B*C) / D Posfixa (polonesa reversa): A B C * + D /

6 Avaliação de expressões - Notações Infixa: A + (B*C) / D Posfixa (polonesa reversa): A B C * + D / Préfixa (polonesa): + A / * B C D

7 Notação Infixa Operadores entre operandos * 8

8 Notação Infixa Operadores entre operandos * 8 Como decidir quais operadores são avaliados primeiros?

9 Notação Infixa Operadores entre operandos * 8 Como decidir quais operadores são avaliados primeiros?

10 Notação Infixa - Avaliação Operadores entre operandos * 8 Como decidir quais operadores são avaliados primeiros? Abordagem usual é usar as mesmas regras da matemática. Caso a prioridade seja a mesma, avalia-se da esquerda para direita Parenteses tem precedência sobre todos operadores.

11 Notação Infixa - Precedência Quando usamos a notação infixa é importante sabermos a ordem de precedência dos operadores, por exemplo, abaixo temos uma lista ordenada dos operadores por ordem de precedência. () [] ->! ~ * & (tipo) sizeof() * / % + - >> << < <= >= > ==!= & ^ &&? () : () = += -= *=

12 Notação Polonesa É fácil observar que devido a estas regras, o algoritmo para avaliar expressões na notação infixa não é muito trivial. O matemático polonês Jan Łukasiewicz criou uma notação em torno de 1920 que elimina a necessidade de regras. Ficou sendo conhecida como notação polonesa. Não é muito usado na matemática convencional, mas muito usado nas ciências da computação.

13 Notação Polonesa e Polonesa Reversa Notação Polonesa ou Prefixa, os operadores aparecem antes dos operandos. + A B Notação Polonesa reversa ou Pósfixa, os operadores aparecem logo após os operandos. A B +

14 Algoritmos

15 Notação Posfixa A avaliação de expressões nesta notação é a mais simples. Percorrendo uma expressão da esquerda para direita, sabemos que ele deve operar os dois últimos valores encontrados.

16 Notação posfixa Considerem a seguinte expressão 73+5*. Expressão Elemento Ação Pilha 73+5* P:[] 3+5* 7 Empilhar P:[7] +5* 3 Empilhar P:[3,7] 5* + Desempilha 3 Desempilha 7 Empilha 3+7 P:[7] P:[] P:[10] * 5 Empilhar P:[5,10] * Desempilha 5 Desempilha 10 Empilha 5*10 P:[10] P:[] P:[50] Se a pilha tiver mais de um elemento, erro, caso contrário retorna o único valor da pilha.

17 Atividade Simulem a avaliação da seguinte expressão * * 6 /

18 Atividade Escrevam o algoritmo que avalia uma expressão na notação posfixa. Considere uma expressão simples, somente o operador + e cada valor contem apenas um caracter de 0 a 9. Considerem tambem que a expressão é sempre válida. Por exemplo: Notação posfixa 12+ Notação prefixa 1+2

19 Solução Uma versão simplificada para a avaliação de expressão posfixa: int avalia_expressao (char s[]) { int t; Stack p = stack_init(); while (*s) { switch (*s) { case '+': push (&p, pop (&p) + pop (&p)); break; default: push (&p, *s - '0' ) ; } s++; } return pop (&p); }

20 Notação infixa para posfixa Dada uma expressão na notação infixa, podemo convertê-la para posfixa.

21 Notação infixa para posfixa Dada uma expressão na notação infixa, podemo convertê-la para posfixa. Versão simplificada: Cada valor também tem apenas um caracter. Ela é sempre válida. E não existe prioridade de operadores, todas operações estaram dentro de parenteses. Por exemplo: equivale ((4 + 5) + 6 )

22 Notação infixa para posfixa Dado uma expressão totalmente parentetizada: Algoritmo: Percorrer a expressão da esquerda para direita, e para cada caracter faça: Parenteses de abertura ignorar Se for operando, copiar para expressão de saida Se for operador, aguardar na pilha Se for fechamento de abertura, copiar o ultimo operador acessado.

23 Notação infixa para posfixa Para a expressão ( (3 + 5) + 9 ): Simbolo Ação Pilha Saída ( ignora P:[] ( ignora P:[] 3 copia P:[] 3 + aguarda P:[+] 3 5 copia P:[+] 3 5 ) desempilha + copia p:[] p:[] aguarda P:[+] copia P:[+] ) desempilha + copia p:[]

24 Atividade Simulem a conversão da seguinte expressão para forma posfixa: (5 * (8 + 2))

25 Atividade Codifiquem o algoritmo que realiza a conversão entre infixa e posfixa.

26 Solução Uma versão simplificada: char* infixtoposfix (char s[]) { char* iter; char* saida = malloc (50*sizeof (char)); iter = saida; Stack p = stack_init(); while (*s) { switch (*s) { case '(': break; case '+': push(&p, *s); break; case ')': *(iter++) = pop (&p); break; default: *(iter++) = *s; break; } s++; } *iter = '\0'; } return saida;

27 Atividades Testem e concluem os algoritmos para avaliação de expressão posfixa e para conversão entre as notações infixa e posfixa. Para a conversão, considerem as prioridades entre os operadores. Próxima aula será no laboratório.

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica) SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{

Leia mais

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

Avaliação de Expressões

Avaliação de Expressões valiação de Expressões valiação de Expressões - Como efetuar o cálculo de uma expressão em um computador? Exemplo: / B C D + E Regras usuais da matemática. Os parênteses alteram a ordem das expressões:

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo

Leia mais

Algoritmos e Estrutura de Dados Aula 08 Pilhas

Algoritmos e Estrutura de Dados Aula 08 Pilhas Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

Leia mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas de Dados Pilhas, Filas, Listas Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de

Leia mais

Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Pilha SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Pilha O que é? Para que serve? 2 Problema: chamada de sub-rotinas Rotina A 1 print A 2 call C 3 call B 4 call D 5 return Rotina B 1 call

Leia mais

Melhores momentos AULA 14

Melhores momentos AULA 14 Melhores momentos AULA 14 Pilhas Uma pilha (=stack) é uma lista (=sequência) dinâmica em que todas as operações (inserções, remoções e consultas) são feitas em uma mesma extremidade chamada de topo. 000000

Leia mais

Pilhas e Filas. Nádia Félix e Hebert Coelho

Pilhas e Filas. Nádia Félix e Hebert Coelho Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares

Leia mais

Lista 02: Pilhas & Filas

Lista 02: Pilhas & Filas MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda pmiranda@vision.ime.usp.br Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma

Leia mais

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

2 Aplicação Pilha: Avaliador de Expressões Simples

2 Aplicação Pilha: Avaliador de Expressões Simples 1 Objetivos Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada DIMAp Prática de Algoritmos e Estrutura de Dados I DIM0426 Umberto Souza da Costa - 11/09/2007

Leia mais

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I SCE 182 Algoritmos e Estruturas de Dados I Uma pilha é uma lista linear em que a inserção ou eliminação de elementos somente pode ocorrer em uma das extremidades, que é chamada de TOPO da PILHA. D C B

Leia mais

Tipo de Dados Abstractos: Pilha (stack)

Tipo de Dados Abstractos: Pilha (stack) Tipos de Dados Abstractos Estruturas Lineares Pilhas e Filas FEUP - MIEEC Programação - 008/009 Tipo de Dados Abstractos: Pilha (stack) Pilha estrutura de dados linear em que: inserção e a remoção de elementos

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

Leia mais

Notações: in, pré e posfixada

Notações: in, pré e posfixada Notações: in, pré e posfixada Como avaliar uma expressão posfixada? A resposta a esta pergunta, vem de uma análise. Estamos tratando de operações binárias. Portanto, devemos avaliar a expressão da esquerda

Leia mais

Estrutura de Dados: Pilhas. Unidade I:

Estrutura de Dados: Pilhas. Unidade I: Estrutura de Dados: Pilhas Unidade I: 0 Unidade: Pilhas 1 Pilhas Já conhecemos na Unidade anterior as Listas Lineares, cujo princípio fundamental é o de ordenar unidimensionalmente seus elementos. Dependendo

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler

Leia mais

SCC Algoritmos e Estruturas de Dados I

SCC Algoritmos e Estruturas de Dados I SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Sequencial Estática e Encadeada Dinâmica 17 e 19/8/2010 Exercício: Implementação da pilha sequencial e estática Declaração em C escondendo a ED do

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Operadores compostos. Operadores relacionais. Precedências. Aula 8 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Instruções condicionais e Operadores Sumário Instruções Condicionais If Switch Precedência dos operadores 1 Instruções condicionais A condição if executa uma instrução caso a expressão

Leia mais

Algoritmos e Estruturas de Dados 2007/2008

Algoritmos e Estruturas de Dados 2007/2008 Pilhas e Filas Algoritmos e Estruturas de Dados 007/008 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo

Leia mais

ESTRUTURA DE DADOS PILHA

ESTRUTURA DE DADOS PILHA ESTRUTURA DE DADOS PILHA CONCEITO DE PILHAS - Pilhas são listas lineares onde a inserção de um novo item ou a remoção de um item já existente se dá em uma única extremidade, no topo. Pilha vazia Insere(A)

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Pilhas e listas Estruturas de Dados 2 Ordenação (Classificação) Rearranjar um conjunto de objetos Ordem ascendente

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS Terceiro Trabalho Prático Recursividade e Pilhas

ALGORITMOS E ESTRUTURAS DE DADOS Terceiro Trabalho Prático Recursividade e Pilhas Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação ALGORITMOS E ESTRUTURAS DE DADOS Terceiro Trabalho Prático Recursividade e Pilhas Luiz Henrique Santos

Leia mais

FUNDAÇÃO EDUCACIONAL DE ITUIUTABA

FUNDAÇÃO EDUCACIONAL DE ITUIUTABA FUNDAÇÃO EDUCACIONAL DE ITUIUTABA ASSOCIADA À UNIVERSIDADE DO ESTADO DE MINAS GERAIS CURSO DE SISTEMA DE INFORMAÇÃO PILHA E FILA Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@yahoo.com

Leia mais

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem de Programação. Thiago Leite Francisco Barretto Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre

Leia mais

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include

Leia mais

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa 10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A

Leia mais

Algoritmos e Estruturas de Dados 2005/2006

Algoritmos e Estruturas de Dados 2005/2006 Pilhas e Filas Algoritmos e Estruturas de Dados 005/006 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO SCC-602 Algoritmos e Estruturas de Dados I - EC Profa. Graça Nunes 2º. Semestre de 2010 Prova 1(Gabarito) 16/09/2010 Nome: Nro

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Operadores Lógicos; Estruturas de Controle (Decisão) Professor: Charles Leite Fluxo de Controle A ordem com que as instruções são executadas em um programa é chamada

Leia mais

C Operadores e Expressões

C Operadores e Expressões C Operadores e Expressões Adriano Cruz adriano@nce.ufrj.br Instituto de Matemática Departamento de Ciência da Computação UFRJ 15 de agosto de 2013 Adriano Cruz adriano@nce.ufrj.br (IM-DCC-UFRJ)C Operadores

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 8: Pilhas com Alocação de Memória Estática O objetivo desta aula é apresentar estrutura de dados Pilha e suas aplicações. Introdução Embora

Leia mais

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais: Estruturas de Dados Pilhas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais: disponíveis em http://ww3.datastructures.net/ cedidos

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1 Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 4 Estruturas de Condição Profa. Marina Gomes marinagomes@unipampa.edu.br 06/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura condicional simples Utilização

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais Introdução à Programação Expressões Booleanas e Comandos Condicionais Comandos Condicionais Misture os ingredientes Unte forma com manteiga Despeje a mistura na forma Algoritmo para preparação de bolo

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: VARIÁVEIS E EXPRESSÕES

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

Revisão: Tipo Abstrato de Dados Recursividade

Revisão: Tipo Abstrato de Dados Recursividade Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estudo das estruturas de dados envolve dois objetivos complementares:

Leia mais

ALGORITMOS em linguagem C

ALGORITMOS em linguagem C ALGORITMOS em linguagem C Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo Campus/Elsevier. Algoritmos em linguagem C Paulo Feofiloff editora Campus/Elsevier, 2009 www.ime.usp.br/

Leia mais

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Vetores e Recursividade. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Vetores e Recursividade. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Vetores e Recursividade Pedro O.S. Vaz de Melo Problema 1 Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo

Leia mais

CONDICIONAL / de SELEÇÃO / de DECISÃO

CONDICIONAL / de SELEÇÃO / de DECISÃO ESTRUTURA de CONTROLE CONDICIONAL / de SELEÇÃO / de DECISÃO LPI 1. Expressões Expressões Aritméticas As expressões aritméticas são formadas por operadores aritméticos (+, -, *, /) e por operandos (as constantes

Leia mais

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1 INE5603 Introdução à POO Prof. A. G. Silva 28 de agosto de 2017 Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de 2017 1 / 1 Comandos de decisão simples e compostas Objetivos: Utilização de controles

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de condição. Prof. Alex Camargo

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de condição. Prof. Alex Camargo UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Estruturas de condição Prof. Alex Camargo alexcamargoweb@gmail.com Estruturas de condição Estrutura condicional simples: Utilização da

Leia mais

Comandos de Controle do Programa

Comandos de Controle do Programa Comandos de Controle do Programa Comandos de Seleção - if, else, switch Comandos de Iteração - for, while, do-while Comandos de Desvio - return, goto, break, continue O Comando if O if O else O if-else-if

Leia mais

K&R: Capitulo 2 IAED, 2012/2013

K&R: Capitulo 2 IAED, 2012/2013 Elementos da Linguagem C K&R: Capitulo 2 Elementos da Linguagem C Identificadores Tipos Constantes Declarações Operadores aritméticos, lógicos e relacionais Conversões de tipos Operadores de incremento

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Comandos em C (cont.)

Comandos em C (cont.) Comandos em C (cont.) Operador ternário:? O operador condicional possui uma opção um pouco estranha. É o único operador C que opera sobre três expressões. Sua sintaxe geral possui a seguinte construção:

Leia mais

Lógica de Programação I

Lógica de Programação I Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Comando Switch O comando Switch pode ser visto como uma especialização do comando if. Foi criado para facilitar um uso particular de comandos if encadeados.

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Pilhas Filas e Listas

Pilhas Filas e Listas Pilhas Filas e Listas Sumário Pilha: interface, aplicações e implementação Fila: interface, aplicações e implementação Lista Ligada: interface, aplicações e implementação Pilha Estrutura LIFO (last in,

Leia mais

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos????? ADAPTAR O TEXTO ABAIXO????? Aprender a sintaxe da Estrutura de Repetição ENQUANTO-FAÇA na linguagem PORTUGOL Aprender a resolver problemas que requeiram o uso de ESTRUTURAS

Leia mais

EXPRESSÕES RELACIONAIS

EXPRESSÕES RELACIONAIS AULA 7 EXPRESSÕES RELACIONAIS 7.1 Operadores relacionais Uma expressão relacional, ou simplesmente relação, é uma comparação entre dois valores de um mesmo tipo. Esses valores são representados na relação

Leia mais

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações

Leia mais

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior.

Pilhas e Filas. Prof. Walteno Martins Parreira Júnior. Licenciatura em Computação Algoritmos e Estrutura de Dados Pilhas e Filas Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@iftm.edu.br 2016 SUMÁRIO 1. PILHAS... 2 1.1. Introdução...

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA

Leia mais

Curso de C. Estruturas Condicionais

Curso de C. Estruturas Condicionais Curso de C Estruturas Condicionais Curso C - IC/UNICAMP Estruturas Condicionais Objetivos: Aprender: Como vincular a execução de blocos de sentenças à condições Quando utilizar cada uma das estruturas

Leia mais

EXPRESSÕES ARITMÉTICAS PARTE 1

EXPRESSÕES ARITMÉTICAS PARTE 1 AULA 5 EXPRESSÕES ARITMÉTICAS PARTE 1 5.1 Operadores aritméticos Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre os números inteiros e reais. Para os inteiros,

Leia mais

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

Leia mais

RESUMO DE CONCEITOS BÁSICOS DE C

RESUMO DE CONCEITOS BÁSICOS DE C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação RESUMO DE CONCEITOS BÁSICOS DE C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010

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.2. Estrutura de Programas e Representação

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10 Algoritmos e Programação Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10 UEPG CONTROLE DE FLUXO Estrutura de Controle de Fluxo Comando FOR Comando DO-WHILE Comando

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

Comandos de Decisão Parte I

Comandos de Decisão Parte I SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Comandos de Decisão Parte I Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br Sumário Estrutura

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Primeiro Curso de Programação em C 3 a Edição

Primeiro Curso de Programação em C 3 a Edição Edson Luiz França Senne Primeiro Curso de Programação em C 3 a Edição Visual Books Sumário Prefácio da Terceira Edição 9 Prefácio da Primeira Edição 11 Aula 1 13 Regras de sintaxe de uma linguagem de programação...

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

Tipos de Dados Simples (Continuação)

Tipos de Dados Simples (Continuação) SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Tipos de Dados Simples (Continuação) Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br Sumário

Leia mais

Programação Aplicada à Engenharia

Programação Aplicada à Engenharia Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores

Leia mais

Pilhas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

Pilhas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Pilhas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Operações de uma pilha Aplicações TAD da Pilha em C UDESC - Rui J. Tramontin Jr. 2 Introdução Pilha é uma lista na

Leia mais

Introdução à Linguagem C++

Introdução à Linguagem C++ Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado

Leia mais

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

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.

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

Linguagem C: Elementos fundamentais

Linguagem C: Elementos fundamentais Instituto de C Linguagem C: Elementos fundamentais Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Variáveis e Constantes Operadores

Leia mais

Tipos abstratos de dados; pilhas e filas

Tipos abstratos de dados; pilhas e filas 1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html

Leia mais

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

SCC Algoritmos e Estruturas de Dados I

SCC Algoritmos e Estruturas de Dados I SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha

Leia mais