Introdução ao C
Como a disciplina é introdutória, os algoritmos não utilizam recursos mais avançados da linguagem C. Muita coisa não é vista neste curso, apenas o mais elementar para se entender a execução de um programa. Como alguns sinais são bastante similares à matemática e até ao idioma escrito, basta ler com atenção um código para entender a ordem das operações.
- Palavras chave. São palavras reservadas, tem um significado fixo e inalterável. Por exemplo, uma função ou variável não pode ser chamada de 'while', porque 'while' já tem um significado fixo. A exceção é texto, podemos imprimir na tela a palavra 'while' porque neste caso, a palavra não é tratada como comando na compilação do programa, apenas como uma sequência de caracteres. O mesmo acontece com símbolos como vírgulas e ponto e vírgula, o significado é fixo e o uso é pré-determinado pela sintaxe da linguagem.
- A operação de atribuição. Bem no começo, entender a = 2 como "a é igual a dois", não tem problema porque a variável 'a' tem o valor dois depois da atribuição. Mas quando fazemos operações aritméticas, aí essa leitura é errada, precisamos ler como "o valor dois é atribuído na variável a".
Por exemplo:
a = b + c;Isso é lido da direita para a esquerda, primeiro ocorre a soma 'b + c', então o resultado é atribuído na variável 'a'.
- Declaração da variável. Seria muito chato programar tendo que se referenciar a posições de memória o tempo todo, para isso a linguagem expõe a nós uma variável, um espaço na memória que referenciamos através de um nome, muito mais fácil de entender e memorizar do que um código numérico. A variável precisa ter um tipo, afinal, seria confuso se todas as variáveis fossem de um tipo só. Uma analogia: seria confuso guardar líquidos em caixas e seria um desperdício utilizar uma caixa muito grande para guardar um objeto muito pequeno. Consulte a documentação do C para saber todos os tipos existentes.
/* Declaração de variáveis */
int var;
float var2 var;
double var3 var;
/* Declaração de variável com atribuição de valor */
int var = 2;
float var2 = 4.5;
/* Perda de precisão, os dígitos da parte não inteira são perdidos */
int var = 2.5;
/* Mistura de tipos. O tipo com maior precisão domina a expressão.
No exemplo, float tem preferência sobre o inteiro 2. O resultado
da operação é 2.5 */
float a;
float b = 5;
int c = 2;
a = b/c;
/* Caso especial de dominância: apesar da variável "a" ser float,
o resultado será 2.0 pois a operação de divisão é feita primeiro
e com inteiros, a operação de atribuição é feita depois. */
float a;
int b = 5;
int c = 2;
a = b/c;
- A vírgula ','. Da mesma forma separamos exemplos numa lista com vírgulas, variáveis são separadas com vírgulas num programa. Tambem serve para separar parâmetros numa função e argumentos numa chamada de função. O compilador não distingue espaços em branco, então int a,b,c; declara 3 variáveis do tipo int, a ausência ou não de espaços antes ou depois das vírgulas é uma questão de legibilidade.
- O ponto e vírgula ';'. É usado para terminar uma linha, um comando.
Exemplo prático:
a = c + 3
+ d - 2;
Visualmente, o comando tem duas linhas, mas para o compilador, a expressão aritmética ali só termina no ponto e vírgula da linha de baixo. Um erro não incomum é colocar um ponto e vírgula onde não se deve, interrompendo um comando. Exemplo:
/* o comando nunca será executado */
if (condição);
comando;
Outro exemplo:
/* é permitido escrever assim, mas a legibilidade fica horrível */
comando_1; comando_2; comando_3;