"Não viva nesse mundo de loucos, viva loucamente neste mundo"

segunda-feira, 16 de abril de 2012

Calculadora tipo windows C#

Comecei agora em C#, e fiz uma calculadora básica, tipo a que tem no windows no Visual Studio 2008. Tive muitas dúvidas e me bati toda pra conseguir concluir, mas aí está. 
Ao abrir o VS 2008, no Form1.cs [Design], adicionei o seguinte:
- 1 TextBox, alterei o (name) para visor;
- 10 buttons para os números de 0 ... 9 (não alterei os names);
- 4 buttons para os sinais de operação, alterei os names para btmais, btmenos, btdividido e btvezes;
- 1 button para o sinal igual, alterei o nome para bigual;
- 1 button para zerar o visor (C da calculadora), alterei o nome para bzerar;
- 1 button para vírgula, alterei o nome para bvirgula.


ficou assim:


Agora tenho que fazer os comandos de cada button (foi a treeeeeeeva, pq eu sabia de naaadica de nada).
Para isso, dê dois clicks em cima do botão que você quer atribuir um comando. Vai aparecer tipo assim:



OBS.: Dentro do public partial class Form1 : Form, eu declarei as variáveis:

 double x, y, result, variavel1;   /*x para o primeiro número que eu clicar; y para o segundo número;                    result para o resultado (claro) e variavel1 para armazenar o primeiro número (x) mais a operação (no button das operações, essa parte vai ficar mais clara).*/

 int op; // nos buttons de operação, escolhi atribuir um código, por isso vou usar um valor inteiro

 bool res = false; // essa string booleana é para verificar se tem alguma coisa no meu visor






E o código vai ser esse (para o button1, mas tbm se aplica aos outros buttons de números, pq é a mesma lógica, só muda os números, tipo 0, 1, 2, 3 ...) :


private void button1_Click(object sender, EventArgs e)
        {
            if (res)
                visor.Text = "";
            res = false;
            if (res == false)
            {
                visor.Text += Convert.ToString(1);
                if (x != 0)
                    y = 1;  
                else
                    x = 1;
            }
        }

OBS.: Dentro do public partial class Form1 : Form, eu declarei as variáveis:


 double x, y, result, variavel1;   /*x para o primeiro número que eu clicar; y para o segundo número; result                 para o resultado (claro) e variavel1 para armazenar o primeiro número (x) mais a operação (no button das operações, essa parte vai ficar mais clara).*/

 int op; // nos buttons de operação, escolhi atribuir um código, por isso vou usar um valor inteiro

 bool res = false; // essa string booleana é para verificar se tem alguma coisa no meu visor


Para os botões de operação (essa parte que me fazia perder a cabeça -- ), tenho o seguinte código :


private void bmais_Click(object sender, EventArgs e)
        {
                op = 1;                           // operação recebe a função '+', que tem código 1
                variavel1 = Convert.ToDouble(visor.Text);  // variável1 armazena o que está na tela
                                                                             // que é o 1º numero (x) e a operação
            visor.Text = "";                    // depois o visor é zerado, para receber o 2º número
        }

        private void bmenos_Click(object sender, EventArgs e)
        {
            op = 2;                               // operação recebe a função '-', que tem código 2
            variavel1 = Convert.ToDouble(visor.Text); // variável1 armazena o que está na tela
                                                                             // que é o 1º numero (x) e a operação
            visor.Text = "";                    // depois o visor é zerado, para receber o 2º número
        }

        private void bvezes_Click(object sender, EventArgs e)
        {
            op = 3;                               // operação recebe a função '*', que tem código 3
            variavel1 = Convert.ToDouble(visor.Text); // variável1 armazena o que está na tela
                                                                             // que é o 1º numero (x) e a operação
            visor.Text = "";                    // depois o visor é zerado, para receber o 2º número         
        }

        private void bdividido_Click(object sender, EventArgs e)
        {
            op = 4;                              // operação recebe a função '/', que tem código 4
            variavel1 = Convert.ToDouble(visor.Text);    // variável1 armazena o que está na tela
                                                                             // que é o 1º numero (x) e a operação
            visor.Text = "";                    // depois o visor é zerado, para receber o 2º número
        }





Agora, quando eu apertar o botão igual, vou verificar o que tem em op (que é o meu código da operação), para poder operar entre os números que estão em x e y. Segue o código:


 private void bigual_Click(object sender, EventArgs e)
        {
            try
            {
                y = Convert.ToDouble(visor.Text);
                if (op == 1)                                //se a operação estiver armazenado a função mais
                    result = variavel1 + y;            // o resultado será a soma das variáveis
                if (op == 2)                             //se a operação estiver armazenado a função menos
                    result = variavel1 - y;          // o resultado será a subtração das variáveis
                if (op == 3)                            //se a operação estiver armazenado a função vezes
                    result = variavel1 * y;         // o resultado será a multiplicação das variáveis
                if (op == 4)                               //se a operação estiver armazenado a função dividido
                    result = variavel1 / y;              // o resultado será a divisão das variáveis

                visor.Text = Convert.ToString(result);  //mostra no visor o valor de result
                variavel1 = Convert.ToDouble(visor.Text);
                res = true;
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }



Para zerar o visor (e zera tudo), é bem mais simples:



        private void bzerar_Click(object sender, EventArgs e)
        {
            visor.Text = "";
            x = 0;
            variavel1 = 0;
            y = 0;
        }

Para o botão da vírgula, também foi complicado, pois não sabia da existência do IndexOf (pra fazer com que a vírgula não se repita), mas consegui (Amém!) tá aí o código:


private void bvirgula_Click(object sender, EventArgs e)
        {
            int virg;
            virg = visor.Text.IndexOf(",");   //Procura por todo visor o caracter "," e se achar
            if (virg >= 0)                    //retorna a void, ou seja, faz nada
                return;
            else                           //se não achar, a vírgula é inserida
                visor.Text += ",";
         
        }




Agora é só apertar em Debug, e você verá como é satisfatório fazer uma calculadora kkkk
Qualquer dúvida... estamos aqui pra tentar ajudar né :)

Até mais.



quarta-feira, 15 de dezembro de 2010

Quanto tempo

Caraca, quase um ano que criei esse blog e nem lembrava .. normal. Parece que eu so vasculho a internet mesmo quando venho de ferias aqui com o papai!
Durante esse ano muitas coisas aconteceram! Mas antes de relatar um pouco dessas aventuras queria desejar um Feliz Natal a todos e que nao esquecam que o Natal nao e so presentes, e o nascimento de Jesus Cristo, nosso salvador, e que devemos comemorar mais um aniversario dele com muita fe e alegria. Desejar tambem um feliz ano novo, que 2011 seja um ano de muitas vitorias, muita aprendizagem e felicidade, porque quem acredita sempre alcanca!
Pois e... o ano de 2010 foi realmente 10! Para mim, mais um ano de indecisao, porem aprendi bastante com tudo que ocorreu. Moramos com a mamae o ano todo, mas eu praticamente morei no colegio, pelo fato de ser integral. Foi uma sensacao unica! Sei que tudo que vivi la nunca mais vai voltar, assim como o que eu vivo hoje, mas tive a oportunidade de conhecer um pouco da vida com mais responsabilidades. Amadureci bastante, mas ainda nao descobri se isso foi bom ou ruim, porque muitas vezes me sinto uma pessoa mais ... chata. Antes eu era bem mais brincalhona, divertida, presente e essas coisas... agora me sinto cada vez mais longe dessas qualidades. Espero que outras qualidades aparecam ou pelo menos que essas voltem.
Logo no fim do ano, relembrei de uma frase muito importante " o amanha eh consequencia do hoje". Nao sei exatamente como descrever o que penso quando escuto essa frase, eh algo do tipo que todas suas acoes feitas hoje, irao ser refletidas em um futuro proximo. Como aquela frase.. tudo que vai, volta.

E foi isso... Na verdade, foi bem mais! Mas depois escrevo mais... Ah, falando nisso, mais tarde eu coloco uma "historinha" bem legal aqui :)

sábado, 26 de dezembro de 2009

Iniciante...

Pois é.. hoje, dia 26/12/09 estou fazendo esse blog..
Eu sou Amanda, vou postar um pouco sobre o que passo..
espero que vocês gostem.
Bem, eu sou filha de pais separados, minha mãe resolveu sair do estado e casou de novo, eu e minha irmã fomos com ela. Desde então vivemos pra lá e pra cá, todo ano a indecisão de onde vai ficar, com mamãe ou papai? Acho que os próximos três anos vou ter que morar com minha mãe, porque consegui uma vaga em uma escola muito boa, não posso perder essa oportunidade, mas minha vontade mesmo era de ficar aqui com o papai... toda minha família e amigos estão sabe.. é complicado.. mas no meio de tudo isso eu sempre me divirto :D