(может быть, не совсем по назначению использую сайт)
Задача:
Работа светофора для пешеходов запрограммирована следующим образом: в
начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение
двух минут — красный, в течение трех минут — опять зеленый и т. д.
Дано вещественное число 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
Мы можем сделать вывод о том, какой цвет сейчас горит.
- Категория: Python
- Дата публикации: 2022-02-08
- Опубликовано на сайте: Stepik
Задача 1:
Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение двух минут – красный, в течение трех минут – опять зеленый и т. д. Дано вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент. На экран вывести сообщение (без кавычек) «green» — для зеленого и «red» — для красного.
Решение:
n = float(input()) print('green' if n % 3 <= 1 or n % 5 <= 3 else 'red')
Задача 2:
Вводится шестизначное число. Определить, является ли оно счастливым. (Счастливым называют такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр.). Вывести ДА, если счастливое и НЕТ — в противном случае.
Решение:
n = (list(map(int, input()))) print("ДА" if sum(n[0:3]) == sum(n[3:6]) else "НЕТ")
Задача 3:
Вводятся четыре целых числа a, b, c, d в одну строку через пробел. Определить, войдет ли в конверт с внутренними размерами a и b мм прямоугольная открытка с размерами с и d мм. Для размещения открытки в конверте необходим зазор в 1 мм с каждой стороны. Открытку можно поворачивать на 90 градусов. Вывести ДА, если входит и НЕТ — если не входит.
Решение:
a, b, c, d = list(map(int, input().split())) print('ДА' if c + 2 <= a and d + 2 <= b or c + 2 <= b and d + 2 <= a else 'НЕТ')
Задача 4:
Вводится список городов в одну строку через пробел. Если в этом списке присутствует город Москва, то удалить его. Вывести на экран результирующий список в виде строки с городами через пробел.
Решение:
s = input().split() if 'Москва' in s: s.remove('Москва') print(*s)
Задача 5:
Вводится слово. Проверить, что в этом слове присутствуют все три буквы: t, h и o (в произвольном порядке). Реализовать программу с помощью одного условного оператора. Если проверка проходит, вывести ДА, иначе — НЕТ.
Решение:
s = set(input().lower()) x = {'t', 'h', 'o'} print('ДА' if x.issubset(s) else 'НЕТ')
Задача 6:
Вводится четырехзначное число. Проверить, что оно оканчивается на цифру 7. Вывести на экран ДА, если это так и НЕТ — в противном случае.
Решение:
n = list(input()) print('ДА' if n[-1] == '7' else 'НЕТ')
Задача 7:
Вводятся три целых положительных числа в одну строку через пробел. Убедиться, что первые два числа — это катеты прямоугольного треугольника, а третье — его гипотенуза. (Подсказка: проверка делается по теореме Пифагора). Если проверка проходит (истинна), то вывести на экран ДА, иначе — НЕТ.
Решение:
n = (list(map(int, input().split()))) print('ДА' if (n[0]**2 + n[1]**2) == n[2]**2 else 'НЕТ')
Задача 8:
Вводятся два целых положительных числа m и n в одну строку через пробел. Если число m делится нацело на число n, то вывести на экран частное от деления (результат деления) в виде целого числа. В противном случае вывести сообщение «m на n нацело не делится» (без кавычек) и вместо m и n подставить соответствующие числа, например: «13 на 2 нацело не делится».
Решение:
n, m = list(map(int, input().split())) print(n // m if n % m == 0 else f'{n} на {m} нацело не делится')
Задача 9:
Вводится слово. Необходимо определить, является ли это слово палиндромом (одинаково читается вперед и назад, например, АННА). Регистр букв не учитывать. Если введенное слово палиндром, на экран вывести ДА, иначе — НЕТ.
Решение:
s = input().lower() print('ДА' if s == s[::-1] else 'НЕТ')
Задача 10:
Вводятся два вещественных числа в одну строку через пробел. Вывести на экран наибольшее из чисел. Задачу решить с помощью условного оператора.
Решение:
n, m = list(map(float, input().split())) print(n if n > m else m)
Задача 11:
Вводятся три целых числа в одну строку через пробел. Необходимо определить наименьшее среди них и вывести его на экран. Реализовать программу, используя условный оператор, без использования функции min.
Решение:
a, b, c = list(map(int, input().split())) if a < b and a < c: print(a) elif b < a and b < c: print(b) else: print(c)
Задача 12:
Вводится вес боксера-любителя (в кг, в виде вещественного числа). Известно, что вес таков, что боксер может быть отнесен к одной из весовых категорий:
1) легкий вес – до 60 кг (включительно);
2) первый полусредний вес – до 64 кг (включительно);
3) полусредний вес – до 69 кг (включительно);
4) остальные — более 69 кг.
Вывести на экран номер категории, в которой будет выступать боксер.
Решение:
n = float(input()) if n <= 60: print('1') elif 60 < n <= 64: print('2') elif 64 < n <= 69: print('3') else: print('4')
Задача 13:
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк. После последней строки матрицы идёт строка, содержащая только строку «end» (без кавычек, см. Sample Input).
Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы.
В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.
**Sample Input 1:** 9 5 3 0 7 -1 -5 2 9 end **Sample Output 1:** 3 21 22 10 6 19 20 16 -1 **Sample Input 2:** 1 end **Sample Output 2:** 4
Решение 1:
line = '' matrix = [] while line != 'end': line = input() matrix.append([int(_) for _ in line.split()]) li, lj = len(matrix), len(matrix[0]) new_matrix = [[sum([matrix[i-1][j], matrix[(i+1)%li][j], matrix[i][j-1], matrix[i][(j+1)%lj]]) for j in range(lj)] for i in range(li)] [print(*i) for i in new_matrix]
Решение 2:
matrix, line = [], input() while line!='end': matrix += [[int(i) for i in line.split()]] line = input() for i in range(len(matrix)): for j in range(len(matrix[i])): print(matrix[i][j-1] + matrix[i-1][j] + matrix[(i+1) * (len(matrix) - 1 != i)][j] + matrix[i][(j + 1)* (len(matrix[i]) - 1 != j)], end=' ') print()
Задача 14:
Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 … (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.
Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.
Решение 1:
n = int(input()) spisok = [] for i in range(1, n + 1): for j in range(1, i + 1): spisok.append(i) print(*spisok[:n])
Решение 2:
n = int(input()) spisok = [] for i in range(1, n + 1): spisok += ([i] * i) print(*spisok[0:n])
Feb 2nd, 2022
530
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»)
Модуль 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
<span>1) F=Av(¬A&B)
По закону дистрибутивности раскроем скобки
</span>(Av¬A)&(AvB)
Av¬A = 1, значит остаётся AvB
<span>2) F =A&(¬AvB)
</span>По тому же закону раскрываем скобки
(A&¬A)v(A&B)
A&¬A = 0, значит остаётся A&B
3. <span>(AvB)&(¬BvA)&(¬CvB)
По закону склеивания </span>(AvB)&(¬BvA) = A , получается, что выражение принимает вид
A&(¬CvB)
Можно раскрыть скобки, получим
A&¬C v A&B
<span>4) F =(1v(AvB))v((AC)&1)
</span>Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1
Получаем выражение
1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1
Ответ 1
ищем ко-во информации в изображении: 1280 * 800 * 24 = 24576000 бит = 3072000 байт
скорость модема: 19200 бит/с = 2400 байт/с
время: 3072000 / 2400 = 1280 секунд
писать
ехать
читать,сочинять
Задача 1
Дано:
K = 16 * 32 * 25 шт = 12800 шт
i = 16 бит
I — ?
Решение:
I = K * i (K — кол-во символов, i — вес одного символа/бит на символ)
Вес текста I = K * i = 12800 * 16 бит = 204800.0 бит
204800.0 бит = 25600.0 байт = 25.0 Кбайт
Var a,b,c:real;
begin
writeln(‘введите два числа’);
readln(a,b);
if a>b then begin
a:=a/2;
b:=sqr(b);
c:=a+b;
writeln(c)
end
else
begin
b:=b/2;
a:=sqr(a);
c:=a+b;
writeln(c);
end;
<span>end.</span>
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javarush.test.level04.lesson04.task09; | |
/* Светофор | |
Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, | |
затем в течение одной минуты — желтый, а потом в течение одной минуты — красный, затем опять зеленый горит три минуты и т. д. | |
Ввести с клавиатуры вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. | |
Определить, сигнал какого цвета горит для пешеходов в этот момент. | |
Результат вывести на экран в следующем виде: | |
«зеленый» — если горит зеленый цвет, «желтый» — если горит желтый цвет, «красный» — если горит красный цвет. | |
Пример для числа 2.5: | |
зеленый | |
Пример для числа 3: | |
желтый | |
Пример для числа 4: | |
красный | |
Пример для числа 5: | |
зеленый | |
*/ | |
import java.io.*; | |
public class Solution | |
{ | |
public static void main(String[] args) throws Exception | |
{ | |
//напишите тут ваш код | |
} | |
} |
Задача
Работа светофора для пешеходов запрограммирована следующим образом: начиная с начала каждого часа, в течение трех минут горит зеле-ный сигнал, затем в течение двух минут — красный, в течение трех минут — опять зеленый и т. д. Дано вещественное число N, означающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент.
Язык С++.
Желательно решить простым способом (уровень новичка) . Да, и еще нужно использовать функции ввода и вывода scanf и printf, а не cin и cout.
Решение
#include int main(){ /* Согласно данным задачи мы имеем: 1. светофор имеет пятиминутный цикл. 2. если 0 < время <= 3, то горит зеленый 3. если 3 < время <= 5, то горит красный */ float current_time; puts("Enter time, please: "); scanf("%f", ¤t_time); /* чтобы облегчить задачу отбрасываем всю часть времени, которая кратна 5. тут я решил в цикле отнимать по 5 пока current_time > 5. тогда ответ найдем, воспользовавшись условиями задачи */ while (current_time > 5){ current_time -= 5; } // для проверки остатка можно вывести // printf("%.2fn", current_time); /* теперь применим условия задачи */ if (current_time >0 && current_time <= 3){ printf("Greenn"); } else { printf("Redn"); } return(0); }