Peso e altura

Boa Noite, gostaria de pedir ajuda para passar esse código em portugol para java

var
    c: inteiro
    nome:vetor[1..2]de caractere
    h: vetor[1..2]de real
    p: vetor[1..2]de real
    mh: real
    mp: real
    aux, aux2: inteiro
inicio
     enquanto (c < 2) faca
     c <- c + 1
     escreva("NOME: ")
     leia(nome[c])
     escreva("PESO: ")
     leia(p[c])
     escreva("ALTURA: ")
     leia(h[c])
     limpatela
       Se(h[c] > mh) entao
       mh <- h[c]
       aux <- c
        Se(p[c] > mp) entao
       mp <- p[c]
       aux2 <- c
        fimse
       fimse
     fimenquanto
     escreval("O maior peso é de ", nome[aux2], " pesando: ", mp, "Kg")
     escreval("A maior altura é de ", nome[aux], "medindo: ", mh, "m")
fimalgoritmo

desde já eu agradeço muito mesmo.Obrigado

E qual a sua dificuldade em específico? Já tentou? Se sim, mostre seu código, e onde teve dificuldade.

Só postar o que quer que seja feito dá a impressão que você quer quer a gente faça pra você, o que não é legal.

Abraço.

Você esta 100% correto desculpe por ser tão rude.

public static void main(String[] args) {
        // 1 posição
        int c;
        String[] nome = new String[1];
        Double[] h = new Double[2];   
        Double[] p = new Double[2];
       float mh;
       float mp;
       int aux, aux2;
       Scanner console = new Scanner( System.in );
       c = Integer.parseInt(console.nextLine());; 
    
       while (c < 2) {
System.out.println)(c <- c + 1);
       }   
System.out.print("NOME: ");
nome[c] = Integer.parseInt(console.nextLine());
System.out.print("PESO: ");
p[c] = Double.parseDouble(console.nextLine());
System.out.print("ALTURA: ");
h[c] = Double.parseDouble(console.nextLine());

mh = Float.parseFloat(console.nextLine());
mp = Float.parseFloat(console.nextLine());
aux = Integer.parseInt(console.nextLine());
aux2 = Integer.parseInt(console.nextLine());

if (h[c] > mh) {
if ( mh <- h[c])
if (aux <- c)

if (p[c] > mp) {
if (mp <- p[c])
if (aux2 <- c))
}
}
 
System.out.println("O maior peso é de "+ nome[aux2]+ " pesando: "+ mp+ "Kg"); 
System.out.println("A maior altura é de "+ nome[aux]+ "medindo: "+ mh+ "m");

    }
}

esse e meu código (código que estou tentando fazer), bem esta dando erro em
System.out.println)(c <- c + 1); também em nome[c] = Integer.parseInt(console.nextLine()); é também
if (aux2 <- c))
Por favor peço a ajuda de vocês desde já, muito obrigado.

Se você souber, grave as informações em um arquivo (documento) ou em um banco de dados.
Em SQL vc pode usar Max (Count)
Dê uma pesquisada sobre
depois é só retornar o valor

vlew

como assim poderia me explicar melhor ? pf

Ao invés de tentar converter o código linha por linha de forma idêntica, você precisa entender a lógica do algoritmo e recriá-la em Java, fazendo adaptações.

Pelo que entendi, esse algoritmo compara o peso e altura de 2 pessoas, determinando qual pesa mais e qual é mais alta, certo?

Essa parte abaixo não está clara. O que esse código faria?

while (c < 2) {
  System.out.println)(c <- c + 1);
}   

O java não tem um operador <-, então você precisa usar um operador equivalente ( que seria o igual = ).

Abraço.

hum… certo fiz a modificação e fico assim

    public static void main(String[] args) {
        // 1 posição
        int c;
        String[] nome = new String[1];
        Double[] h = new Double[2];   
        Double[] p = new Double[2];
       double mh;
       double mp;
       int aux, aux2;
       Scanner console = new Scanner( System.in );
       c = Integer.parseInt(console.nextLine());

       while (c < 2) {
System.out.println(c = c + 1);
       }   
System.out.print("NOME: ");
nome[c] =console.nextLine(); // String
System.out.print("PESO: ");
p[c] = Double.parseDouble(console.nextLine());
System.out.print("ALTURA: ");
h[c] = Double.parseDouble(console.nextLine());

mh =  Double.parseDouble(console.nextLine()); // double
mp =  Double.parseDouble(console.nextLine()); // double
aux = Integer.parseInt(console.nextLine());
aux2 = Integer.parseInt(console.nextLine());

if (h[c] > mh) {
if ( mh = h[c])
if (aux = c)

if (p[c] > mp) {
if (mp = p[c])
if (aux2 = c))
}
}

System.out.println("O maior peso é de "+ nome[aux2]+ " pesando: "+ mp+ "Kg"); 
System.out.println("A maior altura é de "+ nome[aux]+ "medindo: "+ mh+ "m");

    }
}

mais agora as unicas linhas que estão dando erro são

if ( mh = h[c])
        if (aux = c)

E

if (mp = p[c])
if (aux2 = c))

fala que eu estou tentando converter double cannot be converted to boolean e int cannot be converted to boolean o que devo fzer por quer já troquei varias vezes e ainda nada ??

Comparações em Java são feitas com ==, não com =, que é atribuição. Troque

if ( mh = h[c])

por

if ( mh == h[c])

E assim por diante, em toda as comparações.

Abraço.

certo, muito obrigado por essa ajuda com o “==”

public static void main(String[] args) {
    // 1 posição
    int c;
    String[] nome = new String[1];
    Double[] h = new Double[2];   
    Double[] p = new Double[2];
   double mh;
   double mp;
   int aux, aux2;
   Scanner console = new Scanner( System.in );
   c = Integer.parseInt(console.nextLine());

   while (c < 2) {
System.out.println(c = c + 1);
   }   
System.out.print("NOME: ");
nome[c] =console.nextLine(); // String
System.out.print("PESO: ");
p[c] = Double.parseDouble(console.nextLine());
System.out.print("ALTURA: ");
h[c] = Double.parseDouble(console.nextLine());

mh =  Double.parseDouble(console.nextLine()); // double
mp =  Double.parseDouble(console.nextLine()); // double
aux = Integer.parseInt(console.nextLine());
aux2 = Integer.parseInt(console.nextLine());

if (h[c] > mh) {
if ( mh == h[c])
if (aux == c)

if (p[c] > mp) {
if (mp == p[c])
if (aux2 == c))
}
}

System.out.println("O maior peso é de "+ nome[aux2]+ " pesando: "+ mp+ "Kg"); 
System.out.println("A maior altura é de "+ nome[aux]+ "medindo: "+ mh+ "m");

}
}

ele fico assim agora o unico erro que tem agora e “}” , que e

if (aux2 == c))
} _--------- ESSAS 2 BARRAS
}

agora só isso da erro e eu ja tirei coloquei mais continua com erro poderia me ajudar
?

alguém poderia me ajudar, ainda não consegui resolver isso, por favor me ajudem.
:sweat::sweat::weary::tired_face:
vou ficar muito grato mesmo, já sou grato pela ajuda de antes, mas sou iniciante e não tenho professor para me ajudar, estou tentando aprender, mas ainda acho muito difícil, sei que pra vocês deve ser um erro besta mas, por favor me ajuda

1 curtida

Você está fechando blocos com }, mas aparentemente não os abriu anteriormente. E não tem nenhum comando antes desses } Para que esses ifs encadeados que não fazem nada?

Você está tentando programar por tentativa e erro, quando deveria entender o que o código faz e adaptá-lo para Java, não simplesmente traduzir linha por linha. Foi isso que te disse anteriormente.

Abraço.

Primeiro vamos indentar o algoritmo em portugol pra ficar mais claro de entender o que ele faz:

var
    c:         inteiro
    nome:      vetor[1..2] de caractere
    h:         vetor[1..2] de real
    p:         vetor[1..2] de real
    mh:        real
    mp:        real
    aux, aux2: inteiro

inicio
    enquanto (c < 2) faca
        c <- c + 1
        escreva("NOME: ")
        leia(nome[c])
        escreva("PESO: ")
        leia(p[c])
        escreva("ALTURA: ")
        leia(h[c])
        limpatela
        Se (h[c] > mh) entao
            mh <- h[c]
            aux <- c
            Se (p[c] > mp) entao
                mp <- p[c]
                aux2 <- c
            fimse
        fimse
    fimenquanto
    escreval("O maior peso é de ", nome[aux2], " pesando: ", mp, "Kg")
    escreval("A maior altura é de ", nome[aux], "medindo: ", mh, "m")
fimalgoritmo

Agora fica bem mais fácil de entender e reescrever um código em outra linguagem.
Abaixo um exemplo em Java:

import java.io.PrintStream;
import java.util.Scanner;

public class Programa {

    /**
     * Ponto de entrada do programa
     */
    public static void main(String[] args) {
        try {
            Programa algoritmo = new Programa();
            algoritmo.inicio();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    /**
     * Aqui é o início da execução do algoritmo
     */
    public void inicio() {
        int c = -1;
        String[] nome = new String[2];
        double[] h = new double[2];
        double[] p = new double[2];
        double mh = 0;
        double mp = 0;
        int aux = 0;
        int aux2 = 0;

        // c é usado pra acessar as posições dos vetores
        // em Java a primeira posição do vetor é 0, a segunda é 1 e assim por diante
        while (c < 1) {
            c = c + 1;
            escreva("NOME: ");
            nome[c] = leiaString();
            escreva("PESO: ");
            p[c] = leiaDouble();
            escreva("ALTURA: ");
            h[c] = leiaDouble();
            limpatela();
            if (h[c] > mh) {
                mh = h[c];
                aux = c;
                if (p[c] > mp) {
                    mp = p[c];
                    aux2 = c;
                }
            }
        }
        escreval("O maior peso é de " + nome[aux2] + " pesando: " + mp + " Kg");
        escreval("A maior altura é de " + nome[aux] + " medindo: " + mh + " m");
    }

    /*
     * Abaixo estão alguns métodos para deixar o código mais legível
     */

    private final Scanner entrada = new Scanner(System.in);
    private final PrintStream saida = System.out;

    private void escreva(String mensagem) {
        saida.print(mensagem);
    }

    private void escreval(String mensagem) {
        saida.println(mensagem);
    }

    private double leiaDouble() {
        return Double.parseDouble(entrada.nextLine());
    }

    private String leiaString() {
        return entrada.nextLine();
    }

    private void limpatela() {
        // Java não possui uma forma nativa de limpar a tela
        // no Windows dá pra fazer a gambiarra abaixo
        // isso não funciona dentro de IDEs, só rodando no prompt de comando
        String nomeSistema = System.getProperty("os.name").toLowerCase();
        if (nomeSistema.contains("windows")) {
            try {
                ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", "cls");
                processBuilder.inheritIO();
                Process process = processBuilder.start();
                process.waitFor();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}