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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2012, 23:37   #1
tata7393
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 15
По умолчанию задача кондиционер

помогите пожалуйста решить.на языке паскаль,задача кондиционер!!))
условия:Имя входного файла: cond.in
Имя выходного файла: cond.out
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт

В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:

"freeze" — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается.
"heat" — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается.
"auto" — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой.
"fan" — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.

Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
Формат входного файла
Первая строка входного файла содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).
Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита – режим работы кондиционера.
Формат выходного файла
Выходной файл должен содержать одно целое число – температуру, которая установится в комнате через час.

Пример ввода 1

10 20
heat

Пример вывода 1

20

Пример ввода 2

10 20
freeze

Пример вывода 2

10

Пояснения к примерам
В первом примере кондиционер находится в режиме нагрева. Через час он нагреет комнату до желаемой температуры в 20 градусов.
Во втором примере кондиционер находится в режиме охлаждения. Поскольку температура в комнате ниже, чем желаемая, кондиционер самостоятельно выключается и температура в комнате не поменяется.

Последний раз редактировалось tata7393; 22.10.2012 в 10:54. Причина: неполное условие
tata7393 вне форума Ответить с цитированием
Старый 22.10.2012, 00:22   #2
tata7393
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 15
По умолчанию

есть разбор:
Заметим, что при каждом режиме работы кондиционер реализует некоторую функцию,
которая вычисляет результат по двум аргументам troom и tcond.
В режиме "freeze" кондиционер реализует функцию min(x, y), в режим "heat" – функцию
max(x, y), в режиме "auto" – функцию f(x, y) = y (возвращает второй аргумент), а в режиме
"fan" – функцию g(x, y) = x (возвращает первый аргумент).
Приведем фрагмент программы на языке С++, реализующий данную идею:
if (s == "freeze") cout << ((troom > tcond) ? tcond : troom);
if (s == "heat") cout << ((troom < tcond) ? tcond : troom);
if (s == "fan") cout << troom;
if (s == "auto") cout << tcond;
tata7393 вне форума Ответить с цитированием
Старый 22.10.2012, 00:35   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Что же тогда вызывает трудности?
Код:
uses crt;
var
  x, y: integer;
  s: string;
function min(a, b: integer): integer;
begin
  if a < b then
    min := a
  else
    min := b;
end;
function max(a, b: integer): integer;
begin
  if a < b then
    max := b
  else
    max := a;
end;
begin
  readln(x, y);
  readln(s);
  if s = 'freeze' then
    writeln(min(x, y))
  else
  if s = 'heat' then
    writeln(max(x, y))
  else
  if s = 'auto' then
    writeln(y)
  else
  if s = 'fan' then
    writeln(x);
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 22.10.2012, 07:53   #4
tata7393
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 15
По умолчанию

спасибо!!!трудности вызвало то что нужно сделать программу с переписыванием одного файла в другой.
tata7393 вне форума Ответить с цитированием
Старый 22.10.2012, 10:28   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Пожалуйста. Правда, а этом решении нет работы с файлами, но обычно в системе проверки предусмотрено несколько способов ввода/вывода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51