18
Bacharelado em Ciência e Tecnologia BC0505 – Processamento da Informação - Prof. Edson Pinheiro Pimentel EXERCÍCIOS Gabarito em Java Lista de Exercícios Vetor e Matriz PARTE 1 Vetor [1]. Sendo o vetor V igual a: 5 10 7 6 16 3 9 2 2 1 0 1 2 3 4 5 6 7 8 9 e as variáveis X = 1 e Y = 3, escreva o valor correspondente à solicitação, conforme exemplos: a) V[X+1] valor corresponde a V[2] = 7 b) V[Y+2] valor corresponde a V[5] = 3 c) V[X+3] valor corresponde a V[4] = 16 d) V[X*4] valor corresponde a V[4] = 16 e) V[Y*2] valor corresponde a V[6] = 9 f) V[X+Y] valor corresponde a V[4] = 16 g) V[X+(Y*4)] valor corresponde a V[13] = *** erro *** Neste exercício, basta utilizar os valores de X e Y dados no enunciado para realizarmos as operações dentro dos [ ] (colchetes) que definem o índice do elemento do vetor. Em seguida, verificamos no vetor V quais são os valores dos elementos. O elemento de índice 13 não existe, então há erro. OBS: na representação acima, os números de baixo são os índices e os de cima os valores do vetor. [2]. Escreva um algoritmo que Leia 10 valores inteiros e armazene-os em um Vetor. Após a digitação do último valor, imprima os elementos com conteúdo par. // DECLARAÇÃO DE VARIÁVEIS int vet[] = new int[10]; // define um vetor de 10 posições int i; //define a variável i que será usada como índice do vetor // ENTRADA Scanner sc = new Scanner(System.in); for (i = 0; i < 10; i++) { //preenche o vetor percorrendo suas posições com índices de 0 a 9 System.out.println("Informe o elemento " + i + " do vetor: "); vet[i] = sc.nextInt(); } // PROCESSAMENTO & SAÍDA System.out.println("Os pares digitados são "); for (i = 0; i < 10; i++) { //laço de repetição que imprime os valores pares do vetor if (vet[i] % 2 == 0) { //checa se é par (se a divisão por 2 dá zero) para imprimir System.out.print(vet[i]+ " "); } } [3]. Escreva um algoritmo que Leia 15 nomes de pessoas e armazene-os em um Vetor. Após a digitação do último nome, imprima-os na sequência contrária (ou seja, o último nome digitado deve ser o primeiro a ser impresso, etc)

Bacharelado em Ciência e Tecnologia · PDF fileLista de Exercícios ... Neste exercício, basta utilizar os valores de X e Y dados no enunciado para realizarmos as operações dentro

Embed Size (px)

Citation preview

Bacharelado em Ciência e Tecnologia BC0505 – Processamento da Informação - Prof. Edson Pinheiro Pimentel

EXERCÍCIOS – Gabarito em Java

Lista de Exercícios – Vetor e Matriz

PARTE 1 – Vetor

[1]. Sendo o vetor V igual a:

5 10 7 6 16 3 9 2 2 1

0 1 2 3 4 5 6 7 8 9

e as variáveis X = 1 e Y = 3, escreva o valor correspondente à solicitação, conforme exemplos:

a) V[X+1] valor corresponde a V[2] = 7

b) V[Y+2] valor corresponde a V[5] = 3

c) V[X+3] valor corresponde a V[4] = 16

d) V[X*4] valor corresponde a V[4] = 16

e) V[Y*2] valor corresponde a V[6] = 9

f) V[X+Y] valor corresponde a V[4] = 16

g) V[X+(Y*4)] valor corresponde a V[13] = *** erro ***

Neste exercício, basta utilizar os valores de X e Y dados no enunciado para realizarmos as operações dentro dos [ ]

(colchetes) que definem o índice do elemento do vetor. Em seguida, verificamos no vetor V quais são os valores dos

elementos. O elemento de índice 13 não existe, então há erro. OBS: na representação acima, os números de baixo são

os índices e os de cima os valores do vetor.

[2]. Escreva um algoritmo que Leia 10 valores inteiros e armazene-os em um Vetor. Após a digitação do último valor, imprima os elementos com conteúdo par.

// DECLARAÇÃO DE VARIÁVEIS

int vet[] = new int[10]; // define um vetor de 10 posições

int i; //define a variável i que será usada como índice do vetor

// ENTRADA

Scanner sc = new Scanner(System.in);

for (i = 0; i < 10; i++) { //preenche o vetor percorrendo suas posições com índices de 0 a 9

System.out.println("Informe o elemento " + i + " do vetor: ");

vet[i] = sc.nextInt();

}

// PROCESSAMENTO & SAÍDA

System.out.println("Os pares digitados são ");

for (i = 0; i < 10; i++) { //laço de repetição que imprime os valores pares do vetor

if (vet[i] % 2 == 0) { //checa se é par (se a divisão por 2 dá zero) para imprimir

System.out.print(vet[i]+ " ");

}

}

[3]. Escreva um algoritmo que Leia 15 nomes de pessoas e armazene-os em um Vetor. Após a digitação do último nome, imprima-os na sequência contrária (ou seja, o último nome digitado deve ser o primeiro a ser impresso, etc)

import java.util.Scanner;

public class Ex03 {

public static void main (String args[]){

Scanner teclado = new Scanner(System.in);

/*Criar variável "i"*/

int i;

/*Criar vetor "nomes" e atribuir tamanho*/

String nomes[];

nomes= new String[15];

/*Ler 15 nomes de pessoas*/

System.out.println("Digite 15 nomes de pessoas:");

for (i=0;i<15;i++){

nomes[i]=teclado.next();

}

/*Imprimir os nomes de trás para frente:

Neste código, para imprimir de trás para frente, percorremos o vetor na ordem inversa a ordem de leitura*/

for (i=14;i>=0;i--){

System.out.println(nomes[i]);

}

}

}

[4]. Escreva um programa que leia 20 números e após o fim da entrada de dados, exiba na tela, primeiro os elementos com conteúdo ímpar e depois os elementos das posições pares.

// DECLARAÇÃO DE VARIÁVEIS

int b[] = new int[20]; // define um vetor de 20 posições

int i; //define variável inteira i que será usada como índice do vetor

// ENTRADAS

Scanner B = new Scanner(System.in);

for (i = 0; i < 20; i++) { //preenche o vetor

System.out.println("Informe a posição ["+ i +"] do vetor: ");

b[i] = B.nextInt();

}

// PROCESSAMENTO E SAÍDA

System.out.println("O vetor tem de ímpares: ");

for (i = 0; i < 20; i++) { //imprime os valores ímpares

if (b[i] % 2 != 0) {

System.out.print(b[i]+ " ");

}

}

System.out.println("\n O vetor tem nas posições pares: ");

for (i = 0; i < 20; i++) { //imprime os valores das posições pares

if (i % 2 == 0) {

System.out.print(b[i]+ " ");

}

}

[5]. Escreva um algoritmo que leia 8 elementos em um vetor inteiro A. Construa outro vetor B, de mesma dimensão de A, com seus elementos sendo a multiplicação do elemento correspondente de A por 3. Mostre os elementos de B.

import java.util.Scanner;

public class Ex05 {

public static void main (String args[]){

Scanner teclado = new Scanner(System.in);

/*Criar variável "i"*/

int i;

/*Cria vetor "A" e vetor "B", e atribuir tamanhos*/

int A[], B[];

A = new int[8];

B = new int[8];

/*Ler valores dos elementos de A, e ao mesmo tempo atribuir o triplo aos elementos do vetor B*/

for (i=0;i<8;i++){

A[i]=teclado.nextInt();

B[i]=A[i]*3;

}

/*Exibir vetor B*/

for (i=0;i<8;i++){

System.out.println(B[i]);

}

}

}

[6]. Leia 20 elementos em um vetor A e construa o vetor B com elementos de A, porém invertidos, ou seja, o primeiro elemento de A passa a ser o último elemento de B, e assim por diante. Mostre os 2 vetores, o maior elemento do vetor A e o menor elemento do vetor B.

// DECLARAÇÃO DE VARIÁVEIS

int A[] = new int[20]; // define um vetor A[.] de 20 posições

int B[] = new int[20]; // define um vetor B[.] de 20 posições

int k = 19; // constante auxiliar que servirá de índice decrescente

int i; // define variável inteira i que servirá de índice

int maior, menor;

// ENTRADAS

Scanner sc = new Scanner(System.in);

for (i = 0; i < 20; i++) {

System.out.println("Digite o elemento [" + i + "] de A: ");

A[i] = sc.nextInt(); //preenche o vetor A

B[k] = A[i]; //preenche o vetor B de trás para frente

k = k - 1;

}

maior = A[0]; //auxiliar maior é inicializada com um valor em A[.]

menor = B[0]; //auxiliar menor é inicializada

// PROCESSAMENTO

for (i = 0; i < 20; i++) {

if (A[i] > maior) { //acha o maior valor de A, atualizando a variável maior

maior = A[i];

}

if (B[i] < menor) { //acha o menor valor de B, com a mesma ideia

menor = B[i];

}

}

System.out.println("O vetor A é:");

for (i = 0; i < 20; i++) { //imprime os valores de A

System.out.print(A[i] + " ");

}

System.out.println("O vetor B é:");

for (i = 0; i < 20; i++) { //imprime os valores de B

System.out.print(B[i] + " ");

}

System.out.println("O maior de A é:" + maior); //imprime o maior de A

System.out.println("O menor de B é:" + menor); //imprime o menor de B

[7]. Escreva um algoritmo que Leia um vetor de N elementos. Após a digitação do último valor, encontre e mostre o maior elemento.

import java.util.Scanner;

public class Ex07 {

public static void main (String args[]){

Scanner teclado = new Scanner(System.in);

/*Criar vetor "vetor", e demais variáveis*/

int vetor[], n, maior, i;

/*Solicitar e ler valor de "n", que será o tamanho do vetor "vetor"*/

System.out.println("Digite quantos elementos quer em seu vetor:");

n=teclado.nextInt();

/*Atribuir tamanho ao vetor "vetor"*/

vetor = new int[n];

/*Solicitar e ler valores dos elementos "i" do vetor "vetor"*/

for (i=0;i<n;i++){

System.out.println("Digite o elemento "+(i+1)+":");

vetor[i]=teclado.nextInt();

}

/*Definir a princípio qualquer elemento do vetor "vetor" como o maior

para possibilitar comparação com todos os outros demais elementos*/

maior=vetor[0];

/*Comparação de valores: Verificamos cada elemento, e comparamos com

o valor do elemento previamente definido como o maior. Caso na comparação seja encontrado um valor maior que a

variável "maior", redefinimos a variável maior.

Após compararmos com todos os elementos do vetor, teremos na variável "maior" o valor do maior de todos os

elementos.*/

for(i=0;i<n;i++){

if(vetor[i]>maior){

maior=vetor[i];

}

}

/*Exibir o maior valor*/

System.out.println("O maior valor é "+maior+".");

}

}

[8]. Escreva um programa que leia o nome e a idade de 20 pessoas e exiba, após o fim da entrada de dados, a idade média do grupo e o nome das pessoas com idade acima da média.

// DECLARAÇÃO DE VARIÁVEIS

int idades[] = new int[20]; // define o vetor de idades

String nomes[] = new String[20]; // define o vetor de nomes

double media;

int somaIdades=0, i;

// ENTRADA

Scanner B = new Scanner(System.in);

for (i = 0; i < 20; i++) {

System.out.println("Escreva o nome da pessoa " + (i + 1));

nomes[i] = B.nextLine(); //Preenche o vetor de nomes

}

for (i = 0; i < 20; i++) {

System.out.println("Escreva a idade de " + nomes[i]);

idades[i] = B.nextInt(); //Preenche o vetor de idades

// PROCESSAMENTO & SAÍDA

somaIdades = somaIdades + idades[i]; //calcula a soma das idades

}

media = somaIdades / 20.0; //calcula a média das idades

System.out.println(media); //imprime a média das idades

System.out.println("As pessoas com idade acima da média são:");

for (i = 0; i < 20; i++) {

if (idades[i] > media) { //Verifica os nomes que são acima da media

System.out.print(nomes[i] + " ");

}

}

[9]. Escreva um programa que leia 100 números e exiba na tela a média, o maior, o menor, o percentual de números ímpares e o percentual de múltiplos de 3.

import java.util.Scanner;

public class Ex09 {

public static void main (String args[]){

Scanner teclado = new Scanner(System.in);

/*Criar vetor "vetor" e demais variáveis*/

int vetor[], maior, menor, i;

float media=0, pimpar=0, pmult3=0;

/*Atribuir tamanho ao vetor "vetor"*/

vetor = new int[100];

/*Solicita digitação de 100 valores*/

System.out.println("Digite cem números:");

/*Lê os 100 valores solicitados.

Ao mesmo tempo, verifica se o valor é impar, e se sim, incrementa variável que conta números ímpares.

Ao mesmo tempo, também verifica se o número é divisível por 3.

Se sim, incrementa variável que conta divisores de 3.

A cada leitura também faz a somatória dos valores lidos, para posterior cálculo da média.*/

for (i=0;i<100;i++){

vetor[i]=teclado.nextInt();

if (vetor[i]%2!=0){

pimpar++;

}

if (vetor[i]%3==0){

pmult3++;

}

media=media+vetor[i];

}

/*Divide somatória de valores pelo número de valores lidos

para obter a média.

Atenção para usar "100f" ao invés de "100", para obtermos uma

resposta do tipo float.*/

media=media/100f;

/*Definir a princípio qualquer elemento do vetor "vetor" como o maior

para possibilitar comparação com todos os outros demais elementos*/

maior=vetor[0];

/*Comparação de valores: Verificamos cada elemento, e comparamos com

o valor do elemento previamente definido como o maior. Caso na

comparação seja encontrado um valor maior que a variável "maior",

redefinimos a variável maior.

Após compararmos com todos os elementos do vetor, teremos na

variável "maior" o valor do maior de todos os elementos.*/

for(i=0;i<100;i++){

if(vetor[i]>maior){

maior=vetor[i];

}

}

/*Para encontrar o menor valor, utiliza-se o mesmo procedimento de

verificação do maior valor, porém, comparamos se os elementos são

menores que o "menor"*/

/*Atrbuição de menor valor para comparação inicial*/

menor=vetor[0];

/*Comparação*/

for(i=0;i<100;i++){

if(vetor[i]<menor){

menor=vetor[i];

}

}

/*Exibir as informações sobre a lista de valores*/

System.out.println("Média: "+media+"\nMaior: "+maior);

System.out.println("Menor: "+menor+"\nPorcentagem de números ímpares: "+(pimpar/100));

System.out.println("Porcentagem de múltiplos de 3: "+(pmult3/100));

}

}

[10]. Escreva um programa que dados dois vetores de 20 números cada, gere um terceiro vetor para intercalar os elementos dos dois.

// DECLARAÇÃO DE VARIÁVEIS

int a[] = new int[20], k = 0, j = 1, i;

int b[] = new int[20];

int c[] = new int[40];

// ENTRADAS

Scanner entrada = new Scanner(System.in);

for (i = 0; i < 20; i++) {

System.out.println("Escreva o " +(i+1)+"º valor de A:");

a[i] = entrada.nextInt(); //Preenche o vetor A

}

for (i = 0; i < 20; i++) {

System.out.println("Escreva o "+(i+1)+"º valor de B:");

b[i] = entrada.nextInt(); //Preenche o vetor B

}

// PROCESSAMENTO

for (i = 0; i < 20; i++) { //preenche o vetor C intercalando os valores de A e B (a0 b0 a1 b1 a2 b2..)

c[k] = a[i];

c[j] = b[i];

k = k + 2; //k varia assim: 0, 2, 4, 6,..., 38

j = j + 2; //j varia assim: 1, 3, 5, 7,..., 39, lembre-se que c[.] tem posições de 0 a 39

}

// SAÍDA

System.out.println("O novo vetor com os valores intercalados é:");

for (i = 0; i < 40; i++) { //imprime C

System.out.print(c[i] + " ");

}

[11]. Construir um algoritmo que leia um vetor para armazenar os modelos de cinco carros (exemplo: FUSCA, GOL, VECTRA, etc). Leia outro vetor com o consumo desses carros, isto é, quantos quilômetros cada um desses carros faz com 1 litro de combustível. Calcule e mostre:

a) O modelo do carro mais econômico.

b) Quantos litros de combustível cada um dos carros cadastrados consome para percorrer uma distância de 1000 quilômetros.

import java.util.Scanner;

public class Ex11 {

public static void main (String args[]){

Scanner teclado = new Scanner(System.in);

/*Criar vetores e variaveis*/

float consumo[], milkm[],economico;

String carros[];

int i,indiceeconomico;

/*Atribuir tamanho aos vetores*/

consumo = new float[5];

carros = new String[5];

milkm = new float [5];

/*Solicitar e ler o nome dos carros*/

for (i=0;i<5;i++){

System.out.println("Digite o nome do carro"+(i+1)+" :");

carros[i]=teclado.next();

}

/*Solicitar e ler o consumo dos carros*/

for (i=0;i<5;i++){

System.out.println("Digite o consumo do "+carros[i]+" :");

consumo[i]=teclado.nextFloat();

}

/*Calcular consumo do carro para viajar 1000km. Atenção para usar "1000f" ao invés de "1000",

para obter resultado do tipo float*/

for(i=0;i<5;i++){

milkm[i]=1000f/consumo[i];

}

/*Definimos a princípio um carro qualquer como o mais econômico.

Neste caso, o carro salvo no vetor de índice 0.*/

economico=consumo[0];

indiceeconomico=0;

/*Comparamos o consumo de todos os carros com o previamente definido como o mais econômico.

Assim, após a última comparação, temos o carro mais econômico definido. */

for(i=0;i<5;i++){

if(consumo[i]>economico){

economico=consumo[i];

/*Salvamos também o índice do vetor para usar de referência abaixo

na exibição do modelo mais econômico*/

indiceeconomico=i;

}

}

/*Exibir carro mais econômico*/

System.out.println("O modelo mais econômico é: "+carros[indiceeconomico]);

/*Mostrar quanto cada carro gasta de combustível para percorrer 1000km*/

for(i=0;i<5;i++){

System.out.println("O carro "+carros[i]+" gasta "+milkm[i]+"L"+" de combustível para percorrer 1000km.");

}

}

}

PARTE 2 –MATRIZ

[12]. Sendo a matriz “M” igual a :

0 1 2 3 4

0 5 2 1 1 3

1 7 4 7 3 2

2 4 5 2 2 1

3 3 3 1 4 1

4 8 4 2 9 3

e as variáveis X = 0 e Y = 2 escreva o valor correspondente à solicitação, conforme exemplo:

a) M[X][Y] valor corresponde a M[0] [2] que é 1

b) M[Y][X]

c) M[X+1][Y-1]

d) M[X+2][Y-1*2]

e) M[Y-X][Y+X]

f) M[M[X][Y]][M[Y][X]] valor corresponde a M[M[0][2]][M[2][0]] M[1][4] que é 2

g) M[M[Y-X][Y+X] ][M[Y+X][Y-X]]

// No gabarito dessa lista em Portugol consta as respostas de cada item acima, para testar em java o código abaixo é útil

int [ ] [ ] A = { { 5, 2, 1, 1, 3 },

{ 7, 4, 7, 3, 2},

{ 4, 5, 2, 2, 1},

{ 8, 4, 2, 9, 3 }

};

int x = 0, y = 2;

System.out.println("a)M[x][y]:"+A[x][y]);

System.out.println("b)M[y][x]:"+A[y][x]);

System.out.println("c)M[x+1][y-1]:"+A[x+1][y-1]);

System.out.println("d)M[x+2][y-1*2]:"+A[x+2][y-1*2]);

System.out.println("e)M[y-x][y+x]:"+A[y-x][y+x]);

System.out.println("f)M[M[X][Y]][M[Y][X]]:"+A[A[x][y]][A[y][x]]);

System.out.println("g)M[M[Y-X][Y+X] ][M[Y+X][Y-X]]:"+A[A[y-x][y+x] ][A[y+x][y-x]]);

[13]. Desenhe uma representação para as seguintes matrizes e coloque os valores determinados nos devidos lugares:

a) caracter MA[5][5][5]

MA[1][3][1] ’x’

MA[3][3][2] ‘y’

MA[2][1][4] ‘k’

MA[4][4][1] ‘w’

MA[2][3][4] ‘z’

b) inteiro MB[3][3][3]

MB[2][1][1] = 2

MB[1][2][1] = 4

MB[2][1][2] = 6

MB[2][2][1] = 8

MB[0][1][2] = 0

public class Ex15 {

public static void main (String args[ ]){

/*Declara matrizes e variáveis. Atenção para a terceira dimensão*/

char MA[ ][ ][ ];

int MB[ ][ ][ ], i, j, k;

/*Atribui tamanhos para as matrizes*/

MA = new char[5][5][5];

MB = new int [3][3][3];

/*Define a princípio todos os valores da matriz "MA"

como '.', para facilitar a visualização posterior*/

for(i=0;i<5;i++){

for(j=0;j<5;j++){

for(k=0;k<5;k++){

MA[i][j][k]='.';

}

}

}

/*Define a princípio todos os valores da matriz "MB"

como -1, para facilitar a visualização posterior*/

for(i=0;i<3;i++){

for(j=0;j<3;j++){

for(k=0;k<3;k++){

MB[i][j][k]=-1;

}

}

}

/*Define os valores pedidos no enunciado para a matriz MA*/

MA[1][3][1]='x';

MA[3][3][2]='y';

MA[2][1][4]='k';

MA[4][4][1]='w';

MA[2][3][4]='z';

/*Define os valores pedidos no enunciado para a matriz MB*/

MB[2][1][1]=2;

MB[1][2][1]=4;

MB[2][1][2]=6;

MB[2][2][1]=8;

MB[0][1][2]=0;

/*Imprime a matriz MA. Quebras de linha para facilitar a visualização.*/

for(i=0;i<5;i++){

for(j=0;j<5;j++){

for(k=0;k<5;k++){

System.out.print(MA[i][j][k]+" ");

}

System.out.println();

}

System.out.print("\n\n\n");

}

/*Imprime a matriz MB. Quebras de linha para facilitar a visualização.*/

for(i=0;i<3;i++){

for(j=0;j<3;j++){

for(k=0;k<3;k++){

System.out.print(MB[i][j][k]+" ");

}

System.out.println();

}

System.out.print("\n\n\n");

}

}

}

Matrizes impressas:

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. x . . .

. . . . .

. . . . .

. . . . k

. . . . .

. . . . z

. . . . .

. . . . .

. . . . .

. . . . .

. . y . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. w . . .

-1 -1 -1

-1 -1 0

-1 -1 -1

-1 -1 -1

-1 -1 -1

-1 4 -1

-1 -1 -1

-1 2 6

-1 8 -1

[14]. Dada a matriz do exercício 12, gere um vetor com a média ponderada de cada linha, considerando como

pesos os valores da última coluna.

// DECLARAÇÃO DE VARIÁVEIS & ENTRADA

int [ ] [ ] A = { { 5, 2, 1, 1, 3 },

{ 7, 4, 7, 3, 2},

{ 4, 5, 2, 2, 1},

{ 3, 2, 1, 4, 1},

{ 8, 4, 2, 9, 3 }

};

double mediasL[] = {0.0, 0.0, 0.0, 0.0, 0.0}; //vetor de médias ponderadas das linhas inicializado em zero

int peso =0, i, j;

// PROCESSAMENTO

for (i = 0; i < 5; i++) {

for (j = 0; j < 5; j++) {

peso = A[j][4]; // o peso vem da última coluna <índice 4>

mediasL[i] = mediasL [i] + A[i][j]*peso;

}

mediasL [i] = mediasL [i]/10; //10 é a soma dos pesos que vêm da última coluna

}

// SAÍDA

for(i=0; i<5; i++){

System.out.println("A média ponderada da linha "+i+" é: "+mediasL[i]);

}

[15]. Preencha uma matriz 5x5 de números inteiros e mostre na tela apenas os elementos de cuja soma da linha e coluna resultem num número ímpar.

import java.util.Scanner;

public class Teste {

public static void main (String args[]){

Scanner teclado = new Scanner (System.in);

/*Declara variáveis, matrizes, e vetores*/

int matriz [ ][ ], i,j,somalinha[ ],somacoluna[ ];

/*Atribui tamanho às matrizes e vetores*/

matriz= new int[5][5];

somalinha=new int[5];

somacoluna=new int[5];

/*Atribui valor zero a todos os elementos dos vetores de soma, pois serão usados

posteriormente para somatório*/

for(i=0;i<5;i++){

somalinha[i]=0;

somacoluna[i]=0;

}

/*Solicita e lê os elementos da matriz.

Ao mesmo tempo, salva no vetor "somalinha" a soma dos valores da linha "i" da matriz "matriz", e no vetor

"somacoluna" a soma dos valores da coluna "j" da matriz "matriz.*/

for (i=0;i<5;i++){

for(j=0;j<5;j++){

System.out.println("Digite o elemento["+i+"]["+j+"] da matriz:");

matriz[i][j]=teclado.nextInt();

somalinha[i]=somalinha[i]+matriz[i][j];

somacoluna[j]=somacoluna[j]+matriz[i][j];

}

}

/*Imprime elementos desejados*/

System.out.println("Elementos cuja soma da linha e da coluna resulta num número ímpar:");

/*Percorre a matriz verificando quais elementos tem na soma da linha e a soma da coluna valores ímpares.

Imprime um espaço caso contrário, apenas para ilustrar a localização de elementos não impressos.

Quebra linha para facilitar a visualização da impressão da matriz.*/

for (i=0;i<5;i++){

for(j=0;j<5;j++){

if(((somalinha[i])%2)!=0&&((somacoluna[j])%2)!=0){

System.out.print(matriz[i][j]);

}

else{

System.out.print(" ");

}

}

System.out.println();

}

}

}

[16]. Preencha uma matriz 5x5 de números inteiros e calcule o determinante.

import java.util.Scanner;

public class Ex16 {

public static void main(String [] Args){

Scanner teclado = new Scanner(System.in);

//DECLARAÇÃO DE VARIÁVEIS

int matriz [][] = new int [5][5], detA, detA1, detA2, detA3, detA4, detA5, i, j;

//ENTRADA

System.out.println("Entre com a Matriz:");

for (i = 0; i < 5; i++){

for (j = 0; j < 5; j++){

matriz [i][j] = teclado.nextInt();

}

}

//PROCESSAMENTO

detA3 = (matriz[3][3] * matriz[4][4])-(matriz [3][4] * matriz [4][3]);

detA4 = (matriz [1][3] * matriz [4][4])-(matriz [3][4] * matriz [4][1]);

detA5 = (matriz [3][1] * matriz [4][3])-(matriz [3][3] * matriz [4][1]);

detA2 = 2*detA3-detA4 + 2*detA5;

detA1 = -2*detA2;

detA = 3*detA1;

//SAÍDA

System.out.println("O determinante da matriz é " + detA);

}

}

[17]. Preencha uma matriz 5x5 de números inteiros e mostre na tela os dados contidos em uma coluna a ser informada pelo usuário.

import java.util.Scanner;

public class Ex17 {

public static void main (String args[]){

Scanner teclado = new Scanner (System.in);

/*Declara matriz e variáveis*/

int matriz [][], i,j,n;

/*Atribui dimensões da matriz*/

matriz= new int[5][5];

/*Solicita e lê número da coluna da matriz que deverá ser exibida*/

System.out.println("Informe a coluna da matriz que deverá ser exibida:");

n=teclado.nextInt();

/*Solicita e lê os valores da matriz.*/

for (i=0;i<5;i++){

for(j=0;j<5;j++){

System.out.println("Digite o elemento["+i+"]["+j+"] da matriz:");

matriz[i][j]=teclado.nextInt();

}

}

/*Exibe os valores da coluna escolhida pelo usuário*/

System.out.println("Coluna "+n+":");

for (i=0;i<5;i++){

System.out.println(matriz[i][n]);

}

}

}

[18]. Escreva um programa que leia uma matriz A de 3 x 5 em seguida uma matriz B de 3 x 5. Gere uma matriz C contendo a soma de A e B. Imprima a matriz C.

// DECLARAÇÃO DE VARIÁVEIS

Scanner entrada = new Scanner(System.in);

int a[][] = new int[3][5];

int b[][] = new int[3][5];

int c[][] = new int[3][5];

int i, j;

// ENTRADA

for (i = 0; i < 3; i++) {

for (j = 0; j < 5; j++) {

System.out.println("Digite o valor da posição (" + (i + 1) + ", " + (j + 1) + ") de A:");

a[i][j] = entrada.nextInt();

System.out.println("Digite o valor da posição (" + (i + 1) + ", " + (j + 1) + ") de B:");

b[i][j] = entrada.nextInt();

}

}

// PROCESSAMENTO E SAÍDA

for (i = 0; i < 3; i++) {

for (j = 0; j < 5; j++) {

c[i][j] = a[i][j] + b[i][j]; //<< Linha que realiza a soma dos elementos de a[.] com os de b[.]

System.out.print(c[i][j] + " ");

}

System.out.println();

}

[19]. Em uma classe há n alunos, cada um dos quais realizou k provas com pesos distintos. Dados n , k, os pesos das k provas e as notas de cada aluno, calcular a média ponderada das provas para cada aluno e a média aritmética da classe em cada uma das provas.

import java.util.Scanner;

public class Ex19 {

public static void main (String args[]){

Scanner teclado = new Scanner (System.in);

/*Criação de variáveis*/

int k, n, i, j;

/*Solicitação e leitura do número de alunos na turma*/

System.out.println("Digite quantos alunos há na turma:");

n=teclado.nextInt();

/*Solicitação e leitura do numero de provas aplicadas*/

System.out.println("Digite quantas provas serão aplicadas:");

k=teclado.nextInt();

/*Declaração e atribuição de tamanho das matrizes*/

float notas[][],pesos[], mediaaluno[], mediaprova[], somapeso=0;

notas = new float [n][k];

pesos = new float [k];

mediaaluno = new float [n];

mediaprova = new float [k];

/*Solicitação e leitura dos pesos das provas*/

for (j=0;j<k;j++){

System.out.println("Digite o peso da P"+(j+1)+":");

pesos[j]=teclado.nextFloat();

}

/*Solicitação e letura das notas dos alunos*/

for(i=0;i<n;i++){

for(j=0; j<k; j++){

System.out.println("Digite a nota "+(j+1)+" do aluno "+(i+1)+":");

notas[i][j]=teclado.nextFloat();

}

}

/*Zera o vetor "mediaaluno" para uso posterior em uma somatória*/

for (i=0;i<n;i++){

mediaaluno[i]=0;

}

/*Zera o vetor "mediaprova" para uso posterior em uma somatória*/

for (j=0;j<k;j++){

mediaprova[j]=0;

}

/*Cálculo da média de cada aluno (média ponderada das provas)*/

for (i=0;i<n;i++){

for (j=0;j<k;j++){

/*Somatório da nota previamente digitada,

multiplicada pelo peso da prova*/

mediaaluno[i]=mediaaluno[i]+(notas[i][j]*pesos[j]);

}

}

/*Cálculo da média aritmética (da sala toda) em cada prova*/

for (j=0;j<k;j++){

for (i=0;i<n;i++){

/*Somatório das notas de todos os alunos numa mesma prova*/

mediaprova[j]=mediaprova[j]+notas[i][j];

}

/*Divide a somatória das notas na prova pelo número de alunos

para saber a média dos alunos naquela prova*/

mediaprova[j]=mediaprova[j]/(float)n;

}

/*Exibe a nota média dos alunos em cada prova*/

for(j=0;j<k;j++){

System.out.println("A média da prova "+(j+1)+ " é: "+mediaprova[j]);

}

/*Quebra uma linha, apenas para fins estéticos*/

System.out.println();

/*Calcula a soma dos pesos para fazer a média ponderada*/

for (j=0;j<k;j++){

somapeso= somapeso+ pesos[j];

}

/*Exibe a média de cada aluno (média ponderada de todas as provas)*/

for(i=0;i<n;i++){

System.out.println("A média do aluno "+(i+1)+ " é: "+(mediaaluno[i])/somapeso);

}

}

}

[20]. Construa um algoritmo para gerenciar a venda de ingressos (ocupação) das poltronas numeradas de um teatro, que tem 200 lugares, organizados em 20 fileiras com 10 cadeiras cada fila. Inicialize a matriz com

todas as posições valendo -1 indicando que elas estão vazias. Para cada nova venda de ingresso, deve se solicitar ao usuário o número da fila e o número da poltrona. Se a poltrona estiver “vazia”, deve-se alterar seu conteúdo para o valor 1, indicando que o ingresso foi vendido. Se não estiver vazia, deve-se emitir uma mensagem: “Poltrona já foi vendida”. O programa deve funcionar por meio de um menu, com duas opções, sendo: A) Vender Ingresso B) Exibir o total de ingressos vendidos e C) Encerrar o Programa.

// DECLARAÇÃO DE VARIÁVEIS

Scanner B = new Scanner(System.in);

Scanner entrada2 = new Scanner(System.in);

int a[][] = new int[20][10];

int poltrona, fila, vendidas = 0; //vendidas é o contador de vendas

String b= "Z"; //inicializo com qualquer caractere diferente de ‘C’

int i, j;

// ENTRADA, PROCESSAMENTO e SAÍDA são alternados.

for (i = 0; i < 20; i++) {

for (j = 0; j < 10; j++) {

a[i][j] = -1; //preenche a matriz inicial com -1 estando todos os assentos livres

}

}

while (!"C".equals(b)) { //laço principal que aguarda digitarem ‘C’ para sair

System.out.println("Escolha uma das opções abaixo digitando a letra da operação pretendida:");

System.out.println("A) Vender Ingresso B) Exibir o total de ingressos vendidos C) Encerrar o Programa");

b = B.nextLine();

if (b.equals("A")) { //Digitaram ‘A’

System.out.println("Digite a fila (0-19): ");

fila = entrada2.nextInt();

System.out.println("Digite a poltrona (0-9): ");

poltrona = entrada2.nextInt();

while (fila >= 20 || poltrona >= 10) { //caso digitem números de fila/poltrona acima do intervalo

System.out.println("Número de poltrona ou fila está inválido!");

System.out.println("Digite a fila (0-19): ");

fila = entrada2.nextInt();

System.out.println("Digite a poltrona (0-9): ");

poltrona = entrada2.nextInt();

}

if (a[fila][poltrona ] == -1) { //se a cadeira selecionada estiver livre

System.out.println(" >> Venda efetuada!");

a[fila][poltrona] = 1;

vendidas++; //incrementa contador de vendas

} else {

System.out.println("Poltrona ocupada!");

}

} else if (b.equals("B")) { //Digitaram opção ‘B’

System.out.println("Foram vendidos " + vendidas + " ingressos");

}

}

for (i = 0; i < 20; i++) { //desenha a matriz das poltronas após encerrar o loop principal

for (j = 0; j < 10; j++) {

System.out.print(a[i][j] + " ");

}

System.out.println();

}