Resolução da Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE

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

Download "Resolução da Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE"

Transcrição

1 Resolução da Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE Questão 1 Assinale com V (Verdadeiro) as expressões que estão correctas e com F (Falso) as que estão incorrectas. Os quadrados podem ser deixados em branco ou ser preenchidos com V ou F. Em geral as alíneas podem ter zero ou mais respostas correctas. Cada resposta correctamente assinalada vale 0,5 valores. Respostas incorrectas correspondem a um desconto de 0,5 valores. Respostas em branco valem 0 valores. Nas alíneas em que apenas uma resposta está correcta (se existirem estão assinaladas no texto), responder com mais ou menos do que um V anula a cotação. A resposta correcta corresponde à cotação completa. Respostas incorrectas correspondem a um desconto de metade da cotação completa. Em todos os casos em que não é explicitamente referida a localização de uma instrução, considere que esta é dada na função main() do programa seguinte (que pode ter erros lógicos, mas não tem erros sintácticos): #include <iostream> #include <vector> using namespace std; class Quociente public: Quociente(int const a, int const b = 1); int f1(); private: double x; ; int f2(); //... int main() int i = 1, j = 2; Quociente um_q(1); 1/11

2 Quociente const outro_q(2); vector<int> v(2); v[0] = v[1] = 3; // Admita que qualquer uma destas instruções é dada na função main() imediatamente após a definição do vector v. Quais das seguintes instruções estão correctas? Quociente a(v[1], v[2]); Quociente a; Quociente a(v[1]); Quociente a(4/3); Quociente a(um_q); O vector v só tem dois itens, de índices 0 e 1, pelo que é um erro tentar usar o item com índice 2. O construtor da classe Quociente não pode ser invocado sem lhe passar qualquer argumento. Só é possível passar-lhe um ou dois argumentos inteiros. [cotação: 2,5] 1.2 Admita que qualquer uma destas instruções é dada na função main() do programa acima. Quais das seguintes instruções estão correctas? um_q.x = 1.0; O atributo x é privado. int z = outro_q.f1(); A operação Quociente::f1() não foi declarada como assegurando a constância da instância implícita, pelo que não pode ser invocada através de uma constante (outro_q é uma constante). int z = um_q.f2(); A operação Quociente::f2() é privada. [cotação: 1,5] 1.3 Assuma que as seguintes instruções são parte do corpo de um método de instância da classe Quociente que não tem quaisquer parâmetros e no qual não são declaradas variáveis ou constantes. Quais das seguintes instruções estão correctas? int x = um_q.f1(); Não há nenhum identificador um_q visível no corpo dos métodos da classe Quociente. x = 1.0; [cotação: 1] 2/11

3 Questão 2 Uma loja de música na Internet quer desenvolver um sistema para gerir a publicitação de colectâneas e músicas. Uma colectânea, caracterizada pelo seu nome, é uma colecção de pelo menos três músicas. Uma música é caracterizada pelo nome do artista ou banda que a interpreta, bem como pelo seu título, duração em segundos e preço. Não é necessário que todas as músicas numa colectânea sejam do mesmo artista ou banda. O preço de uma colectânea corresponde à soma dos preços das músicas que a constituem, com um desconto de 20%. Leia o enunciado completo desta questão antes de começar a responder a cada uma das suas alíneas! 2.1 Defina as classes Colectânea e Música envolvidas neste sistema de música. A classe Música deve ter operações para: Construir uma nova música, dadas as suas características. Saber separadamente o título, o artista ou banda, a duração e o preço de uma música. Mostrar uma música, i.e., mostrar o seu título, o nome da banda ou artista e a duração, como em: Living Colour Release the Pressure 196 A classe Colectânea deve ter operações para: Construir uma nova colectânea (recorda-se que o construtor deve garantir o cumprimento da condição invariante da classe). Saber o nome de uma colectânea. Saber o número de músicas numa colectânea. Saber se uma música, identificada pelo seu título e nome da banda ou artista, existe numa colectânea. Saber o preço de uma música de uma colectânea, identificada pelo seu título e nome da banda ou artista, e que se admite existir na colectânea. Saber o preço da colectânea. Mostrar uma colectânea, como em: Título: Pride Músicas: Living Colour Release the Pressure 196 Living Colour Sacred Ground 205 Living Colour Visions 199 Living Colour Love Rears its Ugly Head 230 Inserir uma nova música na colectânea. Retirar uma música, identificada pelo seu título e nome da banda ou artista, da colectânea, que se admite ter pelo menos quatro músicas. Não é necessário, nesta alínea, definir nenhum método. Não se esqueça de, para todas as operações, indicar as pré-condições e condição objectivo num comentário de documentação. Indique claramente, usando a notação C++ apropriada, quais das operações não alteram a instância implícita. Para cada classe deve-se também, na respectiva documentação, definir a sua condição invariante, bem como declarar o predicado necessário para saber se essa condição se verifica. [cotação: 4] Ver resposta na próxima alínea. 3/11

4 2.2 Defina os métodos correspondentes às seguintes operações: predicados para verificar a condição invariante de ambas as classes, construtor da classe Colectânea, inspector para o preço de uma dada música de uma colectânea e inspector para o preço de uma colectânea. Todas as condições (pré-condições, condições objectivo e condições invariantes de classe) devem ser verificadas através de instruções de asserção, nomeadamente nos construtores. Para poupar tempo, escreva CIC em todos os locais onde, no código real, colocaria instruções de asserção para verificar a condição invariante de classe. [cotação: 4] Apresenta-se um programa completo. A resolução das duas alíneas acima corresponde às partes a vermelho. #include <iostream> #include <vector> #include <string> using namespace std; /** Representa nome_do_artista "" titulo_ "" 0 duracao_ 0,0 preco_. */ class Musica public: /** Constrói uma nova nome_do_artista "" titulo "" 0 duracao 0,0 nomedoartista() = nome_do_artista titulo() = titulo duracao() = duracao preco() = preco. */ Musica(string const& nome_do_artista, string const& titulo, int const duracao, double const preco); /** Devolve o nome do artista ou banda que interpretam esta nomedoartista = nome do artista que interpreta a música. */ string const& nomedoartista() const; /** Devolve o título da titulo = título da música. */ string const& titulo() const; /** Devolve a duração da duracao = duração da música. */ int duracao() const; /** Devolve o preço da preco = preço da música. */ double preco() const; /** Imprime no ecrã os detalhes da O ecrã contém, para além do que continha antes da invocação da operação, o nome do artista ou banda, o nome da música e a sua duração, separados por espaço e na mesma linha. */ void mostra() const; private: string nome_do_artista; string titulo_; int duracao_; double preco_; ; /** Indica se a condição invariante é cumpreinvariante = (nome_do_artista "" titulo_ "" 0 duracao_ 0,0 preco_). */ bool cumpreinvariante() const; 4/11

5 Musica::Musica(string const& nome_do_artista, string const& titulo, int const duracao, double const preco) : nome_do_artista(nome_do_artista), titulo_(titulo), duracao_(duracao), preco_(preco) assert(nome_do_artista!= "" and titulo!= "" and 0 <= duracao and 0.0 <= preco); string const& Musica::nomeDoArtista() const return nome_do_artista; string const& Musica::titulo() const return titulo_; int Musica::duracao() const return duracao_; double Musica::preco() const return preco_; void Musica::mostra() const cout << "'" << nomedoartista() << "' '" << titulo() << "' " << duracao(); bool Musica::cumpreInvariante() const return nome_do_artista!= "" and titulo_!= "" and 0 <= duracao_ and 0.0 <= preco_; /** Representa colectaneas de nome_ "" 3 musicas.size(). */ class Colectanea public: /** Constrói uma colectânea com o nome e as músicas nome "" 3 nome() = nome (Q i : 0 i < musicas.size() : existemusicacom(musicas[i].nomedoartista(), musicas[i].titulo())). */ Colectanea(string const& nome, vector<musica> const& musicas); /* Nota: Em rigor, o enunciado deveria indicar se se admitem ou não músicas repetidas. Se se admitirem, a condição objectivo acima é insuficiente, pois não garante que na colectânea as músicas ocorram tantas vezes quantas no vector passado como argumento. */ /** Devolve o nome da nome = nome da colectânea. */ string const& nome() const; /** Devolve o número de músicas na colectânea. 5/11

6 @post numerodemusicas = número de músicas da colectânea. */ int numerodemusicas() const; /** Devolve o preço da preco = preço da colectânea, i.e., 80% da soma dos preços das suas músicas. */ double preco() const; /** Devolve o preço de uma música da colectânea identificada pelo nome do artista ou banda e pelo seu existemusicacom(nome_do_artista, precodemusicacom = preço da música da colectânea com o nome do artista e título dados. */ double precodemusicacom(string const& nome_do_artista, string const& titulo) const; /** Mostra os detalhes da colectânea no Para além do que continha antes de invocada esta operação, o ecrã contém uma linha com o nome da colectânea, após o cabeçalho "Título: ", e uma linha com o cabeçalho "Músicas:" seguida de linhas individuais com os detalhes de cada música da colectânea. */ void mostra() const; /** Indica se existe uma música identificada pelo nome do seu artista ou banda e pelo seu existemusicacom = existe música na colectânea com nome do artista ou banda nome_do_artista e título titulo. */ bool existemusicacom(string const& nome_do_artista, string const& titulo) const; /** Acrescenta uma música à existemusicacom(musica.nomedoartista(), musica.titulo()). */ void acrescenta(musica const& musica); /** Retira uma música identificada pelo nome do artista ou banda e pelo 4 numerodemusicas() existemusicacom(nome_do_artista, titulo) numerodemusicas() = numerodemusicas() = n - 1 e colectânea já não contém a música retirada (como o enunciado não diz se podem haver músicas com o mesmo título e artista, não se pode afirmar mais do que isto...). */ void retiramusicacom(string const& nome_do_artista, string const& titulo); static double const desconto; private: string nome_; vector<musica> musicas; ; /** Indica se a condição invariante é cumpreinvariante = (nome_ "" 3 musicas.size()). */ bool cumpreinvariante() const; Colectanea::Colectanea(string const& nome, vector<musica> const& musicas) : nome_(nome), musicas(musicas) assert(nome!= "" and 3 <= musicas.size()); assert((*this).nome() == nome); string const& Colectanea::nome() const return nome_; int Colectanea::numeroDeMusicas() const return int(musicas.size()); 6/11

7 double Colectanea::preco() const double preco = 0.0; for(vector<musica>::size_type i = 0; i!= musicas.size(); ++i) preco += musicas[i].preco(); preco -= desconto * preco; return preco; double Colectanea::precoDeMusicaCom(string const& nome_do_artista, string const& titulo) const assert(existemusicacom(nome_do_artista, titulo)); vector<musica>::size_type i = 0; while(musicas[i].nomedoartista()!= nome_do_artista or musicas[i].titulo()!= titulo) ++i; return musicas[i].preco(); void Colectanea::mostra() const cout << "Título: " << nome() << endl; cout << "Musicas:" << endl; for(vector<musica>::size_type i = 0; i!= musicas.size(); ++i) musicas[i].mostra(); cout << endl; bool Colectanea::existeMusicaCom(string const& nome_do_artista, string const& titulo) const vector<musica>::size_type i = 0; while(i!= musicas.size() and (musicas[i].nomedoartista()!= nome_do_artista or musicas[i].titulo() == titulo)) ++i; return i!= musicas.size(); void Colectanea::acrescenta(Musica const& musica) musicas.push_back(musica); assert(existemusicacom(musica.nomedoartista(), musica.titulo())); void Colectanea::retiraMusicaCom(string const& nome_do_artista, string const& titulo) assert(4 <= numerodemusicas()); assert(existemusicacom(nome_do_artista, titulo)); vector<musica>::size_type i = 0; 7/11

8 while(musicas[i].nomedoartista()!= nome_do_artista or musicas[i].titulo()!= titulo) ++i; musicas[i] = musicas.back(); musicas.pop_back(); bool Colectanea::cumpreInvariante() const return nome_!= "" and 3U <= musicas.size(); double const Colectanea::desconto = 0.2; int main() Musica musica1("living Colour", "Release the Pressure", 196, 10); Musica musica2("living Colour", "Sacred Ground", 205, 20); Musica musica3("living Colour", "Visions", 199, 30); Musica musica4("living Colour", "Love Rears its Ugly Head", 230, 40); vector<musica> musicas; musicas.push_back(musica1); musicas.push_back(musica2); musicas.push_back(musica3); Colectanea colectanea("pride", musicas); colectanea.mostra(); cout << "O preço é: " << colectanea.preco() << endl; cout << colectanea.precodemusicacom("living Colour", "Sacred Ground") << endl; colectanea.acrescenta(musica4); colectanea.mostra(); cout << "O preço é: " << colectanea.preco() << endl; colectanea.retiramusicacom("living Colour", "Sacred Ground"); colectanea.mostra(); cout << "O preço é: " << colectanea.preco() << endl; cin.get(); Questão 3 Considere a função int produtode(vector<int> const& v) que devolve o produto de todos os elementos de um vector: int produtode(vector<int> const& v) int produto = 1; for(vector<int>::size_type i = 0; i!= v.size(); ++i) produto *= v[i]; return produto; 8/11

9 3.1 Indique a pré-condição (PC), a condição objectivo (CO), a condição invariante (CI) e a guarda (G) do ciclo necessário à construção desta função. [cotação: 1] PC: V (ou 0 v.size(), embora seja redundante, pois sabe-se que é sempre verdade). CO: produto = (P j : 0 j < v.size() : v[j]) G: i v.size() CI: produto = (P j : 0 j < i : v[j]) 0 i v.size() 3.2 Prove que o ciclo está correcto verificando que: 1. Se a PC for verdadeira, então a CI também é verdadeira após a inicialização das variáveis e antes da primeira iteração do ciclo, i.e.: // PC init // implica CI 2. Se a guarda G e a CI do ciclo forem verdadeiras no início de um passo, então a CI também é verdadeira no fim desse passo, i.e.: // G e CI passo // implica CI 3. Se a guarda G for falsa e a CI for verdadeira, então a CO é verdadeira, i.e.: [cotação: 3] // CI e G implica CO 1. Neste caso a demonstração é directa, bastando substitui na condição invariante o valor inicial das variáveis em jogo (assume-se que se transformou o ciclo for no ciclo while equivalente): // PC: V. int produto = 1; vector<int>::size_type i = 0; // CI: produto = (P j : 0 j < i : v[j]) 0 i v.size(), ou seja, dada a inicialização, // CI: 1 = (P j : 0 j < 0 : v[j]) 0 0 v.size(), ou seja, // CI: 1 = 1 0 v.size(), ou seja, // CI: 0 v.size(), pelo que, PC CI, dada a inicialização realizada. 2. A demonstração pode ser feita duma forma directa, deduzindo as asserções verdadeiras após cada instrução: // CI G: produto = (P j : 0 j < i : v[j]) 0 i v.size() i v.size(), ou seja, // produto = (P j : 0 j < i : v[j]) 0 i < v.size(). produto *= v[i]; // produto = (P j : 0 j < i : v[j]) v[i] 0 i < v.size(), ou seja, // produto = (P j : 0 j < i + 1 : v[j]) 0 i < v.size(). ++i; 9/11

10 // produto = (P j : 0 j < (i - 1) + 1 : v[j]) 0 i - 1 < v.size(), ou seja, // produto = (P j : 0 j < i : v[j]) 1 i < v.size() + 1, ou seja, // produto = (P j : 0 j < i : v[j]) 1 i v.size(), que implica, // CI: produto = (P j : 0 j < i : v[j]) 0 i v.size(). 3. A demonstração faz-se por dedução: // CI G: produto = (P j : 0 j < i : v[j]) 0 i v.size() i = v.size(), ou seja, // CI G: produto = (P j : 0 j < v.size() : v[j]) 0 v.size() i = v.size(), // que, dada a PC, implica, CO: produto = (P j : 0 j < v.size() : v[j]). Questão 4 Considere a seguinte implementação da classe Racional: /** Representa números denominador 0. */ class Racional public: /** Constrói racional correspondente a denominador = numerador/denominador. */ Racional(int const numerador, int const denominador); /** Inverte o número 0 e *this = = r -1. */ void inverte(); private: int numerador; int denominador; int auxiliar; ; /** Indica a veracidade da cumpreinvariante = denominador 0. */ bool cumpreinvariante() const; Racional::Racional(int const numerador, int const denominador) : numerador(numerador), denominador(denominador) assert(denominador!= 0); 10/11

11 void Racional::inverte() assert(numerador!= 0); auxiliar = numerador; numerador = denominador; denominador = auxiliar; bool Racional::cumpreInvariante() const return denominador!= 0; Analise criticamente a implementação (e não a interface) desta classe. Caso identifique algum problema, explique-o e descreva brevemente uma solução. Note que não há quaisquer erros de compilação. [cotação: 3] A classe Racional apenas precisa de guardar o valor do numerador e do denominador. O atributo auxiliar, como o próprio nome indica, apenas serve para auxiliar a troca de valores entre denominador e numerador no método Racional::inverte(), não sendo usado em mais nenhuma situação. A existência do atributo auxiliar é desaconselhada: o seu valor é indefinido e irrelevante fora do método em que é utilizado, não fazendo parte da representação do conceito da número racional. Uma implementação correcta desta classe implicaria suprimir o atributo auxiliar e usar uma constante inteira com o mesmo nome local ao método Racional::inverte(). 11/11

Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE

Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE Recibo da (IGE e ETI), 2004/2/10 1º semestre de 2003/2004, ISCTE Nome do aluno:... Número do aluno:... Assinatura do docente:... Notas: Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre

Leia mais

Exame de 2ª Época. Introdução à Programação (IGE e ETI), 2004/3/11, 1º semestre de 2003/2004, ISCTE

Exame de 2ª Época. Introdução à Programação (IGE e ETI), 2004/3/11, 1º semestre de 2003/2004, ISCTE Recibo do Exame de 2ª Época Introdução à Programação (IGE e ETI), 2004/3/11, 1º semestre de 2003/2004, ISCTE Nome do aluno:... Número do aluno:... Assinatura do docente:... Notas: Exame de 2ª Época Introdução

Leia mais

Exame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE

Exame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE Recibo do Exame de 1ª Época de Introdução à Programação (IGE e ETI), 2003/02/25 1º semestre de 2002/2003, ISCTE Nome do aluno:... Número do aluno:... Assinatura do docente:... Notas: Exame de 1ª Época

Leia mais

Resolução do Exame de 1ª Época/Melhoria da Frequência. Introdução à Programação. IGE e ETI. 2004/3/2 1º semestre de 2003/2004 ISCTE

Resolução do Exame de 1ª Época/Melhoria da Frequência. Introdução à Programação. IGE e ETI. 2004/3/2 1º semestre de 2003/2004 ISCTE Resolução do Exame de 1ª Época/Melhoria da Frequência Introdução à Programação IGE e ETI 2004/3/2 1º semestre de 2003/2004 ISCTE Questão 1 Assinale com V (Verdadeiro) as expressões que estão correctas

Leia mais

Exame de 1ª Época/Melhoria da Frequência Introdução à Programação IGE e ETI 2004/3/2 1º semestre de 2003/2004 ISCTE

Exame de 1ª Época/Melhoria da Frequência Introdução à Programação IGE e ETI 2004/3/2 1º semestre de 2003/2004 ISCTE Recibo do Exame de 1ª Época/Melhoria da Frequência (riscar o que não interessa) Introdução à Programação (IGE e ETI), 2004/3/2, 1º semestre de 2003/2004, ISCTE Nome do aluno:... Número do aluno:... Assinatura

Leia mais

Computação e Programação Exame Época de recurso

Computação e Programação Exame Época de recurso Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v

Leia mais

Computação e Programação (2007/2008-1º Semestre)

Computação e Programação (2007/2008-1º Semestre) Computação e Programação (2007/2008-1º Semestre) Exame Tipo: 2008-01-14 MEMec - LEAN DURAÇÃO: 3 horas Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha, e número

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL 1º Semestre 2005/2006 Introdução à Programação Correcção do Exame de 4/02/2006 Leia com atenção as perguntas

Leia mais

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES -- Ministério da Educação e Ciência p-fólio U.C. (21093) Programação por Objetos XX de Julho de 2015 -- INSTRUÇÕES -- O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C 1º Semestre 2006/2007 27/02/2007 (D) Leia com atenção as perguntas e justifique todas as suas respostas. 1. Explique

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 Introdução à Programação em C 28/01/2008 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Descreva,

Leia mais

Computação e Programação Exame Época de recurso

Computação e Programação Exame Época de recurso Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v

Leia mais

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame

Leia mais

LEIA ATENTAMENTE AS INSTRUÇÕES PARA A RESOLUÇÃO DO

LEIA ATENTAMENTE AS INSTRUÇÕES PARA A RESOLUÇÃO DO Nome:... B.I. :... Nº de Estudante:... Curso:... Turma:... Unidade Curricular:...Programação por Objectos Código: 21093 Data: 22 de Julho 2010 Assinatura do Vigilante:... Classificação ( ) Assinatura do

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015 PCS - 3111 Laboratório de Programação Orientada a Objetos 1a. Prova 02 de Setembro de 2015 Questão 1 (2,6) Deseja-se implementar um programa que recebe um mês e um dia atual de um ano e o mês e o dia de

Leia mais

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2016-2017 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 1 de Fevereiro de 2017 Exame

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2016-2017 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 11 de janeiro de 2017 Exame sem

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando

Leia mais

Aula 14: Funções Passagem de Parâmetros por Referência

Aula 14: Funções Passagem de Parâmetros por Referência CI208 - Programação de Computadores Aula 14: Funções Passagem de Parâmetros por Referência Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor

Leia mais

Computação e Programação. Exame Época de Recurso

Computação e Programação. Exame Época de Recurso Nome : Número : Computação e Programação 2014-2015 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 28 de janeiro de 2015 Exame

Leia mais

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação

Leia mais

Computação e Programação. Exame Época Normal

Computação e Programação. Exame Época Normal Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 6 de janeiro de 2016 Exame sem

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

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o

Leia mais

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES -- Ministério da Educação e Ciência p-fólio U.C. (21093) Programação por Objetos XX de Julho de 2017 -- INSTRUÇÕES -- O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012 Introdução à Programação em C 31/01/2012 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Explique

Leia mais

//conteúdo do arquivo pacote.h

//conteúdo do arquivo pacote.h //conteúdo do arquivo pacote.h #ifndef PACOTE_H #define PACOTE_H #include #include class Pacote friend istream &operator>> (istream &, Pacote &); friend ostream &operator

Leia mais

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor) Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 27 de janeiro de 2015 Exame

Leia mais

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções Funções Objectivos Iniciar a programação de funções Estudar a chamada de funções Estudar a forma como são executadas as funções Passagem por valor e referência Como conceber funções 2 Programação modular

Leia mais

Aula 8 Comandos de Seleção

Aula 8 Comandos de Seleção Aula 8 Comandos de Seleção Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Até agora não aprendemos a dizer

Leia mais

Aula 10: Manipulação do fluxo de laços

Aula 10: Manipulação do fluxo de laços Aula 10: Manipulação do fluxo de laços Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação para o uso de C++ para o aprendizado de POO Quando usar C e quando usar C++ C++ versus Java Ambientes

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 ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica. Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);

Leia mais

Aula 15: Introdução a Funções

Aula 15: Introdução a Funções Aula 15: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos diversos

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

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

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES -- Ministério da Educação e Ciência p-fólio U.C. (21093) Programação por Objetos XX de Julho de 2016 -- INSTRUÇÕES -- O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos

Leia mais

Computação e Programação Aula prática nº 5. Enunciados dos problemas

Computação e Programação Aula prática nº 5. Enunciados dos problemas Enunciados dos problemas 1 2. Implementação de uma calculadora 2.1 Objectivos do exercício análise sequencial de um problema baseada em objectos e desenvolvimento do respectivo algoritmo; codificação do

Leia mais

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo LAÇOS Laços são comandos da linguagem

Leia mais

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas

Leia mais

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exercícios da aula prática 2 Vetores 3 Exemplos

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET43I Aula 5 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens

Leia mais

Aula 26: Estruturas heterogêneas

Aula 26: Estruturas heterogêneas Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização

Leia mais

Puca Huachi Vaz Penna / José Américo T. Messias

Puca Huachi Vaz Penna / José Américo T. Messias BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna / José Américo T. Messias Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca

Leia mais

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes CI208 - Programação de Computadores Aula 12: Funções Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011 Programação Orientada por Objectos 2010/11 2º Exame 28 de Junho de 2011 Instruções (leia com cuidado): Escreva de forma CLARA o seu nome e número em todas as folhas. O exame contém 8 páginas dividido em

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

Leia mais

Aula 10 Comandos de Repetição

Aula 10 Comandos de Repetição Aula 10 Comandos de Repetição Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Em certas situações é necessária

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA 1º Semestre 2003/2004 Introdução à Programação 21/2/2004 Correcção 1. Qual o objectivo dos comentários em C++ e o que

Leia mais

ESTRUTURA DE DADOS LAÇOS E VETORES

ESTRUTURA DE DADOS LAÇOS E VETORES ESTRUTURA DE DADOS LAÇOS E VETORES Prof. Dr. Daniel Caetano 2014-2 Objetivos Recordar os laços de repetição Conhecer os vetores Compreender o uso de vetores Material de Estudo Material Notas de Aula Apresentação

Leia mais

Instituto de Informática Estrutura de Dados II

Instituto de Informática Estrutura de Dados II Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O

Leia mais

Aula 17: Funções (Parte III) e Introdução a Vetores

Aula 17: Funções (Parte III) e Introdução a Vetores Aula 17: Funções (Parte III) e Introdução a Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exemplos

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 2ª Aula de Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo Automação e Robótica Exercício 1 Determinação do tamanho de cada tipo de

Leia mais

Introdução a linguagem C. Introdução à Programação 06/07

Introdução a linguagem C. Introdução à Programação 06/07 Introdução a linguagem C Introdução à Programação 06/07 A LINGUAGEM DE PROGRAMAÇÃO C A linguagem C foi criada, na década de setenta, por Dennis M. Ritchie; Apesar de se considerar uma linguagem de alto

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

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

Programação de Computadores ( ) Sexta folha de Problemas

Programação de Computadores ( ) Sexta folha de Problemas Programação de Computadores (2013-2014) Sexta folha de Problemas Matéria abordada: funções (passagem de parâmetros por valor), alcance das variáveis, ciclos (while, do while, for), switch; gama dos números

Leia mais

Programação Orientada por Objectos em C++ (alguns conceitos) Algoritmos e Estruturas de Dados 2009/2010. Três maneiras de passar parâmetros:

Programação Orientada por Objectos em C++ (alguns conceitos) Algoritmos e Estruturas de Dados 2009/2010. Três maneiras de passar parâmetros: Programação Orientada por Objectos em C++ (alguns conceitos) Algoritmos e Estruturas de Dados 2009/2010 Mestrado Integrado em Engenharia Informática e Computação Passagem de parâmetros Três maneiras de

Leia mais

Fundamentos de Programação 2

Fundamentos de Programação 2 Fundamentos de Programação 2 ET43G Aula 9 Prof. Daniel Cavalcanti Jeronymo e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens e métodos,

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010

PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 5 Funções e Vectores

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

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 Introdução ao C++ Ambientes de Desenvolvimento Avançados 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 C++! Extensão ao c! Facilita a representação de tipos de dados abstractos (tipo classe)! Suporte

Leia mais

Aula 8: Estruturas de Repetição: O comando while

Aula 8: Estruturas de Repetição: O comando while CI208 - Programação de Computadores Aula 8: Estruturas de Repetição: O comando while Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências

Leia mais

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

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

Aula 4: Introdução à Linguagem C++

Aula 4: Introdução à Linguagem C++ CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas

Leia mais

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler Aula 10 Alocação Dinâmica de Memória Listas Encadeadas prof Leticia Winkler 1 Prof. Leticia Winkler 2 Alocação de Memória Reservar na memória (principal), o espaço para guardar a informação através da

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes CIV 2802 Sistemas Gráficos para Engenharia 2011.1 4º Trabalho: Programação básica em C++: Classes Implementação de uma calculadora RPN (Reversed Polish Notation) Entrega: 05/abril/2011 Pede-se complementar

Leia mais

2 Vectores de objectos

2 Vectores de objectos 2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,

Leia mais

Computação e Programação (2007/2008-1º Semestre)

Computação e Programação (2007/2008-1º Semestre) Computação e Programação (2007/2008-1º Semestre) Exame de 1ª Época: 2008-01-23 MEMec - LEAN DURAÇÃO: 3 horas Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,

Leia mais

LISTA DE EXERCÍCIOS 2

LISTA DE EXERCÍCIOS 2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo

Leia mais

1 a Frequência

1 a Frequência 1 a Frequência 28-10-2009 Programação de Computadores sem consulta Versão A Duração: 1h20m Nome: N o : Nas questões 1, 2, 3 e 4 responda sobre o enunciado que deverá ser entregue junto com a prova. 1.

Leia mais

Introdução à Programação. Encapsulamento e Herança

Introdução à Programação. Encapsulamento e Herança Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância

Leia mais

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void //conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();

Leia mais

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Prova de Programação (21090) Data: 31 de Janeiro de 2008 Ministério da Ciência, Tecnologia e Ensino Superior Curso:... Prova de Programação (21090) Data: 31 de Janeiro de 2008 Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:... RESERVADO PARA

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos

Leia mais

Física Computacional 7 Classes

Física Computacional 7 Classes Física Computacional 7 Classes 1. Classes a. Construtores e destruidores fc.trabalhosalunos@gmail.com Física Computacional - MEFT 2013/14 P. Bicudo, P. Martins, M. Cardoso 1 As classes possuem métodos

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

Computação e Programação. Exame Época Normal

Computação e Programação. Exame Época Normal Nome : Número : Computação e Programação 2014-2015 Mestrado Integrado em Engenharia Ciil Licenciatura Bolonha em Engenharia Geológica e de Minas DECiil Exame Época Normal 7 de janeiro de 2015 Exame sem

Leia mais

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem

Leia mais

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista == Laboratório 7 == 1. Escreva uma classe Carrinho para armazenar itens

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 2ª Aula de Miguel Pedro Silva e João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo Automação e Robótica Aviso Durante os dias

Leia mais

Técnicas de Programação:

Técnicas de Programação: Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.

Leia mais

Guia e Utilização do Visual Studio.NET 2003

Guia e Utilização do Visual Studio.NET 2003 Guia e Utilização do Visual Studio.NET 2003 Objectivo Este guia acompanha-o através do processo de criação de uma aplicação C++ utilizando o ambiente de desenvolvimento Visual Studio.NET 2003. Passo 1:

Leia mais