6 – Eletrônica digital com Arduino – Introdução à linguagem C, parte 2

Nesse post falaremos basicamente sobre variáveis e seus tipos. Não vou aprofundar em nada aqui, pois essa introdução é para podermos por a “mão na massa”. Quando a introdução à linguagem tiver sido o suficiente, recomendarei sites para um estudo mais detalhado da linguagem e a partir desse ponto você estará se aperfeiçoando para poder fazer coisas mais complexas.

Então, falemos sobre os tipos de variáveis.

Na matemática, quando temos um valor oculto podemos por exemplo identificá-lo com X:
X = 3+2
X = 5

Ou:
5 = X+2

As variáveis em programação podem fazer a mesma coisa e outras mais. Além de guardarem valores numéricos, podem guardar também letras ou palavras.

Para o computador, tudo não passa de números, mas não vamos entrar nesses detalhes; no momento o importante é saber quais possibilidades existem e como aplicá-las.

As variáveis precisam ser criadas em programação. Além disso, na linguagem C você deve dizer o que a variável vai guardar; letras, números, etc. Isso se chama “declaração de tipo”.

Os tipos que usaremos comumente são:
int – para guardar valores inteiros
float – para guardar valores de ponto flutuante (fracionários)
char – para guardar letras.

Supondo que fossemos fazer a conta do exemplo acima, onde X = 3+2, teriamos que fazer assim:

//declarar X
int X;
//Atribuir-lhe um valor
X = 3+2;

Se quiséssemos guardar um valor fracionado, bastaria trocar ‘int’ por ‘float’:

float X;
X = 1.9+1.3;

Para lidar com letras, existem algumas regras que veremos a seguir. Na verdade, char é a abreviatura de caractere, ou seja, além de letras pode-se guardar símbolos nessa variável. O char funciona assim:

char X;
X = 'a';

No exemplo, criamos um tipo de variável char e depois lhe atribuímos o valor a. Observe que para números, não utilizamos apóstrofe, apenas para char e exclusivamente para 1 char.

Agora vamos falar de arrays.
A memória do computador é uma matriz x,y de endereçamentos. É como olhando um mapa; cada quadra tem N casas com seu respectivo número. Da mesma forma a memória do computador. Então, quando se cria uma variável, o programa examina a memória e guarda o valor em um endereço que não esteja sendo utilizado.

O tamanho de 1 letra é = 1 Byte. 1 Byte é igual a 8 bits. O gerenciamento do uso de memória será importante pois se tratando de uma arquitetura de hardware minimalista, a memória é bastante limitada.

Quando criamos uma variável, o programa se encarrega de encontrar o endereço de memória necessário. Quando queremos guardar mais de 1 byte em uma variável, temos que fazer um array, ou seja, uma lista de bytes a ser armazenado na memória. Um exemplo superficial para a palavra “junior”:

char X[] = "junior";

Os colchetes após X deixam claro ao compilador que X agora guardará uma lista de bytes. A palavra “junior” ocupará 7 bytes na memória; as 6 letras do nome + o terminador, que é como um ponto final. O terminador é representado por ‘ 0′ . Outra observação importante é que agora utiliza-se aspas invés de apóstrofe.

Cada byte da variável pode ser acessada individualmente, ou seja, você pode alterar qualquer uma das letras da variável, bastando indicar sua posição. As posições na variável começam em 0. Então, supondo que queremos guardar “Junior” invés de “junior”, basta trocar a primeira letra:
X[0] = ‘J’;

Baseado nesse exemplo, fica claro como a variável está armazenada na memória:

[0][1][2][3][4][5][6]
[J][u][n][i][o][r][ 0]

Observe que nesse caso, o terminador ” foi incluído automaticamente. Porém haverão casos que será necessário fazê-lo explicitamente, mas veremos isso futuramente.

Vamos relembrar a construção do corpo de um código C básico:

#include <stdio.h>

void main(){

}

Baseado na estrutura de exemplo, vamos construir o código com a variável que criamos:

#include <stdio.h>

void main(){
char X[] = “junior”;
X[0] = ‘J’;
printf(“%s”,X);
}

Utilizamos a função printf (que já citamos anteriormente) para que o nosso programa exiba na tela o valor que armazenamos na variável X.

Para concluir, quando utilizamos o printf devemos dizer-lhe que tipo será exibido na tela. Então a regra é:

char: utiliza-se “%c”

char para uma palavra: utiliza-se “%s”

float: utiliza-se “%f”

int: utiliza-se “%d”

No próximo post veremos a biblioteca string e um pouco sobre gerenciamento de memória. Seguidamente, iniciaremos a linguagem estruturada, para criar algoritmos e paralelamente faremos fluxogramas, que é a representação do fluxo de dados através de simbolos.

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta