1ª questão
A partir de uma matriz quadrada de inteiros fornecida no próprio programa, faça o que se pede em cada item.
Para saber a quantidade de linhas e colunas que a matriz possui é só usar: m.length
Exemplo de uma matriz 9 x 9:
int[][] m = {
{12,34,56,67,78,89,12,34,34},
{42,43,43,54,65,76,87,87,87},
{11,22,33,44,55,66,77,88,99},
{14,25,36,47,58,69,68,79,80},
{98,87,76,65,76,54,43,32,21},
{99,88,55,44,33,22,11,22,33},
{61,73,84,95,85,86,87,87,88},
{11,11,99,88,77,77,77,55,55},
{34,54,24,37,47,57,97,87,89}};
a) Exibir os elementos do triângulo inferior relativo à diagonal principal da matriz.
b) Exibir os elementos da diagonal secundária. Construa o algoritmo da forma mais simples.
public class MatrizQuadrada { public static void main(String[] args) { int[][] m = { {12,34,56,67,78,89,12,34,34}, {42,43,43,54,65,76,87,87,87}, {11,22,33,44,55,66,77,88,99}, {14,25,36,47,58,69,68,79,80}, {98,87,76,65,76,54,43,32,21}, {99,88,55,44,33,22,11,22,33}, {61,73,84,95,85,86,87,87,88}, {11,11,99,88,77,77,77,55,55}, {34,54,24,37,47,57,97,87,89}}; // exibe o triângulo inferior for(int l = 1; l < m.length; l++) { for(int c = 0; c <= l-1; c++) System.out.print(m[l][c] + " "); System.out.println(); } System.out.println(); // exibe a diagonal secundária for(int d = 0; d < m.length ; d++) System.out.print(m[m.length - d - 1][d] + " "); } }
2ª questão
Faça um programa para receber do usuário 100 números inteiros quaisquer. Em seguida exiba aqueles que forem menores do que a média aritmética de todos os 100 valores informados.
import java.util.Scanner; public class MenoresMedia { public static void main(String[] args) { // declaração do vetor capaz de armazenar 100 valores double[] valores = new double[100]; // entrada dos 100 valores double soma = 0; for(int contador = 0; contador < 10; contador++) { System.out.println("Entre com o valor "+(contador+1)); // o elemento do vetor ‘notas’ cuja posição é ‘contador’ recebe a entrada valores[contador] = new Scanner(System.in).nextDouble(); soma = soma + valores[contador]; contador = contador + 1; } // cálculo da média: double media = soma/100; System.out.println("Valores maiores do que a média "+media); // pesquisa no vetor, dos elementos maiores do que a média for(int contador = 0; contador < 100; contador++) { if(valores[contador] < media) { System.out.println(valores[contador]); } } } }
3ª questão
Elabore um programa para calcular a distribuição de freqüência de valores sorteados de 0 a 9.
A quantidade de valores será determinada pelo usuário.
Suponha que o usuário informe a quantidade 15 e os valores sorteados sejam: 4,5,7,8,9,1,8,2,4,3,2,5,6,7,0
A saída do programa deverá ser exatamente como mostrado abaixo:
Número 0: 1 vez
Número 1: 1 vez
Numero 2: 2 vezes
Número 3: 1 vez
Número 4: 2 vezes
Número 5: 2 vezes
Número 6: 1 vez
Número 7: 2 vezes
Numero 8: 2 vezes
Número 9: 1 vez
import java.util.Scanner; public class Frequencia { public static void main(String[] args) { // pergunta ao usuário a quantidade de valores System.out.println("Quantos valores são?"); int qtde = new Scanner(System.in).nextInt(); // declara o vetor para armazenar a frequencia dos números de 0 a 9 int[] frequencia = new int[10]; int numeroSorteado; System.out.println("Sorteando números..."); for(int c = 0; c < qtde; c++) { // sorteia um número de 0 a 9 numeroSorteado = (int)(Math.random()*10); frequencia[numeroSorteado]++; } System.out.println("Resultado da distribuição de frequencia:"); for(int n = 0; n < 10; n++) { System.out.print("Numero "+n+": "+frequencia[n]); if(frequencia[n] == 1) System.out.println(" vez"); else System.out.println(" vezes"); } } }