Linguagem de programação


O ato de programar é como uma conversa entre você e o computador, essa comunicação é feita através de uma linguagem de programação. Para um computador funcionar, ele precisa ser programado, você explica o que e o computador entende e executa.

C# será a linguagem de programação que iremos usar para programar o IMC. Ela é uma linguagem simples e poderosa, herda muito dos melhores recursos das linguagens C++ e Visual Basic resultando em uma linguagem de programação mais limpa e aumentando a produtividade para a programação nutricional.

Aprenda programar o IMC com a programação nutricional


Variáveis


Para processar qualquer informação em um computador um programa primeiro precisa armazenar os dados na memória. Isso é feito através das variáveis.

A finalidade de uma variável é armazenar temporariamente dados na memória do computador para que possam ser usados em cálculos ou outro processamento qualquer.

Uma variável deve ser identificada por um nome dado pelo programador e somente poderá conter um valor por vez.

Em nosso programa para calcular o IMC iremos utilizar 3 variáveis que serão chamadas de peso, altura e imc.

Declarando variáveis


As variáveis peso e altura vão receber os dados digitados através do teclado e estarão prontas para serem usadas em nosso programa para calcular o IMC.


Tipos de dados


Quando criarmos uma variável, precisamos definir o tipo dessa variável.

Definindo tipos de dados para as variáveis


Os três tipos básicos de variáveis são os tipos numéricos (representados por números inteiros ou reais), Caracteres (representados por valores alfabéticos ou alfanuméricos) e lógicos.


Tipos Inteiros


Tipos de dados inteiros em C#

* Não se preocupe em decorar essa tabela. O único tipo que você realmente irá usar é o tipo int.


Tipos Reais


Tipos de dados reais em C#


Tipos Caracteres


Tipos de dados caracteres em C#

Obs.: Os tipos alfanuméricos são interpretados pelo computador como texto, por isso, o computador não tem a capacidade de usa-los em cálculos de forma direta como em tipos numéricos.

Eles precisam ser convertidos para tipos numéricos antes de serem usados em cálculos. Por exemplo:

double idade;
idade = Convert.ToDouble(“25”);

No exemplo de código acima, o número “25” está entre aspas indicando que ele é um texto (caracteres alfa numéricos do tipo string), sendo assim, ele precisa ser convertido para um int (inteiro) ou para um double (real) antes de ser usado em um cálculo.

O comando Convert.ToDouble(“25”) converterá a string “25” em um número do tipo double preparando a variável idade para ser usada em algum cálculo.


Declarando as variáveis para nosso programa


Sabendo o que são variáveis e tipos de dados, iremos agora definir como ficarão nossas variáveis da forma como escreveremos em nosso programa.

Para declarar variáveis em seu código faça assim:

double peso;
double altura;
double imc;

Ou assim:

double peso, altura, imc;


Atribuição de valores (operadores de atribuição)


Operadores matemáticos de atribuição - C#


Entrada de Dados


A variável peso do tipo double receberá um valor real (70,5) referente ao peso do paciente.

peso = 70,5;

O sinal de = no contexto da programação é diferente da matemática convencional e se chama operador de atribuição. O valor 70,5 será atribuído a variável peso, logo peso valerá 70,5.

A variável altura do tipo double receberá um valor real (1,65) referente à altura do paciente.

altura = 1,65;

O valor 1,65 será atribuído a variável altura, logo altura valerá 1,65.


Processamento


A variável imc também do tipo double receberá o resultado do cálculo do IMC (25,9).

imc = peso / (altura * altura);     equivalente a:     imc = 70,5 ÷ (1,65 x 1,65)

Esse comando calcula o IMC e logo em seguida o resultado do cálculo será atribuído a variável imc que agora conterá o valor 25.9.


Saída de Dados


Tendo o IMC já calculado podemos mostrar o resultado na tela do computador.

lblResultado.Content = imc;

O comando lblResultado.Content = imc; mostra na tela o IMC do paciente.


Calculando o IMC (operadores matemáticos)


Operadores matemáticos - C#

Tendo definido nossas variáveis e seus respectivos tipos de dados, podemos agora programar o cálculo do IMC usando essas variáveis.

Sabendo que a fórmula para calcular o IMC é:

Formula para calcular o IMC


Nosso programa ficará assim:

Programa para calcular o IMC

Repare que utilizamos / em vez de ÷ para dividir e usamos * em vez de x para multiplicar.


Precedência de operadores


A prioridade ou precedência de operadores controla a ordem em que os operadores são avaliados.

Considere a expressão a seguir:

2 + 1 * 3

Qual deve ser efetuado primeiro a adição ou a multiplicação? A ordem das operações é importante por que muda o resultado.

Se efetuar primeiro a adição e depois a multiplicação o resultado da operação será:

2 + 1 * 3
3 * 3
9

Se calcular primeiro a multiplicação depois a adição o resultado será:

2 + 1 * 3
2 + 3
5

Na programação de computadores os operadores multiplicativos ( * e / ) tem precedência sobre os operadores aditivos ( + e - ), assim, em expressões como 2 + 1 * 3 a multiplicação é efetuada primeiro, seguida pela adição. O resultado para 2 + 1 * 3 é 5.

Os parênteses podem ser usados para anular a precedência.

(2 + 1) * 3
3 * 3
9

(2 + 1) será executado primeiro por que estão dentro dos parênteses.

Você já viu que os operadores multiplicativos (* e /) tem precedência sobre os aditivos (+ e -).

Agora e se a expressão contiver somente operadores multiplicativos, como no caso do cálculo do IMC?

Nesse caso como os operadores tem a mesma precedência, os cálculos são realizados da esquerda para direita.

Por exemplo

IMC = peso / altura * altura

Considerando que o peso seja 70 e a altura 1,70 o cálculo será feito dessa forma:

IMC = 70 / 1,70 * 1,70
IMC = 41,1 * 1,70
IMC = 70

Esse cálculo estará incorreto, por que, a divisão foi feita primeiro. Para corrigir isso, acrescente os parênteses na operação que você quer que seja realizada primeiro.

IMC = 70 / (1,70 * 1,70)
IMC = 70 / 2,89
IMC = 24,22

Agora sim! O cálculo do IMC foi realizado corretamente, pois, sabendo que a multiplicação nessa expressão deve ser feita primeiro, você usou os parênteses ( ) para forçar o cálculo da multiplicação antes da divisão.


Métodos


Os métodos são uma forma de identificar as funções no seu programa.

Imagine que você crie um programa que calcule o IMC, o peso ideal, a meta de peso e a % de gordura de seus pacientes. Como você vai identificar cada função no seu programa?

É aí que entram os métodos!

Um método pode ser definido como uma sequência nomeada de instruções.

Exemplo

private void Calcular_IMC()
{
   // Aqui você coloca as instruções para calcular o IMC.
}

private void Calcular_Peso_Ideal()
{
   // Aqui você coloca as instruções para calcular o peso ideal.
}

private void Calcular_Meta_De_Peso()
{
   // Aqui você coloca as instruções para calcular a meta de peso.
}

private void Calcular_Porcentagem_De_Gordura()
{
   // Aqui você coloca as instruções para calcular a % de gordura.
}

Vamos acrescentar o nosso código para calcular o IMC dentro de um método.

private void Calcular_IMC()
{
   double peso;
   double altura;
   double imc;

   peso = 70,5;
   altura = 1,65;

   imc = peso / (altura * altura);

   lblResultado.Content = imc;
}

A vantagem de ter funções é que você poderá chama-las pelo nome para serem executadas de qualquer parte de seu programa.


Desenho da interface (tela do programa)


Agora vamos criar a tela do nosso programa. Essa tela irá aparecer no monitor do computador e será utilizada para entrada de dados, clicando no botão calcular o nosso método para o cálculo do IMC será chamada (processamento) nosso código será executado e o IMC do paciente será mostrado na tela.

Por exemplo, nossa tela para o cálculo do IMC terá 2 caixas de entrada (TextBox) para capturar o peso e altura do paciente, um botão (Button) para calcular o IMC e um rótulo (Label) para mostrar o resultado.

Você irá programar esse botão para que quando for clicado chame a função para calcular o IMC.

Tela do programa para calcular o IMC feita no visual studio 2017


Você poderá desenhar essa tela da forma que quiser, acrescentar imagens, mudar as cores, posições e tamanho dos controles.


Esse é o evento click do botão calcular. Sempre que o botão calcular for acionado (click) esse evento será executado.

private void btnCalcular_Click(object sender, RoutedEventArgs e)
{
   Calcular_IMC();
}


Método para calcular o IMC.

private void Calcular_IMC()
{
   double peso;
   double altura;
   double imc;

   peso = 70,5;
   altura = 1,65;

   imc = peso / (altura * altura);

   lblResultado.Content = imc;
}

Dessa forma quando o botão Calcular for clicado você poderá chamar a função específica que você quer que seja executada, utilizando o nome do método que tem o código específico que você criou.


Instalando o Visual Studio 2017 Comunity (ferramenta para desenvolvimento de software)


Faça o download gratuito do Visual Studio 2017 Comunity.

Essa ferramenta tem tudo o que você precisa para criar softwares e é totalmente gratuita.

Para baixar a sua cópia acesse: https://www.visualstudio.com/pt-br/downloads/

Download gratuíto do Visual Studio 2017


Mão na massa


Vamos passar da teoria à prática criando um novo projeto.

1 – Inicie o Visual Studio 2017 Comunity.

2 – Clique no menu Arquivo->Novo->Projeto.

Como criar um novo projeto no visual studio 2017

3 – Selecione na caixa de diálogo a opção Aplicativo WPF. Informe um nome para o seu projeto digitando no campo nome calcular_imc. Clique no botão ok.

Definindo um nome para o projeto WPF


Adicionando controles (telas do sistema)


Os controles são componentes visuais responsáveis pela comunicação direta do usuário com o programa.

Eles normalmente são usados para efetuar a entrada de um determinado dado digitado pelo usuário do programa e também para mostrar o resultado de um processamento ou um cálculo realizado por debaixo dos panos pelo nosso código.

Para o nosso exemplo, iremos usar 4 tipos de componentes.

Na caixa de ferramentas, você encontra diversos componentes visuais para criação das telas de seus programas.

Na janela de propriedades, você poderá alterar as características (as cores, posição, tamanho, etc.) dos controles.

Aba de designer.

Criação das telas usando a aba designer no visual studio

Aba de código.

Criação do código do software no visual studio


Criando a interface do programa Calcular IMC


1 – Na caixa de ferramentas encontre o componente textBox e arraste dois para o formulário.

Posicione-os da forma que achar melhor.

Acrescentando componentes TextBox na tela do programa

2 – Agora arraste dois componentes textBloks e posicione-os acima dos textBox.

Usando commponentes TextBloks para identificar os controles

3 – De um clique no primeiro TextBlok para seleciona-lo e altere a propriedade Text, Digite “Peso”.

Faça a mesma coisa com o segundo TextBlok e altere sua propriedade Text para “Altura”.

Alterando a propriedade Text dos TextBloks para peso e altura

4 – Arraste um componente Button para o formulário.

Altere a propriedade Content do botão digitando “Calcular”.

Acrescentando um botão (componente button) no formulário

5 – Arraste um componente Label para nossa tela.

Esse componente será encarregado de mostrar o resultado (saída de dados) do nosso programa.

Na propriedade Content escreva “Resultado” e na propriedade Name digite lblResultado.

Acrescentando um Label (rótulo) para mostrar o cálculo do IMC

6 – Dê um nome aos controles.

Selecione um por um dos componentes e altere a propriedade nome.

TextBox1 -> txtPeso, TextBox2 -> txtAltura e Button1 -> btnCalcular.

Alterando a propriedade nome dos controles TextBox e Button

Isso é necessário para que você entenda para que serve cada componente em seu código.

Por exemplo, você poderá capturar os valores digitados na tela e passa-los para dentro de seu código e assim realizar algum cálculo com esses valores.

Você usará o nome dos componentes para referencia-los em seu código.

O componente txtPeso (TextBox) receberá o peso do paciente.

O componente txtAltura (TextBox) receberá a altura do paciente.

O botão btnCalcular (Button) irá disparar um evento que será encarregado de chamar nosso método que contém o código que irá calcular o IMC e mostrar o resultado na tela.

O componente lblResultado (Label) mostrará o IMC do paciente.


Acrescentado o código para calcular o IMC


1 – De um clique duplo no botão Calcular.

Repare que foi criado automaticamente um evento que irá disparar quando o botão Calcular for clicado.

private void btnCalcular_Click(object sender, RoutedEventArgs e)
{
   // Quando o botão for clicado, tudo que estiver aqui será executado.
}

2 – Acrescente uma chamada para o nosso método Calcular_IMC() no evento click do botão Calcular.

private void btnCalcular_Click(object sender, RoutedEventArgs e)
{
   Calcular_IMC();
}

private void Calcular_IMC()
{
   double peso;
   double altura;
   double imc;

   peso = 70,5;
   altura = 1,65;

   imc = peso / (altura * altura);

   lblResultado.Content = imc;
}

Esse código fará com que nosso método Calcular_IMC() seja chamado e executado quando clicarmos no botão Calcular.

Nosso programa está quase pronto, faltam somente alguns detalhes:

Repara que em nosso código os valores de peso e a altura já estão pré-definidos dentro do código.

peso = 70,5;
altura = 1,65;

Delete o peso e a altura e acrescente o código a seguir:

private void Calcular_IMC()
{
   double peso;
   double altura;
   double imc;

   peso = Convert.ToDouble(txtPeso.Text);
   altura = Convert.ToDouble(txtAltura.Text);

   imc = peso / (altura * altura);

   lblResultado.Content = string.Format("IMC: {0:F1} kg/m²", imc);
}

Esse código será encarregado de ler o peso e altura que foram digitados na tela nos componentes txtPeso e txtAltura.

O comando Convert.ToDouble() converte o peso e a altura para um formato numérico, pois, por padrão tudo o que é digitado nas caixas de texto (TextBox) são tratados como texto.

Por exemplo, mesmo que você digite no campo peso “75” esse valor será um tipo alfanumérico, sendo considerado texto e não número. Simplesmente converta o texto digitado para um valor numérico usando o comando Convert.ToDouble(txtPeso.Text).

Digitando o peso (kg) do usuário para calcular o IMC

Precisa ser convertido para um valor numérico para que possamos manipula-lo dentro de nosso código.

A propriedade .Text de nossos componentes de entrada de dados txtPeso.Text e txtAltura.Text equivale ao que foi digitado dentro das caixas de texto. É como se você estivesse dizendo: recupere o texto que foi digitado nesse componente.

Acrescente também o comando string.Format("IMC: {0:F1} kg/m²", imc); que converte a variável imc para texto e formata o valor do imc para que contenha apenas uma casa decimal depois da vírgula.

Como formatar string de caracteres com string.format() - Saída de ddos



Executando o programa


Clique no botão executar ou pressionando F5, o programa será executado.

Tela do programa para calcular o IMC


Digite o peso e a altura e clique no botão Calcular.

Digitando o peso e altura do usuário para calcular o IMC


O resultado será mostrado no componente lblResultado (Label) mostrando o IMC do paciente.

Resultado do programa Calcular IMC - Resultado


Os conceitos que você aprendeu nesse artigo são a base para criação de qualquer software. Compreendendo o que foi ensinado aqui, você terá dado um passo muito importante para se tornar um programador nutricional.