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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 00:23   #21
Оляя
Пользователь
 
Регистрация: 11.01.2014
Сообщений: 11
По умолчанию

Ceil. Выдает ошибку компиляции в тестирующей системе, по этому и бьюсь, как белка об лед., а с Longint программа смогла пройти еще несколько типов тестов системы.
Оляя вне форума Ответить с цитированием
Старый 12.01.2014, 00:27   #22
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Так верните Uses Math;, так как FreePascal не знает о Ceil без этой библиотеки.
Или используйте одинаковые компиляторы при решении задания и во время отправки, или подстраивайтесь под особенности
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2014, 00:27   #23
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Мне просто непонятно, почему Оле доступны результаты тестирования, хотя они обычно скрыты.
Внимательней на скринах говорится о том, что это доп тур только для учителей.. И ради этого дела даже тесты открыли..
Poma][a вне форума Ответить с цитированием
Старый 12.01.2014, 00:34   #24
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Serge_Bliznykov, да, так, наверное, пройдет. Мне просто непонятно, почему Оле доступны результаты тестирования, хотя они обычно скрыты. Кстати, контрпример для такого if N = 11 K = 3.
о! точно так! Вы правы, слажает мой if на таких данных!

а так пройдёт?
Код:
readln(N,K);
if (K<(N div 3)) and ((3*K)<N) then begin
  <ваш код по вычислению x>
end
else
  Write(0)
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.01.2014, 00:41   #25
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Serge_Bliznykov, только не and, а or, наверное.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2014, 00:43   #26
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я не стал бы так просто 3 на K умножать (из-за опасности переполнения), а примерно так (N-K-K-K) ну и анализ на минус всего этого

PS

даже трижды нельзя отнимать, а дважды спокойно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 12.01.2014 в 00:46.
Аватар вне форума Ответить с цитированием
Старый 12.01.2014, 00:57   #27
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

BDA, да нет, именно AND. Первое условие проверить, что у нас K меньше, чем N/3, но, как показывает ваш контрпример, этого недостаточно. Вторая проверка гарантирует, что нужно вычислять X (т.е. нужно добавлять к K число X и при этом X >0)

Аватар, вот именно поэтому я поставил ДВА условия. в надежде, что результаты второго вычиления нас уже не будут интересовать, если K больше(или равно), чем N/3

впрочем, согласен, лучше написать это так:
Код:
readln(N,K);
x := 0;
if (K<(N div 3)) then begin
   if ((3*K)<N) then begin
       x :=  <ваш код по вычислению x>
   end
   else 
      x := 0;
end
else
  x := 0;

Write(x);
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.01.2014, 00:58   #28
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

или так
Код:
  x:=n-k-k; // и то не факт как заоптимизирует
  if x>k then begin
    y:=(x-k) mod 2;
    if y*2<x-k then Inc(y);
  end
  else y:=0;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.01.2014, 01:10   #29
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Serge_Bliznykov, это составное условие через and сработает так: K< N div 3 для контрпримера не выполнится, и будет сразу выведен 0, хотя по второму условию, нужно рассчитать и вывести x. Вложенные if также плохо сработают на контрпримере.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2014, 01:37   #30
Оляя
Пользователь
 
Регистрация: 11.01.2014
Сообщений: 11
По умолчанию

Аватар, Ваш код выдает не правильный ответ, к сожалению
Оляя вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Простая задача bgwqa Помощь студентам 1 17.12.2013 18:26
Простая задача Abuhamed Visual C++ 0 18.06.2013 00:40
Простая задача Arsenx777 Помощь студентам 1 04.03.2012 11:18
С++ (простая задача) slim>>> Помощь студентам 3 13.01.2010 20:13
Цикл for в С++ - простая математическая задача Blondy Помощь студентам 4 21.09.2009 19:47