Vous êtes sur la page 1sur 4

Lista de Exercícios

MC102 – Algoritmos e Programação de Computadores Vetores e Matrizes


Instituto de Computação 2012
Universidade Estadual de Campinas André Santanchè

Questão 1
Uma empresa precisa realizar uma estatística do salário de seus funcionários. Para isto
precisa de um programa que leia uma lista contendo os salários dos funcionários da empresa, e
imprima quantos funcionários ganham salário acima da média. Sabe-se que a empresa possui
50 funcionários.
 [extensão] Considerando que não há um número fixo de 50 funcionários, o programa
pergunta no início quantos funcionários possui a empresa e realiza o restante do
processo. Considere que o número máximo possível é de 500 funcionários.
 [extensão] Considerando que além de não haver um número fixo de funcionários o
usuário não sabe no início quantos funcionários são, o programa deve solicitar os
salários até que seja digitado 0 no lugar do salário. Considere que o número máximo
possível é de 500 funcionários.

Questão 2
Escreva um programa que leia uma lista contendo o peso de uma série de indivíduos em
um vetor de números reais. A lista possui 150 elementos.
Depois que a lista foi toda inserida o programa deve procurar e imprimir qual a posição no
vetor onde está o menor peso.

Questão 3
Uma empresa precisa de um programa para controlar o acesso de pessoas as suas
instalações. O programa funciona em duas etapas:

1a etapa - Entrada de Dados


Considerando que apenas funcionários estão autorizados a entrar na empresa, o programa
solicita a relação de nomes dos funcionários. A relação encerra quando é digitado “FIM” no
lugar do nome do funcionário.
Sabe-se que a empresa possui no máximo 200 funcionários.

2a etapa - Verificação de Autorizados


Esta etapa só inicia quando é encerrada a primeira etapa. O programa solicita o nome da
pessoa que deseja entrar e informa se ela está ou não autorizada.
A etapa se repete até que seja digitado “FIM” no lugar do nome.
Elabore o programa de duas formas:
(i) considerando que a relação de nome dos funcionários (1 a etapa) foi digitada em ordem
aleatória;
(ii)considerando que a relação de nome dos funcionários (1 a etapa) foi digitada em ordem
alfabética (neste caso a busca pode ser mais eficiente).

1
Questão 4
Uma agencia de espionagem encomendou um programa especial para fazer a codificação
de mensagens. O programa inicialmente lê a mensagem e codifica da seguinte forma:
ú considerando os caracteres que compõem a mensagem aos pares, cada caractere é
trocado com o seu vizinho, sempre levando em consideração que isto é feito aos pares,
como mostra o exemplo abaixo:
mensagem original: Esta é uma mensagem.
processo codificação: E s t a _ é _ u m a _ m e n s a g e m .
(caracteres _ indicam os espaços em branco)
mensagem codificada: sEaté u amm neaseg.m

ú se o número de caracteres for ímpar, o programa acrescenta um caractere # no final


antes de realizar a troca dos pares.

Questão 5
Escreva um programa que solicite uma lista de letras pelo teclado, até que seja digitado *
no lugar de uma letra (flag). Depois de concluída a digitação da lista, o programa irá imprimir
um segmento da mesma. Para isto ele pergunta pelo teclado uma posição inicial I da lista de
caracteres digitada e uma quantidade de caracteres Q. Ele então deve imprimir Q letras da
lista digitada a partir da posição I.

Questão 6
O Tribunal Regional Eleitoral precisa de um programa para realizar as apurações das
eleições. O programa irá funcionar da seguinte forma:
ú há 30 candidatos concorrendo; cada candidato tem um número (de 1 a 30);
ú cada eleitor escreveu na cédula eleitoral apenas o número do candidato que deseja
votar;
ú o programa irá pedir uma lista dos votos, cada elemento da lista possui apenas o
número do candidato votado (a lista encerra quando é digitado 0 no lugar do voto).
Exemplo da lista de votos:
12
6
21
22
6
12
6
0
ú depois de digitados todos os votos, o programa imprime o número do candidato mais
votado.

2
Questão 7
Escreva um programa que leia duas listas de números já digitadas em ordem crescente.
Primeiro deve ser solicitada a primeira lista completa, encerrada por 0 (flag), depois a segunda
lista completa, encerrada por 0 (flag). Cada lista possui no máximo 100 elementos, mas pode
ter menos que isto.
O programa deverá juntar o conteúdo das duas listas em uma terceira (lista resultante),
mantendo a ordem crescente e imprimir esta lista resultante na tela. Este processo é conhecido
como merge.
Tente montar a melhor solução para este problema sem olhar a solução do quadro abaixo.
Posteriormente compare a sua solução com a do quadro e verifique se ela é eficiente.
 [extensão] Faça o mesmo programa para listas de nomes, considerando a ordem
alfabética.

a) as listas são armazenadas em vetores;


b) inicialmente o programa se posiciona no início de ambos os vetores;
c) se o elemento atual do vetor 1 for menor que o elemento atual do vetor 2 ele é transferido para o vetor
resultante e o programa se desloca para o próximo elemento do vetor 1 (entenda-se por elemento atual aquele
em que o programa está posicionado naquele determinado momento);
d) se o elemento do vetor 2 for menor que o elemento do vetor 1 ele é transferido para o vetor resultante e o
programa se desloca para o próximo elemento do vetor 2;
e) o processo a partir do passo (c) deve se repetir até que se chegue ao fim de um dos vetores; neste momento o
programa descarrega o restante do vetor que ainda não terminou no vetor resultante.

Questão 8
Escreva um programa que leia uma lista de 20 números inteiros, a classifique e imprima
em ordem crescente. Tende fazer o mesmo processo usando dois métodos diferentes.
 [extensão] Considere que a lista não tem tamanho fixo. Os números são digitados e a
lista encerra quando é digitado 0 no lugar do número (flag). A lista possui no máximo 50
números.

Questão 9
Um centro meteorológico distribuiu dispositivos para registrar índices pluviométricos em
um conjunto de 7 cidades de uma região (identificadas por códigos numéricos de 1 a 7)
durante 6 meses, onde, para cada mês foi registrado um valor real que corresponde ao índice
pluviométrico total do mês.
Escreva um programa que leia os 6 índices pluviométricos de cada uma das sete cidades e
imprima:
a) O índice de pluviosidade médio mensal de cada cidade;
b) O índice de pluviosidade média de cada mês na região.

Questão 10
Escreva um programa que leia uma matriz quadrada 5x5 e imprima a sua diagonal
principal.
 [extensão] Considere que as dimensões da matriz serão digitadas pelo usuário no
início do programa, porém a matriz deve ser necessariamente quadrada e possuirá no
máximo as dimensões de 20x20.

3
Questão 11
Escreva um programa que leia uma matriz de números reais com 12 linhas e 8 colunas e
gere um vetor de 12 posições onde cada posição corresponde a soma de todos os elementos
de uma linha da matriz.

Questão 12
Foi realizado um concurso de beleza onde participaram 15 candidatas, que foram avaliadas
por uma mesa composta de 5 juízes. Cada juiz deu uma nota inteira de 0 a 10.
Escreva um programa que leia os nomes das candidatas, em seguida leia as notas que
cada candidata recebeu e imprima o nome da candidata vencedora. Considere que não há
possibilidade de empate.

Questão 13
Um conjunto de empresas está desenvolvendo um programa para controle do trabalho
realizado por seus gerentes nos diversos departamentos.
Considerando que o conjunto de empresas é formado por 6 empresas e que cada uma
delas possui exatamente 8 departamentos com um gerente cada um, foi desenvolvido um
programa que mantém uma matriz contendo o nome dos gerentes, onde cada linha
corresponde a uma empresa e cada coluna a um departamento (considerando que as
empresas estão codificadas com números de 1 a 6 e os departamentos com números de 1 a 8).
Escreva um programa que solicite pelo teclado esta matriz, seguida do nome de um
gerente a ser pesquisado na mesma. O programa retorna o código da empresa e código do
departamento a que o gerente a ser pesquisado pertence.
Considere que não existem dois gerentes de nomes iguais.

Vous aimerez peut-être aussi