Capítulo 17: Bibliotecas Padrão (math.h e stdlib.h) 🥼🧪

Neste capítulo, vamos aprender a usar funções prontas que vêm com a linguagem C para realizar cálculos complexos e gerar números aleatórios, com o tema Rick and Morty!


📖 O que são Bibliotecas?

São conjuntos de funções já prontas que podemos incluir no nosso programa para não precisar reinventar a roda. Já usamos a stdio.h para ler e escrever. Agora vamos ver a math.h (matemática) e a stdlib.h (utilitários).


📖 Exemplo Guiado: Arma de Portais (Números Aleatórios)

Vamos usar a biblioteca stdlib.h e time.h para gerar uma dimensão aleatória para onde a Arma de Portais vai nos mandar!

  1. Crie o arquivo arma_portais.c na pasta src/:
#include <stdio.h>
#include <stdlib.h> // Para rand() e srand()
#include <time.h>   // Para time()
 
int main() {
    // Inicializa o gerador de números aleatórios com o tempo atual
    srand(time(NULL));
 
    // Gera um número aleatório entre 1 e 100
    int dimensao = (rand() % 100) + 1;
 
    printf("Rick ajustou a Arma de Portais!\n");
    printf("Entrando na Dimensao C-%d\n", dimensao);
 
    return 0;
}

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado.
  2. Compile: gcc arma_portais.c -o arma_portais
  3. Execute: ./arma_portais
  4. Rode mais de uma vez para ver os números mudando!

Resultado Esperado:

Rick ajustou a Arma de Portais!
Entrando na Dimensao C-42

📊 Ilustração Visual: Gerador Aleatório

Veja como o tempo do relógio garante a aleatoriedade:

graph LR
    A[Relógio do PC] -->|Semente| B[srand]
    B --> C[rand]
    C -->|Número Aleatório| D[Dimensão do Portal]

🛠️ Prática Obrigatória 1: Calculando a Curva do Portal

Use a biblioteca math.h para calcular a raiz quadrada de um número (usando a função sqrt()) e a potência (usando pow(base, expoente)). Crie um programa chamado calculos_rick.c que peça um número e exiba sua raiz quadrada e ele elevado ao quadrado! (Dica: para compilar no Linux/Mac usando math.h, às vezes é preciso adicionar -lm no final do comando gcc, mas no Windows MinGW geralmente não precisa).


🔑 Gabarito de Código

Prática 1: calculos_rick.c

#include <stdio.h>
#include <math.h> // Necessária para sqrt e pow
 
int main() {
    double numero;
 
    printf("Digite um numero para os calculos do Rick: ");
    scanf("%lf", &numero);
 
    double raiz = sqrt(numero);
    double potencia = pow(numero, 2);
 
    printf("Raiz quadrada: %.2f\n", raiz);
    printf("Elevado ao quadrado: %.2f\n", potencia);
 
    return 0;
}

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

(Siga o padrão estabelecido no Guia)


Capitulo Anterior | Proximo Capitulo