none
ERRO RRS feed

  • Pergunta

  • Meu nome é Israel, estou tentando aprender a programar em c# através de uma apostila, e seguindo o que pede os exercícios, eu fiz o seguinte código, lendo o código não aparece erro, mas quando executo e ponho os valores aparece um erro que eu não consigo identificar, preciso de ajuda.

    meu codigo:

                 

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace Bascara
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {

            }

            private void textBox3_TextChanged(object sender, EventArgs e)
            {

            }

            private void label1_Click(object sender, EventArgs e)
            {

            }

            private void btnBasc_Click(object sender, EventArgs e)
            {
                int a = Convert.ToInt32(txt1);
                int b = Convert.ToInt32(txt2);
                int c = Convert.ToInt32(txt3);
                double delta = b * b - 4 * a * c;
                double a1 = (-b + Math.Sqrt(delta)) / (2 * a);
                double a2 = (-b + Math.Sqrt(delta)) / (2 * a);
                MessageBox.Show(Convert.ToString(a1) + Convert.ToString(a2));
            }
        }
    }


    quarta-feira, 17 de outubro de 2018 20:56

Respostas

  • Olá amigo.

    Você está inserindo valores numéricos nos campos do formulário que é exibido?

    O "Problema" está ocorrendo na conversão, provavelmente em alguma dessas linhas

                int a = Convert.ToInt32(txt1);
                int b = Convert.ToInt32(txt2);
                int c = Convert.ToInt32(txt3);

    Se você não sabe programar como já disse acima (e foi o que eu entendi), um valor STRING (texto), precisa ser convertido em número para poder ser calculado.

    a conversão em questão é para formato Inteiro 32 bits (nesse caso você só pode inserir números (sem espaços) e sem ponto decimal.

    Outro ponto que me pareceu "errado": txt1, txt2 e txt3 me soam objetos do tipo TEXTBOX. Nesse caso, substituir as linhas por :

                int a = Convert.ToInt32(txt1.Text);
                int b = Convert.ToInt32(txt2.Text);
                int c = Convert.ToInt32(txt3.Text);

    Pois não é possível converter um objeto TEXTBOX em número inteiro.

    Um abraço e boa sorte.

    Prof. Anderson Humberto. (sim, sou professor de Ensino Superior na FATEC Bauru-SP) ;)

    • Marcado como Resposta MSMUCHOLOKO sexta-feira, 19 de outubro de 2018 16:25
    quinta-feira, 18 de outubro de 2018 19:55

Todas as Respostas

  • Qual erro encontra ao tentar compilar?
    quinta-feira, 18 de outubro de 2018 14:48
  • eu executo ele normal, mas quando eu coloco os valores e aperto o botão ele aparece um erro

    System.InvalidCastException
      HResult=0x80004002Message=Não é possível converter um objeto do tipo 'System.Windows.Forms.TextBox' no tipo 'System.IConvertible'.
      Source=mscorlib
      StackTrace:
       em System.Convert.ToInt32(Object value)
       em Bascara.Form1.btnBasc_Click(Object sender, EventArgs e) em F:\User\Israel\Desktop\VB\Bascara\Bascara\Form1.cs:linha 37
       em System.Windows.Forms.Control.OnClick(EventArgs e)
       em System.Windows.Forms.Button.OnClick(EventArgs e)
       em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       em System.Windows.Forms.Control.WndProc(Message& m)
       em System.Windows.Forms.ButtonBase.WndProc(Message& m)
       em System.Windows.Forms.Button.WndProc(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       em System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       em System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       em System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.Run(Form mainForm)
       em Bascara.Program.Main() em F:\User\Israel\Desktop\VB\Bascara\Bascara\Program.cs:linha 19

    quinta-feira, 18 de outubro de 2018 18:18
  • HResult=0x80004002Message=Não é possível converter um objeto do tipo 'System.Windows.Forms.TextBox' no tipo 'System.IConvertible'.
    quinta-feira, 18 de outubro de 2018 18:30
  • Olá amigo.

    Você está inserindo valores numéricos nos campos do formulário que é exibido?

    O "Problema" está ocorrendo na conversão, provavelmente em alguma dessas linhas

                int a = Convert.ToInt32(txt1);
                int b = Convert.ToInt32(txt2);
                int c = Convert.ToInt32(txt3);

    Se você não sabe programar como já disse acima (e foi o que eu entendi), um valor STRING (texto), precisa ser convertido em número para poder ser calculado.

    a conversão em questão é para formato Inteiro 32 bits (nesse caso você só pode inserir números (sem espaços) e sem ponto decimal.

    Outro ponto que me pareceu "errado": txt1, txt2 e txt3 me soam objetos do tipo TEXTBOX. Nesse caso, substituir as linhas por :

                int a = Convert.ToInt32(txt1.Text);
                int b = Convert.ToInt32(txt2.Text);
                int c = Convert.ToInt32(txt3.Text);

    Pois não é possível converter um objeto TEXTBOX em número inteiro.

    Um abraço e boa sorte.

    Prof. Anderson Humberto. (sim, sou professor de Ensino Superior na FATEC Bauru-SP) ;)

    • Marcado como Resposta MSMUCHOLOKO sexta-feira, 19 de outubro de 2018 16:25
    quinta-feira, 18 de outubro de 2018 19:55
  • Sua Resposta me Ajudou Muito, minha solução  Agora esta funcionando perfeitamente.
    sexta-feira, 19 de outubro de 2018 16:27
  • Opa, que legal!

    Sempre que precisar, poste aqui no fórum.

    O que nos resta nesse mundo é uma comunidade atuante. Sozinho não chegamos a lugar algum.

    Um grande abraço.

    Anderson.

    sexta-feira, 26 de outubro de 2018 13:01