• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

BigBoy

[Encerrar]Formula Resolvente

9 mensagens neste tópico

tipo, eu meti os valores do a b e c e delta como inteiros, mas eles são reais, já não sei como se faz, alguém me diz?

ah e para a raiz, Math.Sqrt(XXXXXX) é isto?

codigo reformulado

Cumpz :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Falta indicares ao método WriteLine onde queres que os parametros apareçam.

Altera as linhas para

Console.WriteLine("O valor de X1 é: {0}",X1);
Console.WriteLine("O valor de X2 é: {0} ",X2);

Repara no {0}, serve para indicar onde é que o parametro de indice zero vai aparecer. Se tiveres mais parametros é só ir incrementando o valor dentro das chavetas, isto é

Console.WriteLine("O valor de X1 é: {0}\nO valor de X2 é: {1} ", X1, X2);

Isto é apenas uma forma simplificada do que podes fazer, podes formatar os dados, como por exemplo a quantidade de casas decimais que serão apresentadas, etc. Consulta a documentação para veres mais exemplos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e em relação a raiz, sabes algo?

Se leres a documentação do método que apresentaste talvez chegues à conclusão que é o que precisas :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes simplificar um bocado um codigo ao meter os parse (mudei para convert.int32) e as atribuições os 2 juntos.

// Main.cs created with MonoDevelop
// User: kurayama at 21:37 11-11-2008

using System;

namespace frmResolvente
{
       class MainClass
       {
               public static void Main(string[] args)
               {
                       int a,b,c,delta;

                       Console.WriteLine("Introduza o valor de a:");
                       a = Convert.ToInt32((Console.ReadLine()));
                       Console.WriteLine("Introduza o valor de b:");
                       b = Convert.ToInt32((Console.ReadLine()));
                       Console.WriteLine("Introduza o valor de c:");
                       c = Convert.ToInt32((Console.ReadLine()));


                       delta = ((b*b)+(-4*a*c));
                       if(delta >= 0)
                               Console.WriteLine("Os valores são {0} e {1}", ((-b+Math.Sqrt(delta))/(2*a)), ((-b-Math.Sqrt(delta))/(2*a)));
                       else
                               Console.WriteLine("Não devolve numeros racionais");
             }
      }
}

Compilei isto em mono e funcionou bem, suponho que seja igual em windows :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
delta = ((b*b)+(-4*a*c));

LOL

Ao princípio pensei que esta instrução tinha erro ... mas depois olhei com mais atenção e vi que está bem. Eu faria assim

delta = ((b*b)-(4*a*c));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem, estive agora a ver a cena, e terei de "proibir" o utilizador de usar valores não numéricos, pois se o fizerem, o programa estoura

talvez uma coisa assim:

bool b = int.TryParse(Console.ReadLine(), out v);
                        if (b == true)
                        {
                            valor = v;
                            if (valor = int) continue;
                        }

O problema é que o int não fica bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora