Buscar

P1 2014/2

Prévia do material em texto

INF01202 – ALGORITMOS E PROGRAMAÇÃO 
Prof. Marcelo Walter – Prova 1 24/09/2014 
 
 
NOME:________________________________________________________________________ 
 
Para todos os programas, omita os cabeçalhos de bibliotecas e utilize identação para melhorar a 
legibilidade dos programas. 
 
1ª questão – (1,5 pontos) 
Seja o programa a seguir (propositalmente sem comentários e identação). Apresente a saída em tela gerada 
pela execução do mesmo. 
 
#include <stdio.h> 
#define TAM 6 
int main() 
{ 
int v[]={-1,1,0,-2,2,3}; 
int i,j, a=2, b=10; 
for(i=0;i<TAM;i++) 
{ 
if (v[i] > 0) 
{ 
j=v[i]; 
while(j>0) 
{ 
printf("%d\n", a * b); 
a++; 
b--; 
j--; 
} 
} 
} 
return 0; 
} 
 
2ª questão – (3 pontos) 
Foi feita uma pesquisa para determinar o perfil dos alunos que ingressaram na Ciência da Computação na 
UFRGS num determinado semestre. Escreva um programa que: 
 
1. Leia inicialmente o número total de alunos (n>0, faça validação) que prestaram vestibular para 
Ciência da Computação no semestre; 
2. Leia, em seguida num laço, um número indeterminado de informações sobre os alunos que 
passaram no vestibular. Para cada aluno o programa deve ler o sexo do aluno ('m' para masculino e 'f' 
para feminino) e o número de vezes que este aluno prestou vestibular. A última linha, que não entrará nos 
cálculos, contém no lugar do sexo a letra ‘x’ (minúsculo). Este é o "sinal" para parar de ler dados. 
Determine e imprima ao final da entrada de dados: 
• a porcentagem de alunos que passaram no vestibular 
• a porcentagem de alunos do sexo masculino que passaram no vestibular 
• a porcentagem de alunos, independente de sexo, que prestou vestibular 3 ou mais vezes no período 
 
OBS: Você não deve usar vetores nesta questão. 
 
 
3ª questão – (2,5 pontos) Uma conta corrente bancária é composta por um código com 6 dígitos, além de um 
dígito verificador (dv). Para se certificar de que um código de agência foi digitado corretamente, é feita a 
comparação do dígito verificador (dv) por um outro dígito calculado (dc). O cálculo do dc é feito nos 
algarismos do código da conta correspondente multiplicando-se os algarismos do código pelos números 
primos (1, 2, 3, 5, 7 e 11) e o resto da divisão desta soma por 9, como mostrado abaixo: 
a) Código da conta digitado = 250126 , dígito verificador digitado (dv = 7) 
b) Soma dos produtos dos algarismos do código da agência pelos números primos: 
sp = 2*1 + 5*2 + 0*3 + 1*5 + 2*7 + 6*11 = 97 
c) Dígito verificador calculado (dc = resto da divisão de sp por 9) = 7 
d) Como o dígito verificador dv é igual ao dígito calculado (dc) conclui-se que a conta foi digitada 
corretamente. 
Fazer um programa com 2 vetores: um para o código da conta (cc) e outro para os números primos (np), 
conforme os passos abaixo: 
a) declarar o vetor np com os números primos 1, 2, 3, 5, 7 e 11; 
b) ler os algarismos do código da conta para o vetor cc e o dígito verificador dv do código da conta; 
c) calcular o dígito verificador calculado, dc; 
d) se dv ≠ dc, emitir mensagem de erro e encerrar o processamento; 
e) se o código da conta foi digitado corretamente, imprimir o mesmo e a mensagem “Digitado 
corretamente”. 
 
4ª questão – (3 pontos) 
Uma empresa de ônibus MW tem saídas diárias de Porto Alegre para outras cidades do Brasil, conforme 
tabela abaixo: 
 
Código Destino Tarifa 
11 Florianópolis R$ 95.70 
23 Uruguaiana R$ 112.20 
55 Caxias do Sul R$ 45.55 
62 Rio de Janeiro R$ 136.89 
 
Faça um programa que exiba na tela a lista de destinos disponíveis com o valor da passagem e, em 
seguida, receba como entrada o código do destino escolhido e a quantia em dinheiro recebida do 
passageiro. Se o dinheiro recebido for insuficiente, imprima uma mensagem de erro; caso contrário, 
calcule o troco e imprima na tela o destino escolhido, o valor da passagem e o valor do troco. O valor 
digitado para o código de destino deve ser um dos valores válidos acima ou 99 para sair do programa.

Continue navegando