Unirio logo
Técnicas de Programação I

Início

Sobre

    01. Algoritmos e Programação

    02. Introdução a Linguagem C

    03. Variáveis e tipos de dados

  • 04. Operadores

  • 05. Estruturas de Seleção

  • 06. Estruturas de Repetição

  • 07. Vetores e Matrizes

    08. Funções

10. Funções

Uma das características essenciais da programação moderna é o uso de funções, também conhecidas como subrotinas. As funções desempenham papéis cruciais como modularização, reutilização e organização do código.

Primeiramente, vamos explorar a estrutura básica de uma função através do vídeo a seguir.

Parâmetros da Função

Os parâmetros são fundamentais para a interação entre uma função e o código que a chama. Eles permitem que você passe informações necessárias para a execução da função. Por exemplo, para procurar um estudante em um banco de dados, você pode passar o nome do estudante como um parâmetro. No vídeo abaixo, você aprenderá como definir e usar parâmetros em suas funções.

Retorno da Função

O retorno de uma função permite que você envie uma informação de volta para o código que chamou a função. Isso pode incluir diferentes tipos de valores, dependendo do que a função deve fornecer. Assista ao vídeo a seguir para aprender a sintaxe e as práticas recomendadas para retornar valores de funções.

Recursividade

Recursão é uma técnica onde uma função se chama diretamente dentro de sua própria definição, funcionando como um loop. Essa abordagem permite resolver problemas complexos ao dividi-los em subproblemas menores e mais gerenciáveis, continuando até que uma condição de parada seja atendida. No vídeo a seguir, você aprenderá, de forma prática, como criar e utilizar funções recursivas para resolver problemas de maneira eficiente.

Exercícios

Exercício 1

Implemente uma função que retorna raízes de uma função de 2° grau. Lembre-se que a função de 2° grau é dado por f(x) = ax² + bx + c, onde a, b e c são as constantes do seu programa e, portanto, serão os parâmetros da sua função.

#include <stdio.h>
#include <math.h>  // Para a função sqrt()

void encontrarRaizes(double a, double b, double c) {
    double delta = b * b - 4 * a * c;

    if (delta > 0) {
        double x1 = (-b + sqrt(delta)) / (2 * a);
        double x2 = (-b - sqrt(delta)) / (2 * a);
        
        printf("Raízes reais distintas:\n");
        printf("x1 = %f\n", x1);
        printf("x2 = %f\n", x2);
    } else if (delta == 0) {
        double x = -b / (2 * a);
        printf("Raiz real:\n");
        printf("x = %f\n", x);
    } else {
        printf("Não existem raízes reais para esses valores\n");
    }
}

int main() {
    float a, b, c;
    
    printf("Digite os coeficientes a, b e c da equação ax^2 + bx + c:\n");
    printf("a = ");
    scanf("%f", &a);
    printf("b = ");
    scanf("%f", &b);
    printf("c = ");
    scanf("%f", &c);
    
    if (a == 0) {
        printf("O coeficiente 'a' deve ser diferente de zero para que a equação seja quadrática.\n");
    } else {
        encontrarRaizes(a, b, c);
    }
    
    return 0;
}
Exercício 2

Implemente uma função recursiva que retorna o n-ésimo número da sequência de fibonacci.

#include <stdio.h>

int fib(int n) {
    if (n <= 1)
        return n
    return fib(n - 2) + fib(n - 1)
}

int main() {
    int n, resultado;

    printf("Digite o valor para n: ");
    scanf("%d", &n);

    resultado = fib(n);
    printf("O %d° número é %d", n, resultado);
}
07. Vetores e Matrizes

Neste capítulo, você vai explorar vetores e matrizes, estruturas essenciais para armazenar e manipular múltiplos valores do mesmo tipo em C.