[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Encanto 
EncantoArts :: Форум » Программирование » Программирование : C/C++/C# » Квадратное уравнение C++ (Код программы) (Консольное приложение WIN32)
Квадратное уравнение C++ (Код программы)
EncantoДата: Четверг, 29.09.2011, 13:23 | Сообщение # 1
Offline
Сообщений: 21
Группа:
Администраторы
Для начала необходимо узнать алгоритм решения квадратного уравнения

Блок-схема алгоритма решения квадратного уравнения.


Формула по которой будет происходить решение!


int _main(int argc, _TCHAR* argv[]) - Это функция с двумя аргументами, целым и указателем на _TCHAR, возвращающей целое.
_tmain - это microsoft расширение, которое на самом деле должно интерпретироваться или как int main(int argc, char* argv[]); или как int wmain(int argc, wchar_t* argv[]); в зависимости от настроек проекта - unicode или нет.

Программисты на C++ могут использовать пять типов данных из C: void, int, float, double и char.

Сам код.

Code
#include "stdafx.h"
#include "iostream"
#include "math.h"
#include "windows.h"
using namespace std;

int _main(int argc, _TCHAR* argv[])   
{
setlocale(LC_ALL, "Russian");
SetConsoleTitle (L"Квадратное уравнение");
cout << "Введите коэффициенты\n"; //выводим сообщение
double a, b, c; //назначаем целые числа
cout << "a = "; //форма ввода
cin >> a;
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
double d = b * b - 4 * a * c; //Дискриминант d вычисляется по формуле   
if ( d < 0 ) //если d меньше нуля, то сообщение;
{
cout << "Дискриминант меньше нуля\n";
system("pause"); //задержка, пауза в окне программы
return 0;
};

double x1, x2;
x1 = (-b + sqrt(d)) / (2.0 * a); //Выводим значения корней уравнения
x2 = (-b - sqrt(d)) / (2.0 * a);
cout << "x1 = " << x1 << "\n";
cout << "x2 = " << x2 << "\n";
system("pause");
return 0;
}


Варианты создания кода могут быть разные.


Audaces fortuna juvat
EncantoДата: Четверг, 29.09.2011, 16:36 | Сообщение # 2
Offline
Сообщений: 21
Группа:
Администраторы
Вариант #2.
Зависимые функции printf() fscanf() - подробнее о них писать долго, можно посмотреть в книге.
Два знака равно в C++ означает сравнение.

Code
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
void main()   
{   

float a,b,c,d,x,x1,x2;  //float занимает 4 байта, double занимает 8 байт, иными словами double - это float с лучшей точностью.
printf ("Vvedite 3 cyfri\n"); //выводит сообщение на экран
scanf ("%f %f %f",&a,&b,&c);  //читается строка и значение
if (a==0) //если a сравнение 0
{   
if (b==0) printf ("Uravnenie ne imeet reheniy\n");   
else printf ("Uravnenie ne kvadratnoe %0.f\n",x=-c/b);   
}   
else   
{   
d=b*b-(4*a*c);   
if (d<0) printf ("D<0 reshenij net\n");    
else if (d==0) printf ("D=0 Odno reshenie X=%0.f\n",x=-b/(2*a));   
else   
{   
printf ("Dva reshenija  ");   
printf ("X1=%0.f\n",x1=(-b+sqrt(d))/(2*a));   
printf ("X2=%0.f\n",x2=(-b-sqrt(d))/(2*a));
       
        }   
     }   
     system("PAUSE");
}


Audaces fortuna juvat
EncantoДата: Четверг, 29.09.2011, 16:45 | Сообщение # 3
Offline
Сообщений: 21
Группа:
Администраторы
Вариант #3

Code
#include "stdafx.h"
#include "iostream"
#include "math.h"
   
using namespace std;
   
void main(){
         setlocale(LC_ALL, "Russian");
         float a, b, c, x1, x2;
         cout << "a*x^2+b*x+c\nВведите a\n->"; cin >> a;
         cout << "Введите b\n->"; cin >> b;
         cout << "Введите c\n->"; cin >> c;
         x2 = b*b-4*a*c;
         if (x2<0){
                 cout << "Решений нет!\n";
         }
         else if (x2){
                         x1 = (-1*b + sqrt(x2))/(2*a);
                         x2 = (-1*b - sqrt(x2))/(2*a);
                         cout << "х1 = " << x1 << "\nx2 = " << x2 << endl;
                  }
                  else{
                          x1 = -1*b/(2*a);
                          cout << "x1 = " << x1 << endl;
                  }
         system("pause");
}


Audaces fortuna juvat
EncantoДата: Четверг, 29.09.2011, 16:50 | Сообщение # 4
Offline
Сообщений: 21
Группа:
Администраторы
Вариант #4
Code
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
   
int main( void ) {
   
double a,b,c;
double d, x1, x2;
   
cout <<"a*x*x+b*x+c=0. Enter a,b,c: ";
cin >>a >>b >>c;
cout <<"a=" <<a <<" b=" <<b <<" c=" <<c <<"\n";
   
if ( a == 0.0 ) {
         cout <<"Not root equation !\n";
         return 2;
}
   
d= b*b-4*a*c;
cout <<"d=" <<d <<"\n";
if ( d>0 ) {
         x1= (-b+sqrt(d))/(2*a);
         x2= (-b-sqrt(d))/(2*a);
         cout <<"x1=" <<x1 <<" x2=" <<x2 <<"\n";
} else if ( d == 0.0 ) {
         x1= (-b/(2*a)); x2= x1;
         cout <<"x=" <<x1 <<"\n";
} else {
         cout <<"equation roots not found\n";
}
getch();
}


Audaces fortuna juvat
EncantoArts :: Форум » Программирование » Программирование : C/C++/C# » Квадратное уравнение C++ (Код программы) (Консольное приложение WIN32)
Страница 1 из 11
Поиск: