quinta-feira, 1 de fevereiro de 2007

3. CONSTANTES, VARIÁVEIS E TIPOS DE DADOS

Antes de prosseguir faremos uma breve revisão sobre tudo que falamos até agora sobre Introdução a Programação. Vimos a importância da lógica. Vimos também qual a relação entre a lógica e programação de computadores. Como nossos pensamentos seguem uma forma lógica. Através desse processo tomamos todas as decisões em nossa vida. Desde as mais simples e de pouca conseqüência (como numa tarde de sol, descontraído na praia, olhar para o céu sem nenhuma razão específica), as decisões super complexas, com conseqüências catastróficas (como responder para sua amada se a roupa que ela escolheu para sair, numa sexta a noite, está boa .... hehehhehe).

Em seguida, com o conhecimento sobre lógica fundamentado, aplicamos nos algoritmos o conceito de lógica computacional. Aprendemos a construir algoritmos simples e fomos além, vimos também a relação desses algoritmos com um programa propriamente dito. Fizemos um pequeno programa em Pascal que calcula a média final. Através dos algoritmos e do programa experimentamos um conceito fundamental no que se refere a processamento sistematizado:

  Entrada ---> Processamento ---> Saída

Recordando

ENTRADA: O que entra?

Resposta – DADOS, elementos que você precisa para, através deles, chegar a um objetivo específico.

PROCESSAMENTO: o Que é processamento?
Resposta - São os passos que devem ser seguidos onde os dados que entraram são manipulados, transformados
para chegar ao resultado final. Um objetivo final.

SAÍDA:
O que é a saída?
Resposta
– Um novo elemento gerado a partir dos dados já processados.

Pense num liquidificador, qual é o objetivo de uma pessoa quando usa um eletrodoméstico desse tipo? Fazer um suco, ou tornar em forma liquida, ou pastosa, algum outro produto. Logo, seguindo nossa analogia de fazer um suco:

Primeira Pergunta – O que entra?

Resposta - Frutas, Maça e Acerola, suco de laranja e açúcar. Ah!! Não posso me esquecer do gelo.

Segunda Pergunta – Como é o processamento?

Resposta - Ligar o liquidificador, com as frutas e o suco dentro. Os produtos são misturados.

Terceira Pergunta – O que é a saída?

Resposta – Um maravilhoso suco geladinho.


3.1 Mas, o que isso tem a ver com variáveis, constantes e tipos de dados?

Bem, imagina que vc fosse fazer esse suco num lugar aonde não houvesse nenhuma espécie de móvel. Para ser mais preciso nenhum objeto sequer, de nenhuma espécie. Além disso, neste lugar imaginário, vc está cego, portanto, não há como identificar visualmente os elementos que vc precisa, nem consegue ver onde pegá-los. Você está cheio de limitações:


     -  Onde sustentar/apoiar o liquidificador?

- Aonde depositar o suco de laranja, se não existe nenhum objeto?

- Quando lhe forem passados os produtos para fazer o suco, terá dificuldade para identificá-los, inclusive.


Copo, tigela, jarra, vasilha, todos esses são objetos, não são? Então vc não os terá, entendeu? Vc Não tem objetos, ok? Então, recapitulando, vc está cego, encontra-se num lugar onde não existe nada, nenhum objeto sequer. De uma forma misteriosa qualquer alguém lhe passa os dados de entrada para fazer o suco. Primeiro a maça, depois a acerola,
em seguida o gelo e o suco. Espera ae ...Mas, aonde vc está depositando essas coisas? Se aonde vc está não existe nada? As frutas e o gelo, neste caso, vc pode segurar, mas o suco? O que vc vai fazer com ele? Assim vai ser difícil não é? Impossível, posso considerar assim? O que vc acha?

Ok, chega de sofrimento. Vamos alterar um pouco as regras desse jogo, observe como o cenário vai mudar. Vou lhe conceder o poder de criar os objetos necessários para depositar cada um dos ingredientes. Antes de receber os ingredientes você poderá criar uma mesa, para servir de repositório de todos os demais objetos. Agora vc pode criar uma jarra (para servir de repositório do suco), prato para depositar a maça, outro prato para a acerola, uma vasilha para o gelo, um pote para o açúcar, e tudo que vc precisa, sem esquecer do liquidificador. Depois de dispô-los na mesa que vc criou, seguindo uma lógica para essa disposição, é claro, agora mesmo cego, como foi vc que pegou esses objetos, e os dispôs da maneira que lhe foi mais conveniente, já não é tão difícil acessá-los e identificá-los para fazer o suco. Vc já memorizou onde está o prato com a maça, bem como a vasilha com gelo, acerola, a jarra com o suco e o pote para o açúcar. Todos esses elementos, vc os dispôs na mesa. Agora, basta, cuidadosamente, pegar a quantidade desejada de cada um e depositar dentro do liquidificador, ligar e pronto. Pronto? Ainda não. Falta colocar o suco em algum lugar. Será que a jarra poderia ser usada par isso? Claro que sim, reutilizaremos a jarra, para economizar, podemos utilizar a mesma usada Anteriormente . Falta alguma coisa ainda? Acho que sim: O copo, para que se possa beber o suco. Você criou o copo? Ueh!?!? Deu mole no algoritmo? Hehehehheheheh ...

Então, voltando a anlogia: A memória do computador é esse lugar, as variáveis são usadas para a mesma função que os objetos que usamos para armazenar os dados de entrada. É você que tem a responsabilidade de criar e determinar de que tipo serão, de acordo com a necessidade do que vai processar.

no exemplo acima, “processamento do suco gelado”. Por exemplo, o prato e a jarra: São servem de depositório para uma variedade de outros objetos. Cada um mais apropriado para um tipo diferente de objeto. O prato para frutas variadas, queijos, pães, frios, ao passo que a jarra seria mais apropriada para líquidos. Observe o termo que usei: “variedade” de objetos, de um determinado “tipo” pode ser armazenado. Isso está lhe dizendo alguma coisa? Então, chamamos de variável em programação o que utilizamos para armazenar uma gama de dados diferentes, só que de um determinado tipo. Por isso a importância do que chamamos de “tipos de dados”.

Quanto as constantes, elas não possuem nenhuma relação com o que entra (dados de entrada, no caso, as frutas e os demais ingredientes para o suco), nem com o que sai (Ou pelo menos não deveria ter), mas ela é um elemento que tem participação fundamental no processamento. A principal e fundamental diferença entre a variável e a constante é que a constante, como o nome já diz armazena um valor só, único, constante durante todo o processo. Exemplo: preciso desenvolver um processo para calcular a área de circunferências. A fórmula para isso é:

( Pi * raio ao quadrado). O dado de entrada é o raio, sendo o valor de "Pi" constante (3,1415926536....) posso, por isso, definí-lo como tal. Para isso serve as constantes.


Vejamos mais detalhadamente:

Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado.
Variáveis devem receber nomes para poderem ser referenciadas e os valores armazenados por elas podem ser modificados quando necessário. Ao passo que, embora, uma constante, também seja um espaço reservado na memória, o valor armazenado por ela não pode ser modificado jamais.

Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos como o nome já diz definem que tipo de dado pode ser armazenado na variável. Pq, ao exemplo da Jarra e do copo, eles possuem pré-definições a respeito da quantidade de espaço de memória será alocado (da mesma maneira que geralmente uma Jarra tem capacidade para suportar maior volume de líquido que o copo), bem como que operações poderão ser feitas com o dado dependendo do tipo (exemplo: Operações aritméticas,
concatenações ou expressões lógicas). Os tipo de dados são subdivididos em dois grupos:
Tipo primitivos da linguagem e tipos definidos pelo programador. Os tipo primitivos podem ser por exemplo:
Numéricos inteiros, Numéricos reais, caracteres, Booleanos(Lógicos, verdadeiro e falso). As expressões combinam variáveis e constantes para calcular novos valores.


3.2. CONSTANTES

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.


3.3. VARIÁVEIS

Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.

3.4. TIPOS DE VARIÁVEIS

As variáveis pode ser basicamente de quatro tipos: Numéricas, Caracteres, Alfanuméricas ou lógicas.


   Numéricas: Específicas para armazenamento de números, que posteriormente
poderão ser utilizados para cálculos.Podem ser ainda classificadas como
Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números
inteiros e as Reais são para o armazenamento de números que possuam casas decimais.

Caracteres:
Específicas para armazenamento de conjunto de caracteres que não contenham números (literais).
Ex:
nomes.

Alfanuméricas: Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter
somente dados numéricos ou somente literais. Se usado somente para armazenamento de números,
não poderá ser utilizada para operações matemáticas.

Lógicas:
Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.
Também são chamadas de booleanas por causa de George Boole (pesquisa em português), quem sistematizou o conceito de lógica.


3.5. DECLARAÇÃO DE VARIÁVEIS

As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e literais.

3.6. IDENTIFICADORES

São os nomes dados a variáveis, constantes e programas. Existem regras para se fazer isso. Veja em seguida:


3.6.1 Regras Para Construção de Identificadores:

-Não podem ter nomes de palavras reservadas(comandos da linguagem);

-Devem possuir como 1º caractere uma letra ou Underscore ( _ );

-Ter como demais caracteres letras, números ou Underscore;

-Ter no máximo 127 caracteres;

-Não possuir espaços em branco;

-A escolha de letras maiúsculas ou minúsculas é indiferente.

Exemplos: NOME, TELEFONE, IDADE_FILHO, PI

3.7. ATRIBUIÇÃO

Uma Variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a qualquer momento. Portanto, para atribuir valores a variáveis devemos usar o sinal para isso. Infelizmente esse sinal não é o mesmo para todas as linguagens, vejamos: O símbolo usada para representar uma atribuição de valor em Pascal é “:=” (dois pontos seguido do igual). Em C usamos, e em muitas outras linguagens como Java, Javascript, C#, ASP, Visual Basic é usado o sinal de "=" (Igual), em decorrência disso a igualdade em C, pó exemplo é representado por "= =".

Exemplos:

Atribuição em Pascal


  • A := 2;

  • B := 3;

  • C := A + B;

Igualdade em Pascal


  • A = 2;

  • B = 3;

  • C = D;


Atribuição em C ou Java.


  • I = 2;

  • Aux = ‘Nome do Aluno';

  • C = (J + I)/ 5;

Igualdade em C ou Javascript


  • A = = 2;

  • B = =3;

  • C = = D;


3.8. EXERCÍCIOS

1) O que é uma constante? Dê dois exemplos.

2) O que é uma variável? Dê dois exemplos.

Um comentário:

 
BlogBlogs.Com.Br