Anúncio

Portfólio 5 Programação de computadores


Univesp5.java
C:\Users\Malta\Documents\NetBeansProjects\semana4\univesp5\src\univesp5\Univesp5.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package univesp5;

/**
 *
 * @author Malta
 */
public class Univesp5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        double[][] chop = {{1.0,2.0,3.0},{2.0,3.0,4.0}};
        avaliaMatriz(chop);
    }
    /*Exercício 1
    Escreva um método chamado contaCaracteres que recebe como parâme-
    tro um arranjo de arranjos de caracteres chamado palavras (o qual re-
    presenta um conjunto de palavras) e deverá retornar o número total de
    caracteres presentes nesse arranjo de arranjos.
    */
    public static int contaCaracteres(char[][] palavras){
        int total = 0;
        for(char[] temp : palavras)
            total += temp.length;
        if (total > 0)return total;
        return -1;
    }
    /*Exercício 2
    Escreva um método chamado contaLetra que recebe como parâmetros
    um arranjo de arranjos de caracteres chamado palavras e um caractere
    chamado letra e deverá retornar a quantidade de vezes que o caractere
    letra aparece dentro do arranjo de arranjos.
    */
    public static int contaLetra(char[][] palavras, char letra){
        int total=0;
        for (char[] palavra : palavras) {
            for (int j = 0; j < palavra.length; j++) {
                if (palavra[j] == letra) {
                    total++;
                }
            }
        }
        return total;
    }
    /*Exercício 3
    Escreva um método chamado avaliaMatriz que receba como parâmetro
    uma matriz bidimensional de elementos do tipo double (chamada matriz)
    e imprime três valores (um por linha): a média de todos os elementos da
    matriz, o menor valor da matriz e o maior valor da matriz. Você pode
    assumir que a referência à matriz passada como parâmetro terá valor
    diferente de null e que a respectiva matriz terá mais de um elemento.
    Dica: você só precisará percorrer a matriz inteira uma única vez para
    realizar essas operações.
    */
    public static void avaliaMatriz(double matriz[][]){
        double maior=0, menor, count=0, somatorio=0;
        menor = matriz[0][0];
        for(double[] temp : matriz)
            for(double temp2 : temp){
                if(temp2<menor) menor =  temp2;
                if(temp2>maior) maior =  temp2;
                somatorio += temp2;
                count++;
            }
        System.out.println(menor);
        System.out.println(maior);
        System.out.println(somatorio/count);  
    }
    /*Escreva um método chamado soma3 que receba como parâmetros três
    matrizes de inteiros (chamadas m1, m2 e m3) e retorna null caso essas
    matrizes tenham dimensões diferentes. Caso contrário, deverá criar e
    retornar a referência a matriz correspondente a soma das três matrizes
    passadas como parâmetro.*/
    public static int[][] soma3(int[][] m1, int[][] m2, int[][] m3){
        
        //int a , b;
        final int a = m1.length;
        final int b = m1[0].length;
        //declara matriz de retorno
        int[][] mSoma = new int[a][b];
        //verifica se as matrizes possuem mesmo tamanho de coluna
        if((m1.length == m2.length)&&(m1.length == m3.length)){
            //blza; agora verifica se em cada linha há o mesmo número de elementos
            for(int j=0; j<m1.length; j++){
                //se as linhas da matriz 2 OU a matriz 3 forem diferentes em tamanho, retorna null
                if((m2[j].length == m1[j].length)&&(m3[j].length == m1[j].length)){
                    //tamanhos iguais... então faz a soma                    
                    for(int i = 0; i<m1[j].length; i++)
                        mSoma[j][i]= m1[j][i] + m2[j][i] + m3[j][i];    
                }
                else return null; //caso matrizes sejam diferentes, retorna null
            }
            return mSoma;
        }
    return null;
    }
}

Portfólio 3 Cálculo 2

Exercício 1

Calcule a massa da placa {(x, y) 2 | (x - 4)2 + y2 ≤ 9, y ≥ 0} com densidade igual à ordenada do ponto.


Exercício 2
Calcule o volume do sólido descrito por x2 + y2 ≤ 1, com x2 + y2 ≤ z ≤ 3 - x2 - y2


Exercício 3
Calcule a massa do pedaço de coroa esférica 1 ≤ x2 + y2 + z2 ≤ 9, x ≥ 0,y ≥ 0, com densidade δ(x, y, z) = x2 + y2 + z2


Exercício 4
Decida se o campo a seguir é gradiente:



Portfólio 4 Programação de computadores

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Univesp4.java
http://maltaportfolios.blogspot.com/2017/06/portfolio-4-programacao-de-computadores.html
 1 /*
 2  * To change this license header, choose License Headers in Project Properties.
 3  * To change this template file, choose Tools | Templates
 4  * and open the template in the editor.
 5  */
 6 package univesp4;
 7 
 8 /**
 9  *
10  * @author Malta
11  */
12 public class Univesp4 {
13 
14     /**
15      * @param args the command line arguments
16      */
17     public static void main(String[] args) {
18         // TODO code application logic here
19         int[] values = {1,2,3,4,4,5,6};
20         int[] values2 = {1,2,3,4,4,5,6,9,9,6};
21         //System.out.println(contagem(values, 4));
22         //contagemMaior(values2, values);
23         contagemTodos(values,values2);
24     }
25     /*Escreva um método chamado contagem que receba como parâmetro um
26     arranjo de inteiros chamado valores e um inteiro chamado x e retorna o
27     número de vezes que o valor x aparece dentro do arranjo valores. Imple-
28     mente uma solução que iteraja pelos índices do arranjo (utilizando um
29     laço while ou for).*/
30 
31     static int contagem(int[] valores, int x){
32         int retorno = 0;
33         for(int i = 0; i<valores.length; i++)
34             if (x == valores[i]) retorno++;
35         return retorno;  
36     }
37     /*Escreva um método chamado contagemElementos que receba como parâ-
38     metro um arranjo de inteiros chamado valores e um inteiro chamado x e
39     retorna o número de vezes que o valor x aparece dentro do arranjo va-
40     lores. Implemente uma solução que iteraja pelos elementos do arranjo
41     (e não pelos índices) usando o segundo tipo de laço for ensinado nesta
42     semana).*/
43     static int contagemElemntos(int[] valores, int x){
44         int retorno = 0;
45         for(int temp: valores)
46             if (x == temp) retorno++;
47         return retorno;
48 
49     }
50     /*Escreva um método chamado contagemMaior que recebe dois arranjos
51     de inteiros como parâmetros (chamados arranjo1 e arranjo2), encontra o
52     valor do maior elemento do arranjo1, verifica quantas vezes esse valor
53     ocorre no arranjo2 e imprime uma frase da seguinte forma:
54     O numero yyy aparece zzz vezes no arranjo2.
55     Sendo yyy o valor do maior elemento do arranjo1 e zzz a quantidade de
56     vezes que esse número ocorre no arranjo2.
57     Você pode considerar que todos os valores presentes no arranjo1 e no
58     arranjo2 serão positivos.*/
59     
60     static void contagemMaior(int[] arranjo1,int[] arranjo2){
61         int maior = 0;
62         int count = 0;
63         //acha o maior valor do array 1
64         for(int temp: arranjo1)
65             if (temp>maior)maior = temp;
66         //conta quantas vezes esse valor aparece no array 2
67         for(int temp: arranjo2)
68             if (maior == temp) count++;
69         System.out.println("O numero " + maior + " aparece "+ count +" vezes no arranjo2.");
70     }
71     
72     
73     
74     /*Escreva um método chamado contagemTodos que recebe dois arranjos
75     de inteiros como parâmetros (chamados arranjo1 e arranjo2), e para cada
76     elemento do arranjo1 verifica quantas vezes esse elemento ocorre no
77     arranjo2 e imprime uma frase da seguinte forma:
78     O numero yyy aparece zzz vezes no arranjo2.
79     Sendo yyy o valor de um elemento do arranjo1 e zzz a quantidade de
80     vezes que esse número ocorre no arranjo2.
81     Note que se o arranjo1 possuir, por exemplo, cinco elementos, então
82     cinco linhas serão impressas.*/
83     static void contagemTodos(int[] arranjo1,int[] arranjo2){
84         int count = 0;
85         for(int temp: arranjo1)
86         {
87             count = 0;
88             for(int temp1 : arranjo2)
89                 if(temp==temp1)count++;
90             System.out.println("O numero " + temp + " aparece "+ count +" vezes no arranjo2.");
91         }
92     }
93             
94 }
95 

Portfólio 3 Programação de computadores

EXERCÍCIO 1

Escreva um método chamado cor que receba como parâmetro uma variável do tipo inteiro chamada identificador e imprime a palavra verde caso o valor do identificador seja igual a 1, amarelo caso o valor do identificador seja igual a 2, azul caso o valor do identificador seja igual a 3,e branco caso o valor do identificador seja igual a 4. Caso contrário (istoé, se o valor do identificador não for 1, 2, 3 ou 4) deverá imprimir “identificador invalido”. Utilize a estrutura switch...case...default para resolvereste problema.

    public static void cor(int identificador){
        switch(identificador){
            case 1:
                System.out.println("verde");
                break;
            case 2:
                System.out.println("amarelo");
                break;
            case 3:
                System.out.println("azul");
                break;
            case 4:
                System.out.println("branco");
                break;
            default:
                System.out.println("identificador inválido");
        }
    }

EXERCÍCIO 2

Escreva um método chamado media que recebe quatro variáveis do tipo double chamadas v1, v2, v3 e v4 e imprime: “Media maior que zero.” caso a média dos quatro valores seja maior que zero ou “Media menor ou igual a zero.”, caso contrário.

    static void media(double v1,double v2,double v3,double v4){
        double Media;
        Media = (v4 + v1 + v2 + v3)/2;
        if(Media > 0) System.out.println("Media maior que zero");
        else System.out.println("Media menor ou igual a zero");
    }

EXERCÍCIO 3

Escreva um método chamado mediana que recebe três variáveis do tipo int chamadas v1, v2 e v3 e imprime o valor da mediana dessas três variáveis.

    static boolean mediana(int v1, int v2, int v3){
        //v1 é mediana?
        if (((v1>v2)&&(v1<v3))||((v1<v2)&&(v1>v3))||((v1==v2)||(v1==v3)))
        {
            //v1 é mediana!
            System.out.println(v1);
            return true;    //volta daqui se v1 é mediana
        }
        //Ok, v1 não é mediana
        //invertemos a ordem e chamamos o método recursivamente
        return (mediana(v2,v3,v1));
    }

EXERCÍCIO 4

Escreva o que será impresso pela execução do método abaixo, caso ele receba como parâmetro o número 10.

Escreva o que será impresso pela execução do método abaixo, caso ele receba como parâmetro o número 10.
public static void conjecturaDeCollatz(int n){
        System.out.println("Imprimindo sequencia iniciando em " + n);
        while (n>1){
            if (n % 2 == 0) n = n/2;
            else n = 3*n + 1;
            System.out.println(n);
        }

    }

Resp.
Imprimindo sequencia iniciando em 10
5
16
8
4
2
1

Portfólio 2 Programação de computadores

EXERCÍCIO 1
Determine o que será impresso (pelos comandos println()) após a exe-
cução das instruções a seguir:
int a = 3;
int b = 5;
int c = 8;
int d = a * (b + c * 3) - 7;
int e = a - b - c;
System.out.println(a+" "+b+" "+c+" "+d+" "+e);
a = a + 1;
b = (4 * a + 1) / 10;
c = (4 * a + 1) % 10;
System.out.println(a+" "+b+" "+c+" "+d+" "+e);

Resp.
println 1:
3 5 8 80 -10
println 2:
4 1 7 80 -10

EXERCÍCIO 2
Escreva um método que converta um valor em real (recebido em um
parâmetro), para dólar e retorne o valor em dólar. A taxa de conversão
real para dólar também será um parâmetro de entrada desse método. O
valor em real, a taxa de conversão e o valor em dólar deverão ser do tipo
float.

Resp.

  static float conversor(float real, float taxa)
  {
    float dolar;
    dolar = real*(taxa/100);
    return dolar;
  }

EXERCÍCIO 3
Escreva um método que determine quanto tempo leva para um corpo
cair de determinada altura a partir do repouso. Este método receberá
como parâmetro um valor do tipo double contendo a altura em centí-
metros em que o corpo está e deverá retornar um valor do tipo double
contendo o tempo da queda em segundos. Considere que a força da
gravidade é igual a 9, 8m/s2. Use o método Math.sqrt()1 para obter a raiz
quadrada.

Resp.
  static double calculador(double alt)
  {
    final double g = 9.8;
    double time;
    time = Math.sqrt((2*(alt*0.01))/g);
    return time;  
  }

EXERCÍCIO 4
Escreva um método chamado divisaoEResto que não terá nenhum re-
torno (void) e terá dois parâmetros do tipo inteiro, chamados de divi-
dendo e divisor. Este método deverá calcular a divisão entre o dividendo
e o divisor e imprimir duas linhas contendo o quociente e o resto, no
seguinte formato:
Valor do quociente: qqq
Valor do resto: rrr
Sendo qqq o valor do quociente da divisão inteira e rrr o valor do resto
da divisão.

Resp.
  static void divisaoEResto(int dividendo,int divisor)
  {
    //variáveis
    int quociente;
    int resto;
    //cálculos
    quociente = dividendo / divisor;
    resto     = dividendo % divisor;
    //saída
    System.out.print("Valor do quociente: " + quociente);
    System.out.print("Valor do resto: " + resto);
  }

Portfólio 1 Cálculo 2

1-Descreva as curvas ou superfícies de nível (conforme o caso) das funções:
c)






2-Calcule os limites abaixo:

d)




f)







4-Calcule:

c)


Anúncio