C# Essentials: Variáveis e Boas Práticas em Programação
Calculadora de IMC em C#: Guia Completo para Iniciantes
Imagine poder digitar sua altura e seu peso no console e, em segundos, descobrir em qual faixa de saúde você se encontra! A calculadora de IMC (Índice
Utilizando índices para melhorar o desempenho em consultasTorne suas consultas MongoDB mais eficientes com C#. Descubra como índices otimizam a performance e reduzem o tempo de resposta. de Massa Corporal) é uma das formas mais populares de relacionar peso e altura. Ela mostra se estamos abaixo, dentro ou acima do peso ideal. Neste desafio, vamos criar nossa própria calculadora de IMC em C# usando o console. Vamos lá?
Calcular o Índice
Utilizando índices para melhorar o desempenho em consultasTorne suas consultas MongoDB mais eficientes com C#. Descubra como índices otimizam a performance e reduzem o tempo de resposta. de Massa Corporal (IMC) é um exercício clássico para iniciantes em programação. Neste desafio, você vai aplicar variáveis
🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)Descubra como as variáveis em C# funcionam, com exemplos do mundo real, boas práticas de nomeação e dicas para otimizar seu código., operações matemáticas e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. estruturas condicionais
🤔 Estruturas Condicionais: Tomando Decisões com if, else e switchAprenda a dominar as estruturas condicionais em C# com exemplos e dicas práticas. Seu guia para decisões de código eficientes e organizadas. para criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. uma ferramenta prática. Vamos além da sintaxe básica: você entenderá como validar dados e organizar lógica de negócios simples.
Por que IMC?
- Combina matemática básica com tomada de decisão
- Útil para exercitar entrada/saída
Automatizando Processos de I/O com Async/Await em Ferramentas CLIEste tutorial em C# ensina como utilizar Async/Await para automatizar entrada e saída de dados em aplicações CLI, garantindo eficiência e escalabilidade. de dados - Base para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! sistemas de saúde reais
Índice🔗
- Objetivo do Desafio
- O que é IMC?
- Requisitos para o Projeto
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. - Passo a Passo
- Código de Exemplo
🚀 Scale Out com Redis: Atenda Milhões de Conexões!Integre o Redis com SignalR no .NET e distribua mensagens entre servidores, alcançando escalabilidade e alta performance em tempo real. - Configurando o projeto no Visual Studio
🛠️ Instalação do Visual Studio: Prepare sua Nave para Decolar!Prepare seu ambiente de desenvolvimento com o Visual Studio em uma aventura C#. Este tutorial prático ensina a instalar, configurar e personalizar sua IDE. - Coletando dados do usuário
- Implementando a fórmula do IMC
- Classificando o resultado
- Tratando erros
🎲 Desafio: Crie um Sistema de Login com Tratamento de Erros Robusto!Aprenda a criar um sistema de login robusto em C#, com tratamento de erros adequado, validação e segurança para evitar vulnerabilidades. de entrada - Versão final com aprimoramentos
- Conclusão
Objetivo do Desafio🔗
A ideia é simples: escrever um programa de console em C# capaz de:
1. Perguntar ao usuário o seu peso (em kg).
2. Perguntar ao usuário a sua altura (em metros).
3. Calcular o IMC a partir desses valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara..
4. Exibir o IMC calculado e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. uma breve mensagem sobre a faixa em que o usuário se encontra (ex.: abaixo do peso, peso normal, sobrepeso, etc.).
O objetivo não é só mostrar o resultado, mas compreender a lógica por trás do cálculo e como interpretar o valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança. retornado.
O que é IMC?🔗
IMC significa Índice
Utilizando índices para melhorar o desempenho em consultasTorne suas consultas MongoDB mais eficientes com C#. Descubra como índices otimizam a performance e reduzem o tempo de resposta. de Massa Corporal. É uma fórmula simples:
IMC = peso / (altura * altura)
Embora o IMC não seja um indicador perfeito, pois não considera fatores como massa muscular ou distribuição de gordura, ele ainda é amplamente usado como referência em avaliações iniciais de saúde.
Em termos de classificação
Como Escolher o Operador Correto em Diferentes Cenários de ConsultaAprenda a selecionar os operadores LINQ ideais para filtrar, projetar, ordenar e agrupar dados, garantindo código claro e aplicação eficiente. para adultos, geralmente temos algo assim (valores de exemplo):
| Intervalo de IMC | Classificação |
|---|---|
| Menos de 18,5 | Abaixo do peso |
| Entre 18,5 e 24,9 | Peso normal |
| Entre 25,0 e 29,9 | Sobrepeso |
| Entre 30,0 e 39,9 | Obesidade |
| 40,0 ou mais | Obesidade grave |
Requisitos para o Projeto🔗
- Conhecimento básico de variáveis
🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)Descubra como as variáveis em C# funcionam, com exemplos do mundo real, boas práticas de nomeação e dicas para otimizar seu código. (para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! armazenar peso, altura e IMC). - Entendimento de tipos numéricos
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. (float ou double) para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! lidar com casas decimais. - Uso de operações aritméticas.
- Uso de condicionais simples (opcional, caso queira classificar o IMC).
- Pró-atividade para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! testar diferentes valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. (para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! garantir que o resultado seja coerente!).
Passo a Passo🔗
1. Pedir entrada do peso: Você pode usar Console.ReadLine() e armazenar o valor em uma variável
🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)Descubra como as variáveis em C# funcionam, com exemplos do mundo real, boas práticas de nomeação e dicas para otimizar seu código. (ex.: peso).
2. Pedir entrada da altura: Mesma coisa, mas
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. lembre-se de receber como double ou float.
3. Converter as entradas de texto para um tipo numérico
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. (por exemplo, Convert.ToDouble ou double.Parse).
4. Calcular o IMC: Aplicar a fórmula IMC = peso / (altura altura).
5. Exibir o resultado no console: use Console.WriteLine.
6. (Opcional) Classificar o IMC: Use estruturas condicionais
🤔 Estruturas Condicionais: Tomando Decisões com if, else e switchAprenda a dominar as estruturas condicionais em C# com exemplos e dicas práticas. Seu guia para decisões de código eficientes e organizadas. para informar se o IMC está abaixo, dentro ou acima do ideal.
Código de Exemplo🔗
using System;
namespace CalculadoraIMC
{
class Program
{
static void Main(string[] args)
{
// Passo 1: Pedir peso
Console.Write("Digite seu peso (em kg): ");
string pesoEntrada = Console.ReadLine();
// Passo 2: Pedir altura
Console.Write("Digite sua altura (em metros): ");
string alturaEntrada = Console.ReadLine();
// Passo 3: Converter os dados de entrada para double
double peso = double.Parse(pesoEntrada);
double altura = double.Parse(alturaEntrada);
// Passo 4: Calcular o IMC
double imc = peso / (altura * altura);
// Passo 5: Exibir o resultado
Console.WriteLine($"Seu IMC é: {imc:F2}");
// Passo 6: Classificar o IMC (Opcional)
// Exemplos de classificação (valores podem variar conforme referência)
if (imc < 18.5)
{
Console.WriteLine("Abaixo do peso.");
}
else if (imc < 25)
{
Console.WriteLine("Peso normal.");
}
else if (imc < 30)
{
Console.WriteLine("Sobrepeso.");
}
else if (imc < 40)
{
Console.WriteLine("Obesidade.");
}
else
{
Console.WriteLine("Obesidade grave.");
}
}
}
}
O que está acontecendo aqui?
Console.Write("..."): mostra mensagens na tela sem pular
Projeções avançadas e uso de sort, skip e limit em consultas complexasDescubra como otimizar consultas MongoDB com projeções avançadas, sort, skip e limit em C#, garantindo performance e eficiência em aplicações .NET. para a próxima linha.Console.ReadLine(): captura o valor
🗂️ Dicionários: Acesse Dados por Chaves como um Mestre dos HashMaps!Aprenda a usar dicionários em C# de modo prático e eficiente. Nosso tutorial mostra criação, acesso e otimização para manipular dados com segurança. que o usuário digitou.double.Parse(): converte o texto
📝 Strings em C#: Manipule Textos como um Mestre dos Caracteres!Aprenda a dominar os segredos das strings em C# com técnicas de manipulação, concatenação, interpolação e boas práticas, impulsionando sua performance. digitado em um número decimal (double). Se o valor não for um número válido, seu programa pode dar erro (ex.: se alguém digitar “abc”).Console.WriteLine(): mostra mensagens pulando para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! a linha seguinte.imc:F2formata o IMC para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! 2 casas decimais, deixando a saída mais amigável.
Configurando o projeto no Visual Studio🔗
1. Crie novo projeto
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. Console App (.NET Core)
2. Nomeie como CalculadoraIMC
3. Verifique a estrutura básica:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Calculadora de IMC");
}
}
Coletando dados do usuário🔗
static void Main()
{
Console.Write("Digite seu peso em kg: ");
double peso = Convert.ToDouble(Console.ReadLine());
Console.Write("Digite sua altura em metros: ");
double altura = Convert.ToDouble(Console.ReadLine());
// Continua...
}
Atenção: Convert.ToDouble pode lançar erros se o usuário digitar valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. não numéricos. Mais adiante trataremos isso.
Implementando a fórmula do IMC🔗
static double CalcularIMC(double peso, double altura)
{
return peso / Math.Pow(altura, 2);
}
// No Main:
double imc = CalcularIMC(peso, altura);
Console.WriteLine($"Seu IMC é: {imc:F2}");
Dica: Math.Pow é mais preciso e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. legível que altura altura
Classificando o resultado🔗
static string ClassificarIMC(double imc)
{
if (imc < 18.5)
return "Magreza";
else if (imc < 25)
return "Normal";
else if (imc < 30)
return "Sobrepeso";
else
return "Obesidade";
}
// No Main:
string classificacao = ClassificarIMC(imc);
Console.WriteLine($"Classificação: {classificacao}");
Tratando erros de entrada🔗
static double LerDouble(string mensagem)
{
while (true)
{
Console.Write(mensagem);
if (double.TryParse(Console.ReadLine(), out double valor) && valor > 0)
return valor;
Console.WriteLine("Valor inválido! Digite um número positivo.");
}
}
// No Main:
double peso = LerDouble("Digite seu peso em kg: ");
double altura = LerDouble("Digite sua altura em metros: ");
Por que isso é importante?
- Evita crashes por inputs inválidos
- Garante que o programa só avance com dados válidos
- Melhora a experiência
🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades! do usuário
Versão final com aprimoramentos🔗
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Calculadora de IMC ===");
double peso = LerDouble("Peso (kg): ");
double altura = LerDouble("Altura (m): ");
double imc = CalcularIMC(peso, altura);
string classificacao = ClassificarIMC(imc);
Console.WriteLine($"\nIMC: {imc:F1}");
Console.WriteLine($"Classificação: {classificacao}");
ExibirLegenda();
}
static double LerDouble(string mensagem)
{
while (true)
{
Console.Write(mensagem);
if (double.TryParse(Console.ReadLine(), out double valor) && valor > 0)
return valor;
Console.WriteLine("Valor inválido! Use números positivos com . como separador decimal.");
}
}
static double CalcularIMC(double peso, double altura) => peso / (altura * altura);
static string ClassificarIMC(double imc)
{
return imc switch
{
< 18.5 => "Magreza",
< 25 => "Normal",
< 30 => "Sobrepeso",
_ => "Obesidade"
};
}
static void ExibirLegenda()
{
Console.WriteLine("\nLegenda (OMS):");
Console.WriteLine("Magreza: < 18.5");
Console.WriteLine("Normal: 18.5 - 24.9");
Console.WriteLine("Sobrepeso: 25 - 29.9");
Console.WriteLine("Obesidade: ≥ 30");
}
}
Features avançadas que você pode adicionar
📦 List<T>: Dinamismo além dos Arrays!Descubra como utilizar List<T> em C# de forma eficiente. Aprenda a criar, manipular e otimizar listas para diferentes cenários com exemplos práticos.:
- Histórico de cálculos
- Gráfico de progresso
- Cálculo de peso ideal
- Exportação para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! CSV
Conclusão🔗
Criar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. uma calculadora de IMC é um ótimo exercício para praticar leitura de dados do usuário, conversão de tipos e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. operações aritméticas em C#. Ela une programação com um conceito do mundo real, ajudando você a fixar tanto a lógica de código quanto a importância de validar dados.
Você criou uma aplicação completa com:
- Validação
Como Assegurar Validação e Cobertura de Código em Projetos LINQAprenda estratégias avançadas para testar consultas LINQ, garantindo cobertura de código e confiabilidade com ferramentas e práticas recomendadas. de entrada - Separação de responsabilidades em métodos
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. - Formatação profissional de saída
- Tratamento básico de erros
🎲 Desafio: Crie um Sistema de Login com Tratamento de Erros Robusto!Aprenda a criar um sistema de login robusto em C#, com tratamento de erros adequado, validação e segurança para evitar vulnerabilidades.
Próximo passo: Modifique o programa para calcular o IMC para várias pessoas ou integre com um sistema de armazenamento simples (arquivos texto
📝 Strings em C#: Manipule Textos como um Mestre dos Caracteres!Aprenda a dominar os segredos das strings em C# com técnicas de manipulação, concatenação, interpolação e boas práticas, impulsionando sua performance.).
Que tal transformar isso em uma classe
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. CalculadoraIMC com métodos estáticos para reutilização em outros projetos
🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades!? 🚀
Experimente testar com valores
🏗️ Classes vs. Structs: Quando Usar Cada Uma (e Não Quebrar a Cabeça)!Descubra como escolher entre classes e structs em C#. Aprenda sobre alocação de memória, passagem por valor e referência, e performance nesta explicação clara. diferentes de altura e peso e compare o que seu programa retorna com a tabela de referência de IMC. Isso permite que você verifique se está tudo funcionando corretamente e ainda aprimore seu aprendizado.
Boa prática e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. bons estudos!
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- FreeCodeCamp: C# Tutorials: www.freecodecamp.org/
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/
- Pluralsight: C# Learning Path: www.pluralsight.com/
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás