Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz
Prova Segunda Chamada - 07 de julho de 2008
1o Problema:
As Casas da Sorte
Um programador de computador mora em uma rua com n casas e de frente para o mar. Portanto,
somente há casas de um lado da rua. As casas são numeradas consecutivamente, começando em 1. Toda
noite o programador sai de casa para passear com seu cachorro e randomicamente escolhe um lado para
percorrer. Ele sempre vai até o final da rua e volta para casa. Uma noite ele decidiu somar os números
das casas por onde passou. Esta soma foi feita somente no caminho de ida e excluiu a sua própria casa.
Na noite seguinte ele tomou a direção contrária e fez a mesma conta. Para sua enorme surpresa as duas
somas deram o mesmo resultado. Embora isto seja, obviamente, determinado pelo número de sua casa
e do número de casas de sua rua, ele acha que isto era um sinal de sorte e decidiu que a partir daquele
instante somente iria morar em casas com esta propriedade.
A sua tarefa é escrever um programa que descubra os seis primeiros pares (número de casas na rua,
casa da sorte) que satisfazem esta propriedade. Começe o seu teste com uma rua de 5 casas e prossiga
até que 6 pares sejam encontrados.
A Entrada
Este programa não precisa de entrada.
A Saı́da
Imprimir o número da casa da sorte, a quantidade de casas na rua e a soma dos números das casas
de uma das direções. Observe os valores de saı́da e escolha tipos de variáveis compatı́veis.
Exemplo de saı́da
Casa
Casa
Casa
Casa
Casa
Casa
da
da
da
da
da
da
sorte
sorte
sorte
sorte
sorte
sorte
=
=
=
=
=
=
6,
35,
204,
1189,
6930,
40391,
Casas
Casas
Casas
Casas
Casas
Casas
na
na
na
na
na
na
rua
rua
rua
rua
rua
rua
=
=
=
=
=
=
8,
49,
288,
1681,
9800,
57121,
Fim do programa.
1
Soma
Soma
Soma
Soma
Soma
Soma
=
15
=
595
=
20706
=
706266
= 24008985
= 815696245
2o Problema:
Palavras Cruzadas
O conhecido passatempo de palavra cruzadas é composto por uma matriz retangular de quadrados
brancos e pretos e duas listas de definições. Uma das listas de definições é para palavras escritas da
esquerda para a direita nos quadrados brancos (linhas) e a outra lista é para palavras que devem ser
escritas de cima para baixo nos quadrados brancos (colunas). Uma palavra é uma seqüência de dois ou
mais caracteres do alfabeto. Para resolver um jogo de palavras cruzadas, as palavras correspondentes às
definições devem ser escritas nos quadrados brancos da matriz. A Figura 1 ilustra um exemplo de matriz
de palavas cruzadas.
Figura 1: Exemplo de matriz de palavras cruzadas
Uma palavra horizontal é escrita em uma seqüência de quadrados brancos em uma linha, iniciandose em um quadrado branco que tem um quadrado preto à esquerda ou que está na primeira coluna à
esquerda. A seqüência de quadrados, para esta palavra, continua da esquerda para a direita, terminando
no quadrado branco imediatamente anterior a um quadrado preto, ou no quadrado branco da coluna
mais à direita da grade.
A sua tarefa procurar as palavras escritas em apenas uma linha da matriz das palavras cruzadas.
Entrada
A entrada consiste de vários casos de teste. Cada caso de testes é composto por uma única linha
que corresponde a uma linha de uma solução de um problema de palavras cruzadas. Cada uma destas
linhas contém N < 100 caracteres. Caracteres possı́veis são as letras do alfabeto ou ’*’, que é usado para
representar um quadrado preto. O final do conjunto de testes é representado por uma linha vazia.
Saı́da
Para cada caso de teste seu programa deve produzir a lista das palavras encontradas no caso de teste.
A lista das palavras deve ser precedida por um identificador do conjunto de teste, no formato Teste n,
onde n é numerado a partir de 1. O formato da saı́da deve ser exatamente igual ao indicado no exemplo
abaixo.
Exemplo
Entrada:
*PASCAL*
ATOS**J
LA**DIA*J*
Saı́da:
Teste 1
PASCAL
Teste 2
ATOS
Teste 3
LA
DIA
2
3o Problema:
Aquecimento Global
Nestes tempos de aquecimento global o acompanhamento de temperaturas se tornou uma atividade
importante. Uma estação meterológica mede e armazena a temperatura no polo sul ao meio dia há muitos
anos. Um pesquisador resolveu fazer alguns cálculos a partir destes dados.
Tarefa
A sua tarefa é escrever um programa que leia de um arquivo texto chamado temperaturas.txt as N
temperaturas ti armazenadas e imprima os seguintes valores:
• menor temperatura, tmin ;
• maior temperatura, tmax ;
• temperatura média, tmed ;
qP
(ti −tmed )2
• desvio padrão, dp =
N
Entrada
Os dados no arquivo têm o seguinte formato. A primeira linha contém um número inteiro N informando o total de temperaturas armazenadas no arquivo. As N linhas restantes contém as temperaturas
armazenadas e que são números reais.
Saı́da
A saı́da deve ser feita com o formato indicado abaixo.
Exemplo de Arquivo de Entrada:
10
-3.0
-6.0
-9.0
-2.0
-12.0
-20.0
-15.5
-14.5
-30.5
-2.5
Saı́da para o Exemplo da Entrada
Temperatura minima: -30.500
Temperatura maxima: -2.000
Temperatura media: -11.500
Desvio padrao: 8.594
3
4o Problema:
Números Amigáveis
Números amigáveis são duplas de números em que um é igual a soma dos divisores próprios do outro
e vice-versa. Vamos considerar que um número (dp > 0) é divisor próprio de um número N quando o
resto da divisão de N por dp é zero. Consideramos também que N não é divisor próprio de si mesmo. Por
exemplo, somando-se os divisores de 220 (1, 2, 4, 5, 10, 11, 20, 44, 55, 110) chega-se a 284. Somando-se
os divisores de 284 (1, 2, 4, 71, 142) obtém-se 220. Por isso os dois números são amigos.
Tarefa
Escreva um programa que leia uma série de pares de números inteiros (≥ 0) e imprima se eles são
amigos ou não.
Entrada
A entrada consiste de uma série de pares de números inteiros. A seqüencia termina quando um par
de zeros for lido.
Saı́da
A saı́da é a palavra AMIGAVEIS se o par for amigo e NAO AMIGAVEIS no caso contrário.
Exemplo de Entrada:
220 284
300 500
2620 2924
0 0
Saı́da para o Exemplo de Entrada
AMIGAVEIS
NAO AMIGAVEIS
AMIGAVEIS
4
Download

As Casas da Sorte