EstruturaDados-IX10-Prova001-Introducao

Propaganda
ESTRUTURA DE DADOS
PROVA 01r – TURMA IX10 INTRODUÇÃO ‐ RECUPERAÇÃO ALUNO: DATA: 20/04/2011 1. O fragmento de programa abaixo encontra um número inteiro que mais se
aproxima da raiz quadrada de um número fornecido pelo usuário [2,5 pontos]:
write ('Digite um número: ');
readln (n);
r := 0;
repeat
r := r + 1;
until ((r * r) > n);
r := r - 1;
writeln ('O número inteiro aproximado da raiz quadrada de ',
n, ' é ', r);
Por exemplo: se o usuário informar n = 4, o resultado é r = 2, pois o inteiro mais
próximo da raiz de 4 é 2; se informar n = 15, o resultado é r = 3.
Reescreva o fragmento utilizando:
a) o comando FOR
b) o comando WHILE
DICA: Para cada versão, faça o teste de mesa para verificar se o resultado está
correto.
2. Para as expressões aritméticas abaixo faça [2,5 pontos]:
I.
II.
a)
b)
c)
d)
e)
Transforme a expressão em uma instrução de programa Pascal;
Calcule o resultado levando em consideração que os valores de X, Y e Z
são, respectivamente, 1, 2 e 5;
2 * Y mod 3 – X
abs(-2 * Z) div 4
((20 div 3) div 3) + (2 ^ 4)/2
(30 mod 4 * (3 ^ 3)) * -1
(-Y ^ 2) + (Z * 10)/Y
Instrução
Resultado
a)
b)
c)
d)
e)
1 ESTRUTURA DE DADOS
PROVA 01r – TURMA IX10 INTRODUÇÃO ‐ RECUPERAÇÃO 3. Faça um programa que calcule o tempo que os atletas levaram para concluir uma
maratona [5,0 pontos].
Você deverá ler os dados de vários atletas, usando o código 999 para encerrar as
leituras.
Para cada atleta, será fornecido como entrada o número do atleta, o horário inicial
(partida) e o horário final (chegada).
O horário inicial e final é fornecido como um número inteiro no formato HHMMSS,
onde:
HH = hora
MM = minutos
SS = segundos
Para cada atleta lido, gere como saída um relatório conforme modelo abaixo:
ATLETA: 001
INÍCIO: 10:15:30
FIM
: 11:45:20
TEMPO : 01:29:50
DICA: para calcular o tempo total:
- converta o horário inicial e final em segundos (SS+(MM*60)+(HH*3600));
- subtraia o horário inicial do horário final;
- converta o total de segundos restantes em HH, MM e SS.
Exemplo:
INICIO: 10:15:30 => 36.930s
FIM...: 11:45:20 => 42.320s
TEMPO.: FIM – INICIO => 5.390s
HH = TEMPO div 3600 = 1
MM = (TEMPO – (HH * 3600)) div 60 = 29
SS = (TEMPO – (HH * 3600) – (MM * 60)) = 50
BOA PROVA!
2 
Download