Prévia do material em texto
Nome: ____________________________________________________________ Matr.: _______________ Subturma: T05___ PROVA ESCRITA 2 (Reposição) (vale 6,0 pontos) • Leia atentamente cada questão, preenchendo as suas respostas no caderno de respostas, sem rasurar; • Qualquer parte desta prova pode ser utilizada como rascunho. (vale 2,0 pontos) 1) Considere o seguinte programa em C++, execute-o e informe o que é impresso pelo programa: #include <iostream> using namespace std; struct P { int x; int y; }; struct VX { char n; double v; P po; }; void process( VX y, VX& x ) { if( y.v > x.v ) x.v -= 1; } int main() { VX v[3], vo; char n[3] = { 'a', 'b', 'c' }; for( int i = 0; i < 3; i++ ) { v[i].n = n[i]; v[i].v = i + 5; v[i].po.x = i; v[i].po.y = 7 - i; } vo = v[0]; cout << vo.n << vo.v << vo.po.x << vo.po.y << endl; vo.v = 8; v[1].v = 4; process( v[1], vo ); cout << vo.v << endl; vo.v = 3; v[2].v = 7; process( v[2], vo ); cout << vo.v << endl; return 0; } UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA ECT1203 – Linguagem de Programação – 2013.1 2ª Avaliação Escrita (Reposição) – Turma 05 Prof. João Paulo (vale 2,0 pontos) 2) Faça um programa em C++ que simule uma calculadora com tipos estruturados. Esta calculadora possuirá as quatro operações matemáticas fundamentais: soma, subtração, multiplicação e divisão. Considere as seguintes tarefas que o seu programa deverá realizar obrigatoriamente: (0,3 ponto) a) Declare a seguinte estrutura em seu programa, que irá representar uma operação matemática: (0,3 ponto) b) Utilizando a estrutura anterior, cadastrar 50 operações matemáticas. O usuário informará para o campo identificação de cada operação: soma, subtração, multiplicação ou divisão. Os campos operando1 e operando2 armazenarão os valores envolvidos nessa operação; (0,6 ponto) c) Criar uma função que receba uma estrutura Operacao e retorne o valor resultande dessa operação. Ou seja, esta função através do parâmetro informado saberá qual operação proceder (soma, subtração, multiplicação ou divisão) e retornará o resultado de acordo com a operação informada e seus operandos. Eis o protótipo a ser seguido: double calcular( Operacao op ); (0,6 ponto) d) Criar uma função para receber o vetor com as 50 operações cadastradas e o tamanho deste vetor (50) e informe a soma dos resultados de cada operação cadastrada. Ou seja, dentro dessa função deverá ser calculado o resultado de cada uma das 50 operações e estes 50 resultados serão somados, sendo o retorno dessa função. Eis o protótipo: int soma_resultados( Operacao op[], int tamanho ); (0,2 ponto) e) Utilizando as funções declaradas anteriormente, o seu programa deverá imprimir: • Todos os dados de todas as 50 operações cadastradas; • O resultado de cada operação matemática cadastrada; • A soma de todos esses resultados, dado pela função soma_resultados(). (vale 2,0 pontos) 3) Faça um programa em C++ que realize o cadastro de produtos para um supermercado. Cada produto situa-se numa das prateleiras do supermercado. Considere em seu programa: (0,3 ponto) a) Declare as seguintes estruturas, representando a prateleira e o produto: (0,3 ponto) b) Realize o cadastro de 50 produtos, informando para cada: identificação (nome do produto), preço e a prateleira (tipo: frios, cereais, etc; corredor e valor da temperatura); (1,4 ponto) Crie as seguintes funções em seu programa, mas elas não devem receber parâmetros e nem haver retorno (void): - Uma função para calcular qual o nome (identificação) do produto mais barato. Protótipo: void mais_barato(); - Uma função para informar qual prateleira (informar o tipo) possui mais produtos cadastrados. Protótipo: void mais_produtos();