Buscar

Prova2_T05_Reposicao_Respostas



Continue navegando


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();