Lista de exercícios 04

Assuntos novos: array n-dimensional e matriz.

1. (motivação) Em um prédio de 8 andares com 4 apartamentos por andar há uma necessidade de se registrar o consumo de energia elétrica de um determinado mês.
Faça um programa para realizar este registro.
Entre os muitos levantamentos que se pode fazer com estes dados, no momento, se quer saber as seguintes informações:
- consumo total dos apartamentos da 2ª coluna.
- consumo total de cada andar deste do prédio.

Faça as modificações necessárias para que o programa possa ser usado para outros prédios, por exemplo, com 10 andares e 6 apartamentos por andar.

2. Declare uma matriz de nome ‘m’ e que seja capaz de armazenar 100 números inteiros, distribuídos em 10 linhas e 10 colunas.
Em seguida faça o seu preenchimento completo com números aleatórios de 1 a 9.
Faça a também a exibição de todos os seus valores no seguinte formato:
m[1,1] = 3
m[1,2] = 9
m[1,3] = 2

m[10,10] = 8

Faça outra exibição dos valores, agora com o formato:
3 9 2 … 1
2 6 5 … 1

9 5 7 … 8
Para finalizar, exiba a soma dos valores contidos na 5ª linha.

3. Dê continuidade ao problema anterior completando o código para exibir a soma e os elementos de cada um dos grupos indicados:

a. Elementos da 10ª coluna.

Responsável em publicar a solução: Rarod

b. Elementos da primeira coluna.

Responsável em publicar a solução: Jeferson

c. Elementos da primeira linha.

Responsável em publicar a solução: Thiago Dias

d. Elementos da 5ª linha.

Responsável em publicar a solução: Aldo

e. Todos os elementos da matriz.

Responsável em publicar a solução: Thiago Menegardo

f. Elementos das 5 primeiras linhas.

g. Elementos das 3 primeiras colunas.

Responsável em publicar a solução: Kamila

h. Elementos da diagonal principal.

i. Elementos do triângulo superior da diagonal principal.

Responsável em publicar a solução: Jackson

j. Elementos do triângulo inferior da diagonal principal.

k. Elementos da diagonal secundária

Responsável em publicar a solução: Natacha

l. Elementos do triângulo superior da diagonal secundária.

Responsável em publicar a solução: Diogoberto

m. Elementos do triângulo inferior da diagonal secundária.

4. Preencha uma matriz de 10 linhas por 15 colunas com números aleatórios de 1000 a 2000. Em seguida exiba todo o seu conteúdo.

Responsável em publicar a solução: Lorena

5. Preencha uma matriz com números aleatórios (inteiros). Para isto solicite ao usuário quantas linhas e colunas a matriz possui, e a faixa de números que devem ser sorteados.
Exiba todo o conteúdo da matriz de forma organizada, por exemplo, uma matriz de 3 linhas e 6 colunas com números sorteados entre 1000 e 3000, seria exibida desta forma:

1003 1569 1789 1110 2000 1212
1103 1662 1989 1200 2406 1819
1045 1749 1980 1310 2507 1815

Responsável em publicar a solução: Katarina

6. Crie duas matrizes com 5 linhas e 5 colunas cada uma. Preencha com valores sorteados de 1 a 10. Em seguida crie uma terceira matriz para armazenar a soma das duas anteriores. Exiba as três matrizes.

Responsável em publicar a solução: Isabele

7. Leia um conjunto de nomes de pessoas com as suas respectivas idades. Em seguida o nome de todos aqueles que possuem a idade maior do que a média das idades do grupo. Pergunte ao usuário quantos nomes serão digitados.

Responsável em publicar a solução: Thaiane

8. Faça a validação de um jogo da velha, ou seja, se houve vencedor ou não e, se for o caso, quem foi o vencedor X ou O. Para isto leia do usuário uma matriz 3x3 de Strings que representa as marcações realizadas com ‘X’, ‘O’ ou vazio.

Para facilitar, suponha que a entrada de dados é feita nas próprias linhas de código, por exemplo, o jogo:

X | X | O
--+---+---
X | O | X
--+---+---
O |   | O

poderia ser registrado da seguinte forma:

velha: vetor[1..3,1..3] de caractere
velha[1,1] <- “0”
velha[1,2] <- “X”
velha[1,3] <- “0”
velha[2,1] <- “X”
velha[2,2] <- “0”
velha[2,3] <- “X”
velha[3,1] <- “X”
velha[3,2] <- “ ”
velha[3,3] <- “0”

Neste caso a resposta seria:

“O jogador ‘O’ foi o vencedor!”

Responsável em publicar a solução: Thiago Nascimento

9. Preencha, com números randômicos, uma matriz de 8 linhas por 20 colunas. A faixa dos números aleatórios deverá ser solicitada ao usuário. Calcule a quantidade de números pares e impares em cada linha da matriz. Calcule também o percentual destes em relação a quantidade total de números da matriz.
Exiba a matriz num formato tabular indicando as quantidades e percentuais calculados.
Dica: para verificar se um número é par, basta ver se o resto da divisão dele por 2 é igual a zero. O operador de resto da divisão é “%”.

Responsável em publicar a solução: Uilton

10. Armazene numa matriz 12x2 de inteiros o número do mês com a quantidade de dias que o mês possui. Para fevereiro considere 29 dias. Armazena também, em outro vetor, o nome dos meses do ano.
Em seguida, pergunte ao usuário qual o número do mês que ele quer consultar. Após a sua resposta exiba o nome do mês e a quantidade de dias que ele possui.

Responsável em publicar a solução: Thamires

11. Receba do usuário duas matrizes de mesmo tamanho. Crie uma terceira matriz que será o resultado da soma da primeira pela segunda. Em seguida exiba esta matriz da soma.

Responsável em publicar a solução: Raphaela

12. Valide uma matriz que representa um Sudoku de 9x9 (se você ainda não conhece este jogo, experimente em: http://sudoku.hex.com.br/).
Para isto, indique ao usuário se existem os erros descritos:
ERRO LINHA – quando houver repetição de números em uma das 9 linhas.
ERRO COLUNA – quando houver repetição de números em uma das 9 colunas.
ERRO SUB-MATRIZ – quando houver repetição de números em uma das 9 sub-matrizes 3x3.

Sugestão para facilitar a entrada de dados dos 81 números quando for testar o programa: faça uma inicialização da matriz com zeros, para indicar que a posição ainda não está preenchida, e depois coloque os outros números usando o código do programa.
Por exemplo:

m[1,1] <- 5;
m[1,2] <- 7;
m[3,2] <- 8;
m[4,2] <- 7; // neste caso há um erro na coluna 2 (repetição do número 7)
m[4,3] <- 9;
...

13. Altere o problema do consumo de energia dos apartamentos de um prédio (primeiro exercício) para que o registro de consumo possa ser mensal ao longo de um ano.
Dica: organize as informações numa matriz tridimensional.

14. Crie a seguinte matriz quadrada. Observe que a ordem da matriz é informada pelo usuário.
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1