5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração de números aleatórios. 1. Declare uma matriz. Preencha com 1 a diagonal principal e com 0 os demais elementos. Escreva ao final a matriz obtida. 2. Leia duas matrizes e informe se ambas são iguais (se possui elementos iguais para as mesma posições). 3. Leia duas matrizes, crie e escreva uma terceira com os maiores elementos entre as primeiras para cada posição. 4. Leia uma matriz, conte e escreva quantos valores maiores que 10 ela possui. 5. Leia uma matriz e calcule o determinante dessa matriz. 6. Leia uma matriz. Leia também um valor. O programa deverá fazer uma busca desse valor na matriz e, ao final escrever a localização (linha e coluna) ou uma mensagem de não encontrado. 7. Leia uma matriz e troque os valores da 1ª linha pelos da 4ª coluna, vice-e-versa. Escrever ao final a matriz obtida. 8. Leia uma matriz e a transforme numa matriz triangular inferior, atribuindo zero a todos os elementos acima da diagonal principal, escrevendo-a ao final. 9. Leia uma matriz e faça uma troca entre as diagonais superior e inferior. Escreva-a ao final. 10. Leia uma matriz, crie dois vetores contendo os elementos da diagonal principal e secundária da referida matriz e mostre ao final o conteúdo da matriz e dos vetores. 11. Leia duas matrizes e faça uma substituição entre a diagonal inferior da primeira coma diagonal superior da segunda. 12. Leia uma matriz e escreva o maior elemento da diagonal principal e a soma dos elementos da diagonal secundaria. 13. Leia uma matriz e atribuir o valor 0 para os valores negativos encontrados fora das diagonais principal e secundária. 14. Leia uma matriz, onde cada coluna corresponde a um lado (cateto) de um triangulo retângulo. Declare um vetor que contenha a área dos respectivos triângulos e o escreva. 15. Leia uma matriz, onde cada coluna corresponde a um lado (cateto) e a hipotenusa de um triangulo retângulo. Declare um vetor que contenha a área dos respectivos triângulos e o escreva. 16. Leia uma matriz e preencha cada posição com.
17. Faça um programa que receba uma matriz e cria um vetor de posições contendo os valores das matrizes. 18. Realize o processo inverso indicado na questão anterior fazendo seu programa que receber um vetor de posições e preenchendo as respectivas posições de uma matriz. Mostre a matriz resultante. 19. Leia uma matriz e escreva a localização (linha e a coluna) do maior valor. 20. Faça um programa que leia uma matriz e normalize seus valores dividindo-os pelo maior valor da matriz. 21. Faça um programa que leia uma matriz e normalize seus valores dividindo-os pelo maior valor da matriz. 22. Escreva um algoritmo que lê uma matriz. A seguir, troque os elementos da primeira coluna com os elementos da segunda coluna, os da terceira coluna com a quarta coluna e os elementos da quinta coluna com os elementos da sexta coluna. 23. Leia duas matrizes e escreva os valores da primeira que ocorrem em qualquer posição da segunda. 24. Leia uma matriz e escreva os elementos (sem repetição) da matriz e a quantidade que os mesmos aparecem na matriz. 25. Na teoria dos sistemas define-se como elemento minimax de uma matriz o menor elemento da linha onde se encontra o maior elemento da matriz. Sabendo disso, escreva um programa que lê uma matriz e a escreve, e que determina e escreve o elemento minimax e a posição (linha e coluna) que o mesmo ocupa na matriz 26. Seja uma matriz fornecida (ou criada aleatoriamente) cujo conteúdo é a população dos 10 municípios mais populosos dos 26 estados brasileiros (o elemento representa a população do - ésimo município do -ésimo estado). Faça um programa para determinar o número do município mais populoso e o número do estado a que pertence. Considerando que a primeira coluna sempre contém a população da capital do estado, calcular a média da população das capitais dos 26 estados. 27. Dada uma matriz, imprimir o número de linhas e o numero de colunas nulas da matriz. Como exemplo, seja uma matriz : possui 2 linhas nulas e uma coluna nula. 28. Dados e constantes reais, faça um programa que leia duas matrizes e, calcule e mostre: a. b.. c.. d.. e. 29. Dada duas matrizes e, faça um programa que calcule e exiba a matriz.
30. Dada duas matrizes e, e mostre na tela uma matriz tal que se, ou caso contrário. 31. Leia uma matriz que se refere a respostas de questões de múltipla escolha, referentes a alunos. Leia também um vetor de posições contendo o gabarito de respostas que podem ser a, b, c ou d. Seu programa deverá comparar as respostas de cada candidato com o gabarito e emitir um vetor resultado, contendo a pontuação correspondente. 32. Faça um programa que leia uma matriz e calcule e escreva a soma da área hachurada na letra a e o maior elemento da área hachurada na letra b abaixo: 33. Faça um algoritmo que dada uma matriz realize as seguintes trocas: a. linha 2 com a linha 8; b. coluna 4 com a coluna 10; c. diagonal principal com a secundária; d. linha 5 com a coluna 10; 34. Leia uma matriz de caracteres e verifique se a mesma é palíndromo, isto é, sua leitura a partir de qualquer direção sempre apresentara a mesma sequência: 35. Considere a seguinte tabela que representa a distância entre 6 cidades : 1 2 3 4 5 6 Cáceres BBugres Cuiabá VGrande Tangará PLacerda 1 Cáceres 63 210 190 190 2 BBugres 63 160 150 95 3 Cuiabá 210 160 10 4 VGrande 190 150 10 5 Tangará 95 6 PLacerda 190 80 As distâncias entre as cidades pode ser modelada através de uma matriz de dimensões. Considere também um vetor de viagem indo de Cuiabá até Cáceres pela seguinte rota
3 2 4 5 6 1 onde o elemento da posição é a próxima cidade a ser visitada estando-se na cidade indicada pela posição. Faça um programa que leia a matriz e o vetor dado, e calcule a distância percorrida durante a viagem. 36. Considere a matriz de distâncias da questão anterior. A rota de Cuiabá para Cáceres, porém, é dada pelo vetor rot = 3 4 2 5 6 1 da seguinte forma: a. rot[0] indica a cidade inicial (3 Cuiabá); b. Dada uma cidade C qualquer, a próxima cidade a ser visitada é rot[c-1]. Ex.: Depois da cidade rot[0] = 3 (Cuiabá), deve-se ir para a cidade rot[2] = 2 (BBugres). Em seguida, deve-se ir para a cidade rot[1] = 4, e assim sucessivamente. c. O final da rota ocorre quando a cidade atual é. Faça um programa que calcula a distância percorrida na rota. 37. Faça um programa que leia uma matriz na qual dois (e apenas dois valores) são negativos. Seu programa deve exibir a posição desses elementos, seus valores e calcular a distância euclidiana ( ) entre eles. Saída, :, : 38. Retome a questão anterior, porém com as seguintes modificações: a. A matriz não possui a restrição de possuir apenas dois valores negativos (quaisquer posição pode ser negativa); b. Mostre todas as combinações de posições negativas, bem como os relativos valores, e a distância entre elas Saída:, :, :, :, :, :, : 39. Gere uma matriz com o seguinte padrão (exemplo de uma matriz ):
40. Seja a função Faça um programa que gere uma matriz tal que e mostre-a na tela. 41. Retome a questão anterior. Seu programa agora além de preencher a matriz mencionada deve receber várias consultas à função e retornar seu valor. Para cada consulta o programa mostra caso e. Do contrário, deve ser calculado e exibido na tela. 42. Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos da diagonal principal e secundária são todas iguais. Faça um programa que recebe uma matriz e informe se a mesma é um quadrado mágico. Exemplo de quadrado mágico: 43. Um jogo de palavras cruzadas pode ser representado por uma matriz onde cada posição da matriz corresponde a um quadrado do jogo, sendo que 0 indica um quadrado branco e 1 indica um quadrado preto. Indicar na matriz as posições que são início de palavras horizontais e/ou verticais nos quadrados correspondentes (substituindo os zeros), considerando que uma palavra deve ter pelo menos duas letras. Para isso, numere consecutivamente tais posições. Exemplo (matriz ): Saída: 44. Escreva um programa para jogar uma versão simplificada do jogo da velha. O programa deve controlar o andamento do jogo com uma matriz de caracteres. A cada lance o jogador deve informar qual a posição do tabuleiro que deve ser preenchida. Cada jogador realiza seu lance de maneira alternada. A cada lance o seu programa deve mostrar o tabuleiro no formato abaixo:
X O - X - O - - O Seu programa não indicará o vencedor, apenas registrará as jogadas até o números de lances atingir 9. 45. Melhore o exercício anterior de forma que, se houver um ganhador, seu programa interrompa o jogo e avise quem foi o vencer (X ou O). 46. Melhore o exercício anterior de forma que, se houver um ganhador, seu programa interrompa o jogo e avise quem foi o vencer (X ou O). 47. Os elementos de uma matriz inteira [ ] representam os custos de transporte da cidade para a cidade. Dados itinerários, cada um com cidades, calcular o custo total para cada itinerário. O custo do itinerário é: 48. Faça um programa que receba uma array e cria um vetor de posições contendo os valores os arrays. 49. Faça um programa que receba uma array [ ], calcula e exibe a média da sua diagonal principal (elementos tais que ). 50. Faça um programa que receba dois arrays e, calcula e exibe a o array resultante da soma entre eles.