Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2009, 16:33   #1
progdev
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 19
Восклицание Задание с олимпиады.Бисектриса.

Вот на олимпиаде моему другу дали такое задание.(одно из них)Пробовал на питоне,не получилось
На с++ еще не пробовал.Кому интересно,вылаживаем сюда свое решение.Язык программирования - любой....просьба на ассемблере не писать ))
Все подробности в прикрепленном изображении
progdev вне форума Ответить с цитированием
Старый 25.12.2009, 16:41   #2
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Это не задача, а упражнение, вообще-то.
Сначала находим все стороны, потом подставляем в формулу.
Все дано в условии.
LeBron вне форума Ответить с цитированием
Старый 25.12.2009, 16:48   #3
progdev
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
Это не задача, а упражнение, вообще-то.
Сначала находим все стороны, потом подставляем в формулу.
Все дано в условии.
Конешно
Но я писал помочь с решением,или написать чтонибудь оригинальное,а не "здесь и так всё понятно".
Я пытался на питоне сделать,но не получилось..
progdev вне форума Ответить с цитированием
Старый 25.12.2009, 16:52   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от progdev Посмотреть сообщение
Конешно
Но я писал помочь с решением,или написать чтонибудь оригинальное,а не "здесь и так всё понятно".
Я пытался на питоне сделать,но не получилось..
Можно увидеть эти попытки?
Я своим постом помог, хотя тут и помогать негде. Первая "задача" - это не задача, а упражнение, следовательно, оно не требует решения.
Вот Вам рабочий код:
Код:
var input,output:text;x,y:array[0..10] of real;i:longint;d:array[0..10] of real;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
for i:=1 to 3 do read(input,x[i],y[i]);
for i:=6 downto 4 do begin x[i]:=x[i-3];y[i]:=y[i-3];end;
for i:=1 to 3 do begin d[i]:=sqrt(sqr(x[i+2]-x[i+1])+sqr(y[i+2]-y[i+1]));end;
writeln(output,sqrt(d[1]*d[2]*(d[1]+d[2]+d[3])*(d[1]+d[2]-d[3]))/(d[1]+d[2]):0:2);
close(input);close(output);
end.
LeBron вне форума Ответить с цитированием
Старый 25.12.2009, 16:57   #5
progdev
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
Можно увидеть эти попытки?
Я своим постом помог, хотя тут и помогать негде. Первая "задача" - это не задача, а упражнение, следовательно, оно не требует решения.
Вот Вам рабочий код:
Код:
var input,output:text;x,y:array[0..10] of real;i:longint;d:array[0..10] of real;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
for i:=1 to 3 do read(input,x[i],y[i]);
for i:=6 downto 4 do begin x[i]:=x[i-3];y[i]:=y[i-3];end;
for i:=1 to 3 do begin d[i]:=sqrt(sqr(x[i+2]-x[i+1])+sqr(y[i+2]-y[i+1]));end;
writeln(output,sqrt(d[1]*d[2]*(d[1]+d[2]+d[3])*(d[1]+d[2]-d[3]))/(d[1]+d[2]):0:2);
close(input);close(output);
end.
На счет попытки...на питоне.
Я брал что
a=bc
b=ac
c=ab
Потом всё это math.sqrt((x1-x2)**(x1-x2))
И и.д.,но код слышком большой был...и ошибки писало
invslid syntax,хотя всё проверил
progdev вне форума Ответить с цитированием
Старый 25.12.2009, 16:58   #6
progdev
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 19
По умолчанию

А вот у тебя както сложно...(я изучал яву,си\++,питон)
Както ,прямтаки по "научному" ))
progdev вне форума Ответить с цитированием
Старый 25.12.2009, 17:04   #7
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от progdev Посмотреть сообщение
А вот у тебя както сложно...(я изучал яву,си\++,питон)
Както ,прямтаки по "научному" ))
Ничего научного. Написал на Паскале, так как мне на нем удобней всего, и времени занимает меньше всего (ради интереса переписал еще раз "на время" - укладываюсь в 1 минуту, получилось 54.6 секунды, на плюсах это бы у меня заняло раза в полтора больше времени, и это при том, что даже не задача, а просто упражнение, на задаче я пока еще больше проигрываю плюсами). Если очень уж надо, то мог бы переписать на С++, но не вижу необходимости. Если знаете синтаксис С++, то нет трудностей в понимании Паскаля.
LeBron вне форума Ответить с цитированием
Старый 25.12.2009, 19:11   #8
progdev
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 19
По умолчанию

А можно на с++?
progdev вне форума Ответить с цитированием
Старый 25.12.2009, 19:56   #9
lamak
C++
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 30
По умолчанию

Первая на С++:
Код:
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <math.h>

int main()
{
 ifstream in; ofstream out;
 in.open("input.txt"); out.open("output.txt");
 int y[3], x[3], i, ab, ac, bc, lc;
     for ( i=0; i<3; i++ )
         {  in>>x[i]; in>>y[i];
               cout<<x[i]<<" "<<y[i]<<endl; } 
   ab=sqrt(pow(x[0]-x[1], 2) + pow(y[0]-y[1], 2) );      
   bc=sqrt(pow(x[1]-x[2], 2) + pow(y[1]-y[2], 2) );
   ac=sqrt(pow(x[0]-x[2], 2) + pow(y[0]-y[2], 2) ); 
   lc=sqrt( bc*ac*(ac+bc+ab)*(bc+ac-ab))/bc+ac; 
   out<<"Bisektrusa Lc = "<<lc;
   cout<<"Bisektrusa Lc = "<<lc;       
 in.close();
 out.close();
 getch();
    }
Верю в google...
lamak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В предверие олимпиады GonZaleZ Общие вопросы C/C++ 2 30.11.2009 21:02
Задача Областной олимпиады!! Помогите) pascal1994 Помощь студентам 4 09.02.2009 18:12
Задача с олимпиады Xardas Помощь студентам 4 29.02.2008 19:00
Задача с олимпиады Xardas Помощь студентам 5 27.02.2008 23:38
Паскаль. задача с олимпиады SoulFlyMF Помощь студентам 2 13.11.2007 20:52