Comentários

0%

FOCO NO MERCADO DE TRABALHO

Procedimentos e funções

Vanessa Cadan Scheffer

Função para calcular IMC (índice de massa corporal)

Criação da função que calcula o IMC (Índice de Massa Corporal) através de uma fórmula com base no peso e altura do indivíduo e uso de estruturas condicionais.

Fonte: Shutterstock.

Deseja ouvir este material?

Áudio disponível no material digital.

sem medo de errar

Você foi contratado por um laboratório de pesquisas multidisciplinar que atende a várias empresas. Seu primeiro trabalho é desenvolver uma solução para a equipe de nutrição. Um cliente deseja uma calculadora de IMC (Índice de Massa Corporal). Os nutricionistas lhe passaram a fórmula para calcular o IMC com base no peso e na altura do indivíduo.

Para resolver esse problema você deve ter a fórmula para o cálculo do IMC anotada: IMC = Peso / Altura². Também será preciso criar condicionais para verificar a situação do indivíduo (abaixo do peso, peso ideal ou sobrepeso), com base em seu IMC.

Eis algumas dicas para resolver o problema:

  1. Crie duas variáveis para armazenar valores reais, pois o peso e a altura certamente não serão inteiros.
  2. Leia o valor dessas variáveis dentro da função que calcula o IMC.
  3. Retorne o valor do IMC.
  4. Na função principal, chame a função que calcula o IMC e guarde seu retorno em uma variável inteira.
  5. Use uma estrutura condicional (if-else if-else) para identificar e imprimir na tela a situação do indivíduo.

Eis uma possível solução para a situação problema:

Código 3.6 | Cálculo do IMC
#include<stdio.h>

float calcularIMC() {
    float peso, altura, imc;
    
    printf("\nInforme seu peso (em Kg): ");
    scanf("%f", &peso);    
    printf("\nInforme sua altura (em metros): ");
    scanf("%f", &altura);
    
    imc = peso / (altura * altura);
    
    return imc;
}

int main(){
    float imc = calcularIMC();
    
    if (imc < 18.5) printf("\nIMC = %.2f, Situação: Abaixo do peso!", imc);
    else if (imc < 24.9) printf("\nIMC = %.2f, Situação: Peso ideal!", imc);
    else  printf("\nIMC = %.2f, Situação: Sobrepeso!", imc);
}
Fonte: elaborado pela autora.

Agora, você pode testar o código utilizando a ferramenta Paiza.io.

Avançando na prática

Função para gerar senhas

Uma empresa está ingressando no mercado de segurança de dados e você foi contratado para implementar um algoritmo que cria senhas automaticamente para os clientes. A ideia é pedir para o usuário digitar uma frase e, a partir das letras na frase, o algoritmo gerará uma senha aleatória.

O programa para geração de senhas pode ser construído utilizando uma função; além disso, a função rand() também pode ser usada para escolher, aleatoriamente, as letras da frase que serão usadas na senha. Veja no Código 3.7 uma possível solução para o problema.

Código 3.7 | Função para gerar senhas aleatoriamente
#include<stdio.h>
#include <stdlib.h>
#include <string.h>

#define TAM_FRASE 100
#define TAM_SENHA 6

char* gerarSenha() {
    int maxTamFrase = TAM_FRASE + 1; // precisa considerar o caractere de encerramento da string
    int tamSenha = TAM_SENHA + 1; // precisa considerar o caractere de encerramento da string

    char strFrase[maxTamFrase];
    char* strSenha = (char*) malloc(sizeof(char) * tamSenha);
    
    printf("\nEntre uma frase sem espaços em branco entre as palavras: ");
    fflush(stdin);
    fgets(strFrase, maxTamFrase, stdin);
    
    int tamFrase = strlen(strFrase); // quantidade de caracteres da frase informada
    srand(time(NULL)); // usa uma nova semente para o gerador de números aleatórios (rand)

    for(int i = 0; i < TAM_SENHA; i++) {
        int nAleatorio = rand() % tamFrase;
        strSenha[i] = strFrase[nAleatorio];
    }
    strSenha[tamSenha] = '\0';
    
    return strSenha;
}

int main(){
    char* senha = gerarSenha();
    printf("\nSenha gerada: %s", senha);
}
Fonte: elaborado pela autora.

Agora, você pode testar o código utilizando a ferramenta Paiza.io.

Bons estudos!

AVALIE ESTE MATERIAL

OBRIGADO PELO SEU FEEDBACK!