Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Carlos1924

Pascal Criar Funções e declarar variaveis

Recommended Posts

Opa galera tudo bem? Preciso criar um software utilizando a linguagem pascal e que seja capaz de realizar 6 tipos de conversões de base. Pra mim a parte das conversões é de boa, mas estou com dificuldade em criar o menu e usar funções. Como faço para declarar variáveis diferentes dentro de cada função? Desde já agradeço.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Carlos1924.

 

2 horas atrás, Carlos1924 disse:

estou com dificuldade em criar o menu e usar funções. Como faço para declarar variáveis diferentes dentro de cada função? Desde já agradeço.

 

A própria pergunta já se responde... para declarar as variáveis, basta declará-las.

 

 

1#

Um detalhe importante é que as variáveis internas, aquelas que estão dentro dos procedimentos e funções (rotinas), são independentes do "mundo externo"... ou seja, elas só existem dentro da própria rotina.

Ex.

program FCdH;
uses
  CRT; //necessário para alguns compiladores reconhecerem alguns comandos extras, como ReadKey

//PROCEDIMENTO QUE RECEBE UM DECIMAL E RETORNA O VALOR CORRESPONDENTE EM BINÁRIO
procedure DemimalParaBinario();
  var //essas variáveis aqui são locais. Só existem para esse escopo
    x,y,z         :integer;
    alfa,beta,gama:string;
  begin
  
  end;

//PROCEDIMENTO QUE RECEBE UM BINÁRIO E RETORNA O VALOR CORRESPONDENTE EM DECIMAL
procedure BinarioParaDecimal();
  var //veja que aqui utilizo as mesmas nomenclaturas e não dá erro!
    x,y,z         :integer;
    alfa,beta,gama:string;
  begin
  
  end;
  

BEGIN
writeln();
writeln(' ### CONVERT BASES Pro. v0.001 Alpha ###');
writeln();
writeln();






write  ('Pressione qualquer tecla para finalizar');
ReadKey();
END.

Nesse caso, eu inventei algumas variáveis que o método precisa.. e, para demonstrar, propositalmente deixar 2 métodos diferentes utilizando as mesmas nomenclaturas... ou seja, vai funcionar de boa, pois um rotina não reconhece a outra.

 

obs.: veja, esse código é apenas um esboço aleatório... apenas tentando demonstrar o uso das variáveis.

 

 

 

 

2#

Outra forma de declarar variáveis locais nos métodos é declarando nos parâmetros do método em si, ex.:

//FUNÇÃO QUE RECEBE UM DECIMAL E RETORNA O VALOR CORRESPONDENTE EM BINÁRIO
function DemimalParaBinario(numDecimal:integer):real;
  var
     auxiliar   :integer;
     joao, maria:real;
  begin
  
  blablablabla
  
  DemimalParaBinario:=auxiliar * joao * maria;
  end;

Nesse caso, a variável numDecimal receberá seu valor inicial quando o método for invocado, ex.:

numBinario:=DemimalParaBinario(7);

 

Ou seja, numDecimal, ao executar o método, já vai receber o valor 7....   Esse tipo de declaração, serve também para justamente levar um dado necessário para função que está no exterior para dentro. (em vez de usar variáveis globais)

 

 

***

 

Deu para entende?

 

Se tiver alguma dúvida específica, é só postar.

Se já começou a implementar, por favor, poste o código completo e onde está com dúvidas.

 

No aguardo.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Simon, muito obrigado! Entendi melhor agora sobre as variáveis locais e globais, ainda estou tentando entender só como puxar as  funçoes, porque preciso criar um menu com octal para decimal, binario para decimal, decimal para binario, etc. Por hora estava tentando juntar todas, mas até agora só fiz de binario para decimal e vice-versa.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Carlos1924     depois que você  criar a função você pode usa-la chamando o nome da função , por exemplo, se você criou a função binario_para_decimal  então para chama-la basta colocar a palavra binario_para_decimal  e o programa vai nessa função e faz o que está nela , e retorna para a linha seguinte de onde ela foi chamada ,      e para fazer  essas conversões  será mais fácil se você usar o comando mod para pegar o resto da divisão , e para fazer o menu você pode usar o comando case of  .     poste o código que você já fez , para podemos ver como está e em que podemos ajudar   .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×