sábado, 12 de janeiro de 2013

Linguagem C: Parte 2 [Variáveis]

► Variáveis

     Na parte anterior foram apresentados jeitos básicos para exibição de mensagens, explicando o porque de cada instrução. Mas agora, e se nós precisarmos guardar algum valor como nome, idade, telefone? Como eu faço?
     É para isso que servem as variáveis. Utilizamos uma variável para referenciar uma região da memória, onde colocaremos um valor com algum tipo. Como o nome já diz, o valor dela pode mudar durante a execução do programa. A primeira coisa que precisamos fazer antes de usar uma variável é declara-la.



Ex:

#include<stdio.h>
main()
{
  // tipo var;

  int var1;
  int var2;
  int var3;

  var3 = var1 + var2;

  printf("A soma e %d",var3);
}

     Existe alguns requisitos para colocar nomes em variáveis:

► Declarar variáveis com mesmo nome mas, uma maiúscula e outra minúscula, fazem elas serem variáveis distintas.
Ex: int bola, int Bola

► Pode ter seu nome constituído por letras(maiúsculas e minúsculas), dígitos (0 .. 9) e  underline( _ ). Este último é mais utilizado para separar palavras de uma variável.
Ex: polo_Norte.

Nunca começar com dígitos.
Ex: int 7at;

Não utilizar nomes de palavras reservadas como, for, while, if e etc. 

Não são recomendados acentos(ã, â,é, etc.) no nome das variáveis  por causa de alguns compiladores podem não aceitar  como caracteres admissíveis.

     As variáveis com mais de um nome, podem ser declaras de variadas formas. Aqui vai algumas:
     Ex: polonorte, polo_norte, PoloNorte, Polo_Norte.

     A atribuições são feitas pelo sinal de " = ",  colocando a var que vai alterar SEMPRE a esquerda, e o que vai atribuir, a direita.

int a;
a = 10; // atribuindo o número 10 a variável " a ".

     Se quiser atribuir o mesmo valor de uma var a diversas variáveis. pois as atribuições em C são feitas da direita para esquerda.
a = b = c = 10;

Operações:
Para soma, subtração, multiplicação e divisão:
" + " ► soma ► 10 + 10
" - "  ► subtração ► 10 - 10
" * " ► multiplicação ► 10 * 10
" / "  ► divisão ► 10 / 10

Inteiros ► int

     Utilizamos int quando precisamos armazenar números naturais (sem fração) tanto positivos quanto negativos, sendo que qualquer operação entre inteiros retorna um inteiro.
Ex:
int numeroZ = -60;
int numeroX = 300:

#include<stdio.h>
void main()
{
  int a = 10;
  int b = 3;
  int c;
  
  c = a / b;

  printf("A divisao e ... %d",c);
}

a / b = 3 ao invés de 3,33... :)

     Os valores de um inteiro podem variar dependendo da arquitetura do processador, podendo variar de 2 bytes ou 4 bytes. A importância disso se obtém na hora de armazenar valores maiores que a variável consegue suportar. Para saber a o tamanho de um inteiro, é utilizado um operador chamado sizeof.
Ex :

#include<stdio.h>
void main()
{
   printf("Tamanho de bytes do inteiro = %d\n", sizeof(int));
// Dependendo da máquina, o resultado pode ser 2 ou 4
}

     Para resolver esse problema utilizamos quatro prefixos diferentes:
short - Inteiro pequeno(2 bytes)
long - Inteiro grande (4 bytes)
signed - Inteiro com sinal.
unsigned - Inteiro sem sinal (apenas números positivos)

short int x; - Garante que " x " utiliza apenas 2 bytes de memória, independente da arquitetura da máquina.
Menor valor "-32.768 "
Maior valor "32.767"

#include<stdio.h>
void main()
{
   short int a = 10;
   short int f = 10;
   short int b;
   b = a + f;

   printf("A soma é %hd",b); 
/*Note que eu utilizei " h " antes de " d ". É como se referencia um short. Para referenciar um long, utilize " l " no lugar de " h ". :)
}

long int x; - Garante que " x " utiliza apenas 4 bytes de memória, independente da arquitetura da máquina.
Menor valor "-2.147.483.648 "
Maior valor "2.147.483.647"

     Se quiser saber o tamanho dos outros tipos:

#include<stdio.h>
void main()
{
     printf("Tamanho de bytes de um char = %d\n", sizeof(char));
     printf("Tamanho de bytes de um float = %d\n", sizeof(float));
     printf("Tamanho de bytes de um double = %d\n", sizeof(double));
}

Reais ► Double e Float

     São utilizadas para referenciar variáveis fracionárias. A diferença entre elas é que float armazena 4 bytes, e double 8 bytes. O formato de escrita e leitura para estes números é %f.
Ex: float numero = 10.500, float km = 1.5

#include<stdio.h>
void main()
{
   float numero = 10.500;
   printf("O numero = %f",numero);
}

     Inteiros relacionados com reais:

21 / 4 = 5;  // Divisão é inteira
21.0 / 4 = 5.25 // Divisão real, pois 21.0 é real, o valor de 4 é alterado para 4.0
21.0 / 4.0 = 5.25 // Divisão real

Char ► char

     Serve para armazenar um único caractere. NÃO coloque strings em char, pois ele é armazenado em apenas um byte. ;D
     Um caractere é representado por aspas simples (' F '), podendo ser utilizados 256 formas de  representação. Sua leitura pode ser feita pela função scanf. Porem, existe um método melhor chamado getchar(). A utilização de getchar evita %c, pois o scanf é uma função genérica de leitura, ja o getchar é dedicado a leitura de apenas um caractere. A var não é passada como parâmetro, evitando o "&".

#include<stdio.h>
main()
{
   char letra;
   printf("Insira uma letra: ");
   scanf("%c", &letra);
   printf("A letra = %c \n",letra);
}

#include<stdio.h>
main()
{
   char letra;
   printf("Insira uma letra: ");
   letra = getchar();
   printf("A letra = %c \n",letra);
}

     Lembrando que inteiros podem ser convertidos em char,  tanto char para inteiros. Sugiro que você leia um livro de C, pois nele se obtém várias formulações nesse tipo de operação. Conversões erradas levam a variados erros, por isso não recomendo.


► Menu da Linguagem C

Um comentário: