Buscar

AP1(Gabarito) 20051


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

Continue navegando


Prévia do material em texto

Fundação CECIERJ - Vice Presidência de Educação Superior a Distância
Curso de Tecnologia em Sistemas de Computação – UFF
Disciplina: Projeto e Desenvolvimento de Algoritmos
AP1 1° semestre de 2005.
Data 21/05/2005
Nome – 
Assinatura – 
Observações:
1. Prova sem consulta.
2. Coloque seu nome e assinatura na folha das questões e na folha de respostas. 
3. Ao final da prova devolva as folhas de questões e as de respostas.
4. Todas as respostas devem ser transcritas na folha de respostas. As respostas na folha de 
questões não serão corrigidas.
1a questão (1.0 ponto)
Determine se são válidos ou inválidos os nomes de variáveis a seguir. No caso de nomes 
inválidos, justifique sua resposta.
i. amigo1
válido.
ii. 1amigo
inválido. Nomes de variáveis não podem começar por números.
iii. meuAmigo
válido
iv. meu amigo
inválido. Nomes de variáveis não podem conter espaços em branco.
v. meuAmigoehv@$!*
inválido. Nomes de variáveis não podem conter caracteres 
alfanuméricos diferentes de letras, números ou sublinhas.
2a questão (1.0 ponto)
O maior inteiro com sinal representável em um computador é 4095. Quantos bits são usados 
para representar um número inteiro nesta máquina? Justifique sua resposta.
13 bits
Justificativa: 4095 = 212-1. Como o bit de ordem mais alta é reservado para o sinal, são 
necessários então 13 bits.
1
3a questão (1.0 ponto)
Escreva as expressões a seguir em pseudo-código
a)
B
A
YX
CA
Y
B
X
A
+
+
*
*
22
((A*A)/X+(B*B)/Y)/((A*C)/(X*Y))+A/B
b)
CAB ⋅⋅−42
B*B – 4*A*C
4a questão (1.0 ponto)
Qual é o resultado da expressão abaixo para J=5, K=3 e L=6? Justifique sua resposta.
J - K / L - L / K
Resposta: 3
Justificativa: 
Substituindo os valores na expressão vem:
5 – 3/6 – 6/3 = 5 – 0 – 2 = 3
5a questão (1.0 ponto)
O que há de errado com o seguinte algoritmo?
inicio
 y ← 10
 enquanto y > 0 faça
 imprima y
 y ← y + 1
 fim enquanto
fim
Resposta: O laço enquanto é um laço eterno. A variável de controle do laço é inicializada com 
um valor positivo e é incrementada de uma unidade a cada iteração. Por este motivo, a condição 
de parada do laço (y <= 0) nunca será verdadeira.
6a questão (1.0 ponto)
O que será impresso pelo programa a seguir?
inicio
 x ← 1
 total ← 0
 enquanto x <= 10 faça
 y ← x * x
 imprima y
 total ← total + y
 x ← x + 1
 fim enquanto
 imprima 'O total é ', total
fim
O programa imprime os quadrados dos números inteiros entre 1 e 10 (inclusive) bem como a 
soma desses quadrados.
2
Saída:
1
2
4
9
16
25
36
49
64
81
100
O total é 385
7a questão (2.0 pontos)
Um motorista monitorou o consumo de seu carro anotando, em cada abastecimento, a distância 
em quilômetros percorrida desde o último abastecimento e a quantidade em litros de 
combustível necessária para encher o tanque. Escreva um algoritmo que receba como entrada 
esses dados (distância em quilômetros e quantidade de litros) e determine o consumo do carro 
em quilômetros/litro. O programa termina quando o usuário entrar com uma quilometragem 
igual a zero.
Exemplo de execução do algoritmo
quilometros?
500
litros?
50
consumo = 10 Km/l
quilometros?
700
litros?
50
consumo = 14 Km/l
quilometros?
0
Tchau!
inicio
 acabou ← falso
 enquanto não acabou faça
 imprima 'quilometros?'
 leia km
 se km = 0 entao
 acabou ← verdadeiro
 imprima 'Tchau!'
 senao
 imprima 'litros?'
 leia litros
 imprima 'consumo = ', km/litros, ' km/l'
 fim se
 fim enquanto
fim
8a questão (2.0 pontos)
3
Cinco amigos costumam freqüentemente viajar juntos pelo Brasil. Eles combinaram que todas 
as despesas de viagem seriam rateadas por igual. Durante a viagem cada um deles anota suas 
despesas e o acerto é feito no regresso para casa.
Escreva um algoritmo que receba como entrada as despesas efetuadas por cada um dos cinco 
amigos e determine quais deles receberão dinheiro e quais terão de pagar aos demais.
Exemplo:
Despesas
amigo1?
100
amigo2?
120
amigo3?
80
amigo4?
150
amigo1?
50
Rateio
amigo1: isento
amigo2: recebe
amigo3: paga
amigo4: recebe
amigo5: paga
inicio
 imprima 'Despesas'
 imprima 'amigo1?'
 leia d1
 imprima 'amigo2?'
 leia d2
 imprima 'amigo3?'
 leia d3
 imprima 'amigo4?'
 leia d4
 imprima 'amigo5?'
 leia d5
 imprima 'Rateio'
 media ← (d1 + d2 + d3 + d4 + d5) / 5
 se d1 = media entao
 imprima 'amigo1: isento'
 senao 
 se d1 > media entao
 imprima 'amigo1: recebe'
 senao 
 imprima 'amigo1: paga'
 fim se
 fim se
 se d2 = media entao
 imprima 'amigo2: isento'
 senao 
 se d2 > media entao
 imprima 'amigo2: recebe'
 senao 
4
 imprima 'amigo2: paga'
 fim se
 fim se
 se d3 = media entao
 imprima 'amigo3: isento'
 senao 
 se d3 > media entao
 imprima 'amigo3: recebe'
 senao 
 imprima 'amigo3: paga'
 fim se
 fim se
 se d4 = media entao
 imprima 'amigo4: isento'
 senao 
 se d4 > media entao
 imprima 'amigo4: recebe'
 senao 
 imprima 'amigo4: paga'
 fim se
 fim se
 se d5 = media entao
 imprima 'amigo5: isento'
 senao 
 se d5 > media entao
 imprima 'amigo5: recebe'
 senao 
 imprima 'amigo5: paga'
 fim se
 fim se
fim
5