9
Lista de exercícios de Matrizes Faça um programa em C# que: 1. Leia uma matriz 3x3 de valores inteiros e em seguida calcule a média dos elementos dessa matriz. int [,] x = new int [3,3]; int l, c, soma = 0; double media=0.0; for (l=0; l<=2; l++) for(c=0; c<=2; c++) { Console.WriteLine("X= Linha[{0}], Coluna[{1}]", l, c); x[l,c]=Int32.Parse(Console.ReadLine()); soma += x[l, c]; } media = soma / 9.0; Console.WriteLine("media = {0}", media); 2. Leia uma matriz 5x3 de valores inteiros e em seguida mostre o maior elemento armazenado na matriz e a sua posição (linha e coluna). Assuma que não há elementos repetidos na matriz. int[,] x = new int[5, 3]; int l, c, maior = 0, pl=0, pc=0; for (l=0; l<=4; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("X = Linha[{0}], Coluna[{1}]", l, c); x[l, c] = Int32.Parse(Console.ReadLine()); if (x[l, c] > maior || maior == 0) { maior = x[l, c]; pl = l; pc = c; } } Console.WriteLine("Maior numero = {0}, linha={1}, coluna={2}", maior, pl, pc);

Lista 2 - Matrizes - respondida

Embed Size (px)

Citation preview

Page 1: Lista 2 - Matrizes - respondida

Lista de exercícios de Matrizes Faça um programa em C# que: 1. Leia uma matriz 3x3 de valores inteiros e em seguida calcule a média dos elementos dessa matriz.

int [,] x = new int [3,3]; int l, c, soma = 0; double media=0.0; for (l=0; l<=2; l++) for(c=0; c<=2; c++) { Console.WriteLine("X= Linha[{0}], Coluna[{1}]", l, c); x[l,c]=Int32.Parse(Console.ReadLine()); soma += x[l, c]; } media = soma / 9.0; Console.WriteLine("media = {0}", media);

2. Leia uma matriz 5x3 de valores inteiros e em seguida mostre o maior elemento armazenado na matriz e a sua posição (linha e coluna). Assuma que não há elementos repetidos na matriz. int[,] x = new int[5, 3]; int l, c, maior = 0, pl=0, pc=0; for (l=0; l<=4; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("X = Linha[{0}], Coluna[{1}]", l, c); x[l, c] = Int32.Parse(Console.ReadLine()); if (x[l, c] > maior || maior == 0) { maior = x[l, c]; pl = l; pc = c; } } Console.WriteLine("Maior numero = {0}, linha={1}, coluna={2}", maior, pl, pc);

Page 2: Lista 2 - Matrizes - respondida

3. Modifique o programa anterior para imprimir as coordenadas (linha e coluna) de todas as ocorrências do maior elemento da matriz. int[,] x = new int[5, 3]; int maior = 0, l, c; for (l = 0; l <= 4; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("X =[{0},{1}]", l, c); x[l, c] = Int32.Parse(Console.ReadLine()); if (x[l, c] > maior || maior == 0) maior = x[l, c]; } for (l = 0; l <= 4; l++) for (c = 0; c <= 2; c++) { if(maior == x[l,c]) Console.WriteLine(" X={0} [{1},{2}]", maior, l, c); }

4. Leia uma matriz 3x4 de elementos inteiros e multiplique os elementos de cada linha pelo número da linha correspondente. Ex : Xi,j = Xi,j * j. int [,] x = new int[3,4]; int l, c; for (l=0; l<=2; l++) for (c=0; c<=3; c++) { Console.WriteLine("X = [{0},{1}]", l, c); x[l, c] = Int32.Parse(Console.ReadLine()); x[l,c] = l * x[l,c]; } for (l=0; l<=2; l++) for (c=0; c<=3; c++) Console.WriteLine("X [{0},{1}] = {2}", l, c, x[l,c]);

Page 3: Lista 2 - Matrizes - respondida

5. Leia duas matrizes A e B 4x4 de elementos reais e armazene em uma terceira matriz S 4x4 a soma dos elementos de A e B. Ex.: Si,j = Ai,j + Bi,j. int[,] A = new int[4, 4]; int[,] B = new int[4, 4]; int[,] C = new int[4, 4]; int l, c; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l,c] = Int32.Parse(Console.ReadLine()); } for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("B [{0},{1}]", l, c); B[l, c] = Int32.Parse(Console.ReadLine()); C[l, c] = A[l, c] + B[l, c]; } for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) Console.WriteLine("C [{0},{1}] = {2}", l, c, C[l, c]);

6. Leia uma matriz 5x5 de elementos inteiros e em seguida calcule a soma dos elementos da diagonal principal da matriz. int[,] A = new int[5,5]; int l, c; double soma = 0; for (l = 0; l <= 4; l++) for (c = 0; c <= 4; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); if (l == c) soma += A[l,c]; } Console.WriteLine("Soma = {0}", soma);

7. Calcule agora a soma dos elementos da diagonal secundária. int[,] A = new int[5, 5]; int l, c, soma =0; for (l = 0; l <= 4; l++) for (c = 0; c <= 4; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); if (l == (4-c)) soma += A[l, c]; } Console.WriteLine("Soma = {0}", soma);

Page 4: Lista 2 - Matrizes - respondida

8. Amplie o exercício 6 para incluir na somatória o elemento a direita e a esquerda da diagonal principal. Ex: int[,] A = new int[5, 5]; int l, c, soma = 0; for (l = 0; l <= 4; l++) for (c = 0; c <= 4; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); if (l == c || l == (c - 1) || l == (c + 1)) soma += A[l, c]; } Console.WriteLine("Soma = {0}", soma);

9. Leia uma matriz 4x4 de elementos inteiros e em seguida coloque os elementos da diagonal principal da matriz em um vetor de 4 posições. int[,] A = new int[4,4]; int[] V = new int[4]; int l, c; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); if (l == c) V[c]= A[l, c]; } for (c = 0; c <= 3; c++) Console.WriteLine("Vetor [{0}] = {1}", c, V[c]);

10. Agora coloque no vetor os elementos da diagonal secundária. int[,] A = new int[4, 4]; int[] V = new int[4]; int l, c; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); if (l == (3-c)) V[l] = A[l, c]; } for (l = 0; l <= 3; l++) Console.WriteLine("Vetor [{0}] = {1}", l, V[l]);

Page 5: Lista 2 - Matrizes - respondida

11. Leia uma matriz 5x5 de elementos reais e em seguida calcule duas somatórias: A 1ª somatória deverá conter os elementos da triangular superior da matriz (acima da diagonal principal) e a 2ª somatória deverá conter os elementos da triangular inferior (abaixo da diagonal principal). Os elementos da diagonal principal não devem ser usados em nenhuma das duas somatórias double[,] A = new double[5, 5]; double somaSup = 0.0, somaInf = 0.0; int l, c; for (l = 0; l <= 4; l++) for (c = 0; c <= 4; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Double.Parse(Console.ReadLine()); if (l < c) somaSup += A[l, c]; else if (l > c) somaInf += A[l, c]; } Console.WriteLine("Soma Superior = {0}", somaSup); Console.WriteLine("Soma Inferior = {0}", somaInf);

12. Leia uma matriz A 4x4 de elementos literais. Em seguida, transponha a matriz A em uma matriz T também 4x4. Ex: Tj,i = A i, j. string[,] A = new string[4, 4]; string[,] B = new string[4, 4]; int l, c; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Console.ReadLine(); } for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) B[l, c] = A[c, l]; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) Console.WriteLine("B [{0},{1}] = {2}", l, c, B[l, c]);

Page 6: Lista 2 - Matrizes - respondida

13. Agora transponha dentro da própria matriz. Troque Ai,j Aj,i

string[,] A = new string[4, 4]; int l, c; string aux; for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Console.ReadLine(); } for (l = 0; l <= 3; l++) for (c = 0; c <=3 ; c++) { if (l < c) { aux = A[l,c]; A[l, c] = A[c, l]; A[c, l] = aux; } } for (l = 0; l <= 3; l++) for (c = 0; c <= 3; c++) Console.WriteLine("B [{0},{1}] = {2}", l, c, A[l, c]);

14. Leia uma matriz 5x5 de elementos reais e em seguida coloque em um vetor de 5 posições a soma dos elementos de cada coluna da matriz. A somatória de cada coluna da matriz deve ser colocada na posição do vetor correspondente a essa coluna. double[,] A = new double[5, 5]; double[] B = new double[5]; int l, c; for (l = 0; l <= 4; l++) for (c = 0; c <= 4; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Double.Parse(Console.ReadLine()); } for (c = 0; c <= 4; c++) for (l = 0; l <= 4; l++) B[c] += A[l, c]; for (l = 0; l <= 4; l++) Console.WriteLine("Soma B [{0}] = {1}", l, B[l]);

Page 7: Lista 2 - Matrizes - respondida

15. Leia uma matriz A 3x3 de elementos inteiros e um vetor B de 3 posições de elementos inteiros onde cada uma das 3 posições do vetor será associada a uma coluna da matriz. Em seguida, some a cada elemento da matriz o elemento da coluna correspondente do vetor. Ex : Ai,j = Ai,j + Bj. int[,] A = new int[3, 3]; int[] B = new int[3]; int l, c; for (l = 0; l <= 2; l++) { Console.WriteLine("B = [{0}]", l); B[l] = Int32.Parse(Console.ReadLine()); } for (l = 0; l <= 2; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("A [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); A[l, c] += B[c]; } for (l = 0; l <= 2; l++) for (c = 0; c <= 2; c++) Console.WriteLine(" A [{0},{1}] = {2}", l, c, A[l,c]);

16. Leia uma matriz 6x3 de elementos inteiros e em seguida troque os elementos da linha 1 com os da linha 6, da linha 2 com os da linha 5 e da linha 3 com os da linha 4. Com isso as linhas da matriz serão invertidas. int[,] A = new int[6, 3]; int l, c, aux=0; for (l = 0; l <= 5; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("A = [{0},{1}]", l,c); A[l,c] = Int32.Parse(Console.ReadLine()); } for (l = 0; l <= 2; l++) for (c = 0; c <= 2; c++) { aux = A[5-l, c]; A[5-l, c] = A[l,c]; A[l, c] = aux; } for (l = 0; l <= 5; l++) for (c = 0; c <= 2; c++) Console.WriteLine(" A [{0},{1}] = {2}", l, c, A[l, c]);

Page 8: Lista 2 - Matrizes - respondida

17. Leia uma matriz 6x3 de elementos inteiros e em seguida troque os elementos da linha 1 com os da linha 4, da linha 2 com os linha 5, e da linha 3 com os da 6. Com isso a metade de cima da matriz será trocada com a metade de baixo. int[,] A = new int[6, 3]; int l, c, aux = 0; for (l = 0; l <= 5; l++) for (c = 0; c <= 2; c++) { Console.WriteLine("A = [{0},{1}]", l, c); A[l, c] = Int32.Parse(Console.ReadLine()); } for (l = 0; l <= 2; l++) for (c = 0; c <= 2; c++) { aux = A[(l+3), c]; A[(l+3), c] = A[l, c]; A[l, c] = aux; } for (l = 0; l <= 5; l++) for (c = 0; c <= 2; c++) Console.WriteLine(" A [{0},{1}] = {2}", l, c, A[l, c]);

Page 9: Lista 2 - Matrizes - respondida

18. A matriz 5x12 de valores lógicos abaixo representa o mapa das poltronas de um teatro, onde cada posição da matriz representa uma poltrona. Se uma posição da matriz estiver com valor lógico VERDADEIRO então esta posição indica uma poltrona desocupada (disponível), caso contrário a poltrona está ocupada. Faça um programa em C# que : • Preencha todas as posições da matriz com o valor lógico VERDADEIRO. • Leia um conjunto indeterminado de valores de linha e coluna onde cada par indica as coordenadas de uma poltrona. O último par, que indica o fim do processamento, contém pelo menos um dos valores negativo. • Se o valor das coordenadas informadas for VERDADEIRO, dar a mensagem “RESERVA CONFIRMADA” e mudar o seu valor para FALSO. • Se o valor das coordenadas informadas for FALSO, dar a mensagem “POLTRONA OCUPADA. INFORME NOVAS COORDENADAS”. • Ao final, indicar quantas poltronas foram reservadas.

bool[,] A = new bool[5,12]; int l, c, cont=0; for (l = 0; l <= 4; l++) for (c = 0; c <= 11; c++) A[l, c] = true; l = 0; c = 0; while (l >= 0 && c >= 0 && cont <=60) { Console.WriteLine("Digite a Coordenada da poltrona = LINHA"); l = Int32.Parse(Console.ReadLine()); if (l >= 0) { Console.WriteLine("Digite a Coordenada da poltrona = COLUNA"); c = int.Parse(Console.ReadLine()); while (l > 4 || c > 11) { Console.WriteLine("Poltrona nao exixte, favor informar linha da poltrona valida"); l = Int32.Parse(Console.ReadLine()); Console.WriteLine("Digite a Coordenada da poltrona = COLUNA"); c = Int32.Parse(Console.ReadLine()); } if (l >= 0 && c >= 0) { if (A[l, c] == true) { Console.WriteLine("Reserva CONFIRMADA"); A[l, c] = false; cont++; } else Console.WriteLine("Poltrona indisponível, informe novas coordenadas."); } } } for (l = 0; l <= 4; l++) for (c = 0; c <= 11; c++) { Console.WriteLine("Poltrona posicao [{0},{1}] = {2}", l, c, A[l,c]); Console.WriteLine("Foram reservadas {0} poltronas", cont); }