Maratona_Questões_fase1_20091

Propaganda
UNIVERSIDADE PARA O DESENVOLVIMENTO DO ESTADO E DA REGIÃO
DO PANTANAL
Coordenadoria dos cursos de Ciência da Computação e Engenharia da Computação
V MARATONA DE PROGRAMAÇÃO – ETAPA 1 (09/05/2009)
Questão 1 - A precisão dos dados armazenados em Disco, ou mesmo a segurança de tais
dados podem ser implementadas utilizando um bit de paridade. Definimos a paridade de um
inteiro n como a soma dos seus bits em representação binária computada em módulo de dois.
Como exemplo, o número 5510=1101112 possui cinco 1s em sua representação binária e,
portanto, ele possui paridade 5 (mod 2), ou 1. Assim sendo, faça um programa que receba um
número N inteiro como entrada e calcule sua paridade, para N>0.
Exemplo de Entrada
1
5
9
21
Exemplo de Saída
A paridade de 1 é 1
A paridade de 5 é 0
A paridade de 9 é 0
A paridade de 21 é 1
Questão 2 - Escreva um programa que leia uma linha do teclado de tamanho máximo de 20
(vinte) caracteres. A linha somente contém letras e devem ser convertidas para maiúsculas.
Divida a linha em blocos de 5 letras. Dentro de cada bloco o seu programa deve trocar a
primeira letra pela seguinte no alfabeto, a segunda letra por duas letras adiante no alfabeto, a
terceira por três letras no alfabeto e, assim, até a quinta. Os espaços em branco devem ser
retirados da frase.
Letras do Alfabeto a serem consideradas: ABCDEFGHIJKLMNOPQRSTUVXWYZ
Considere o seguinte exemplo.
1. Frase lida
EVA VIU A UVA
2. Retirada dos espaços em branco
EVAVIUAUVA
3. Divisão em blocos de 5 (Espaços em branco mostrados para facilitar
entendimento)
EVAVI UAUVA
4. Criptografia
FWDZN VCWZF
5. O que será impresso
FWDZNVCWZF
O imperador romano Cesar usava um sistema simples para codificar as
mensagens que enviava aos seus generais. Neste sistema cada letra era substituída por
três letras à frente no alfabeto. A sua missão é mais simples ainda, escrever um
programa que converta cada letra, e somente as letras, de uma mensagem de até 20
(vinte) caracteres para a letra imediatamente posterior. Note que a letra 'z' deve ser
convertida para a letra 'a', e a letra 'Z' para 'A'.
Questão 3 -
Letras do Alfabeto a serem consideradas: ABCDEFGHIJKLMNOPQRSTUVXWYZ
Exemplo:
Entrada:
aXyZ
Saída:
bWzA
Questão 4- A descoberta dos números Amigos foi atribuída a Pitágoras, existindo, em torno
deles, um grande misticismo, visto que representavam um papel importante na magia, feitiçaria
e astrologia. Utilizavam-se os números amigos para fazer poções de amor e talismãs. Supõese que lhes tenham chamado amigos porque a partir de um podemos obter o outro.
UNIVERSIDADE PARA O DESENVOLVIMENTO DO ESTADO E DA REGIÃO
DO PANTANAL
Coordenadoria dos cursos de Ciência da Computação e Engenharia da Computação
V MARATONA DE PROGRAMAÇÃO – ETAPA 1 (09/05/2009)
Dois números são considerados Amigos se cada um deles é igual à soma dos divisores
próprios do outro.
Divisores próprios de um número x são todos os seus divisores d, tal que d < x.
Crie um programa que receba dois valores inteiros e diferentes entre si e mostre se
representam ou não dois números amigos.
Exemplo1:
Entrada
220 e 284
Saída:
São números amigos
Exemplo2:
Entrada
4e9
Saída:
Não são números amigos
Questão 5 - Um número primo é aquele que tem apenas dois divisores: - a unidade e o próprio
número. Por exemplo, o número 2 é primo, porque tem apenas como divisores o 1 (a unidade)
e o 2 (o próprio número).
São exemplos de números primos: 2, 3, 5, 7, 11, 13, 17, 19, 23, ... O menor número primo e o
único que é par é o número 2.
Os números primos têm despertado a curiosidade dos matemáticos desde tempos remotos e
continuam neste momento a ser um assunto que entusiasma muitas pessoas.
Há muitos séculos o matemático grego Eratóstenes (275-194 a.C.) criou um processo,
denominado de crivo de Eratóstenes, para encontrar números primos:
Inicialmente, constrói-se uma tabela com os primeiros cem números naturais e depois se
procede da seguinte forma:
1º) desta tabela, elimina-se o número 1;
2º) dos números restantes elimina-se os múltiplos de 2 (exceto o próprio 2 que é primo) ;
3º) dos números restantes, elimina-se os múltiplos de 3 (exceto o próprio 3 que é primo);
4º) dos números restantes, elimina-se os múltiplos de 5 (exceto o próprio 5 que é primo);
5º) dos números restantes, elimina-se os múltiplos de 7 (exceto o próprio 7 que é primo)
Crie um programa que receba um número, obrigatoriamente, entre 1 (inclusive) e 50 (inclusive)
e determine, usando o método proposto por Eratóstens, se trata-se de um número primo ou
não.
Exemplo1:
Entrada: 12
Saída: Não é um número primo
Exemplo2:
Entrada: 17
Saída: É um número primo
Questão 6 - Considere uma matriz de distância entre cidades 5 x5:
Tabela de Distâncias
1.Campo
2.Terenos
3.Aquidauana
4.Nioaque
5.Dourados
Grande
1.Campo Grande
23
120
190
230
2.Terenos
23
80
150
210
3.Aquidauana
120
80
60
4.Nioaque
190
150
60
290
5.Dourados
230
210
290
Considere também um vetor de viagem partindo de Aquidauana indo até Dourados pela
seguinte rota (o índice indica o código da cidade do roteiro, ou os vértices):
Exemplo:
Indice
1
2
3
4
5
6
Cidade
3
2
1
4
5
0
Faça um programa que armazene a tabela de distâncias ilustrada acima em uma matriz de
5x5, escrevendo 0 – Zero para distâncias em branco (indicando que não possui rotas diretas),
imprimindo na tela a tabela. Depois, receba através do teclado o roteiro (apenas os códigos
UNIVERSIDADE PARA O DESENVOLVIMENTO DO ESTADO E DA REGIÃO
DO PANTANAL
Coordenadoria dos cursos de Ciência da Computação e Engenharia da Computação
V MARATONA DE PROGRAMAÇÃO – ETAPA 1 (09/05/2009)
das cidades – de 1 a 5, se caso digite 0 – Finalize o roteiro, veja exemplo acima), que deve ser
armazenado em um vetor e, então, calcule a distância percorrida durante a viagem. (Veja
abaixo 2 exemplos.). Se o usuário digitar roteiro sem conexão a mensagem “Erro no Roteiro”
deverá ser exibida.
Exemplo1 (onde há um roteiro sem conexão 5  3
Entrada:
2
1
5
3
0
Saída:
“Erro no Roteiro”
Exemplo 2 (De: Campo Grande  Terenos)
Entrada:
1
5
4
3
2
0
Saída:
“Distância Percorrida em KM: 660
Questão 7 - Escreva um programa que leia 3 linhas de texto.
Em cada linha há o nome de um aluno e duas notas. Estes dados estão separados por ponto e
vírgula. Existe um ponto e vírgula ao final de cada linha.
O programa deve ler estes dados e imprimir os valores lidos, a média das duas notas e se o
aluno foi aprovado ou não (media >= 7). O formato de saída é:
Exemplo:
Entrada:
Maria Silva; 10.0; 9.0;
Antonio Oliveira; 9.0; 7.0;
Pedro Luiz; 4.0; 5.0;
Saída:
Maria Silva 10.0 8.0 9.0 aprovado
Antonio Oliveira 9.0 7.0 8.0 aprovado
Pedro Luiz 4.0 5.0 4.5 reprovado
Observação: Caso as notas sejam números não inteiros, não se preocupe em formatar a
saída com apenas uma casa após o ponto.
Questão 8 - Faça um programa que contenha uma função para desenhar na tela 3
quadrados. Sabe-se que o programa deve sortear o canto superior esquerdo, que o lado
do quadrado possui 5 asteriscos (*) e que os demais quadrados devem começar onde o
quadrado anterior terminou.
Observações:
A linha do primeiro quadrado deve ser no máximo 8.
A coluna do primeiro quadrado deve ser no máximo 60.
Entrada:
Nenhuma
UNIVERSIDADE PARA O DESENVOLVIMENTO DO ESTADO E DA REGIÃO
DO PANTANAL
Coordenadoria dos cursos de Ciência da Computação e Engenharia da Computação
V MARATONA DE PROGRAMAÇÃO – ETAPA 1 (09/05/2009)
Saída:
1º quadrado:
Linha sorteada = 2
Coluna sorteada = 8
*****
*
*
*
*
*
*
*
*
*****
*****
*
*
*
*
*
*
*
*
*****
*****
*
*
*
*
*
*
*
*
*****
3º quadrado:
Linha = 14
Coluna = 18
2º quadrado:
Linha = 8
Coluna = 13
UNIVERSIDADE PARA O DESENVOLVIMENTO DO ESTADO E DA REGIÃO
DO PANTANAL
Coordenadoria dos cursos de Ciência da Computação e Engenharia da Computação
V MARATONA DE PROGRAMAÇÃO – ETAPA 1 (09/05/2009)
Download