Dados primitivos, variáveis, e atribuições em C#

Arilson Alcântara

VOCÊ VAI APRENDER

Conceitos que abrem a mente para a Lógica de Programação:

Ideia

O que são Dados Primitivos e quais os mais comuns em C#

Constantes e variáveis

Atribuições e exemplos em C#

Ideia Imagem widget

pré requisitos

• Interesse em programar

• Curiosidade e vontade de aprender

• Imaginação

tipos primitivos de dados

Dados são quaisquer informações antes de serem processadas: 

♦ Seu nome é um dado 

     ♦  Seu endereço é um dado

♦  Sua idade é um dado

♦ Até mesmo o fato de você ser (ou não ser) aluno de Sistemas de Informação é um dado.

Para que os dados sejam processados em um programa de computador eles são classificados e representados de acordo com essa classificação.

Há vários tipos de dados primitivos, de acordo com o espaço que seu armazenamento ocupa na memória. Porém, por motivos didáticos esse tutorial mostrará apenas o que você vai precisar saber para aprender lógica de programação utilizando a linguagem C#.

Superficialmente, podemos dizer que os dados têm três classificações de acordo com seus valores.
São estas de valores

NUMÉRICOS•LITERAIS•LÓGICOS.

dados numéricos em C#: int e double

Estes são muito bem conhecidos, graças a "velha amiga" Matemática. Com estes dados é possível fazer qualquer cálculo, desde que respeite as leis da lógica. Para ficar claro, é a Matemática totalmente presente na programação. Com o tempo, pode-se ver cada vez mais semelhança entre as duas, chegando a ver a Matemática como essência dos algoritmos.


Algumas dúvidas frequentes  duvida

1 → Mas qual a diferença entre os tipos primitivos int e double?

A palavra int vem do termo em inglês "entire", que significa "inteiro". Sim. O conhecido Conjunto Z, composto por todos os números inteiros tanto negativos, quanto positivos, incluindo o 0 (zero). Dados do tipo int são representados assim:  4  -9  527

Já a palavra double é um termo em inglês que significa "duplo". Neste caso, trata-se de um número em ponto flutuante de precisão dupla. Dados do tipo double formam o Conjunto R, ou seja, números reais. O ponto flutuante é o que convencionalmente usamos como vírgula, na matemática. Demonstra a parte fracionária do número. Exemplos de representações de dados double:  4.2  -9.0  527.00



2 → Posso armazenar um dado double em uma variável int?

Não. Se a tentativa de atribuição for direta, a linha de código gera um erro de compilação.
Ex:    int num = 0.25; //erro!

erro

Se a atribuição for por meio do resultado de uma divisão por exemplo, não gera erro de compilação, porém a parte fracionária do número (resto da divisão) será ignorada, podendo fazer com que o programa não gere a saída esperada, caracterizando assim um erro de lógica.
Ex: int num = 1/4; // o resultado da divisão é 0.25 mas num recebe apenas 0(zero). 

1/4

RESULTADO

DICA IMPORTANTE: Se resultado vier de uma divisão, guarde em uma variável double

3→ E um dado int em uma variável double, funciona?

Sim. Afinal, na Matemática todo número Inteiro é também Real, não é mesmo?! Mas o dado deixaria de ser int, pois para armazenar o número inteiro 3, por exemplo, em uma variável double ele seria considerado 3.0 .

4→ Usar variável double me permite armazenar números inteiros maiores do que eu conseguiria com uma variável int?

Não. Se a intenção é aumentar o limite para um número inteiro considere utilizar a classe Int64, que permite representar um inteiro com até 64 bits, e não 32 que é o que se consegue com o convencional tipo primitivo int.

dados literais em C#: char e string

Os dados primitivos literais são, como o nome já diz, "literalmente" o que estamos vendo. Letras, símbolos, palavras, frases, ou até textos.

A palavra reservada "char" vem do termo em inglês "character". Um dado char é um símbolo sozinho. Perceba que ao digitar um comentário em alguma página na web você tem uma caixa de texto onde a cada símbolo digitado você tem menos 1 "caractere" restante para escrever. Seu limite diminui até mesmo com um espaço em branco, ou seja, este também é um dado char. Dados deste tipo são sempre representados por aspas simples:  '/'   'a'   'A'   '8'   ' ' 
Obs.: No caso de letras, caracteres diferem-se entre maiúsculas e minúsculas.

Já a palavra "string" vem do inglês podendo ser traduzida como cordão, ou ainda, corrente. De que é feita uma corrente? Elos! Da mesma forma uma string é feita de caracteres, um ligado ao outro. Dados string são sempre representados entre aspas duplas, da seguinte maneira:   "ATP"   "estudos"   "PUC - Minas"   "T"   "     "  
Obs.: Sim, um dado string pode, ocasionalmente, ser formado por apenas um caractere.

char e string


dados lógicos em C#: bool

Por fim, os dados lógicos. Estes são do tipo bool e o nome é devido a George Boole. Só há dois valores possíveis tratando-se de dados lógicos: true ou false.

"George Boole foi um filósofo britânico, criador da álgebra booleana, fundamental para o desenvolvimento da computação moderna. Wikipédia"

exemplos de representação

Para que não reste dúvida, a seguir o número cinco será representado em quatro tipos diferentes de dados primitivos da linguagem C#:

int   →   5

double   →   5.0

char   →   '5'

string   →   "5"

constantes e variáveis

O que é um Valor Constante? Um valor constante é um dado dentro do código, sendo que este dado está devidamente representado de acordo com seu tipo. Por estar representado direto no código, não tem chance de ter seu valor alterado durante a execução do programa. Devido a este fato, convém chama-lo de constante

E variável, o que seria? Uma variável é uma referência a um espaço reservado na memória para armazenar dados. Imagine uma variável como uma caixinha. Essa caixinha precisa de um nome, para que tenha uma identidade entre as outras caixinhas, e precisa também de um tipo. O papel das caixinhas é guardar os dados de seu mesmo tipo, sendo que a qualquer momento pode ser feita uma sobreposição no valor que ela está representando, por isso se diz que ela “varia”.

na prática

Sabe-se que métodos são sempre executados linha a linha. Uma variável declarada dentro de um método, como o main por exemplo, só passa a existir (ter seu espaço na memória reservado) quando a execução passa por sua linha. Dessa linha em diante a "caixinha" está pronta para ser usada e guardar alguma constante de seu mesmo tipo.

Toda vez que temos uma linha de código com atribuição de um valor a uma variável dizemos que esta variável recebe tal valor. Podemos pensar: a "caixinha" (do lado esquerdo do sinal de atribuição "=") guarda o valor. É fácil ver isso se a atribuição estiver explícita, ou seja, quando há um único valor do lado direito do sinal.
Ex:    int num = 10; //a variável num guarda(recebe), claramente, a constante 10

E no caso de uma variável receber uma expressão ao invés de um valor explícito?

expressões numéricas em C#

codigo1

Toda vez que uma atribuição não é feita direta por um valor explícito, como da variável d no exemplo acima, tudo que está a direita do sinal de atribuição (=) é resolvido primeiro. A expressão, que vem da matemática, tem um único valor final que será guardado na variável em questão. Quanto valerá d?

A parte destacada é calculada primeiro e resulta, no final, em um valor constante do tipo numérico


Considerações importantes sobre a expressão numérica:

Assim como na matemática, a multiplicação é feita primeiro.

Se os parênteses não estivessem ali, a divisão por 2 seria o segundo passo.

Os parênteses mostram que c + a * b corresponde ao termo numerador da fração, sendo que a representação convencional seria:


Na matemática usamos {[()]} para determinar a ordem das operações. Na programação basta parênteses, mas a lógica é a mesma.

Qualquer expressão pode ser escrita no código independente de seu tamanho. Basta respeitar sempre a lógica da Matemática e poderá armazenar tudo de uma só vez dentro de uma mesma variável.

Com os valores colocados no próprio código, desta vez garantimos que a divisão seria exata. Mesmo assim devemos acostumar a usar double para resultados de divisões, pois nem sempre temos o resultado sob nosso controle.

O valor final é 16 e será guardado em d.

expressões literais em C#

Atribuição por valor inserido pelo usuário - Console Application


Da mesma maneira, toda a parte à direita do sinal é executada primeiro, começando expecificamente do comando entre parênteses: o ReadLine, que tem a função de esperar que o usuário digite algo e depois capturar. O usuário informa o que foi pedido, mas o que ele digita é uma sequência de símbolos, ou seja, um valor string. Percebe-se então que TUDO o que vier da tela é string. Faz-se necessário uma conversão, que no caso é feita pelo comando int.Parse.

1º → Na parte contornada de verde tem um valor string que veio da tela.

2º → A parte de azul usa esse string para chegar a um valor final inteiro.

3º → Valor final é atribuído à variável.

Obs.:Se o esperado fosse um dado do tipo char ou double, também seria necessário converter os tipos com char.Parse e double.Parse, respectivamente.

Se a variável for string, o dado que vem da tela é atribuído sem uso de conversões, já que são do mesmo tipo.


Atribuição com expressão de valores literais


Mais uma vez, o valor para ser guardado na variável não está explícito. É executado primeiro a parte a direita do símbolo de atribuição (=). Sendo assim a parte em destaque no exemplo acima tem um valor literal final que é resultado da junção do dado string que já estava armazenado na variável area e o valor string " da Informação", que apareceu pela primeira vez no código e até então não estava armazenado. É como unir duas correntes para se ter uma maior. O código gera então a seguinte saída, para exemplificar a concatenação de strings antes da atribuição:



Há também expressões feitas com dados booleanos chegando também a um valor final, mas não convém abordar esse tema agora, pois sairia da programação sequencial, entrando em testes condicionais.

Espero que este tutorial tenha sido útil para ajudá-lo a abrir sua mente à Lógica de Programação. Boa sorte com Algoritmos!

links uteis

Voltar