Предмет: Информатика,
автор: Аноним
Написать программу с использованием условного оператора if...then...else (полной или неполной формы) для условия: Сaд прямоугольной формы хотят обнести забором. Длина сада 800 м, а ширина составляет 5/8 длины. Какой длины должен быть весь забор?
Pascal
Программу и сам могу написать, вопрос куда тут можно сунуть условного оператора? Сказали должен быть, но зачем - ума не приложу...
restIess:
а входные данные всегда одинаковые?
Нет, программа универсальная, вводные данные могут быть разные
Тогда можно проверять данные на "адекватность", если пользователь введёт ширину или что-то отрицательной, то вывести, что Ширина не может быть отрицательной
Спасибо огромное! А есть еще варианты решения с условным оператором?
Можно сверять длину и ширину забора, если они равны, то выводить, что это квадрат, но это уже совсем от нефиг делать))
Спасибо еще раз за помощь!
П.С. привет 7Л класс)
Ответы
Автор ответа:
1
Ответ:
Проверить входную данную
Объяснение:
Если я правильно понял, то в программе идет ввод общей длины забора.
Поэтому нужно делать проверку, является ли длина подходящий под периметр забора( т.е. (ширина+длина)*2) и если вход равен этой длине, но выполняешь то, что в условии, НО если больше(меньше) нужной длины, то выходишь( или что ты там делаешь)
Спасибо! А если это будет универсальная программа с разными вводными данными, то куда в таком случае поставить условного оператора?
Нужно будет сделать цикл, пока 'входной' периметр не будет равен периметру, к которму нужно стремиться(ширина+длина)*2). Т.е. допустим нужен конечный периметр = 500.
Делаешь цикл, потом запрашиваешь длину например, пользователь её вводит ты проверяешь меньши ли она длины общего периметра(500), если она меньше, то делаешь 500 - входной периметр(допустим 150) = 350, дальше опять пользователь вводит периметр забора, допустим 300, ты его проверяешь меньше ли он конечного периметра(350 уже, т.к. мы уже добавили забор и вычли его), если меньше то 350-300, конечный периметр будет = 50.
Допустим дальше человек вводит 100, но он не проходит, т.к. условие сравнивает входной периметр и конечный 100 > 50 условию не соответствует. Пропускаешь этот цикл, дальше пользователь опять вводит, вводит 50, и он равен конечному периметру, значит проходит и конечный периметр становится 0, там уже делашь выход либо ставишь условие Если конечный периметр=0, тогда выход( обычно break; )
Либо используешь While
Похожие вопросы
Предмет: Математика,
автор: дрон3
Предмет: Математика,
автор: Ксеничка25408
Предмет: Алгебра,
автор: vbelavskayanika
Предмет: Математика,
автор: АляЯ2007
Предмет: Литература,
автор: Konowalowjeny