Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Artigo] Variáveis, Constantes e Tipos de Dados

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi [Artigo] Variáveis, Constantes e Tipos de Dados

    Saudações a todos

    Nesse artigo pretendo explicar de um modo mais geral, as variáveis, as constantes e os tipos de dados que podem ser armazenados. Tentarei explicar tanto o conceito como o funcionamento dos mesmos.
    Resolvi postar nessa área porque muitos iniciantes em programação começam com o Delphi e este é um conceito que todo programador que se preze tem que dominar...afinal, variáveis são MUITO importantes e MUITO utilizadas na programação, constantes também não deixam de ser importantes.

    O que é uma variável? Como ela funciona?
    Bom...uma coisa que observo muito nos iniciantes é a dificuldade de entender em que consiste uma variável. Existe uma velha frase para explicar isso: "Variável é um espacinho que o seu programa reserva na memória para guardar alguma coisa.", essa frase é a que melhor explica, em termos iniciantes, uma variável. Em termos mais técnicos, uma variável é um objeto(na maioria das vezes uma posição na memória) que é capaz de guardar dados e também representá-los.
    As variáveis só estão presentes em tempo de execução, isto é, enquanto o programa está "rodando". Quando precisamos utilizar uma variável, em nosso código-fonte, devemos dar um identificador a ela, isto é, uma espécie de "nome" para ela. O identificador não é compilado com o programa, ele apenas serve para você lembrar o que será guardado naquela variávele está presente somente em tempo de desenvolvimento. Já pensou se você tivese que escrever as variáveis assim: 004587DC ?? Daria um certo trabalho para lembrar qual guarda o que...

    Obs.: Nas linguagens compiladas, os identificadores só estão presentes em tempo de desenvolvimento, já nas linguagens interpretadas, eles estão presentes também no tempo de execução.

    Muito bem, agora vejamos como funciona uma variável...

    Quando rodamos um programa, o loader do sistema operacional (o programa que lê arquivos executáveis) coloca o programa na memória, segundo um padrão que não vou discutir aqui, pois pretendo discutir sobre a estrutura PE em um outro tópico. Ao fazer isso, o loader do sistema também diz ao programa os endereços da memória que ele(o loader) reservou para colocar as variáveis do programa. Então o programa tem uma "lista" de referências onde estão as variáveis. Sabendo onde deve guardar os dados, o programa simplesmente escreve e lê os dados nos endereços que lhes foram concedidos como variáveis...Simples assim :cool:
    De acordo com o tipo de dados que será guardado, a variável tem um tamanho...Mas isso será discutido um pouco mais pra frente em "Tipos de Dados" =)


    O Que é uma Constante? Como funciona?
    Uma constante é muito semelhante a uma variável, mas como um pequena diferença: é constante!
    Isso significa que seu valor não pode ser alterado em tempo de execução (pelo programa, pois você consegue, com um debugger, alterar os dados das constantes em tempos de execução).
    Em palavras mais fáceis uma constante é "uma variável que não varia" (Y)
    O funcionamento de uma constante é igual ao de uma variável, mas, obviamente, o programa só pode ler os dados...ao invés de poder ler e escrever x)
    Simples, não é?


    Classificações:

    Tipo Forte e Fraco
    As linguagens que possuem tipos de dados fortes como, por exemplo, o Java e o nosso bom e velho Pascal, exigem que o tipo de dado do valor que você vai atribuir à variável/constante seja o mesmo tipo de dado que você atribuiu a ela. Nas linguagens de tipo de dados fraco como, por exemplo, o PHP e o nosso bom e velho VB, não é necessário se preocupar com isso, pois o compilador/interpretador faz as conversões necessárias. Por exemplo:
    Se você declarar uma variável, em Pascal, sendo ela do tipo string, você só poderá guardar dados do tipo string nela, se você tentar colocar um valor do tipo integer, por exemplo, o compilador te devolverá um erro, dizendo que você não pode guardar dados integer em uma variável string.
    No VB, isso não acontece, se você declarar uma variável do tipo string e tentar colocar um valor do tipo integer, o compilador irá converter automaticamente e não te apresentará nenhum erro, a não ser que a conversão não seja possível.

    Tipo Dinâmico e Estático
    Para que o programa trabalhe com dados, é necessária uma verificação, para determinar qual o tipo de dado do valor em questão. As linguagens em que essa verificação é feita em tempo de compilação, possuem tipo estático, ao passo que as linguagens que verificam o tipo de dado do valor em tempo de execução, possuem tipo dinâmico. As cinco linguagens mais famosas do tipo estático são: C, C++, Java, Pascal e Haskell. De tipo dinâmico existem várias, algumas delas são: VB, Perl, Python, PHP, entre outras.


    Os Tipos de Dados

    Agora chegamos aonde você estava esperando =)
    A lista dos tipos de dados e os valores que pertencem a eles... xD
    Se você estiver trabalhando com uma linguagem de tipo de dados forte, você tem que saber quais valores você pode ou não guardar em uma variável/constante, afinal, o compilador não vai converter pra você. Logicamente, não vou citar todos os tipos de dados que existem, senão vou ficar 1 ano aqui escrevendo, falarei sobre os mais comuns e básicos, mas saiba que existem outros...

    String
    uma string (em português, o tipo string chama-se samblagem) é um conjunto de 1 ou mais caracteres, pode ser uma frase, um texto, uma letra e etc. Exemplo: "Black-Hat".

    Char
    uma variável/constante do tipo char pode guardar apenas um caractere (lembrando que caractere pode ser um símbolo, um número ou uma letra), é como se fosse uma string limitada a apenas 1 caractere. Exemplo: "B" (de Black-Hat, é claro :cool: )

    Integer
    O tipo integer armazena números inteiros (se você não sabe o que é um número inteiro, é melhor começar a estudar matemática... =P), porém, o grupo dos integers possui algumas divisões, vejamos:

    Signed e Unsigned
    um integer pode ser signed ou unsigned. Se ele for signed, pode armazenar inteiros positivos e negativos, se for unsigned, armazena apenas inteiros positivos.

    De acordo com o "tamanho" do Integer, ele recebe um nome. Tudo depende do limite imposto para o seu valor, então, temos:

    Byte: Possui 8 bits e, se for signed, armazena inteiros de -128 até +127, se for unisgned, armazena de 0 até +255.

    Word: Possui 16 bits e, se for signed, armazena inteiros de -32768 até +32767, se for unsigned, armazena de 0 ateh +65535

    Dword (Double Word): Possui 32 bits e, se for signed, armazena de −2147483648 até +2147483647, se for unsigned, armazena de 0 até +4294967295

    QWord (Quad Word): Possui 64 bits. Signed: de −9223372036854775808 até +9223372036854775807.
    Unsigned: de 0 até +18446744073709551615.

    Octaword: Possui 128 bits. Signed: de −170141183460469231731687303715884105728 até +170141183460469231731687303715884105727.
    Unsigned: de 0 até +340282366920938463463374607431768211455


    Muito bem, vamos para o próximo tipo de dados...

    Floating-Point
    Esse tipo de dados serve para armazenar números com ponto flutuante(vírgula). Exemplo: 1651,2589889789784569.


    Bom...esses são os tipos mais comuns, mas existem MUITOS e MUITOS outros tipos de dados, e eles dependem da linguagem em questão...vou parar por aqui senão vou estourar o banco de dados do fórum e o seu cérebro também


    Existem muitos detalhes que não coloquei aqui como, por exemplo, fórmulas para calcular a faixa de números que podem ser armazenados em um integer levando em conta o seu tamanho... São coisas que não são necessárias... =)


    Conclusão:
    Sim eu sei...você não aguenta mais ler e pulou várias partes do post...
    Mas fique calmo...é só uma pequena conclusão =)

    Você não precisa decorar tudo isso, apenas tenha o tópico como uma referência...se você tentar decorar tudo de uma vez, você vai ter um ataque de esquizofrenia e vai destruir tudo o que ver pela frente (eu sei...sou exagerado mesmo...veja pelo tamanho do post )

    Espero que alguém em algum lugar aprenda algo com isso.

    Tudo o que está aqui, como sempre, é de exclusiva autoria minha, não copiei nada de lugar nenhum, se o tivesse feito, colocaria os devidos créditos.
    Se for copiar, coloque os créditos.
    E se gostou, clique em "Obrigado", não dói nada e nem gasta seu dinheiro


    Flws a todos
    Last edited by .IndependentResearch.; 18-12-2009, 19:52.
    Black-Hat.
    Similar Threads

  • Font Size
    #2
    Muito bom Black-Hat Tutorial Muito bem Explicado é isso velhow Parabéns
    sigpic

    Comment


    • Font Size
      #3
      Vlw, brow. Sou iniciante, e realmente esta dúvida é grande.
      Sem querer abusar, (hehe), qual o comando para um botão chamar uma function em um record?
      Ou seja, tenho uma uCadastro e um RecordCadastro com os scripts para inserir dados.

      Comment


      • Font Size
        #4
        Muito Bom Vlehow Gostei do Tuto ta Bem Explicado Abracss
        sigpic

        Comment


        • Font Size
          #5
          que hororrrrrrrr podia ter pelo menos editado iso
          sigpic

          skype e email c4p3lob8@hotmail.com

          Comment

          X
          Working...
          X