sábado, 10 de agosto de 2013

Aprendendo C - Parte 3 - Tipos de Dados

Bom dia/tarde/noite minha galera !
Vamos falar especificamente de tipos de dados hoje.
O que é isso ?
Sempre que formos programar, precisaremos de variáveis.
O que são variáveis?
Para responder isso, prefiro fazer uma comparação.
Imagine um objeto qualquer, como uma borracha, um lápis, uma pessoa, um nome, ou número.
Imagine que eu posso atribuir um valor a eles. por exemplo :

Defino que a borracha seja Feia.

Toda vez que eu colocar em meu programa a palavra "borracha", eu devo ler "Feia". Isso porque bolacha recebeu essa atribuição, Feia.

Em C, isso acontece assim :

borracha = Feia;

Isso quer dizer que borracha é feia, ela recebeu esse valor.

Vamos pensar na forma que o C pensa :

Imagine que tu precise criar um programa que receba um numero qualquer e retorne o seu dobro.
Algo bem simples, como por exemplo, digitar 2, e aparecer 4, digitar 27 e aparecer 54....beleza ?

O Computador não sabe de nada, tu tens a necessidade de mostrar pra ele o que é numero, o que é dobro,quando deve receber o primeiro valor e quando vai retornar o resultado ( dobro ).
Beleza ?

Isso é o que chamamos de variável !
É um espaço em memória que irá receber isso que tu queres, com o nome que tu queres, e do tipo que tu queres. Por exemplo:

int num = 1;

int = inteiro - quer dizer que o dado a seguir é um número inteiro;
num = é o nome que eu atribuí para esse tipo de dado "número inteiro";
1 = é o valor da minha variável, é o valor que ela recebeu;

Bem, podemos pensar assim :

Já que "dobro" é a mesma coisa que "alguma coisa" vezes 2, podemos dizer que o dobro de num é igual a "num x 2" ?
Correto ?
( não prossiga até concordar com essa lógica. Pense bem. )

num vezes dois é igual  a (num + num).
Correto ?
( não prossiga até concordar com essa lógica. Pense bem. )


numero x 2 = dobro de 2.
Correto ?
( não prossiga até concordar com essa lógica. Pense bem. )


Pergunto isso bastante porque quero que entendam isso. Ainda não vou focar na lógica ou no cálculo, vamos para o que o tópico realmente fala, que é justamento sobre o tipo de dado.

Quando eu estava falando sobre o int, eu estava falando sobre tipo de dado números inteiros.
Em quase todas as linguagens de programação, sempre teremos que definir os tipos de dados, ou seja, se tu quer trabalhar com números inteiros, irá criar um dado do tipo int, se tu quer criar um dado do tipo "letras", vai definir uma variável do tipo char,  e assim por diante.

vamos para um exemplo pratico :

#include <stdio.h>
#include <conio.h> // necessário para a função getch

main () {
int numero, dobro;

printf ("digite numero: ", &numero);
scanf("%d",&numero);
dobro = numero  + numero;

    printf("o dobro e: %d ", dobro);
getch();

}



main () {
int numero, dobro; // aqui estamos definindo duas variáveis do tipo inteiro

printf ("digite numero: ", &num);
/*Aqui embaixo, pedimos para o usuário digitar um número
A parte que fica após as duas barras não vai compilar, e por isso chamamos de "comentário"
A parte que o usuário vai ver, é somente a parte que está entre as aspas, depois disso é continuação da instrução, que barramos com uma "vírgila" , um & e depois o nome da variável que iremos atribuir aquilo que o usuário digitou, ou seja, aquilo que o usuáario digitar, vai ser atribuido á variável num.
Neste caso estamos dizendo que o usuário deve digitar um numero inteiro, por que a variável num, é do tipo inteiro.
Mais tarde , quando lhes ensinar outros tipos de dados vou indicar fazer testes com tipos de dados diferentes....
*/
scanf("%d",&num);
dobro = num  + num;
/* nesta parte esta sendo representado o "dobro" em si.
o comando scanf esta recebendo o valor que foi digitado em algum printf, o &num define que é da variável num. desta forma ele sabe que esta recebendo o valor de num.

Vocês devem estar perguntando-se , sobre o "%d" anterior :
Em "C", usamos uma "nomenclatura", para definirmos o tipo de dados que estamos trabalhando, e em C seguimos a seguinte ordem:

%d, ou %i para inteiros
%c, ou %s para letra, ou caracteres


Acho que isso por enquanto é suficiente.

Isso é, de fato o tipo de dado:
Se tu queres um tipo de dado inteiro, deverá declara-lo como "int" e depois ao capturalo, utilizar um  "%d";
Exemplo :

printf("digite numero");
scanf("%d",&rafael):

Estou atribuindo á variavel rafael o valor que o usuário digitou, passando pelo scanf.

No printf foi capturado que o usuário digitou.
No scanf foi verificado que o tipo de dado era "%d%, ou seja, um inteiro, e foi atribuido á variavel rafael que também era do tipo inteiro.

Entenderam??
É realmente complicadinho no início...mas me disponho completamente á ajudar com as dúvidas...


Vou deixar uns dias para ajuda-los, sei que não é fácil, depois faço um post só com as dúvidas...Ok?






Nenhum comentário:

Postar um comentário