Resolução da Frequência Introdução à Programação IGE e ETI 2004/2/10 1º semestre de 2003/2004 ISCTE
|
|
- Giovanni de Escobar
- 5 Há anos
- Visualizações:
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
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 maisExame 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 maisExame 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 maisResoluçã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 maisExame 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 maisComputaçã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 maisComputaçã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 maisNome: 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 maisUNIVERSIDADE 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 maisU.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 maisNome: 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 maisUNIVERSIDADE 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 maisNome: 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 maisUNIVERSIDADE 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 maisComputaçã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 maisLinguagem 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 maisNome: 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 maisLEIA 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 maisLista 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 maisPCS 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 maisNome: 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 maisNome: 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 maisLaborató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 maisAula 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 maisComputaçã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 maisFá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 maisFundamentos 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 maisComputaçã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 maisImplementando 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 maisProgramaçã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 maisU.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 maisUNIVERSIDADE 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 #ifndef PACOTE_H #define PACOTE_H #include #include class Pacote friend istream &operator>> (istream &, Pacote &); friend ostream &operator
Leia maisProblema 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 maisObjectivos. 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 maisAula 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 maisAula 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 maisEstrutura 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 maisCarlos 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 maisINF1636 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 maisProgramaçã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 maisComputaçã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 maisAula 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 maisAlgoritmos 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 maisINSTRUÇÕ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 maisU.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 maisComputaçã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 maisINFORMÁ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 maisCMP 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 maisAula 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 maisFundamentos 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 maisFundamentos 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 maisAula 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 maisPuca 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 maisAula 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 maisProgramaçã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 maisProgramaçã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 maisINF1337 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 maisAula 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 maisUNIVERSIDADE 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 maisESTRUTURA 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 maisInstituto 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 maisAula 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 maisProgramaçã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 maisComputaçã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 maisIntroduçã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 maisDados 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 maisProgramaçã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 maisProgramaçã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 maisProgramaçã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 maisFundamentos 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 maisPROGRAMAÇÃ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 maisClasses 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 maisProgramaçã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 maisIntroduçã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 maisAula 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 maisProgramaçã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 maisProgramaçã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 maisAula 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 maisAula 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 mais9 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 maisCIV 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 mais2 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 maisComputaçã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 maisLISTA 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 mais1 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 maisIntroduçã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 setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();
Leia maisProva 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 maisLinguagem 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 maisFí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 maisAula 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 maisComputaçã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 maisPCS3111. 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 maisLinguagens 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 maisComputaçã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 maisTé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 maisGuia 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