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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 13:41   #11
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

не проще было нахождение площадей функой написать?
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 14:20   #12
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

вот еще интересный способ
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 29.11.2009, 14:31   #13
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
не проще было нахождение площадей функой написать?
А какая разница-то? Результат то все-равно не верный!
k1r1ch вне форума Ответить с цитированием
Старый 29.11.2009, 14:37   #14
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

надо какой-то допуск организовать так как условие
SR = S у вас практически никогда не выполнится
нужно хотя бы
Код:
 if abs(SR - S)<0.001
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 14:46   #15
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
надо какой-то допуск организовать так как условие
SR = S у вас практически никогда не выполнится
нужно хотя бы
Код:
 if abs(SR - S)<0.001
С таким эпсилоном будет ВА. Надо поменьше. я обычно беру 10^-8 или меньше.
k1r1ch, у Вас ВА4?

Беру свои слова обратно. Прокатило и с такой точностью (пересдал свой засчитаный ранее исходник, срезав точность). Думал тесты неполные - оказалось, ограничения "мягкие", так как задача учебная.

Последний раз редактировалось Stilet; 02.12.2009 в 10:39.
LeBron вне форума Ответить с цитированием
Старый 29.11.2009, 16:06   #16
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Я еще даже не отправлял туда, так как у меня тест не проходит, который как пример записан. Я видно что-то не так написал... Может формулы не те выбрал? Если вести логирование, то оно вот что на стандартном тесте выдает:
Цитата:
SR = 21.633308
S = 18.000000

SR = 40.249224
S = 18.000000

SR = 8.944272
S = 4.000000
SR - площадь прямоугольника, S - сумма треугольников.
Разброс большеват
k1r1ch вне форума Ответить с цитированием
Старый 01.12.2009, 22:40   #17
Jahangir Najafov
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 2
По умолчанию

Впервые работаю с файлом. Предполагаю, что ошика на данной стадии. Хотя компилирует, но потом ..оо..
Алгоритм проверял для одного участак без файла, работает.

В некоторых частях писал программу "некультурно". Извините, время поджимало.

Суть алгоритма в угле наклона прямой, проходящей через данную точку, а именно тангенсе. Надо, чтобы тангенс хотя бы одной "точки", составляющей дачный участок, был больше тангенса рассматриваемой "точки", и наоборот.

Код:
VAR
  MAIN:array [1..1000,1..10] of real;
  TAN:array [1..5] of  real;
  i,N,q:integer;
  F:text;
  j:byte;

BEGIN
  assign(F,'input.txt'); Reset(F);
    readln(F,N);
    for i:=1 to N do
      readln(MAIN[i,1],MAIN[i,2],MAIN[i,3],MAIN[i,4],MAIN[i,5],MAIN[i,6],MAIN[i,7],MAIN[i,8],MAIN[i,9],MAIN[i,10]);
  close(F);

  q:=0;
  for i:=1 to N do
    begin
      for j:=1 to 5 do
        TAN[j]:=MAIN[i,2*j]/MAIN[i,2*j-1];

      if ((TAN[1]>TAN[2]) or (TAN[1]>TAN[3]) or (TAN[1]>TAN[4]) or (TAN[1]>TAN[5])) and
           ((TAN[1]<TAN[2]) or (TAN[1]<TAN[3]) or (TAN[1]<TAN[4]) or (TAN[1]<TAN[5])) then
         INC(q);
    end;

  assign(F,'output.txt'); Rewrite(F);
    write(q);
  close(F);
END.

Последний раз редактировалось Jahangir Najafov; 01.12.2009 в 23:07.
Jahangir Najafov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста, помогите решить геометрию Emi Свободное общение 8 21.05.2009 11:45