Ajuda com um projeto de COD em Java/Poo (estudante Noob)

Sou iniciante
Preciso de ajuda (se poderem ajudar é claro) com a resolução de uma questão. ainda estou aprendendo java.

1.

Em 1991, um grupo de oito pesquisadores voluntários se fechou durante dois anos em uma redoma de vidro e aço onde vários ecossistemas do planeta Terra haviam sido recriados. Aquela experiência formava parte do projeto Biosfera 2, cujo objetivo era comprovar se, em algum ponto, no futuro, os humanos poderiam viver em circunstâncias semelhantes em outros planetas. Grande parte da rotina dos oito participantes, os “biosferanos”, era tomada por trabalhos agrícolas. Eles cultivavam seus próprios vegetais, coletavam grãos do solo e obtinham proteínas de animais de granja e peixes criados em tanques de piscicultura.

2.Analisando a situação detalhada acima, e diante do contexto exposto ao longo de nossa disciplina, imagine que você foi convidado(a) a participar de um projeto que procura estudar as reações de pessoas isoladas em um bioma. Sua função será registrar as informações geradas por três grupos de sensores, dentro de um ambiente controlado. Para isso, considere que os sensores estão espalhados por todos os espaços do ambiente e buscam registrar a temperatura, a umidade e a quantidade de gás carbônico. Assim, de acordo com as informações citadas, você deverá:

- criar rotinas que registrem os dados enviados por esses sensores em cada espaço do ambiente;
- criar estruturas de dados que servirão para armazenar o valor apresentado por cada sensor e o momento da leitura (hora);

3.Importante

Para direcionar você na elaboração da sua atividade, destaco que:
• você deve usar matriz para implementar essas estruturas, criando ao menos uma classe específica para cada estrutura;
• após cada registro armazenado, deve ser utilizado um ou mais algoritmo(s) de ordenação para apresentar os dados classificados, de forma decrescente para a umidade e de forma crescente para temperatura e o CO2, mostrando no fim da rotina os dos;
• as matrizes ou matriz deve(m) ter, no máximo, 48 linhas e os registros devem ser feitos a cada meia hora do dia.

Dica para te ajudar: Dica para iniciantes em geral

1 curtida

obrigado, vou apagar o tópico aqui.

gentileza, como eu deleto meu tópico.

Não precisa apagar. Basta editar e melhorar a pergunta.

Já criou suas classes? Criou uma classe com os dados q o que o sensor precisa registrar?

nesse caso a classe seria o ambiente e os dados seria o que preciso medir como temperatura, umidade e Co2? Mano desculpa ignorância eu não tinha pegue algo assim ainda nos meus estudos!

public class Ambiente{

        public double temperatura;

        public double umidade;

        public double co2;

}

Tente identificar no enunciado os elementos que vc acha que podem ser classes no seu código, ou seja, quais são os elementos do mundo real que vão compor o código. Em seguida, é tentar identificar as características e os comportamentos desses elementos, que irão ser traduzidos para as propriedades e os métodos das classes.

1 curtida

Começou bem. Mas renomeie sua classe para algo como NotificacaoSensor.

Depois crie uma classe que tenha um método, por exemplo, registrar(), do qual receba a notificação.
Ai, sua função deve guardar os dados na memória (uma matriz).

1 curtida

Obrigado, eu vou ler mais sobre Poo em java e tentar formular algo melhor e trazer aqui pra ver se esta indo pro caminho certo, obrigado pela paciência e ajuda mano.

Mano bom dia, tentei criar algo mas quando tento executar informa que não achou a classe.

package exercicio;

public class Sensor {

    public class Sensores {

        class Temperatura {

            //Inicando a Matriz
            private double[][] dados_temperatura;

            //Inserindo dados na matriz
            public Temperatura() {
                double dados_temperatura[][] = new double[48][2];
            }

            public void adicionar_dados(double momento_leitura, double valor_leitura) {

                //Adicionar os dados na matriz
            }

        }

        public void imprimir_dados() {

            System.out.println("");
            //n.medição: hora - valor
        }

    }

Quando vc executa um projeto java, é preciso ter o método main que é o ponto inicial da execução. Ele deve ser assim:

public static void main(String args[]) {
  // aqui vai seu código
}

No seu caso, vc pode ter uma classe chamada, por exemplo, de Principalcom o método main declarado invocando suas classes:

public class Principal {
  public static void main(String args[]) {
    Temperatura temperatura = new Temperatura();
    // chame os métodos aqui
  }
}

Agora acho que vc deve rever essas classes, pq que vc criou uma classe com 2 inner classes dentro. Acredito que isso não seja necessário no seu caso.

1 curtida

vlw mano, eu tive uma ajuda do colega da facul tbm consegui fazer mais do cod mas esta dando erro devo está fazendo algo errado.

package Sensor_A; // o Sensor "A" é referente a temperatura.

import java.util.Scanner;

public class Temperatura {

    public class void main(String [] args);
        Scanner leia = new Scanner(System.in);
        
        double Leitura[][] = new double [48][2];
        
        String Hmedicao; //Hora da medição
        double Vmedicao; //Valor da medição
        char opcao;
        System.out.println("Leitura do Sensor A");
        do {
            System.out.printf("Informe a hora da leitura");
            Hmedicao = leia.next();
            System.out.print("Informe a temperatura local");
            Vmedicao = leia.nextdouble();
        leia.nextline();
            System.out.print("Continuar informand S/N");
            opcao = leia.next().toUpperCase().charAt(0);
        } while(opcao == 'S');
        System.out.println("Hora da medição:");
        System.out.print("Hmedicao");
        System.out.println("| Valor da medição");
        system.out.print("Vmedicao");
}

Deu 14 erros =/

Evite caracteres como _ em nomes de pacotes, prefira todas as letras em minúsculo. Ex.: sensora

Esse ponto-e-virgula está errado. Vc deveria abrir um corpo de método com }.

Prefira variáveis começando com letra minúscula, assim ficaria melhor: double leitura[][] = new double [48][2];

Prefira usar o método nextLine em vez do next. Isso é para evitar problemas por conta da quebra de linha (dê uma pesquisada que aqui no fórum tem vários posts explicando isso). Reparei que vc tá chamando o método como nextline, e o correto é nextLine (com L maiúsculo).

Use nextLine aqui tb fazendo a conversão manualmente: Double.parseDouble()

Essa leitura está solta no código e o valor lido não está sendo usado.

Aqui o system deve ser com S maiúsculo: System.out.print("Vmedicao");


Tente fazer esses ajustes.

1 curtida

ok, vou fazer e ver como fica obrigado.

dos 14 erros caiu pra 1.

/Temperatura.java:7: error: expected
public class void main(String[] args){
^
1 error

Aqui vc confundiu uma declaração de classe para uma declaração de método.

Como declarar uma classe:

public class NomeClasse {}

Como declarar o método main:

public static void main(String[] args){}

Como declarar um método (sem ser o main):

public void metodoSemRetorno() {} // sem retorno
// ou
public String metodoQueRetornaString() {} // retorna uma String
1 curtida

@DavidsonPio, cara, dá pra ver que você é inteligente mas me parece que tem pulado etapas.
Pegue um livro Java dos bons e debulhe que você vai evoluir muito rápido. Mas tem que ter paciência, ler tudo e fazer os exercícios.
Para certas coisas na vida não compensa pegar atalhos. Este é um caso.

1 curtida

@DavidsonPio Eu aprendi com o Java da editora Deitel, e depois fui para os de certificação. Faz muito tempo mas acredito que ainda sejam recomendáveis hoje em dia.

1 curtida

Cara eu meio que me deparei com isso, eu queria pegar muita informação rápida para fazer uma prova da faculdade, já que o professor deixa a desejar, acabei comprando um curso de java na udemy e estou estudando por ele fazendo as etapas certas, os exercícios. vou pegar a sua dica e vou andando aos poucos, eu me deparei no desespero por causa da prova, eu to fazendo ADS e estou no segundo semestre, nunca tia programado em uma linguagem específica sempre era no visualg(portugol). mas aceito de bom grado a sua dica e vou fazer esse caminho com calma. Obrigado amigo.

1 curtida