<aside>
Conhecimentos necessários:
</aside>
<aside>
Navegação
</aside>
É nessa parte que a gente começa de fato a aprender a programação em C. Empolgado? Confesso que estou um pouco…
Mais popularmente chamada de linguagem de programação procedural, esse tipo de linguagem é focada nos nos procedimentos e passo a passo. Ou seja, esse tipo de programação tem mais foco nas próprias ações. Pode ser meio confuso, mas ao longo do tempo você entenderá!
Esse tipo de programação também é caracterizada por poder criar sistemas procedurais, que nada mais são que sistemas adaptativos e se adaptam às informações. Por exemplo: um sistema não procedural de somar números só consegue somar 2 números por vez, mas um sistema procedural consegue somar quantos números você quiser sem dar problemas, porque ele se adapta à quantidade de dados fornecidos, seja 2 números, 5 números, 1000 números…
A linguagem de programação que estudaremos aqui será o C, uma linguagem mais velha que tudo no mundo.
Ela nada mais fará que seguir passo a passo o que você escrever, que nem nos algoritmos que havíamos visto aqui, tudo de cima para baixo, linha por linha.
Nessa linguagem, todo código deve ser finalizado com ponto e vírgula para o computador saber que tal código chegou ao fim e deve partir para o próximo.
Também dizemos que essa linguagem é uma linguagem de nível intermediário, isso porque muitas coisas temos que fazer de uma forma mais manual, técnica e complexa, enquanto muitas coisas são automáticas, como em outras linguagens de alto nível.
Nos arquivos “.c”, a estrutura base é assim:
#include <stdio.h>
#include <stdlib.h>
int main()
{
//o código vem aqui dentro
return 0;
}
Talvez pareça assustador no início, mas é bem simples! Confie em mim!
Em C, há 5 tipos de operadores aritméticos:
Aqui os 3 tipos de dados são divididos entre as seguintes formas:
Os números em C são divididos entre 2 tipos: números inteiros e números fracionários. Os números inteiros são chamados de “int”, bem fácil, né? Já os números fracionários são divididos em 2 tipos:
Um detalhe é que na programação não se usa vírgula, apenas pontos, então o número “3,14” fica “3.14”.
Outro detalhe para se atentar é uma conversão automática que o código possui.
Imagine a seguinte divisão:
11 / 4
Isso resultaria em 2.75, né? O problema é que isso é um número int dividindo um número int, então o código acha que o resultado também precisa ser int, então ele considera o resultado dessa divisão como 2.
Para que a divisão seria realmente precisa, precisamos mostrar ao código que pelo menos um desses números é decimal, tipo assim:
11 / 4.0
Aí sim o código considera o resultado como 2.75. Meio louco, né?
O texto em C também é dividido em dois tipos: caractere único e textos com 2 letras ou mais.
Para caractere único, o tipo se chama “char”, que é apenas uma única letra ou símbolo. Já palavras com duas letras (ou símbolos) ou mais, seria uma lista de caracteres, ou seja, uma lista de char, também conhecidas como string.
Em C, é importante lembrar que caracteres únicos sempre estarão entre aspas simples e textos entre aspas duplas. Tipo assim:
Aqui em C, diferentes de outras linguagens também, as afirmações são meio diferentes. Elas nada mais são do que números 1 e 0, em que 1 simboliza uma afirmação verdadeira e 0 simboliza uma afirmação falsa.
Por exemplo, enquanto enxergamos a afirmação 10 < 1 ou 1 + 1 = 3 como falsas, o C basicamente enxerga números zeros.
Tipo, podemos olhar para isso: 1 = 2 e ver algo que não faz sentido, uma afirmação falsa, enquanto o C vê um número 0, pois não é uma afirmação verdadeira. Ao mesmo tempo, podemos olhar para isso: 2 = 2 e ver uma afirmação que é verdade, mas, enquanto isso, o C só vê um número 1 aí, pois essa afirmação é verdadeira.
Resumindo, as afirmações não passam do tipo “int”.
Obs.: Na verdade, qualquer número diferente de zero simboliza uma afirmação verdadeira, mas, por padrão, usamos o 1 para representar isso.
As comparações em C é a mesma coisa das comparações na matemática, só muda um pouco a forma de escrever:
| Matemática | C |
|---|---|
| $=$ | == |
| $>$ | > |
| $\ge$ | >= |
| $<$ | < |
| $\le$ | <= |
| $\neq$ | != |
Alguns exemplos:
Fora da linguagem C:
$1 + 1 = 2$ (verdadeiro)
$2 > 4$ (falso)
$5 \geq 5$ (verdadeiro)
$5 < 7$ (verdadeiro)
$10 \leq 1$ (falso)
$\text{Jonas} \neq \text{Carlos}$ (verdadeiro)
Dentro da linguagem C:
(1 + 1) == 2 (verdadeiro, ou seja, int 1)
2 > 4 (falso, ou seja, int 0)
5 >= 5 (int 1)
5 < 7 (int 1)
10 <= 1 (int 0)
“Jonas” != “Carlos” (int 1)
Os operadores lógicos também são escritos de formas diferentes, mas possuem os mesmos usos:
Assim, aquela tabela-verdade fica assim:
| Situação 1 | Operador | Situação 2 | Ocorrerá? |
|---|---|---|---|
| 1 | && | 1 | Sim |
| 1 | && | 0 | Não |
| 0 | && | 1 | Não |
| 0 | && | 0 | Não |
| 1 | |||
| 1 | |||
| 0 | |||
| 0 |
E assim fica uma tabela usando o NÃO (considere P uma afirmação qualquer):
| --- | --- |