Primeira Prova Programação Aplicada de Computadores 09/2 Prof. Andréa Maria Pedrosa Valli Aluno: ______________________________________________________________ Questão 1) (2.0 pontos) Responda as seguintes perguntas : a) Quais são as desvantagens em se criar novos tipos de dados usando struct? Qual é o papel da interface na programação orientada a objetos? b) Qual é a vantagem em ocultar informações na programação orientada a objetos? Explique. Questão 2) (2.0 pontos) Mostre a saída do programa abaixo, indicando o escopo das variáveis. #include <iostream> using namespace std; void exemplo(); int x = 10; int y = 20; int main() { int x = 30; cout << "xg = " << x << " yg = " << y << endl; { int x = 40; cout << "xb = " << x << " yb = " << y << endl; } exemplo(); exemplo(); return 0; } void exemplo() { static int x = 50; x = x + 1; y = y + 1; cout << "xe = " << x << " ye = " << y << endl; } Questão 3) (3.0 pontos) Faça o que se pede: a) Corrija os erros de sintaxe e mostre qual é o conteúdo do array ao final da execução do seguinte código: int a[4]; for ( int i = 0 , I < 4 , i++ ) { if ( i < 3) { a[i] = i*2; } a[3] = i } b) Qual é o problema com as linhas de codigo abaixo? const int a=5; a = 10; c) Corrija os erros do programa abaixo. #include <iostream>; using namespace std; int main( ); { % programa em c++ int a_1, c3$, d 4; a_1 = 10; c3$ = d; a_1 = a_1 + c3 cout >> 'd4 = ' >> d4 >> '\n'; } Questão 4) (3.0 pontos) Vamos assumir que os comportamentos desejados para as classes Ponto e Reta são os seguintes: Ponto: Reta: Criar das coordenadas Criar de dois pontos Calcular a distância a outro ponto Criar de uma reta Obter as coordenadas x e y (getx e gety) Calcular a distância a um ponto a) Faça a interface das classes assumindo que os membros privados das classes são m_x e m_y (float) para a classe Ponto e a,b,c (float) para a classe Reta (ax+by+c=0). b) Construa todas as funções das classes Ponto e Reta, colocando getx e gety inline. distância entre dois pontos = sqrt( difx*difx+dify*dify ), difx=(x2x1) e dify=(y2y1) distância reta a um ponto: se x1 = x2 então (a=1, b = 0, c = x1 ) senao (a=y2–y1, b=x1–x2, c=y1*x2–y2*x1) c) Use as classes para calcular a distância entre dois pontos p1(2,3) e p2(3,5), calcular a reta que passa entre esses dois pontos e imprimir na tela.