Criar um record igual do pascal em java

2 respostas
W

Ola pessoal programa um pouco em delphi a um tempo, e agora para a faculdade preciso montar um programinha para gerencia de alunos, ele tem que cadastrar alunos com os dados ra,nota1,nota2,nota3 e frequencia, após isto ele faz alguns calculos como de média de cada aluno depois mostra se esta aprovado ou reprovado pela media e a frequencia depois mostra quem teve a menor e maior nota.
Consegui um exemplo em pascal , ai minha dúvida para fazer isto em java é na hora de dar entrada nos valores porque a pessoa pode escolher quantos alunos ira adicionar em pascal ficou assim o começo >>

PROGRAM MATRICULA;

USES CRT;

TYPE MATRICULA = RECORD

RA:REAL;

N1:INTEGER;

N2:INTEGER;

N3:INTEGER;

FREQUENCIA:INTEGER;

MEDIA:REAL;

END;

VAR

ALUNO:ARRAY[120] OF MATRICULA ;

INDICE:BYTE;

CONT_MEDIA,N,FREQ,REPROVADO:INTEGER;

ALUNO_MEDIA:REAL;

Esta parte ai em cima está no começo e no meio tem algo assim >>

ALUNO[INDICE].MEDIA:=(ALUNO[INDICE].N1+ALUNO[INDICE].N2+ALUNO[INDICE].N3/3;
IF ALUNO[INDICE].MEDIA<N_MENOR

Ai minha dúvida é a seguinte no começo foi criado um record chamado matricula que armazena os dados nota 1 nota 2 matricula etc , depois nas variaveis VAR é criado um vetor chamado aluno e ele coloca este OF MATRICULA
dentro do vetor aluno ele usa isto para armazenar estes dados dentro do vetor aluno e depois vai chamando pelas posições do indice.
Gostaria de saber se da para fazer algo parecido em java porque eu preciso de um vetor que armazene estas variaveis do aluno a quantidade de vezes que o usuário escolher exemplo 10 o indice iria de 1 a 10.
Na hora de receber os valores ele faz da seguinte forma :

WRITE(DIGITE O NUMERO DE ALUNOS:);

READLN(N);

FOR INDICE=1 TO N DO

BEGIN

WRITE(DIGITE NOTA 1:’);

READLN(ALUNO[INDICE].NOTA1);

Teria algo parecido em java para fazer simples assim sem muitos arraylist pq vi que com este record ele consegue por exemplo armazenar 10 vezes os dados de 10 diferentes alunos para depois fazer calculos com eles.
Fico no aguardo se alguem tiver alguma dica.
Grande abraço :smiley:

2 Respostas

E

A tradução literal do seu programa em Pascal (que aliás não é muito usado; em Pascal usa-se, hoje em dia, “class” mesmo) é mais ou menos:

public class Matricula {
    public double ra;
    public int n1, n2, n3, frequencia;
    public double media;
}
...
Matricula[] aluno = new Matricula[20];
for (int i = 0; i < 20; ++i) { aluno = new Matricula(); }
int indice;
int cont_media, n, freq, reprovado;
double aluno_media;

Note que não tem nenhum “ArrayList” aqui, mas você é obrigado a criar cada elemento no array*, já que, diferentemente do Pascal, ao você declarar um array de Matricula, apenas o array é alocado, não os elementos do array.

  • Não reclame disso, porque a linguagem é assim mesmo. Se quer que funcione igual ao Pascal, escreva seu programa em Pascal :slight_smile:
lucasirc

Java não tem a estrutura Registro

o mais parecido seria o que o entanglement postou

mas nao confunda
Registro != Classe

Registro não possui comportamento, herança, visibilidade em atributos e metodos e etc, ou seja, registro não está no conceito de orientação

weltonleal:

abraços

Criado 20 de março de 2013
Ultima resposta 22 de mar. de 2013
Respostas 2
Participantes 3