Prova Final de Linguagens de Programação - DCC024B -

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

Download "Prova Final de Linguagens de Programação - DCC024B -"

Transcrição

1 Prova Final de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta. Quando terminar, não entregue nada além do caderno de provas para o instrutor. Quando escrever código, a sintaxe correta é importante. Cada estudante tem direito a fazer uma pergunta ao instrutor durante a prova. Traga o caderno de provas quando vier à mesa do instrutor. A prova termina uma hora e quarenta minutos após seu início. Seja honesto e lembre-se: você deu sua palavra de honra. Alguns conselhos: Escreva sempre algo nas questões, a fim de ganhar algum crédito parcial. Se não entender a questão, e já tiver gasto sua pergunta, escreva a sua interpretação da questão junto à resposta. A prova não é difícil, ela é divertida, então aproveite! Tabela 1: Pontos acumulados (para uso do instrutor) Questão 1 Questão 2 Questão 3 Questão 4 Questão 5 Questão 6 1

2 1. Exceções podem ser usadas para modificar o fluxo de controle do programa, sem que situações de erro tenham sido produzidas. Por exemplo, imagine que um programa faça uma busca em um grafo direcionado, procurando por nós sem saída. Um nó sem saída é um elemento de um grafo direcionado que não possui arestas de saída. O grafo direcionado na parte (a) da figura abaixo possui dois nós sem saída, D e F. (a) (b) public class Node { (c) A private String nodename; C B public boolean isvisited; private List<Node> children;... public void searchfordeadend() { isvisited = true; if (children.size() == 0) reportdeadend(); else { for (Node n : children) { if (!n.isvisited) D n.searchfordeadend(); F E... public void reporddeadend() { G (ii) void searchgraph(node n) { try { n.searchfordeadend(); catch (DeadEndException dee) { Node node = dee.getnode(); String nodename = node.getname(); System.out.println("Sem saida" + nodename); public class DeadEndException extends (i) { (iii) A função reportdeadend() na classe Node (Figura (b) acima) interrompe uma busca em grafo, e dispara uma exceção para o código chamador, caso um nó sem saída tenha sido encontrado. (a) (3 Pontos) A classe DeadEndException é uma exceção verificada estaticamente ou não? Justifique a sua resposta com base na declaração do método rerpotdeadend() e da classe DeadEndException. (b) (1 Pontos) Dada a sua resposta para a questão anterior, quais dentre as classes Error, Exception e RuntimeException podem substituir o item (i) na figura acima? (c) (3 Pontos) Implemente o corpo do método reportdeadend(). Em outras palavras, escreva o código que deve ficar no item (ii) da figura. (d) (3 Pontos) Implemente o corpo da classe DeadEndException (item iii acima). Sua implementação deve possuir um construtor, e atributos da classe. Construtor é o método usado para instanciar objetos da classe, e atributos são os campos usados para armazenar os dados que constituem um objeto. 2

3 2. Esta questão refere-se ao programa abaixo. A classe MyList cria uma cópia de uma lista. class MyList: def init (self, list): self.list = [] for x in list: self.list.insert(0, x) def invert(self):... def str (self): return str(self.list) (a) (6 Pontos) o método invert inverte a lista armazenada em uma instância de MyList. Por exemplo: >>> o = MyList([1,2,3]) >>> print o [3, 2, 1] >>> o.invert() >>> print o [1, 2, 3] Implemente esse método. (b) (4 Pontos) Assuma que a única forma de inserirmos elementos em uma lista fosse via o método insert, usado como a seguir: >>> l = [1, 2, 3] >>> l.insert(0, "a") >>> l [ a, 1, 2, 3] >>> l.insert(2, "b") >>> l [ a, 1, b, 2, 3] Assuma também que uma vez criada a lista, não houvesse qualquer forma de remover algum de seus elementos. Discuta pelo menos uma forma de criar uma lista imutável em python, dada essas duas suposições. Uma lista imutável não pode receber, nem perder elementos, uma vez criada. 3

4 3. (10 Pontos) Um Quadrado Mágico de lado N é uma matriz de N N posições. Cada célula dessa matriz contém um número inteiro. Todos os números inteiros presentes na matriz são diferentes. A soma de cada linha, coluna, ou diagonal do quadrado mágico é sempre igual. Neste exercício, você deve implementar um predicado em Prolog que construa um quadrado mágico de lado 3, com os números {1, 2, 3, 4, 5, 6, 7, 8, 9. Um exemplo de solução é mostrado logo abaixo: Seu predicado deve chamar-se magic(x11, X12, X13, X21, X22, X23, X31, X32, X33), sendo cada X ij um elemento da matriz resposta, conforme mostra o desenho abaixo: X 11 X 12 X 13 X 21 X 22 X 23 X 31 X 32 X 33 magic(x11, X12, X13, X21, X22, X23, X31, X32, X33). X11 = 2, X12 = 7, X13 = 6, X21 = 9, X22 = 5, X23 = 1, X31 = 4, X32 = 3, X33 = 8. A fim de tornar a sua tarefa mais simples, sinta-se livre para usar os predicados sum e perm, definidos logo abaixo: sum([], 0). sum([h T], S) :- sum(t, S1), S is H + S1. perm([], []). perm(t, L) :- member(h, T), select(h, T, L1), perm(l1, L2), L = [H L2]. 4

5 4. Esta questão refere-se à função abaixo, implementada em SML, que calcula o n-ésimo termo da sequência de Fibonacci: fun fib 0 = 1 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) (a) (2 Pontos) Qual o tipo inferido para essa função? (b) (3 Pontos) Essa função possui complexidade super-linear. Em outras palavras, ela é mais lenta que O(N), onde N seria o tamanho do parâmetro de entrada n. Qual é a complexidade assimptótica dessa função? Justifique a sua resposta. Não é necessário uma prova formal de complexidade. (c) (5 Pontos) Re-escreva a função fib para que ela tenha de fato complexidade linear. A sua nova função, que deverá ser chamada fastfib, precisa ter a mesma assinatura de tipos que a função fib original. Contudo, sinta-se livre para declarar dentro do escopo de fastfib quantas funções e variáveis auxiliares você julgar necessárias. 5

6 5. Essa questão diz respeito ao mecanismo de coleta de lixo conhecido como contagem de referência. Um coletor de lixo por contagem de referências associa um contador a cada posição de memória que pode ser referenciada por ponteiros. Sempre que uma nova referência é criada, o contador é incrementado. Se um ponteiro deixa de existir, por que sai de escopo, ou porque é eliminado explicitamente pelo usuário, então o contador é decrementado. O código abaixo, em pseudo-c, ilustra essa técnica: void foo(int* x) { int* a = x; // incrementa contador de x int* b = a; // incrementa contador de x int* y = malloc(8); // cria nova localidade, com contador == 1 return; // decrementa duas vezes o contador de x, e uma vez o de y; (a) (3 Pontos) Coletores por contagem de referência sofrem de um problema sério: as referências cíclicas. Explique que problema é esse, e ilustre sua explicação com um exemplo de programa. (b) (4 Pontos) O problema das referências cíclicas não existe no sub-conjunto de SML que foi visto em sala. Por quê? (c) (3 Pontos) Coletores por contagem de referências são adequados para sistemas de tempo real. Em particular, eles são melhores que coletores mais modernos, como as técnicas de marcação e varredura e cópia e coleta para esse tipo de sistema. Por que coletores por contagem de referência são bons para sistemas de tempo real? 6

7 6. Este exercício refere-se aos mecanismos de passagem de parâmetros adotados em SML/NJ. As duas questões abaixo devem ser respondidas: (a) (5 Pontos) Linguagens de programação que usam os seguintes mecanismos de passagem de parâmetro: necessidade nome expansão de macro são chamadas linguagens estritas. O que são linguagens estritas? Em outras palavras, o que os três mecanismos de passagem de parâmetros acima têm em comum? (b) (5 Pontos) Escreva um programa que demostre que SML é uma linguagem estrita. (c) (1 Ponto Extra) Cite cinco das sete maravilhas do mundo clássico. 7

Primeira Prova de Linguagens de Programação - DCC024B -

Primeira Prova de Linguagens de Programação - DCC024B - Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem

Leia mais

Primeira Prova de Linguagens de Programação - DCC024 -

Primeira Prova de Linguagens de Programação - DCC024 - Primeira Prova de Linguagens de Programação - DCC024 - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.

Leia mais

Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação

Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem

Leia mais

Lista de Linguagens de Programação 19

Lista de Linguagens de Programação 19 Lista de Linguagens de Programação 19 Nome: Matrícula: 1. A passagem de parâmetros por expansão de macros é um mecanismo bastante utilizado em C. Um exemplo é dado abaixo: #define SUM(X, Y) (X) + (Y) int

Leia mais

Listas Lineares Ordenadas

Listas Lineares Ordenadas Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 19. Netbeans - Linguagem JAVA - Vetores - Matrizes - Métodos

CURSO BÁSICO DE PROGRAMAÇÃO AULA 19. Netbeans - Linguagem JAVA - Vetores - Matrizes - Métodos CURSO BÁSICO DE PROGRAMAÇÃO AULA 19 Netbeans - Linguagem JAVA - Vetores - Matrizes - Métodos Introdução a Java Por qual motivo utilizar vetor? Vetores Há um problema onde o diretor de uma escola deseja

Leia mais

Programação C/C++ Slide 5 Nielsen Castelo Damasceno

Programação C/C++ Slide 5 Nielsen Castelo Damasceno Programação C/C++ Slide 5 Nielsen Castelo Damasceno Programação estruturada Programação estruturada Programação estruturada Programação estruturada Programação estruturada vetores vetores vetores vetores

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO

Leia mais

FICHA 8 PILHAS E FILAS

FICHA 8 PILHAS E FILAS ESTRUTURAS DE DADOS E ALGORITMOS Departamento de Engenharia Eletrotécnica e de Computadores Faculdade de Ciências e Tecnologia da Universidade de Coimbra FICHA 8 PILHAS E FILAS 8.1. Objetivos Objetivos

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 com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não

Leia mais

Implementando subprogramas

Implementando subprogramas Implementando subprogramas 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

Análise de Programação

Análise de Programação Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou

Leia mais

Linguagens de Programação Aula 11

Linguagens de Programação Aula 11 Linguagens de Programação Aula 11 Celso Olivete Júnior [email protected] Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções

Leia mais

Conceitos Básicos da Programação OO

Conceitos Básicos da Programação OO Conceitos Básicos da Programação OO Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Objetivos Aprender os

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

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){ UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------

Leia mais

MAC2166 Introdução à Computação

MAC2166 Introdução à Computação MAC2166 Introdução à Computação Escola Politécnica Primeiro Semestre de 2015 Prova 3 Departamento de Ciência da Computação IME USP QUESTÃO 1 Nesta questão considere expressões na forma posfixa como no

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

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

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada

Leia mais

Implementação de subprogramas

Implementação de subprogramas Implementação de subprogramas 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

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

Lógica de Programação e Algoritmos

Lógica de Programação e Algoritmos Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 4 Estruturas de Dados Homogêneas Vetores e Matrizes Conteúdo: 4.1 Variáveis compostas homogêneas... 55 4.2 Vetores... 56 Exercícios

Leia mais

Prova Final de Linguagens de Programação - DCC024 -

Prova Final de Linguagens de Programação - DCC024 - Prova Final de Linguagens de Programação - DCC024 - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.

Leia mais

MAC2166 Introdução à Computação

MAC2166 Introdução à Computação Departamento de Ciência da Computação IME USP MAC2166 Introdução à Computação Escola Politécnica Primeiro Semestre de 2015 Prova Substitutiva QUESTÃO 1 Esta questão consiste na implementação de duas funções

Leia mais

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Python. Resumo e Exercícios P3

Python. Resumo e Exercícios P3 Python Resumo e Exercícios P3 Resuminho Teórico Classes e Objetos Tudo em python é um objeto, objetos são instâncias de classes, como int, float, list, etc. a = 5 # a é um objeto da classe int b = 2.0

Leia mais

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

INSTRUÇÕES DE REPETIÇÃO

INSTRUÇÕES DE REPETIÇÃO Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma

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

Primeira Prova de Análise e otimização de Código - DCC888 -

Primeira Prova de Análise e otimização de Código - DCC888 - Primeira Prova de Análise e otimização de Código - DCC888 - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é

Leia mais

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore

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: [email protected] [email protected]

Leia mais

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Atributos e Métodos Estáticos

Atributos e Métodos Estáticos Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos

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

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Algoritmos e Estrutura de Dados Aula 02 Listas em Python Algoritmos e Estrutura de Dados Aula 02 Listas em Python Profa. Alana Oliveira e Prof. Davi Viana [email protected] e [email protected] Se não entender, pergunte! 2 1 Dados e Tipos de Dados Um dado

Leia mais

LISTA DE EXERCÍCIOS MÊS 04

LISTA DE EXERCÍCIOS MÊS 04 São José dos Campos, 05 de Junho de 2008 Disciplina: CES 10 Introdução à Computação. Semestre 2008-2º Período Professor: Carlos Henrique Quartucci Forster Estagiária: Michelle de Oliveira Parreira Instituto

Leia mais

Computação II (MAB 225)

Computação II (MAB 225) Computação II (MAB 225) Fabio Mascarenhas - 2015.1 http://www.dcc.ufrj.br/~fabiom/pythonoo Introdução No curso de Computação I vocês viram os conceitos básicos de programação em Python: expressões e comandos,

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18 Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - 1/ 18 Considere que você precisa fazer uma função que guarde o nome e o telefone de seus amigos. Sua função também deve permitir a consulta

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

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU Aula 6 POO 1 Construtores Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho [email protected] Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento

Leia mais

COMPORTAMENTOS - Observações

COMPORTAMENTOS - Observações COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para

Leia mais

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.

Leia mais