1) Представим число -135 в двоичном коде: 135 = 100001112.
2) Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Двоичное 10000111 имеет обратный код 1,01111000 .
3) По таблице триад переводим число из 2 в 8 систему счилсения:
1.01111000 = 1.360
4) 1.360 в десятеричном будет равно:
1 = 8^0*1 = 1 = 1 (целая часть);
360 = 8^-1*3 + 8^-2*6 + 8^-3*0 = 0.46875
Складываем целую и дробную часть и получаем: 1.46875
Объяснение: Если вы что-то не поняли, то буду рад объяснить в лс.
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
double a,b,c,d,x1,x2;
cout<<"a, b, c:"<<endl;
cin>>a>>b>>c;
d=b*b-4*a*c;
if(d>0) {
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"double root:"<<endl;
cout<<x1<<" "<<x2;
}
else
if(d<=0) cout<<"no roots"<<endl;
else if(d==0) {
x1=-b/2*a;
cout<<"one root:"<<endl<<x1;
}
getchar();
return 0;
}
Исправил тебе код.
Очень, ОЧЕНЬ много ошибок.
После инклюдов ; не ставится.
Зачем тебе программа для решения квадратных уравнений если она не может работать с дробями. Надо использовать для переменных тип double.
Функция квадратного корня пишется sqrt, а не sgrt.
В C и C++ переменные d и D - разные. Регистр имеет очень большое значение.
cin>>double root>>; - что ты вообще хочешь этим сделать. Тебе нужно вывести корни, а ты что-то непонятное делаешь.
cin>>one root>>; - аналогично
cin>>notroot>>; - аналогично
cout<<"not root:"<<endl; - грамматическая ошибка
Присвоение в C и C++ это =, а не :=.
По поводу if-else - сам почитай.
{}{}{}{}{} - для каждой { должна быть }
Самая первая проверка d должна выглядеть d>0, а не d>=0; будет ответ неверным.
Проверка на равенство в C/C++ выглядит (a==b)
И много-много другого
1) Представим число -135 в двоичном коде: 135 = 100001112.
2) Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Двоичное 10000111 имеет обратный код 1,01111000 .
3) По таблице триад переводим число из 2 в 8 систему счилсения:
1.01111000 = 1.360
4) 1.360 в десятеричном будет равно:
1 = 8^0*1 = 1 = 1 (целая часть);
360 = 8^-1*3 + 8^-2*6 + 8^-3*0 = 0.46875
Складываем целую и дробную часть и получаем: 1.46875
Объяснение: Если вы что-то не поняли, то буду рад объяснить в лс.