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:
- int : inteiros
- float : números quebrados
- char : caracter
- char[n] : vetor/array de caracteres, as famosas strings
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
&&
= e||
= ou!
= contrário de>, >=, ==, <=, <
= maior, maior ou igual, igual, menor ou igual, menor
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
count += n
count++
é a mesma coisa que count += 1
count -= n
count--
é a mesma coisa que count -= 1
Também da pra fazer multiplicação e divisão desse jeito
variavel *= n
variavel /= n
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);
}
- é possível declarar mais de um váriavel de controle
- é possível e até recomendado em alguns casos fazer um for dentro do outro, o que seria um “for alinhado”, mas ele deve ser utilizado com sabedoria já que aumenta o grau de complexidade do código.
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
%i
ou %d
= int%f
= float%c
= char%s
= string
Esses aqui ficam só por curiosidade:
%u
= módulo do número%p
= endereço de memória%E
ou %E
= número em notação científica%%
= imprime “%”
Caracteres de escape:
Os caracteres de escape só funcionam quando estão dentro de aspas, ou seja, quando são strings.
\n
= quebra de linha\t
= tab\\
= imprime uma \\"
= imprime uma "\'
= imprime uma '
Escrito por Vinícius Hansen