Другие языки программирования и технологии

Программа на C++ в Windows Form

Пытаюсь написать калькулятор квадратных уравнений на C++. Вот коды программы:
.cpp
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
float y, z, f, m, k, a, b, c;
float D = 0;
if (a==0)
{
MessageBox::Show("Если а = 0 - нет решений! ");
}
D=b*b-4*a*c;
if (D>=0)
{
y=(-b+sqrt(D))/(2*a);
z=(-b-sqrt(D))/(2*a);
label7->Text = String::Format("Корни: x1 = {0:F3} и x2 = {1:F3}", y, z);
label8->Text = String::Format("При D = {0:F3}", D);
}
else {
f = -1*D;
k = (sqrt(f))/(2*a);
m =(-b)/(2*a);
label7->Text = String::Format("Корни: x1 = {0:F1} + {1:F1}* i и x2 = {0:F1} - {1:F1}* i", m, k);
label8->Text = String::Format("При D = {0:F3}", D);
}
}

};
}

ПИШЕТ ОШИБКИ, ХОТЯ ДЕЛАЛ ПО ПРИМЕРУ.
Вот скрины ошибок и программы.




В чём проблема?
Серёга ***
Серёга ***
966
То что вы написали и без всяких скринов видно - херня нездоровая и никакого отношения к Windows Forms не имеет. Если хватит ума и терпения, то вы сможете узнать о том как работают обработчики событий и как так сделать, чтобы приведенный ниже код начал работать (фото прилагается) .

#include <stdio.h>
#include <math.h>
#define min(a, b) ((a) < (b) ? (a) : (b))
double log_a_b(double a, double b) { return log(b) / log(a); }
int main() {
    double j, k, l;
    j = 7.13 * pow(23.96, 1. / 6) * log_a_b(5., 7.);
    k = cos(asin(.25) + acos(.125));
    if (min(j, k) < 2) l = pow(fabs(5 * j + 9 * k), .25);
    else l = pow(fabs(5 * j - 9 * k), .25);
    printf(" Result: %.15f\n", l);
    getchar(); getchar();
    return 0;
}private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    double a = double::Parse(this->textBox1->Text);
    double b = double::Parse(this->textBox2->Text);
    double c = double::Parse(this->textBox3->Text);
    if (a == 0) this->textBox4->Text = L"Уравнение не имеет решений! ";
    else {
        double d = Math::Pow(b, 2) - 4 * a * c;
        if (d < 0) this->textBox4->Text = L"Уравнение не имеет вещественных корней! ";
        else if (d == 0) {
            double x;
            if (b == 0 && c == 0) x = 0;
            else x = -b / (2 / a);
            this->textBox4->Text = L" x = " + x.ToString();
        } else {
            double x1 = (-b - Math::Sqrt(d)) / (2 * a);
            double x2 = (-b + Math::Sqrt(d)) / (2 * a);
            this->textBox4->Text = L" x1 = " + x1.ToString() + L"; x2 = " + x2.ToString();
        }
    }
}
K*
Kenny ***
82 792
Лучший ответ
Проблема в программисте.
Я в си не силён (что бы на глаз определять ошибки) , по скринам видно очень плохо.
С учётом того что ты (я так догадываюсь) передрал пример из какой то книжки на свою платформу, и не учёл (плохо прочитал или автор не указал) особенностей использования переменных или ещё чего то, поэтому ошибки и лезут.
Omirbek Bulekbayev
Omirbek Bulekbayev
79 638
Сделай скрины по больше, а то описание плохо видно. Или пришли исходник, я сам исправлю.
ЛБ
Лев Балясный
20 184