Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi erros em alguns codigos no pascal


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Estou com erro em 6 programas e não estou conseguindo resolver, alguém poderia me ajudar?

 

ex2:

Spoiler

Program Ex02 ;
var menu,n,F:integer;
var altura, peso_i,valor,soma,C:real;
var genero:char;

Begin
  
  menu:=1;
  repeat
  writeln('Escolha uma opção para a execução');
  writeln('1 - Exercício 1');
  writeln('2 - Exercício 3');
  writeln('3 - Exercício 5');
  writeln('4 - Fim'); 
  write('Opção: ');
  readln(menu);
  while((menu<1) or (menu>4)) do
  begin
    write('Opção inválida. Por favor, escolha uma opção disponível: ');
    readln(menu);
  end;
  case menu of
  1: begin
	  
   write('Informe sua altura em metros: ');
   read(altura);
   write('Informe seu gênero (M - Masculino, F - Feminino): ');
   read(genero);    
   case genero of
    'M', 'm': begin
     peso_i := 450.7*altura/10;
     writeln('Seu peso ideal e de ', peso_i, ' kg.');
    end;
    'F', 'f': begin
     peso_i := 400.7*altura/10;
     writeln('Seu peso ideal e de ', peso_i, ' kg.');
    end;
    else writeln ('Gênero inválido.');
   end;
   writeln('Pressione ENTER para terminar o programa atual.');
   readln;
   writeln('');
  end;
  
  2: begin
   soma:=0;
   n:=1;
   while (n<=20) do
   begin
    write('Inforome o ', n,'º valor a ser somado: ');
	  read(valor);
	  soma:=soma+valor;
	  n:=n++1;
   end;
   writeln('Soma = ',soma); 
   writeln('Pressione ENTER para terminar o programa atual.');
   readln;
   writeln('');
  end;
  
  3: begin
   writeln('Conversão de Temperatura: Fahrenheit para Celsius');
   for F :=40 to 60 do
   begin
    C := 5/9*(F-32);
    Writeln(F,'ºF --> ', C, 'ºC');
   end;
	 writeln('Pressione ENTER para terminar o programa atual.'); 
   readln;
   writeln('');
  end;
	
	4: writeln('Fim de execução - tudo de bom.'); 
	end;
	until (menu=4);   
    
End.

 

 (erro sintatico na linha 4 // VAR nao esperado)

 

 

ex6:

Spoiler

Program Ex6 ;
var vetor:array[1..10] of real;
var maior, menor:real;
var i,pmaior, pmenor:integer;

Begin
 for i:= 1 to 10 do
 begin
  write('Digite o ',i,'º valor a ser comparado: ');
	readln(vetor[i]);
	while (vetor[i]<=0) do
  begin
	 writeln('O número informado deve ser maior que zero!');
	 write('Digite o ',i,'º valor a ser comparado: ');
	 readln(vetor[i]);
	end;
 end;
 maior:=vetor[1];
 menor:=vetor[1];
 for i:=1 to 10 do
 begin
	if (vetor[i]>maior) then 
	begin
	 maior:=vetor[i];
	 pmaior:=i;
	end;
	if (vetor[i]<menor) then 
	begin
	 menor:=vetor[i];
	 pmenor:=i;
	end;
 end;	
	writeln('O maior dos valores no vetor é de ',maior,', na posição ', pmaior,'.');
	writeln('O menor dos valores no vetor é de ',menor,', na posição ', pmenor,'.');
	   
End.

(mesmo erro do ex2)

 

 

ex7:

Spoiler

Program Ex7 ;

var matriz:array[1..4,1..5] of integer;
var soma:array[1..5] of integer;
var somat,i,j:integer;

Begin

 for i:=1 to 4 do
 begin
  for j:=1 to 5 do
  begin
   write('Informe o elemento da posição ',i,',',j,': ');
   readln(matriz[i,j]);
   soma[j]:=0;
  end;
 end;
 
 for j:=1 to 5 do
 begin
  for i:=1 to 4 do
	begin
	 soma[j]:=soma[j]+matriz[i,j];
	end;
	writeln('Soma da ',j,'ª coluna: ',soma[j]);
	somat := somat + soma[j]
 end;
 writeln('Soma total: ',somat);	 	 
   
End.

 

(mesmo erro, porém linha 5)

 

 

ex8:

Spoiler

Program Ex8 ;

type registro=record
 codigo, idade,status:integer;
 nome, endereco:string[35];
 datanasc:array[1..3] of integer;
 sexo:char;
 valordev,valorcred: real;
end;
var clientes:array[1..5] of registro;
var exec:char;
var i,j:integer;
 
Begin
 exec := 's';
 while (exec='s') do
 begin
  for i:=1 to 5 do
  begin
   writeln('Cliente ',i);
   write('Codigo: ');
	 readln(clientes[i].codigo);
	 write('Nome: ');
   readln(clientes[i].nome);
   write('Endereço: ');
   readln(clientes[i].endereco);
   write('Data de nascimento (dia): ');
   readln(clientes[i].datanasc[1]);
   write('Data de nascimento (mês): ');
   readln(clientes[i].datanasc[2]);      
   write('Data de nascimento (ano): ');
   readln(clientes[i].datanasc[3]);
   write('Sexo: ');
   readln(clientes[i].sexo);
   while(clientes[i].sexo<>'m') and (clientes[i].sexo<>'M') and (clientes[i].sexo<>'f') and (clientes[i].sexo<>'F') do
   begin
    write('Informação inválida. Informe o sexo do cliente: ');
    readln(clientes[i].sexo);
   end;
   write('Valor total devido: ');
   readln(clientes[i].valordev);
   write('Valor total em crédito: '); 
   readln(clientes[i].valorcred);
   write('Idade: ');
   readln(clientes[i].idade);
   write('Status do cadastro (1 - ativo / 0 - inativo): ');
   readln(clientes[i].status);
   writeln;
  end;
  
  for i:=1 to 5 do
  begin
   writeln('================================');
	 writeln('Código do cliente: ',clientes[i].codigo);
   writeln('Nome: ',clientes[i].nome);
   writeln('Endereço: ',clientes[i].endereco);
   writeln('Data de Nascimento: ',clientes[i].datanasc[1],'/',clientes[i].datanasc[2],'/',clientes[i].datanasc[3]);
   writeln('Sexo: ',clientes[i].sexo);
   writeln('Valor total devido: ',clientes[i].valordev);
   writeln('Valor total em crédito: ',clientes[i].valorcred);
   writeln('Idade: ',clientes[i].idade);
   if(clientes[i].status=1) then writeln('Status: Ativo')
   else writeln('Status: Inativo');
   writeln;
  end;
  write('Deseja executar um novo cadastro de clientes? (Digite a letra ''s'' para continuar): ');
  readln(exec);
 end;
  
End.

 

(mesmo erro, porém linha 12)

 

 

ex9:

Spoiler

Program Pzim ;
var a,b,c,d:real;
var sn:char;

function media(n1,n2,n3,n4:real):real;
 begin
  media:=((n1+n2+n3+n4)/4);
 end;
 
Procedure status(x:real);
 begin
  if (x>=6) then write('Aprovado.')
  else write('Reprovado.');
 end;
 
 

Begin

 sn:='s';
 while((sn<>'n') and (sn<>'N')) do 
  begin
   readln(a,b,c,d);
   status(media(a,b,c,d));
   write('Deseja realizar um novo cálculo? (S/N): ');
	 readln(sn);   
  end; 
End.

 

(erro sintatico na linha 5 /// FUNCITION nao esperado)

 

 

ex10:

Spoiler

Program Ex10 ;

type reg = record
 nome:string[30];
 idade:integer;
 status:integer;
end;
 
cad = file of reg; 

var cadastro:cad;
var registro:reg; 
var menu:integer;

Begin
 assign(cadastro,'c:\users\?????\?????\cadastro.dat');
 writeln('Escolha a opção desejada');
 writeln('1 - Realizar novo cadastro');
 writeln('2 - Listar cadastros existentes');
 writeln('3 - Sair');
 write('Opção: ');
 readln(menu);
 repeat
 
  case menu of
  
   1: begin
    write('Informe o nome para o cadastro: ');
    readln(registro.nome);
    write('Informe a idade para o cadastro: ');
    readln(registro.idade);
    write('Informe o status do cadastro (0 - Inativo, 1 - Ativo): ');
    readln(registro.status);
    append(cadastro);
    write(cadastro,registro);
    close(cadastro);
    writeln('Escolha a opção desejada');
    writeln('1 - Realizar novo cadastro');
    writeln('2 - Listar cadastros existentes');
    writeln('3 - Sair');
    write('Opção: ');   
		readln(menu);
   end;
   
   2: begin;
    reset(cadastro);
    while not eof(cadastro) do
     begin
      readln(cadastro, registro);
      writeln('Nome: ', registro.nome);
      writeln('Idade: ', registro.idade);
      if (registro.status=0) then writeln ('Status: Inativo')
      else writeln ('Status: Ativo');
      writeln('------------------------');
     end; 
    close(cadastro); 
    writeln('Escolha a opção desejada');
    writeln('1 - Realizar novo cadastro');
    writeln('2 - Listar cadastros existentes');
    writeln('3 - Sair');
    write('Opção: ');
    readln(menu);
   end;
   
  end;
	    
 until((menu<>1)and(menu<>2)); 
 writeln('Programa encerrado.');   
     
End.

 

(erro sintatico na linha 9// OF nao esperado)

 

Quem puder ajudar agradeço muito!!!!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

@bugadao, qual compilador está utilizando?

 

adicionado 3 minutos depois

Para o primeiro, tente remover as repetições do var.

 

De:

1 hora atrás, bugadao disse:

Program Ex02 ;
var menu,n,F:integer;
var altura, peso_i,valor,soma,C:real;
var genero:char;

 

Para:

Program Ex02;
var
  menu, n, f :integer;
  altura, peso_i, valor, soma, c :real;
  genero :char;

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...