Ir ao conteúdo

Posts recomendados

Postado

Eu estou aprendendo pascal na faculdade mas simplesmente não vai ! Eu não consigo de jeito nenhum fazer o programa funcionar ! Queria saber se alguem pode me dar uma ajuda ae !

 

image.png.06c77a5f635ab433d1c0cf32bf8b4c8c.png

  • Curtir 1
Postado
Program Pzim ;
   var
   nome,nome_mais_velha,nome_mais_nova:char;
   idade,idade_mais_mais_velha,idade_mais_nova,i:integer;
   Begin
   for i:=1 to
    writeln('informe a idade',i,'pessoa:');
    readln(nome);
    writeln('informe a idade',i,'pessoa:');
    readln(idade);
   if ( 1 ) then
   nome_main_velha:= nome;
   idade_mais_velha:= idade;
   if(idade>idade_mais_velha)then
   nome_main_velha:= nome;
   idade_mais_velha:= idade;
   writeln('main velha:',nome_mais_velha,com,idade_mais_velha,'anos');
End.

 

  • Curtir 1
  • Membro VIP
Postado

@Bleick, o erro informado no PZim talvez realmente não ajude, o problema inicial está na sintaxe do for.

 

Segue dicas:

  1. evite tentar fazer tudo de uma vez. Faça apenas partes do código;
  2. o código SEMPRE deve está rodável. Não precisa está correto em tudo, mas não pode ter erros de compilação. Por exemplo, o erro está na linha 7, mas você chegou a implementar quase 20 linhas. Isso não deveria acontecer. Mais abaixo um exemplo.
  3. Pesquise na internet como se faz um for em Pascal e ajuste seu código.

 

Segue um exemplo de como eu sugiro que vá implementando:

 

Faz uma base inicial:

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas em alguns compiladores (Não necessário no Pzim)
program Pzim;
var
  nome: string;
  idade :integer;
begin

end.

 

Bota para rodar... não vai dar erro!

 

Aí insere mais alguma coisa, por exemplo, o início do laço:

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas em alguns compiladores (Não necessário no Pzim)
program Pzim;
var
  nome: string;
  idade :integer;
begin
  for i:=1 to
  begin
    writeln('informe a idade',i,'pessoa:');
    readln(nome);
    writeln('informe a idade',i,'pessoa:');
    readln(idade);
  end;



end.

 

Opa! deu erro:

image.png

 

Então, nada adiantaria tentar fazer mais coisa... pois já existe um erro aqui.. Tá, mas que erro é esse? Tá estranho...

 

O que estou tentando fazer agora? É adicionar uma estrutura for... logo, pode ser algo nele... daí, pesquisaria como funciona o for no Pascal. (E verás que está faltando alguma coisa.)

 

Corrija e tente fazer mais alguma coisa... e o ciclo se repete!! tudo que adicionar de novo, tem que funcionar, não adianta tentar fazer mais coisas...

 

Vá implementando, caso não consiga resolver os possíveis erros, poste o código completo atual e onde está com dúvidas.

Postado
Program Pzim ;
  var
  nome, nome_mais_velha, nome_mais_nova: char;
  idade, idade_mais_velha, idade_mais_nova, i: integer;

begin
for i:= 1 to 2 do 
  writeln('Informe a idade ', i, 'pessoa: ');
readln(nome);
writeln('Informe a idade ', i, 'ª pessoa: ');
readln(idade);
if (i = 2) then
  nome_mais_velha := nome;
idade_mais_velha := idade;
nome_mais_nova := nome;
idade_mais_nova := idade;

if (idade > idade_mais_velha) then
  nome_mais_velha := nome;
idade_mais_velha := idade;

if (idade < idade_mais_nova) then
  nome_mais_nova := nome;
idade_mais_nova := idade;
writeln('Mais velha: ', nome_mais_velha, ' com ', idade_mais_velha, ' anos');
writeln('Mais nova: ', nome_mais_nova, ' com ', idade_mais_nova, ' anos')
end.

Cara deu certo ate ! mas o codigo ficou duplicando ! imprimindo a mesma coisa duas vezes na tela !

  • Confuso 1
Postado
1 hora atrás, Bleick disse:

Program Pzim ;
  var
  nome, nome_mais_velha, nome_mais_nova: char;
  idade, idade_mais_velha, idade_mais_nova, i: integer;

begin
for i:= 1 to 2 do 
  writeln('Informe a idade ', i, 'pessoa: ');
readln(nome);
writeln('Informe a idade ', i, 'ª pessoa: ');
readln(idade);
if (i = 2) then
  nome_mais_velha := nome;
idade_mais_velha := idade;
nome_mais_nova := nome;
idade_mais_nova := idade;

if (idade > idade_mais_velha) then
  nome_mais_velha := nome;
idade_mais_velha := idade;

if (idade < idade_mais_nova) then
  nome_mais_nova := nome;
idade_mais_nova := idade;
writeln('Mais velha: ', nome_mais_velha, ' com ', idade_mais_velha, ' anos');
writeln('Mais nova: ', nome_mais_nova, ' com ', idade_mais_nova, ' anos')
end.

Cara deu certo ate ! mas o codigo ficou duplicando ! imprimindo a mesma coisa duas vezes na tela !

Eu n sei nem o que eu estou fazendo mais ! Não estou dando conta isso aqui ! Ta muito ruim

  • Membro VIP
Postado

@Bleick, são diversos pontos que precisaria ser revistos. Para simplificar, segue um exemplo de código:

 

program Pzim;
var
  nome, nome_mais_velha, nome_mais_nova: string;
  idade, idade_mais_velha, idade_mais_nova: integer;
  i: integer;

begin
  idade_mais_velha := 0; //incializa com um valor mínimo
  idade_mais_nova := 999; //inicializa com um valor máximo*
  
  for i:= 1 to 3 do 
  begin //como tem mais de uma linha dentro do for, precisa do begin/end 
    write  ('Informe o nome da ', i, 'ª pessoa : ');
    readln(nome);
    write  ('Informe a idade da ', i, 'ª pessoa: ');
    readln(idade);
    
    if (idade > idade_mais_velha) then
    begin //como tem mais de uma linha dentro do if, precisa do begin/end 
      nome_mais_velha := nome;
      idade_mais_velha := idade;
    end;

    if (idade < idade_mais_nova) then
    begin //como tem mais de uma linha dentro do if, precisa do begin/end 
      nome_mais_nova := nome;
      idade_mais_nova := idade;
    end;
  end;

  writeln('Mais velha: ', nome_mais_velha, ' com ', idade_mais_velha, ' anos');
  writeln('Mais nova : ', nome_mais_nova, ' com ', idade_mais_nova, ' anos');
end.

 

Compare com o seu código e tente entender as diferenças. Se tiver alguma dúvida é só postar.

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!