Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Циклы в программировании

aaaaa bbbbb Профи (658), на голосовании 3 недели назад
Подскажите пожайста какой циклы использовать.Допустим у меня в углу экрана меняется цвет на 3 разных (белый , синий, красный). Частота изменений неизвесна длительность цвета во времени неизвестна.Я хочу сделать например чтоб при красном цвете у меня запускался один раз блокнот, при синем цвете запускался один раз калькулятор и при красном цвете запускалась один раз cmd строка.И чтобы основной цикл был бесконечный. (язык програмирования не важен,они все плюс минус похожие, мне важна логика)
Голосование за лучший ответ
Egor Yudin Ученик (209) 1 месяц назад
Для реализации задачи, где вы хотите, чтобы изменения цветов в углу экрана приводили к запуску разных приложений, можно использовать бесконечный цикл с условиями для проверки текущего цвета. Я приведу логику на примере языка Python, но вы сможете адаптировать её на любой другой язык программирования.

### Пример на Python

```python
import time
import random
import subprocess

# Функция для имитации изменения цвета и запуска приложений
def change_color_and_run_apps():
while True:
# Случайный выбор цвета из трех
color = random.choice(['red', 'blue', 'white'])

# Логика для запуска приложений в зависимости от цвета
if color == 'red':
print("Цвет: Красный - запускаем блокнот")
subprocess.run ("notepad") # Запускаем блокнот
elif color == 'blue':
print("Цвет: Синий - запускаем калькулятор")
subprocess.run ("calc") # Запускаем калькулятор
elif color == 'white':
print("Цвет: Белый - запускаем cmd")
subprocess.run ("cmd") # Запускаем командную строку

# Задержка для имитации времени между изменениями цвета
time.sleep(random.uniform(1, 5)) # Пауза от 1 до 5 секунд для следующего изменения

# Запуск функции
change_color_and_run_apps()
```

### Логика

1. **Бесконечный цикл**: Используется `while True`, чтобы программа работала бесконечно.

2. **Случайный выбор цвета**: Используется `random.choice()` для случайного выбора одного из трех цветов.

3. **Условия для запуска приложений**: В зависимости от выбранного цвета происходит запуск соответствующего приложения с помощью ` subprocess.run ()`.

4. **Задержка**: Используется `time.sleep()`, чтобы задать паузу между изменениями цвета, чтобы имитировать случайные временные интервалы.

### Примечания

1. Убедитесь, что у вас есть права для запуска нужных приложений. В некоторых случаях может потребоваться запуск от администратора.

2. Вы можете адаптировать функцию задержки и список цветов под свои нужды.

3. Если вы используете другой язык программирования, аналогичные структуры циклов и условные операторы существуют и в других языках (например, `for`, `while`, `if`, `else`).

Таким образом, вы можете создать бесконечный цикл, который меняет цвет в углу экрана и запускает соответствующие приложения в зависимости от текущего цвета.
aaaaa bbbbbПрофи (658) 1 месяц назад
спасибо, только вся сложность в том что цвета появляются рандомно , не мы их имитируем. Вот например был фиолетовый цвет (скрипт молчит), потом внезапно появился синий цвет (скрипт срабатывает и запускает один раз калькулятор и ждет следующего цвета, если использовать оператор if то скрипт запускает калькулятор один раз и завершается, если использовать оператор while то он запустит миллион калькуляторов, а нужно чтобы один раз запустил и ждал, далее допустим через 5 минут красный цвет вышел и скрипт один раз запускает cmd строку и ждет опять следующий цвет (ждет при том что красный продолжает гореть)
Терр Онтал Мудрец (12747) 1 месяц назад
С логикой у тебя как раз что-то не так. Объясни нормально что ты хочешь, и сам поймёшь как это сделать
Jurijus Zaksas Искусственный Интеллект (445688) 1 месяц назад
>И чтобы основной цикл был бесконечный.
Ну так и используй бесконечный цикл. Какой именно - не принципиально совершенно, на твой вкус.
Рустам Абдрашитов Мыслитель (9494) 1 месяц назад
 import time 
import subprocess

def get_current_color():
pass

def run_program_based_on_color(color):
programs = {
"red": "notepad.exe",
"blue": "calc.exe",
"white": "cmd.exe"
}

if color in programs:
try:
subprocess.run([programs[color]])
except Exception as e:
print(f"Ошибка при запуске {programs[color]}: {e}")

def main():
last_color = None

while True:
current_color = get_current_color()

if current_color != last_color:
run_program_based_on_color(current_color)
last_color = current_color

time.sleep(1)

if __name__ == "__main__":
main()
Похожие вопросы