Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questão 1 import java.util.Random; // importa a classe Random public class Valores { // inicio da classe Valores public static void main (String[] args) { // inicio do metodo main Random randomNumbers = new Random(); // declara e inicializa o objeto randomNumbers como do tipo Random int number = 0; // declara number inteiro int maior = 10; //declara maior inteiro e o inicializa igual a 11 int menor = 100; // declara menor inteiro e o inicializa igual a 99 int soma = 0; // declara soma inteiro e o inicializa igual a 0 double media; // declara media como um numero real int frequency[] = new int[99]; // declara o vetor inteiro e cria 99 espaços for (int counter = 1; counter <=500; counter++) // Faz 500 loops. { // inicio do for number = 11 + randomNumbers.nextInt (89); //relaciona inteiros entre 11 e 99 if(number > maior) // se a variável number for maior que a variável maior, então atribui-se number a maior maior = number; if(number < menor) // se a variável number for menor que a variável menor, então atribui-se number a menor menor = number; soma = soma + number; // acumulador para o somatório dos números lidos ++frequency[number-1]; // contador de frequência: contabiliza a quantidade de vezes que cada valor foi gerado } // fim do for System.out.println ("O maior valor encontrado foi: " + maior); //imprime o maior valor gerado System.out.println ("O menor valor encontrado foi: " + menor); //imprime o menor valor gerado media = soma/500; //calcula a media dos valores gerados System.out.printf("A media dos valores encontrados e igual a : %f\n\n",media); // imprime a media dos valores gerados for (int j = 10; j < 99; j++) // laço que faz 88 loops System.out.printf("A frequencia de %d eh: %d\n",(j+1),frequency[j]); // imprime a frequencia de cada valor gerado } // fim do metodo main } // fim da classe valores Questão 2 //Matriz import java.util.Scanner; // importa a classe scanner public class Matriz { //inicio da classe Matriz public static void definirMatriz(double matriz[][] ){ // inicio do método definir Matriz int m=0; //declara m inteiro e igual 0 int n=0; //declara n inteiro e igual 0 Scanner x = new Scanner(System.in); // declara a variavel x como scanner for (m=0; m<3 ;m++) //laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops { // inicio do for System.out.printf("Digite o elemento " + (m+1) + " " + (n+1) + " : "); // imprime o texto na tela matriz[m][n] = x.nextDouble(); // entra com os valores via teclado, respectivamente } // fim do for } //fim do método definir matriz public static void obterMatriz (double matriz[][] ) { //inicio do metodo obter Matriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 for (m=0; m<3 ;m++){ // laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops { // inicio do for System.out.printf(matriz[m][n] + "\t"); // imprime a matriz } // fim do for System.out.printf("\n"); // pula uma linha } // fim do for } //fim do metodo obterMatriz public static void somarMatriz(double matrizA[][] ,double matrizB[][], double matrizC[][] ) { //inicio do método somarMatriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 for (m=0; m<3 ;m++){ // laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops { // inicio do for matrizC[m][n] = matrizA[m][n] + matrizB[m][n]; //soma os termos das matrizes e atribui a matrizC } // fim do for } // fim do for } //fim da classe public static void subtrairMatriz(double matrizA[][] ,double matrizB[][], double matrizC[][] ) { //inicio do metodo subtrairMatriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 for (m=0; m<3 ;m++){ // laço com 3 loops for (n=0; n<3; n++) // laço com 3 loops { // inicio do for matrizC[m][n] = matrizA[m][n] - matrizB[m][n]; // subtrai as matrizes e atrubuios resultados a matrizC } // fim do for } // fim do for } //fim do metodo subtrairMatriz public static void multiplicarCteMatriz(double matrizA[][] , double matrizC[][] ) { //inicio do metodo multiplicarCteMatriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 double k=0; // declara k como real e igual a 0 Scanner constante = new Scanner(System.in); // cria objeto do tipo Scanner System.out.println("Digite o valor da constante: "); // imprime a mensagem k = constante.nextDouble(); // atribui a k o valor de entrada via teclado for (m=0; m<3 ;m++){ // laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops { // inicio do for matrizC[m][n] = matrizA[m][n] * k ; // faz a multiplicação da matriz pelo escalar e atribui a matriz C } // fim do for } // fim do for } //fim da classe public static void compararMatriz(double matrizA[][], double matrizB[][] ) { //inicio do metodo compararMatriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 int w=0; //declara w como inteiro e igual a 0 for(m=0; m<3 ;m++){ // laço com 3 loops for (n=0; n<3; n++) // laço com 3 loops { // inicio do for if (matrizA[m][n] == matrizB[m][n]) // compara a matrizA e matrizB ++w; // incrementa +1 } // fim do for } // fim do for if(w==9 ) // se w igual a 9 System.out.println("as matrizes sao iguais"); // imprime a mensagem na tela else // senão System.out.println("as matrizes nao sao iguais"); // imprime a mensagem na tela } //fim do método comparar Matriz public static void multiplicarMatriz(double matrizA[][], double matrizB[][], double matrizC[][]) { //inicio do metodo multiplicarMatriz int m=0; //declara m como inteiro e igual a 0 int n=0; //declara n como inteiro e igual a 0 int k=0; //declara k como inteiro e igual a 0 for(m=0; m<3 ;m++) // laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops matrizC[m][n] = 0;// deixa a matrizC zerada caso ela tenha outro valor for(m=0; m<3 ;m++) // laço com 3 loops for (n=0; n<3 ;n++) // laço com 3 loops for(k=0; k<3; k++) // laço com 3 loops matrizC[m][n]+=matrizA[m][k] * matrizB[k][n]; // define a matrizC como a multiplicação da matrizA com matrizB }//fim do método multiplicar Matriz publicstatic void main (String args []) { //inicio do metodo main double matriz1[][] = new double[3][3]; //declara a matriz1 como real e cria seu espaço double matriz2[][] = new double[3][3]; //declara a matriz2 como real e cria seu espaço double matriz3[][] = new double[3][3]; //declara a matriz3 como real e cria seu espaço definirMatriz( matriz1); // define a matriz1 System.out.println("A matriz1 e:"); // imprime a mensagem na tela obterMatriz( matriz1); // imprime a matriz1 na tela System.out.println("------------------------"); // imprime a mensagem na tela definirMatriz( matriz2); //cria a matriz2 System.out.println(" a matriz2 e:"); // imprime a mensagem na tela obterMatriz( matriz2); // imprime a matriz2 na tela System.out.println("------------------------"); // imprime a mensagem na tela System.out.println("\n\nMultiplicacao de Matrizes:\n"); // imprime a mensagem na tela multiplicarMatriz( matriz1, matriz2, matriz3); //faz a multiplicaçao das matriz 1 e 2 obterMatriz(matriz3); // imprime a matriz3 na tela System.out.println("------------------------"); // imprime a mensagem na tela System.out.println("\n\nSubtração de Matrizes:\n"); // imprime a mensagem na tela subtrairMatriz( matriz1, matriz2, matriz3); // faz a subtraçao das matrizes 1 e 2 obterMatriz(matriz3); // imprime a matriz3 na tela System.out.println("------------------------"); // imprime a mensagem na tela System.out.println("\n\nSoma de Matrizes:\n"); somarMatriz(matriz1, matriz2, matriz3); // faz a soma das matrizes 1 e 2 obterMatriz(matriz3); // imprime a matriz3 na tela System.out.println("------------------------"); // imprime a mensagem na tela System.out.println("\n\nMultiplicação da matriz1 por um escalar:\n"); // imprime a mensagem na tela multiplicarCteMatriz(matriz1, matriz3); // faz a multiplicação da matriz1 por um escalar System.out.println("------------------------"); // imprime a mensagem na tela obterMatriz(matriz3); // imprime a matriz3 na tela System.out.println("Comparando as matrizes..."); // imprime a mensagem na tela System.out.println(); // imprime a mensagem na tela compararMatriz(matriz1, matriz2); // compara a matriz1 com a matriz2 System.out.println( " Fim do programa ! "); // imprime a mensagem } } Questão 3 import java.util.Scanner; // importa a classe scanner public class Notas { // inicio da classe notas public static void main ( String args [] ) { // inicio do método main double nota1 = 0; //declara nota1 como do tipo real e inicializa igual a 0 double nota2 = 0; //declara nota1 como do tipo real e inicializa igual a 0 double media[] = new double [1000]; // declara o vetor media como do tipo real e cria 1000 espaços. double maiorMedia = 0; // declara maiorMedia como o tipo real e inicializa ela com 0 double menorMedia = 11; // declara menorMedia como o tipo real e inicializa ela com 11 int notasTurma[] = new int [10]; //declara o vetor notasTurma como inteiro e cria 10 espaços int i=0, j=0; // declara i e j como do tipo inteiro e inicializa ela com 0 Scanner input = new Scanner(System.in); // cria Scanner para obter entrada a partir da janela de comando boolean v = true; // cria uma variável tipo boolean boolean sair = false; // cria uma variável tipo boolean for(j=0; j<1000;j++) // laço que faz 1000 loops { // inicio do for media[j] = -1; // cria o parâmetro de saida } // fim do for for(j=0; j<10;j++) //laço que faz 10 loops { // inicio do for notasTurma[j] = 0; // atribui o valor 0 ao vetor notasTurma } // fim do for while(true) // laço de infinitos loops { //inicio do while System.out.println ("Digite a nota 1 do aluno "+(i+1)+": "); //imprimi na tela Digite a nota 1 do aluno1: v= true; // atribui a v, condiçao de verdadeiro while(v) { // inicio do while nota1 = input.nextDouble(); //entrar via teclado com a nota if (nota1<0 || nota1>10) // se nota1 menor que 0 ou maior que 10 if(nota1==-1) // se nota igual a -1 { // inicio do if sair= true; //comando que interrompe o loop do while(finaliza a entrada das notas) break; // quebra o a condiçao } // fim do if else // senao System.out.println("nota errada, digite novamente a nota:"); // imprime na tela a mensagem else // senao v=!v; // inverte a condiçao de v } //fim do while if (sair==true) // se sair igual a verdadeiro { // inicio do if break; // quebra do if } // fim do if System.out.println ("Digite a nota 2 do aluno "+(i+1)+": "); //imprime na tela Digite a nota 2 do aluno1 v= true; // atribui a v "true" while(v) // laço enquanto verdadeiro { // inicio do while nota2 = input.nextDouble(); //entrar via teclado com a nota if (nota2<0 || nota2>10) // se nota2 menor que 0 ou maior que 10 if(nota2==-1) // se nota igual a -1 { // inicio do if sair= true; //comando que interrompe o loop do while(finaliza a entrada das notas) break; // quebra do if } // fim do if else // senao System.out.println("nota errada, digite novamente a nota:"); // imprime na tela a mensagem else // se nao... v=!v; // // inverte a condição de v } // fim while if (sair==true) // se sair igual a verdadeiro break; // quebra do if media[i] = (nota1+nota2)/ 2; // media que vai ser calculada e atribuída a um espaço do vetor if(media[i]>maiorMedia) // se a media[i] for maior que maiorMedia maiorMedia = media[i]; // atribui media[i] a maiorMedia if(media[i]< menorMedia) // se a media[i] for menor que menorMedia menorMedia = media[i]; // atribui media[i] a menorMedia if((media[i] >= 0.0) && (media[i]<=1.0)) //se media[i]>= a 0.0 e media[i]<=1.0 notasTurma[0]++; // contador de frequencia if((media[i] > 1.1) && (media[i]<=2.0)) //se media[i]>= a 1.1 e media[i]<=2.0 notasTurma[1]++; // contador de frequencia if((media[i] > 2.1) && (media[i]<=3.0)) //se media[i]>= a 2.1 e media[i]<=3.0 notasTurma[2]++; // contador de frequencia if((media[i] > 3.1) && (media[i]<=4.0)) //se media[i]>= a 3.1 e media[i]<=4.0 notasTurma[3]++; // contador de frequencia if((media[i] > 4.1) && (media[i]<=5.0)) //se media[i]>= a 4.1 e media[i]<=5.0 notasTurma[4]++; // contador de frequencia if((media[i] > 5.1) && (media[i]<=6.0)) //se media[i]>= a 5.1 e media[i]<=6.0 notasTurma[5]++; // contador de frequencia if((media[i] > 6.1) && (media[i]<=7.0)) //se media[i]>= a 6.1 e media[i]<=7.0 notasTurma[6]++; //contador de frequencia if((media[i] > 7.1) && (media[i]<=8.0)) //se media[i]>= a 7.1 e media[i]<=8.0 notasTurma[7]++; // contador de frequencia if((media[i] > 8.1) && (media[i]<=9.0)) //se media[i]>= a 8.1 e media[i]<=9.0 notasTurma[8]++; // contador de frequencia if((media[i] > 9.1) && (media[i]<=10.0)) //se media[i]>= a 9.1 e media[i]<=10.0 notasTurma[9]++; // contador de frequencia System.out.println("----------------------------------------"); // imprime na tela o tracejado i++; // incrementador } // fim do while for(i=0;i<1000;i++) // laço de 1000 loops { // inicio do for if(media[i]==-1) // se media[i] igual a -1 break; // quebra System.out.println("A media do aluno "+(i+1)+" e "+media[i]); // imprime na tela a media de determinado aluno } // fim do for System.out.println("A maior media foi: "+maiorMedia); // imprime na tela a maior media System.out.println("A menor media foi: "+menorMedia); // imprime na tela a menor media System.out.println("\n"); // pula uma linha System.out.println("Distribuicao de notas da turma:\n"); // imprime na tela a menssagem for(i=0; i < 10;i++) //laço de 10 loops { //inicio do for System.out.println("Medias de "+(i+0.1)+" ate "+(i+1)+" foram: "+notasTurma[i]); //imprime na tela os intervalos das media e suas respectivas frequencias } // fim do for } // fim meto main } // fim da classe notas APRESENTAÇÃO Com a popularização de computadores de baixo custo e de alta capacidade de processamento, praticamente todas as atividades de Engenharia têm feito uso cada vez mais intensivo dos métodos e técnicas computacionais na resolução de problemas reais com máxima confiabilidade em termos dos fatores envolvidos, para os quais as soluções manuais são impraticáveis e/ou imprecisas. Desta forma, o uso do computador como ferramenta de trabalho para programação requer o entendimento dos seus princípios de operação, linguagem e de como eles interferem nos resultados obtidos. Geralmente, é aceito como verdade que computadores não erram e que são os usuários que cometem enganos que levam ao mau funcionamento do computador. Na realidade, o computador, como dispositivo de programação, “comete” erros devido às suas características intrínsecas e o papel do programador é quantificar esses erros e encontrar formas de, se não eliminá-los, pelo menos minimizá-los. BIBLIOGRAFIA Deitei, H. M. Java, como programar / H. M. Deitei e P. J. Deitei; trad. Carlos Arthur Lang Lisboa. - 4,ed. - Porto Alegre: Bookman, 2003. Aulas ministradas e material de apoio exibido pelo Professor/Doutor Antônio Mendes da Silva Filho. UNIVERSIDADE DE PERNAMBUCO ESCOLA POLITÉCNICA DE PERNAMBUCO Métodos Computacionais II Professor: Antônio Mendes Turma: AB André Soares Huga Pereira Nadja Lima Renato Ataide Recife, 2009 UNIVERSIDADE DE PERNAMBUCO ESCOLA POLITÉCNICA DE PERNAMBUCO Métodos Computacionais II Recife, 2009
Compartilhar