Ir ao conteúdo

Pascal/Delphi erros em alguns codigos no pascal


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Postado

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
  • Membro VIP
  • Solução
Postado

@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
  • Membro VIP
Postado

9 funcionou normal. Experimente atualizar o Pascalzim...

 

 

Enquanto isso vou testar o 10...

 

adicionado 7 minutos depois

Para o 10, primeiramente atualize o PascalZim, e tente vê o que ocorre... daí tente corrigir...

 

No aguardo.

 

  • Curtir 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!