(может быть, не совсем по назначению использую сайт)
Задача:
Работа светофора для пешеходов запрограммирована следующим образом: в
начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение
двух минут — красный, в течение трех минут — опять зеленый и т. д.
Дано вещественное число t, означающее время в минутах, прошедшее с начала
очередного часа. Определить, сигнал какого цвета горит для пешеходов в
этот момент.
Я предлагаю такой код, но можно ли его как-нибудь оптимизировать, сделать проще?
Time_Left = int(input('enter time in minutes since begining of hour'))
'''Узнаем число уже прошедших циклов "зеленый-красный" и берем ЦЕЛУЮ часть от деления'''
x = Time_Left // 5
'''Находим разницу между Time_Left и числом полных пройденных циклов,
умноженных на время одного цикла "зеленый-красный"'''
l = Time_Left - (x * 5)
if l == 0:
print('it is red')
elif l == 1:
print('it is green')
elif l == 2:
print('it is green')
elif l == 3:
print('it is green')
elif l == 4:
print('it is red')
elif l == 5:
print('it is red')
Поясню почему так сделал:
Построим таблицу зависимости цвета от времени:
g — зеленый
r — красный
1. -- g
2. -- g
3. -- g
4. -- r
5. -- r
6. -- g
7. -- g
8. ...
5 минут — это полный цикл, и мы знаем какой минуте соответствует какой сигнал. Соответственно, если мы узнаем разницу между настоящим моментом времени и целым количеством пройденных циклов и основываясь на том, что:
1. -- g
2. -- g
3. -- g
4. -- r
5. -- r
Мы можем сделать вывод о том, какой цвет сейчас горит.
1 / 1 / 0 Регистрация: 17.11.2011 Сообщений: 42 |
|
1 |
|
Определить, сигнал какого цвета горит для пешехода в этот момент29.12.2011, 12:27. Показов 7152. Ответов 1
Работа светофора для пешеходов запрограммирована следующим образом: начиная с начала каждого часа, в течение трех минут горит зеленый сигнал, затем в течение двух минут- красный, в течение трех минут- опять зеленый и т.д. Дано вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешехода в этот момент.
0 |
urukhi1 12 / 12 / 16 Регистрация: 27.12.2011 Сообщений: 33 |
||||
29.12.2011, 15:57 |
2 |
|||
Сообщение было отмечено arsalan как решение Решение
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
29.12.2011, 15:57 |
2 |
Feb 2nd, 2022
526
0
Never
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
-
Подвиг 10. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение двух минут – красный, в течение трех минут – опять зеленый и т. д. Дано вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент. На экран вывести сообщение (без кавычек) «green» — для зеленого и «red» — для красного.
-
решение
-
x=float(input())
-
print(‘green’ if 0 < x % 5 <= 3 else ‘red’)
-
альтернатива
-
t = float(input())
-
if t <= 3:
-
print(«green»)
-
elif t <= 5:
-
print(«red»)
-
elif t <= 8:
-
print(«green»)
-
elif t <= 10:
-
print(«red»)
-
elif t <= 13:
-
print(«green»)
-
elif t <= 15:
-
print(«red»)
-
elif t <= 18:
-
print(«green»)
-
elif t <= 20:
-
print(«green»)
-
elif t <= 23:
-
print(«red»)
-
elif t <= 25:
-
print(«green»)
-
elif t <= 28:
-
print(«red»)
-
elif t <= 30:
-
print(«green»)
-
elif t <= 33:
-
print(«red»)
-
elif t <= 35:
-
print(«green»)
-
elif t <= 38:
-
print(«red»)
-
elif t <= 40:
-
print(«green»)
-
elif t <= 43:
-
print(«red»)
-
elif t <= 45:
-
print(«green»)
-
elif t <= 48:
-
print(«red»)
-
elif t <= 50:
-
print(«green»)
-
elif t <= 53:
-
print(«red»)
-
elif t <= 55:
-
print(«green»)
-
elif t <= 58:
-
print(«red»)
-
elif t <= 60:
-
print(«green»)
package com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепу;
Работа светофора для пешеходов запрограммирована следующим образом:
в начале каждого часа в течение трех минут горит зелёный сигнал,
затем в течение одной минуты - жёлтый,
а потом в течение одной минуты - красный,
затем опять зелёный горит три минуты и т. д.
Ввести с клавиатуры вещественное число t, означающее время в минутах, прошедшее с начала очередного часа.
Определить, сигнал какого цвета горит для пешеходов в этот момент.
Результат вывести на экран в следующем виде:
"зелёный" - если горит зелёный цвет,
"жёлтый" - если горит жёлтый цвет,
"красный" - если горит красный цвет.
*/
import java.io.*;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
Scanner sc = new Scanner(System.in);
float t = sc.nextFloat();
if (t>60) {
int k = (int) (t / 60);
t = t-60*k;
}
int a = (int) (t/5);
if (t>0) {
if (t>3 + 5 * a && t<=4 + 5 * a) System.out.println("жёлтый");
if (t>4 + 5 * a && t<=5 + 5 * a) System.out.println("красный");
if (t>5 * a && t<=3 + 5 * a) System.out.println("зелёный");
}
}
}
Не выполнены все требования. Не могу понять, что не так…
Не выполнены все требования. Не могу понять, что не так…
package com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепую
Переходим дорогу вслепую
Работа светофора для пешеходов запрограммирована следующим образом:
в начале каждого часа в течение трех минут горит зелёный сигнал,
затем в течение одной минуты — жёлтый,
а потом в течение одной минуты — красный,
затем опять зелёный горит три минуты и т. д.
Ввести с клавиатуры вещественное число t, означающее время в минутах, прошедшее с начала очередного часа.
Определить, сигнал какого цвета горит для пешеходов в этот момент.
Результат вывести на экран в следующем виде:
«зелёный» — если горит зелёный цвет,
«жёлтый» — если горит жёлтый цвет,
«красный» — если горит красный цвет.
Пример для числа 2.5:
зелёный Пример для числа 3:
жёлтый Пример для числа 4:
красный Пример для числа 5:
зелёный
Требования:
1. Программа должна считывать вещественное число c клавиатуры.
2. Программа должна выводить текст на экран.
3. Если горит зелёный цвет, необходимо вывести текст: «зелёный»
4. Если горит жёлтый цвет, необходимо вывести текст: «жёлтый»
5. Если горит красный цвет, необходимо вывести текст: «красный»
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.io.IOException;
import java.io.IOException;
public class Solution {
public static void main(String[] args) throws Exception {
//BufferedReader number = new BufferedReader(new InputStreamReader(System.in));
// int numberOne = Integer.parseInt(number.readLine());
//double t = numberOne; // время в минутах, прошедшее с начала очередного часа.
// Определить, сигнал какого цвета горит для пешехода в этот момент.
Scanner scanner = new Scanner(System.in);
double t = scanner.nextDouble() ;
if (t<=3)
System.out.println(«зелёный»);
else if (t>3 && t<4)
System.out.println(«жёлтый»);
else if (t>4 && t<5)
System.out.println(«зелёный»);
}
}
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
Модуль 4.1 Условный оператор if. Конструкция if-else.
Вводятся два вещественных числа в одну строку через пробел. Вывести на экран наибольшее из чисел. Задачу решить с помощью условного оператора.
# Получаем 2 строку и переводим в список a = list(map(float,input().split())) # Сравниваем 2 числа из списка под индексом 0 и 1 if a[0] > a[1]: print(a[0]) else: print(a[1])
Вводится слово. Необходимо определить, является ли это слово палиндромом (одинаково читается вперед и назад, например, АННА). Регистр букв не учитывать. Если введенное слово палиндром, на экран вывести ДА, иначе — НЕТ.
# Присваиваю исходное слово word_any = input() # С помощь метода .lower() перевожу символы в нижний регистр lower_simbols = word_any.lower() # Сравниваю слова обычное и слово перевёрнутое if lower_simbols == lower_simbols[::-1]: print('ДА') # Если слова одинаковые вывожу ДА else: print("НЕТ")# Иначе вывожу НЕТ
Вводятся два целых положительных числа m и n в одну строку через пробел. Если число m делится нацело на число n, то вывести на экран частное от деления (результат деления) в виде целого числа. В противном случае вывести сообщение «m на n нацело не делится» (без кавычек) и вместо m и n подставить соответствующие числа, например: «13 на 2 нацело не делится».
# Множественное присваивание m, n = map(int, input().split()) # Проверяем делится ли число на цело if m % n == 0: print(int(m/n)) # Выводим в консоль частное от деления else: print(f"{m} на {n} нацело не делится") # Иначе.
Вводятся три целых положительных числа в одну строку через пробел. Убедиться, что первые два числа — это катеты прямоугольного треугольника, а третье — его гипотенуза. (Подсказка: проверка делается по теореме Пифагора
). Если проверка проходит (истинна), то вывести на экран ДА, иначе — НЕТ.
# Множественное присваивание a, b, c = map(int, input().split()) # Проверяем выполнения условия задания # проверяем равна ли сумма квадратов стороны a и b, квадрату стороны c if c**2 == a**2 + b**2: print("ДА") # Если условие выполняет выводим ДА else: print("НЕТ")# Иначе выводим НЕТ
Вводится четырехзначное число. Проверить, что оно оканчивается на цифру 7. Вывести на экран ДА, если это так и НЕТ — в противном случае.
# Присваиваю данные в переменную list_num = list(input()) # Проверить, что оно оканчивается на цифру 7 # Преобразую из строкового значения в int обращаюсь к последнему элементу и сравниваю if int(list_num[-1]) == 7: print("ДА") # Если условие выполняется выводим ДА else: print("НЕТ") # Иначе выводим НЕТ
Вводится слово. Проверить, что в этом слове присутствуют все три буквы: t, h и o (в произвольном порядке). Реализовать программу с помощью одного условного оператора. Если проверка проходит, вывести ДА, иначе — НЕТ.
# Присваиваю данные в переменную list_symbol = list(input()) # Сохраняю кортеж с буквами tup = ('t', 'h', 'o') # Проверяю что в этом слове присутствуют все три буквы: t, h и o if 't' in list_symbol and 'h' in list_symbol and 'o' in list_symbol: print("ДА") # Если условие выполняется выводим ДА else: print("НЕТ") # Иначе выводим НЕТ
Вводится список городов в одну строку через пробел. Если в этом списке присутствует город Москва, то удалить его. Вывести на экран результирующий список в виде строки с городами через пробел.
# Присваиваю данные в переменную list_word = list(input().split()) # Если в этом списке присутствует город Москва if 'Москва' in list_word: # то удаляю его с помощью метода .remove('Москва') list_word.remove('Москва') print(*list_word) # Вывожу результат в консоль else: print(*list_word) # Вывожу результат в консоль
Вводятся четыре целых числа a, b, c, d в одну строку через пробел. Определить, войдет ли в конверт с внутренними размерами a и b мм прямоугольная открытка с размерами с и d мм. Для размещения открытки в конверте необходим зазор в 1 мм с каждой стороны. Открытку можно поворачивать на 90 градусов. Вывести ДА, если входит и НЕТ — если не входит.
# Множественное присваивание с помощью функции map a, b, c, d = map(int, input().split()) # Определяю войдет ли открытка в конверт # Сравниваем стороны открытки чтобы соответствовали сторонам конверта # -1 мм, сравниваем по обоим сторонам if ((a-1) > c and (b-1) > d) or ((a-1) > d and (b-1) > c): print('ДА') # Вывожу результат в консоль else: print('НЕТ') # Вывожу результат в консоль
Вводится шестизначное число. Определить, является ли оно счастливым. (Счастливым называют такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр.). Вывести ДА, если счастливое и НЕТ — в противном случае.
# Сохраняю данные в переменную в виде списка num_0 = list(input()) num_1 = list(map(int, num_0[:3])) # Сохраняю в первую переменную первые три цифра в списке num_2 = list(map(int, num_0[3:])) # Сохраняю во вторую переменную последние три цифры в списке # Проверяю равна сумма первых трех цифр, сумме его последних трех цифр if sum(num_1) == sum(num_2): print('ДА') # Если равна вывожу ДА else: print('НЕТ') # Если неравна вывожу НЕТ
Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение двух минут – красный, в течение трех минут – опять зеленый и т. д. Дано вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент. На экран вывести сообщение (без кавычек) «green» — для зеленого и «red» — для красного.
# Сохраняю данные в переменную в виде списка time_signal = float(input()) # Проверяю Если таймер больше 0 и меньше 3 или остаток от деления введенного времени больше 0 и меньше 3 тогда светится зеленый if (time_signal > 0 and time_signal < 3) or (time_signal % 5 > 0 and time_signal % 5 < 3): print('green') else: print('red') # Логика с первым все понятно если так как первые три минуты гори зеленый то это подпадает под условия задания. # Дальше Если при делении на 5 остаток о деления будет больше 0 но меньше трех, мы получаем значит светится зеленый сигнал светофора # 4 % 5 = 4
Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа…
1 Ответ
ответил
29 Май, 20
от
hacker5222_zn
(84 баллов)
t = int(input())
if t <= 3:</p>
print(«GREEN»)
elif t <= 5:</p>
print(«RED»)
elif t <= 8:</p>
print(«GREEN»)
elif t <= 10:</p>
print(«RED»)
elif t <= 13:</p>
print(«GREEN»)
elif t <= 15:</p>
print(«GREEN»)
elif t <= 18:</p>
print(«RED»)
elif t <= 20:</p>
print(«GREEN»)
elif t <= 23:</p>
print(«RED»)
elif t <= 25:</p>
print(«GREEN»)
elif t <= 28:</p>
print(«RED»)
elif t <= 30:</p>
print(«GREEN»)
elif t <= 33:</p>
print(«RED»)
elif t <= 35:</p>
print(«GREEN»)
elif t <= 38:</p>
print(«RED»)
elif t <= 40:</p>
print(«GREEN»)
elif t <= 43:</p>
print(«RED»)
elif t <= 45:</p>
print(«GREEN»)
elif t <= 48:</p>
print(«RED»)
elif t <= 50:</p>
print(«GREEN»)
elif t <= 53:</p>
print(«RED»)
elif t <= 55:</p>
print(«GREEN»)
elif t <= 58:</p>
print(«RED»)
elif t <= 60:</p>
print(«GREEN»)
…