Кому порешать задачи - пишите сюда

oakim

New Member
на тему задачи
Задача 2.
Найдите центр и радиус окружности, проходящей через три заданные точки на плоскости.
моё виденье решения... хотя всёравно если первая и вторая точка взяты на одной высоте прога не сработает как надо... по идее надо реализовать замену 2-й точки на 3-ю но ... лень однако
#include <iostream>
#include <math.h>

using namespace std;



int check(int *x1 , int *x2 , int *x3 , int *y1 , int *y2 , int *y3)
{

cout << "введите числа\n";
cin >> *x1 >> *y1 >> *x2 >> *y2 >> *x3 >> *y3;

if (!(2*(((*x3-*x2)*(*y2-*y1))-((*x1-*x2)*(*y2-*y3))))){cout << "не допустимые координаты\n"; return 1};
if (!(2*(*y2-*y1))){ cout << "не допустимые координаты\n"; return 1};
return 0;

}

int main()
{
int x1,x2,x3,y1,y2,y3,x,y,r;
while (check(&x1,&x2,&x3,&y1,&y2,&y3)) {};
x=(y3*(-(x2*x2)-(y2*y2)+(y1*y1)+(x1*x1))+y2*(-(y1*y1)-(x1*x1)+(y3*y3)+(x3*x3))+y1*((x2*x2)+(y2*y2)-(y3*y3)-(x3*x3)))/(2*(((x3-x2)*(y2-y1))-((x1-x2)*(y2-y3))));
y=((2*x*(x1-x2))+(x2*x2)+(y2*y2)-(y1*y1)-(x1*x1))/(2*(y2-y1));
r=sqrt ((x2-x)*(x2-x)+(y2-y)*(y2-y));

cout << "x1 " << x1 << "\t y1 " << y1<<'\n';
cout << "x2 " << x2 << "\t y2 " << y2<<'\n';
cout << "x3 " << x3 << "\t y3 " << y3<<'\n';
cout << "x " << x << "\t y " << y<<'\n';
cout << "r " << r << '\n';

return 0;
}
ps: так как програма работает с целочислеными координатоми есть некоторая неточность вычислений +-1 гдето
ps2: разбиратсо в формуле криса больно напряжно ... проще и интереснее было вывести свою =)
ps3: проверял под gcc работоспособность под другими компиляторами не гарантирую
 
Останнє редагування:

xZ_

Хьёзь
Задача 2.
Найдите центр и радиус окружности, проходящей через три заданные точки на плоскости.
Помойму правильный вариант был бы - построить по этим трем точкам триугольник и найти круг, в какой триугольник вписан.. всего лишь формулы геометрии.. если что могу повспоминать
 

YaroS

Member
Язык:С++
Задачка: Скласти програму-гороскоп, яка аналізує дату народження та виводить гороскоп на екран!!!
 

Cris

Member
Язык:С++
Задачка: Скласти програму-гороскоп, яка аналізує дату народження та виводить гороскоп на екран!!!
а гороскоп самому составлять?)) так что тут сложного
Код:
int god,mesac,den;
scanf("%d.%d.%d",&den,&mesac,&god)
ну и проверяеш к какому зодиак относиться den и mesac
 

zVonok

New Member
Cris
помоги надо в паскале шоб по нажатию определенной кнопки виводило число 1 потом 2 потом 3
шоб с каждим нажатием на кнопку виводило предидущее число + 1
первое число 0 реализовать в паскале
 

YaroS

Member
Извини но в програмировании я ничего не понимаю :( Наверное ж самому
 
язык Си

№1
] Для заданных вещественных чисел a, b и c определите, имеет ли уравнение ax2 + bx + c = 0 хотя бы одно вещественное решение
№2
Выберите наибольшее из трех заданных чисел.

помоготи сегодня до вечера
 

oakim

New Member
решение для с++
под си прийдётсо адаптировать
просто операторов ввода вывода ужо не помню чисто сишных =)

#include <iostream>
#include <math.h>

using namespace std;

int main ()
{
double a,b,c,d,x1,x2;

cout << "введите числа a b c\n";
cin >> a >> b >> c;
if (!a) {cout << "а не может быть равно 0\n";return 1;}
d=b*b-4*a*c;
if (d<0) {cout << "решений нету\n";return 1;}

x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);

if (x1==x2) cout << " решение : х= " << x1 <<'\n';
else cout << " решение : х1= " << x1 <<" х2= " << x2 <<'\n';

if (a>b && a>c) cout << "большее число а \n";
if (b>a && b>c) cout << "большее число b \n";
if (c>b && c>a) cout << "большее число c \n";

}
можеш канешно перепроверить результаты но вроде работаеть ;)

сразу и выбирает большее
 
Останнє редагування:
язык Си
№1
Для заданных вещественных чисел a, b и c определите, имеет ли уравнение ax2 + bx + c = 0 хотя бы одно вещественное решение

помоготи сегодня до вечера
 
Останнє редагування:
Зверху