Работа светофора для водителей запрограммирована следующим образом : в начале каждого часа в течении трех минут горит зеленый сигнал , затем , в течении одной минуты - желтый , в течении двух минут - красный , в течении трех минут - опять зеленый и т.д . дано вещественное число т , означающее время в минутах с начала очередного часа . определись , сигнал какого цвета горит для водителей в этот момент (нужно написать программу на языке программирования qbasic )

DEGoP DEGoP    1   30.07.2019 20:30    15

Ответы
Dima2006Dima Dima2006Dima  03.10.2020 17:55
1. Опишем циклическое состояние светофора от начала часа
0 ≤ T < 3 ⇒ зеленый
3 ≤ T < 4 ⇒ желтый
4 ≤ T < 6 ⇒ красный
2. Замечаем, что цикл смены состояний светофора составляет 6 секунд, т.е. взяв остаток от деления заданного T на 6, мы сведем задачу к состоянию, описанному в п.1
3. Операция "Взятие остатка от деления вещественного числа" в QBASIC отсутствует, поэтому будем получать некое k - целочисленное частное от деления  T на 6, а потом переопределять T = T - 6*k

'Microsoft QBASIC 1.0
DIM T AS DOUBLE
INPUT "Введите T", T
T = T - 6 * INT(T / 6)
SELECT CASE T
CASE IS <= 3
   PRINT "Зеленый"
CASE IS <= 4
   PRINT "Желтый"
CASE ELSE
   PRINT "Красный"
END SELECT
ПОКАЗАТЬ ОТВЕТЫ
kidsers2017Milllooo kidsers2017Milllooo  18.01.2024 23:16
Хорошо, давайте разберемся в этой задаче.
Задача заключается в том, чтобы определить, какой цвет светофора горит для водителей в заданный момент времени.

Для решения этой задачи мы можем использовать условные операторы (if-then-else) в языке программирования QBasic.
Программа должна принимать вещественное число t, представляющее время в минутах с начала очередного часа, и определять, какой цвет светофора горит в этот момент.

Основная идея решения:
1. Проверяем, какой интервал времени заданного момента
2. Определяем, какой цвет светофора соответствует этому интервалу
3. Выводим полученный цвет на экран

Вот программа на языке программирования QBasic, которая решает данную задачу:

```
INPUT "Введите время в минутах с начала часа: ", t

REM Определение интервалов времени с использованием условных операторов
IF (t MOD 6) < 3 THEN
PRINT "Зеленый"
ELSEIF (t MOD 6) = 3 THEN
PRINT "Желтый"
ELSE
PRINT "Красный"
END IF
```

Позвольте мне объяснить, как работает эта программа:
- Мы считываем значение времени t с помощью команды INPUT
- Затем мы используем условный оператор IF-THEN-ELSE-FI, чтобы проверить, в каком интервале времени находится заданный момент
- Если остаток от деления времени t на 6 меньше 3, то это значит, что светофор находится в зеленом цвете в данный момент
- Если остаток от деления времени t на 6 равен 3, то это значит, что светофор находится в желтом цвете в данный момент
- В остальных случаях светофор находится в красном цвете
- Мы выводим полученный цвет на экран с помощью команды PRINT

Надеюсь, что объяснение было понятным и полезным! Если у вас возникнут дополнительные вопросы или нужна дальнейшая помощь, не стесняйтесь задавать их.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика