quarta-feira, 26 de agosto de 2009

5 - Introdução à variáveis e operadores: Calculando a média semestral da UNIP em C#

  (Por : Rodrigo Ribeiro da Costa Barbosa - rodrigorcbarbosa@hotmail.com)

  Estou postando este tutorial como uma forma de estudo da aula de segunda-feira (26/08/2009) e também como uma forma de introduzir conceitos que serão amplamente aprofundados a seguir como Variáveis e Cálculos.

Introdução à Variáveis.

  Na faculdade em que estudo, o sistema de cálculo da média semestral se dá da seguinte forma matemática:

  Média semestral = [ (Nota da primeira prova) X ( Peso 3) + (Nota da segunda prova) X ( Peso 3) + (Nota da prova integrada institucional) ] X ( Peso 4)  : 10

De uma maneira mais simplificada, vou atribuir legendas a estes valores aonde:
Nota da primeira prova = np1
Nota da segunda prova = np2
Nota da prova integrada institucional = pii
Média semestral = ms
* Os pesos são valores fixos (constantes) onde para a 1ª e 2ª prova o peso é 3 e para a prova integrada o peso é 4.

 Desta forma , poderemos simplificar nosso cálculo  matemático para:

ms=(np1+np2)x0.3+piix0.4

 Olha só como ficou bonito ! Podemos notar que todos os valores da fórmula que estão em vermelho irão mudar de aluno para aluno, pois sabemos que estes valores podem "VARIAR" de acordo com as notas do aluno em questão. Toda fórmula restante , é uma "CONSTANTE" que nenhum aluno poderá alterar na hora de calcular sua média .

  Quando escrevemos um programa, todas as entradas que serão atribuídas ou modificadas pelo usuário serão denominadas variáveis . Estas variáveis representam uma posição na memória do computador aonde o programa poderá acessá-las ou modificá-los durante sua execução .
  Podemos entender melhor se pensarmos da seguinte forma:
 Se eu lhe peço para guardar meu telefone , você irá armazenar este número na sua memória correto?
 Este número é uma variável que estará assumindo uma posição temporária na sua memória até que você o anote ou decore-o definitivamente pois se não o fizer provavelmente após algum tempo você o esquecerá!
  Já reparou como as informações não salvas em nossos programas são perdidas após o mesmo travar ou desligar sem serem salvos ? Então , o princípio é o mesmo !

 As variáveis possuem algumas propriedades que citarei de modo simplificado e resumido aqui .
  • Nome:  É a identificação da variável pelo programa e nunca devemos ter duas variáveis com o mesmo nome dentro do mesmo escopo de execução no nosso programa.
Ex :   np1=7 ( leia-se : nota da 1º prova igual a sete)
      Onde np1 é o nome atribuido a variável "nota da primeira prova " !
  • Valor : É o conteúdo da nossa variável, este valor pode ser alterado ou modificado pelo usuário! . Mais adiante mostraremos como atribuímos estes valores no programa.
Ex :   np1=7
    Onde 7 é o valor atribuido a nossa variável ( e poderá ser modificado de aluno para aluno, ao menos que todos os alunos da faculdade tirem 7 na primeira prova ! :-)
  • Tipo: É o tipo de váriável em questão. Uma váriável conter valores numéricos, lógicos, de pontos flutuantes , decimais ,strings e objetos ( aprofundaremos o conceito de cada uma delas nos tutoriais seguintes).
  • Visibilidade ou Escopo: São os lugares de onde essa variável será alcançada por outras partes do código, veremos mais sobre isso quando aprofundarmos em classes, métodos e estruturas de repetição.
  • Endereço: Como dito anteriormente, cada variável tem um endereço único que lhe é atribuído na memória, esse conceito será aprofundado quando estudarmos ponteiros .
  Agora já sabemos o suficiente para trabalharmos com os primeiros programas utilizando variáveis :-)

   O código dado em sala de aula foi o seguinte (comentado e com leves alterações):

using System;

namespace calculamedia
{
    class programa1
      {
          static void Main()
             {
                // 1 - Declarando as variáveis:
                float np1, np2, npii, ms;
                  // 2 - Atribuindo valor as variáveis
                  np1 = 6.5f;                                       
                  np2 = 9.4f;
                  npii = 3.0f;
                  // 2.1 - Calculando a média e atribuindo o resultado a variável ms:
                  ms=(np1+np2)*0.3f+npii*0.4f;
                    // 3 - Exibindo o resultado :
                    Console.WriteLine("Nota da Prova 1 = {0}",np1);
                    Console.WriteLine("Nota da Prova 2 = {0}",np2);
                    Console.WriteLine("Nota da Prova Integrada = {0}",npii);
                    Console.WriteLine("Media Semestral = {0}",ms);
                    Console.ReadLine();
              }
        }
}
 

  Agora vamos entender oque aconteceu !

 Na parte 1 , declaramos as variáveis ou seja, estamos dizendo para nosso programa quem são e com quais tipos de variáveis estamos trabalhando. Quem são as variáveis do nosso programa fica fácil identificar, são elas: np1, np2, npii ms  mas você talvez tenha estranhado o argumento "float" no início da linha !.
  Prometo que farei um tutorial só aprofundando nos tipos de variáveis em breve, por ora, basta saber que float é um tipo de variável numérica que irá trabalhar com até 7 casas decimais ,afinal nossa nota pode ser um valor inteiro ( ex: 6 ) ou decimal ( ex: 8,5).  Então nesta linha estamos dizendo (a grosso modo) ao nosso programa :
 As variaveis do nosso programa serão np1, np2, npii, ms e elas são do tipo float !

  Na parte 2 ,  estamos atribuindo os valores de nossas variáveis. Estamos dizendo quanto o aluno obteve em cada prova. Mas nesse ponto se você estiver atento pode se perguntar !
  "Poxa ... mas você não disse que as variáveis são valores cujo o usuário atribui no programa? Porque estamos atribuindo diretamente no código ?"
   É que neste momento, estamos apenas entendendo o conceito, este código ainda tem muito a evoluir e por enquanto é somente um "projeto" de programa em que trabalharemos durante os seguintes tutoriais quando aprenderemos novos recursos da linguagem C# :-) .
   Podemos reparar que em cada um dos valores de cada uma das variáveis temos um "f" no final, isso não requer nenhuma explicação aprofundada, pois é apenas uma notação que terá que ser usada para valores numéricos do tipo float.
  Se você estiver afiado, vai notar que na verdade a parte 2.1 faz parte da dois , pois ainda estamos atribuindo valor a variável "ms" (média semestral) . O resultado do programa também é uma variável !
e neste caso é necessário efetuar um cálculo que resultará neste valor !
O cálculo está descrito da seguinte maneira:
ms=(np1+np2)*0.3f+npii*0.4f ;
Vamos lembrar da fórmula matemática que montamos lá em cima ?
ms=(np1+np2)x0.3+npiix0.4

 São praticamente iguais ! A diferença está nos OPERADORES ARITMÉTICOS  !
Afinal porque esta diferença?
 De modo exemplificado podemos dizer que o compilador do C# ( entre outras linguagens ) entende o operador matemático de multiplicação "x" como uma letra (caractere) e "." como um separador de casas decimais, logo teriam  que arrumar um subistituto para ele. Sendo assim, foi definido o uso do "*" para operações de multiplicação ! No resto da fórmula continuam todos os operadores iguais ( += ).
 Assim como os tipos de variáveis, também aprofundaremos nos operadores posteriormente,ok?
Desse modo fica fácil enxergar que estamos utilizando as variáveis atribuídas antes (np1, np2, pii) dentro de uma formula matemática  (mf=(np1+np2)*0.3f+npii*0.4f ;) para definir o valor da média semestral (mf ).

   Na parte 3 , estamos utilizando a função "WriteLine" para mostrar um texto pré definido juntamente com o valor das variáveis do programa. A princípio pode parecer confuzo este método de atribuição mas explicando isso ficará claro como um cristal  ;-).

Vejamos:
Console.WriteLine("Nota da Prova 1 = {0}",np1); 
Esta é uma parte dó código que diz o seguinte
Console.WriteLine --> Escreva na tela do console :
("Nota da P1 =      --> Nota da P1 =
{0}",np1); --> E substitua o valor de {0} pelo valor da variável que está sendo definida a seguir. Ou seja : 6.5 !
A saída deste comando no console ficará : "Nota da Prova 1 = 6,5"

Agora vamos supor que nosso programa fosse informar todas as notas de umas vez só !
Vamos ver como ficaria o código...

Console.WriteLine("Nota da P1 = {0} - Nota da P2 = {1} - Nota da Prova Integrada = {2} - Média semestral = {3}",np1,np2,npii,ms);

O C# começa a contar as variáveis a partir do "0" então na sequencia lógica ele chama as variáveis do seguinte modo:
{0} para  np1
{1} para  np2
{2} para  npii
{3} para  ms

Agora deve ter ficado cristalino o conceito né ?

A saída deste comando no console será:

Nota da P1 = 6,5 - Nota da P2 = 9,4 - Nota da Prova Integrada = 3,0 - Média semestral = 5,97

Espero que tenham entendido o conceito inicial de variáveis ( declarações e atribuições), constantes e operadores :-)

Abraço e até a próxima !

4 comentários:

  1. cara não tive tempo pra ler todo seu post, mais parabens pela iniciativa... tem um errinho aqui no final do post... vc inverteu as barras... "//" <> "\\"

    ResponderExcluir
  2. Achei legal sua postagem, agora entendi essa matéria...show de bola.

    ResponderExcluir
  3. Minha gravação caiu (ainda bem pq o mundo lá fora tb. ... rs) e cá estou na TV caçando o ver ver na net...então lembrei da sua indicação e vim conhecer seu blog!
    Vc tem razão (e a colega jornalista tb.) ... seu texto é ótimo, além da didática...olha que eu começo a entender um pouco de TI?!!! rsrsrsrs
    Adorei, Prof. Rodrigo...passarei por aqui + vezes para não perder as aulas :D
    Kisses, Léla!

    ResponderExcluir