Vinícius Hansen

Uma breve introdução à linguagem C

Importação de bibliotecas

Antes de começar a rodar o programa é possível passar instruções para o pré-processador do C, entre essas instruções estão o #include <biblioteca.h>, a extensão .h vem de header, então quando ver um arquivo .h saiba que será uma biblioteca de C. As bibliotecas são basicamente um conjunto de funções criadas por outros desenvolvedores.

Função Main

Ao contrário do python, o C não funciona sem uma função main, segue o modelo da função main:

int main(){
    //código;
    return 0;
}

No C, é declarado no começo da função o tipo da variável que ela retorna. Foi convenciado no C que a função main deve ser sempre do tipo int, mesmo que retorne 0. No C++, por exemplo só é possível criar uma função main do tipo int.

Variáveis

Para começar só precisamos saber de 4 tipos de váriaveis:

Declaração de variável:

int minha_variavel = 2;
char[10] nome;
float velocidade_carro;

Ao declarar uma variável sem valor, o compilador atribui um valor aleatório como provisório.

Constantes

As constantes são parecidas com as variáveis, possuem os mesmos tipos mas elas não podem ser alteradas

Declaração de constante:

// const tipo nome = valor;
const int A = 5;

Por convenção os nomes de constantes devem ser sempre em CAPS LOCK

também é possível passar as constantes para o pré processador(o mesmo lugar dos includes), sendo assim:

#define MINHA_CONSTANTE 7

Estruturas Condicionais

Operadores lógicos

if

a estrutura if vai verificar se uma condição é verdadeira e se for, irá executar o bloco de código associado a ele.

if ( x > y) {
    //código;
}
// também podemos usar mais de um condição
if (x > y) && (b == 1) {
    //código;
}

também podemos combinar as estruturas if com else e else if

if (a < b) {
    printf("a é menor que b");
} else if (a = b) {
    printf("a é igual a b");
} else {
    printf("a é maior que b");
}

para qualquer intrução escrita devemos por um ; no final da linha

Switch Case

A estrutura switch case é como se fosse um if especializado para casos onde um valor vai ser comparado com outro diversas vezes

switch (variavel){
case valor1:
    comandos;
    break;
case valor2:
    comandos;
    break;
default:
    comandos;
}

A estrutura Swtich pega um variavel e compara seu valor com os casos e enteão roda seu bloco de código, o comando break pula o resto da estrtura Switch Case e continua o código normalmente. O default sempre roda se não houver nenhum break antes.


Estruturas de repetição

Incremento e decremento

Considere count como uma váriavel int e n como um número aleatório.

Temos 2 principais jeitos de usar decremento/incremento

Também da pra fazer multiplicação e divisão desse jeito

while

O while é um loop que é executado enquanto uma condição for verdadeiro, pode ser entendido como enquanto codição = true, execute o bloco {}

while (i < n) {
    printf("i é menor que n");
    i++;
}

Para uma estrutura while, sempre se usa uma variavel de incremento associada à condição de execução do loop para não cair em loop infinito.

Também temos o Do While, que executa o bloco de código pelo menos uma vez antes de verificar a condição para perpetuar o ciclo.

Do{
    printf("i é menor que n");
    i++
} While(i < n)

Outra ideia é fazer um loop infinito com condição de quebra:

while (true) {
    if (condição) {
        break;
    }
}

While (true) configura um loop infinito pois true será sempre true, não importa o que aconteça

Se a condição for atendida ela irá executar o comando break que saí do loop

for

O for é muito parecido com o while em seu funcionamento, mas nele declaramos a váriavel de controle/incremento dentro for, ou seja, quando o laço for acaba essa variável some. essa é a estrutura básica do for :

for(variável; condição; incremento da variável){}

Segue um exemplo de laço for onde a variável de controle começa em 1 e vai até 10, printando seu valor em cada laço de repetição:

for(int i = 1; i <= 10; ++i)
{
	printf("%i \n", i);
}

Algumas Funções básicas

printf()

A função printf, também pode ser lida como “print format”, é o standard output do C, usaremos ela para escrever coisas no terminal e também para output em plataformas como o URI. A forma de utilizar é a seguinte:

#include <stdio.h>

int main(){
    printf("olha só que string bacana \n");
    printf("para quebrar a linha no final da frase devemos usar o \n");
    int minha_var = 2
    printf("também podemos imprimir um váriavel %i", minha_var);
}

Perceba que o %i é só um “place-holder” para a variável do tipo int, vamos ver isso logo logo

scanf()

A função scanf() serve como standard input, ela é usada para pegar input do usuário e também de plataformas como o URI. Como ela só server para pegar o input, é comum usar o printf() em conjunto com scanf()

#include <stdio.h>

int main(){
    int x;
    printf("escolha um valor para a variável x");
    scanf("%i", &x);
    char sn;
    printf("Escolha sim ou não (s/n)");
    scanf(" %c", &sn); //sempre bote um espaço antes do %c nesse caso
    char nome[20];
    printf("digite seu nome com um máximo de 20 caracteres");
    scanf("%s", nome);
}

Perceba que eu não usei o & antes da variável do nome, pois só é preciso utilizar um ponteiro(&) em variáveis de tipo primitivo, como int, float e char, por exemplo.

Indicação do tipo de variável

Esses aqui ficam só por curiosidade:

Caracteres de escape:

Os caracteres de escape só funcionam quando estão dentro de aspas, ou seja, quando são strings.


Escrito por Vinícius Hansen