Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Реализация на Pascal

var x,y,ax,ay,bx,by,cx,cy : real;

function St(ax,ay,bx,by,cx,cy : real):real;
begin
  St:=abs((ax-bx)*(cy-by)-(ay-by)*(cx-bx))/2;
end;

function IsBelong(x,y,ax,ay,bx,by,cx,cy : real):boolean;
var s,s1,s2,s3 : real;
begin
  s:=St(ax,ay,bx,by,cx,cy);
  s1:=St(x,y,bx,by,cx,cy);
  s2:=St(ax,ay,x,y,cx,cy);
  s3:=St(ax,ay,bx,by,x,y);
  IsBelong := abs(s-s1-s2-s3)<0.0001;
end;

begin
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
  read(ax,ay,bx,by,cx,cy,x,y);
  if IsBelong(x,y,ax,ay,bx,by,cx,cy) then write('In') else write('Out')
end.

Реализация на С++

#include <stdio.h>
#include <math.h>

double St(double ax, double ay, double bx, double by, double cx, double cy){
  return fabs((ax-bx)*(cy-by)-(ay-by)*(cx-bx))/2;
}

int IsBelong(double x, double y, double ax, double ay, double bx, double by, double cx, double cy){
  double s,s1,s2,s3;
  s=St(ax,ay,bx,by,cx,cy);
  s1=St(x,y,bx,by,cx,cy);
  s2=St(ax,ay,x,y,cx,cy);
  s3=St(ax,ay,bx,by,x,y);
  return fabs(s-s1-s2-s3)<0.0001;
}

double x,y,ax,ay,bx,by,cx,cy;

int main (){
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);

  scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &ax, &ay, &bx, &by, &cx, &cy, &x, &y);
  printf("%s",IsBelong(x,y,ax,ay,bx,by,cx,cy)?"In":"Out");

  return 0;
}


Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru