Ir ao conteúdo

Posts recomendados

Postado

Pessoal, sou novo no fórum, eu faço um curso de programação e to com um trabalho que ta me quebrando a cabeça. Preciso criar um programa que faça um cadastro de aluno com opções , nota de cada bimestre e código do aluno. Meu maior problema é com o código, nao sei se devo usar array ou contador, pois preciso atribuir o codigo ao aluno para depois fazer a consulta.Segue abaixo um pedaço do algoritmo.

OBS: qualquer outro erro no programa será corrigido, preciso mesmo resolver a questao do código.

Agradeço a todos...
-------------------------
 

Program cadastro_aluno;

var

responsavel: array [1..60] of string;
nota_ano: array [1..60] of integer;
nota_bimestre1: array [1..60] of real;
nota_bimestre2: array [1..60] of real;
nota_bimestre3: array [1..60]of real;
nota_bimestre4: array [1..60] of real;
sexo: array [1..60] of string;
opcao: STRING;
nome: array [1..60] of string;
tel: array [1..60] of string;
endereco: array [1..60] of string;
idade: array [1..60] of integer;
z: array [1..60] of integer; //chave primaria
cont: integer;
x, y: integer; //contadores



Begin
//codigo := 1;
x := 0;
Writeln ('>>>>>>>>>CADASTRO DE ALUNOS<<<<<<<<<< ');
writeln (' ');
writeln ('1-Incluir');
writeln ('2-Corrigir');
writeln ('3-Consultar');
writeln ('4-Excluir');
writeln ('E-Sair');
writeln (' ');
writeln ('Digite a opção');
read (opcao);
writeln (' ');
while opcao = '1' do


//for codigo := 1 to 60 do
begin
x := x + 1;
for x := 1 to 60 do
writeln (x);
writeln ('Entre com o nome do aluno : ');
read (nome [x]);
writeln (' ');
writeln ('Entre com o telefone: ');
read (tel [x]);
writeln (' ');
write ('Entre com o endereço do aluno:');
read (endereco [x]);
write ('Entre com a idade do aluno:');
read(idade [x]);
write ('Entre com o sexo do aluno:');
read(sexo [x]);
write ('Entre com o responsável do aluno:');
read (responsavel [x]);
write ('Insira a nota do 1o bimestre: ');
read (nota_bimestre1 [x]);
nota_ano := nota_ano + nota_bimestre1 ;
write ('Insira a nota do 2o bimestre: ');
nota_ano := nota_ano + nota_bimestre2;
read (nota_bimestre2 [x]);
write ('Insira a nota do 3o bimestre: ');
nota_ano := nota_ano + nota_bimestre3;
read (nota_bimestre3 [x]);
write ('Insira a nota do 4o bimestre: ');
nota_ano := nota_ano + nota_bimestre4;
read (nota_bimestre4 [x]);


writeln ('Deseja incluir mais um aluno?');
writeln ('1-Incluir'); writeln ('E-Sair');
read (opcao);




if opcao = 'E' then
BEGIN
exit;




end;

end;




End.

 

Postado

Quando vou somar as notas bimestrais ta dando o erro "Tipo invalido de operação de soma".

Meu professor disse para fazer o codigo como array ou record, ja tentei como array e da erro, vou postar imagem. Com record eu nao sei como faz, pois nunca tentei.

123.jpg

456.jpg

Postado

Pelo que vi você criou um vetor em código, mas ali você está fazendo: codigo:= codigo+1 e não está especificando qual posição do array é pra somar o valor. Não sei muito de pascal, apenas c++ mas deve ser isso.

  • Membro VIP
Postado

Olá.

 

Abaixo, seu seu código identado, para facilitar a leitura...

Program cadastro_aluno;
var
  responsavel: array [1..60] of string;
  nota_ano: array [1..60] of integer;
  nota_bimestre1: array [1..60] of real;
  nota_bimestre2: array [1..60] of real;
  nota_bimestre3: array [1..60] of real;
  nota_bimestre4: array [1..60] of real;
  sexo: array [1..60] of string;
  opcao: STRING;
  nome: array [1..60] of string;
  tel: array [1..60] of string;
  endereco: array [1..60] of string;
  idade: array [1..60] of integer;
  z: array [1..60] of integer; //chave primaria
  cont: integer;
  x, y: integer; //contadores
  
Begin
//codigo := 1;
x := 0;
Writeln ('>>>>>>>>>CADASTRO DE ALUNOS<<<<<<<<<< ');
writeln (' ');
writeln ('1-Incluir');
writeln ('2-Corrigir');
writeln ('3-Consultar');
writeln ('4-Excluir');
writeln ('E-Sair');
writeln (' ');
writeln ('Digite a opção');
read (opcao);
writeln (' ');
while opcao = '1' do
  //for codigo := 1 to 60 do
  begin
    x := x + 1;
    for x := 1 to 60 do
      writeln (x);
    writeln ('Entre com o nome do aluno : ');
    read (nome [x]);
    writeln (' ');
    writeln ('Entre com o telefone: ');
    read (tel [x]);
    writeln (' ');
    write ('Entre com o endereço do aluno:');
    read (endereco [x]);
    write ('Entre com a idade do aluno:');
    read(idade [x]);
    write ('Entre com o sexo do aluno:');
    read(sexo [x]);
    write ('Entre com o responsável do aluno:');
    read (responsavel [x]);
    write ('Insira a nota do 1o bimestre: ');
    read (nota_bimestre1 [x]);
    nota_ano := nota_ano + nota_bimestre1 ;
    write ('Insira a nota do 2o bimestre: ');
    nota_ano := nota_ano + nota_bimestre2;
    read (nota_bimestre2 [x]);
    write ('Insira a nota do 3o bimestre: ');
    nota_ano := nota_ano + nota_bimestre3;
    read (nota_bimestre3 [x]);
    write ('Insira a nota do 4o bimestre: ');
    nota_ano := nota_ano + nota_bimestre4;
    read (nota_bimestre4 [x]);
    writeln ('Deseja incluir mais um aluno?');
    writeln ('1-Incluir'); writeln ('E-Sair');
    read (opcao);
    if opcao = 'E' then
      BEGIN
      exit;
      end;
  end;
End.


Só vou reforçar o que já foi dito e um pequeno detalhe...

1) USO DE ARRAYS
Faltou definir as posições no array em alguns trechos, exemplo:

nota_ano := nota_ano + nota_bimestre1 ;

Basicamente seria:

nota_ano[x] := nota_ano[x] + nota_bimestre1[x] ;

2) READ x READLN

Vou ser direto: não use read, use apenas readln!

 

***

 

Daí, vai refazendo os ajustes...

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!