bacharelado em ciência e tecnologia · pdf filelista de exercícios ... neste...
TRANSCRIPT
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();
}