Buscar

Prova2_T05_TipoB_Respostas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Nome: ____________________________________________________________ Matr.: _______________
 Subturma: T05___
PROVA ESCRITA 2 (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;
int r;
struct X {
    char id;
    int a;
    int d;
};
int process( int po, int de ) {
    int res = po ­ de;
    if( res > 0 )
        res = 1;
    else if( res < 0 )
        res = ­1;
    return res;
}
int main() {
    X ro[3], rb;
    char n[3] = { 'r', 's', 't' };
    r = 6;
    for(int i = 0; i < 3; i++) {
        ro[i].id = n[i];
        ro[i].a = r + 2;
        ro[i].d = r ­ 3;
        r += 4;
    }
    cout << ro[1].id << ro[1].a << 
ro[1].d << endl;
    r = 1;
    rb.id = 'x';
    rb.a = r + 7;
    rb.d = 6;
    ro[r] = rb;
    cout << ro[r].id << ro[r].a << 
ro[r].d << endl;
    rb.id = 'w';
    rb.a = 7;
    rb.d = 6;
    r = rb.a ­ rb.d;
    ro[r].id = n[r];
    ro[r].a = 6;
    ro[r].d = 8;
    cout << process( rb.a, ro[r].d ) << 
process( ro[r].a, rb.d ) << 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 – Turma 05
Prof João Paulo
Prova 2 TipoB está sem o 
ponto após a palavra Prof
(vale 2,0 pontos)
2) Faça um programa em C++ que realize um cadastro de 100 pessoas para um censo demográfico. Para cada pessoa, 
deverá ser lido: nome, idade, sexo (M ou F), telefone e endereço. Considere as seguintes tarefas que o seu programa 
deverá realizar obrigatoriamente:
(0,5 ponto)
a) Declare as seguintes estruturas em seu programa, para representar uma pessoa e seu endereço, respectivamente:
(0,5 ponto)
b) Utilizando as estruturas declaradas anteriormente, realize o cadastro de 100 pessoas, lendo para cada: nome, idade, 
sexo (M ou F), telefone, endereço (logradouro, numero, bairro, cidade e estado);
Após cadastro, declare e implemente em seu programa as seguintes funções, obedecendo os seus protótipos:
(0,4 ponto)
c) Uma função para calcular o número de pessoas de um determinado sexo. A função receberá o vetor com as pessoas 
cadastradas, seu tamanho (100) e o sexo (M ou F) a ser considerado na contagem. A função irá retornar o valor do número
de pessoas do sexo considerado no parâmetro. Eis o protótipo:
int contar_genero( Pessoa p[], int tamanho, char sexo );
(0,4 ponto)
d) Uma função para determinar qual pessoa é a mais nova (com a menor idade) de todas as 100 pessoas cadastradas. Esta 
função recebe o vetor de pessoas cadastradas e seu tamanho (100). Esta função não retornará qualquer valor (void), mas 
terá que informar o nome, a idade e o endereço da pessoa mais nova. Eis o protótipo:
void mais_nova( Pessoa p[], int tamanho );
(0,2 ponto)
e) O seu programa deverá imprimir:
• Todos os dados de todas as pessoas cadastradas;
• O número de pessoas do sexo masculino e do sexo feminino;
• O nome, a idade e o endereço da pessoa mais nova cadastrada.
Prova 2 TipoB pede para 
encontrar a pessoa mais 
nova.
RASCUNHO
(vale 2,0 pontos)
3) Faça um programa em C++ que calcule a quantidade de tempo em segundos decorridos a partir das 00:00:00 
(HH:MM:SS) do dia atual até um horário (hora, minutos e segundos) informado pelo usuário. Considere como obrigatório
em seu programa:
(0,3 ponto)
a) Leitura do horário informado pelo usuário. O horário será informado também através de três valores: horas, minutos e
segundos;
(0,5 ponto)
b) Criar uma função que converta horas para segundos. Esta função recebe o valor em horas e retorna o valor calculado 
em segundos. Obedeça o seguinte protótipo:
int hourToSec( int qt_horas );
(0,5 ponto)
c) Criar uma função que converta minutos para segundos. Esta função recebe o valor em minutos e retorna o valor 
calculado em segundos. Obedeça o seguinte protótipo:
int minToSec( int qt_minutos );
(0,5 ponto)
d) Utilizando as funções anteriores, hourToSec() e minToSec(), calcule a quantidade total de segundos das 00:00:00 até o
horário informado pelo usuário;
(0,2 ponto)
e) Imprima o horário lido do usuário no formato HH:MM:SS e imprima também a quantidade de segundos decorridos 
desde as 00:00:00 até o horário informado pelo usuário.
Dicas:
• 1 hora = 3600 segundos;
• 1 hora = 60 minutos;
• 1 minuto = 60 segundos;
• 1 dia = 24 horas.
RASCUNHO

Outros materiais