Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/64: Рейтинг темы: голосов - 64, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 25.10.2022
Сообщений: 5

По виду табло определите, какая буква на нём изображена. Олимпиада

25.10.2022, 12:40. Показов 13104. Ответов 2

Студворк — интернет-сервис помощи студентам
Ограничение по времени: 1 секунда

Вы получили доступ к одной из камер наблюдения в особо секретной огранизации. В зоне видимости камеры находится табло, с которого вы постоянно считываете информацию. Теперь вам нужно написать программу, которая по состоянию табло определяет, какая буква изображена на нём в данный момент. Табло представляет из себя квадратную таблицу, разбитую на n×n равных квадратных светодиодов. Каждый диод либо включён, либо выключен. Введём систему координат, направив ось OX вправо, а ось OY — вверх, приняв сторону диода равной 1.
На табло могут быть изображены только следующие буквы:
• I — прямоугольник из горящих диодов.
• O — прямоугольник из горящих диодов с углами (x1, y1) и (x2, y2), внутри которого есть прямоугольник из выключенных диодов с координатами углов (x3, y3) и (x4, y4). При этом границы внутреннего прямоугольника не должны касаться внешнего, то есть x1<x3<x4<x2 и y1<y3<y4<y2.
• C — прямоугольник из горящих диодов с углами (x1,y1) и (x2,y2), внутри которого есть прямоугольник из выключенных диодов с координатами углов (x3,y3) и (x4,y4). При этом правая граница внутреннего прямоугольника находится на правой границе внешнего прямоугольника, то есть x1<x3<x4=x2 и y1<y3<y4<y2.


• L — прямоугольник из горящих диодов с углами (x1,y1) и (x2,y2), внутри которого есть прямоугольник из выключенных диодов с координатами углов (x3,y3) и (x4,y4). При этом правые верхние углы внутреннего прямоугольника и внешнего прямоугольника совпадают, то есть x1<x3<x4=x2 и y1<y3<y4=y2.

• H — прямоугольник из горящих диодов с углами (x1,y1) и (x2,y2), внутри которого находятся 2 прямоугольника из выключенных диодов с координатами углов (x3,y3) и (x4,y4) у первого и (x5,y5),(x6,y6) у второго. При этом внутренние прямоугольники должны иметь одинаковую ширину, находиться строго один под другим, один прямоугольник должен касаться верхней стороны, а другой прямоугольник должен касаться нижней стороны внешнего прямоугольника, то есть x1<x3=x5<x4=x6<x2 и y1=y3<y4<y5<y6=y2.


• P — прямоугольник из горящих диодов с углами (x1,y1) и (x2,y2), внутри которого находятся 2 прямоугольника из выключенных диодов с координатами углов (x3,y3), (x4,y4) у первого и (x5,y5),(x6,y6) у второго. При этом правый нижний угол первого внутреннего прямоугольника должен совпадать с правым нижним углом внешнего прямоугольника, а другой внутренний прямоугольник должен находиться строго выше и не касаться границ других прямоугольников. Также левые границы двух внутренних прямоугольников должны совпадать, то есть x1<x3=x5<x6<x4=x2 и y1=y3<y4<y5<y6<y2.


• Любое другое состояние табло считается буквой X.
По виду табло определите, какая буква на нём изображена.

Ввод:
4
.##.
.##.
.##.
....

Вывод: I

Ввод:
5
#...#
.#.#.
..#..
.#.#.
#...#

Вывод: X
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2022, 12:40
Ответы с готовыми решениями:

Какая игра изображена?
В какую игру играет котэ?

Введите с клавиатуры любое слово.Определите в нем число символов.Сколько раз в этом слове встречается буква А?
:cry:Помогите, пожалуйста:cry: Введите с клавиатуры любое слово.Определите в нем число символов.Сколько раз в этом слове встречается...

Дан текстовый файл, в нем текст записан в несколько строк. Вычислить какая буква встречается чаще A или B
Можете с объяснением пожалуйста .

2
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
25.10.2022, 13:48
Подсказка: считай уголки.
0
0 / 0 / 0
Регистрация: 26.10.2022
Сообщений: 1
26.10.2022, 00:23
[терминология]
верхний - T, нижний - B
левый - L, правый - R

[ход действий]
1. найти TL, TR, BL, BR координаты активных светодиодов

2. посчитать и сравнить периметры областей по TL->BR и TR->BL
(чем выше значение, тем приоритетнее подход,
охватывается бóльшая область фигуры/символа)

3. отметить крайние координаты области

4. узнать, есть ли выключенные светодиоды в самой области,
а также по её краям (overall, T, L, B, R)

5. сравнить результат с шаблоном

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from sys import maxsize as m
 
figures = {
    "11111": "I",
    "01111": "O",
    "01101": "C",
    "00101": "L",
    "00110": "H",
    "01100": "P"
}
 
n = int(input())
matrix = []
 
# area corners
c_tl, c_tr = (m, m), (-m, m)
c_bl, c_br = (m, -m), (-m, -m)
 
for y in range(n):
    line = input()
    row = []
 
    for x, char in enumerate(line):
 
        # align figure area
        if char == "#":
            if x <= c_tl[0] and y <= c_tl[1]:
                c_tl = (x, y)  # top left corner
            if x >= c_tr[0] and y <= c_tr[1]:
                c_tr = (x, y)  # top right corner
            if x <= c_bl[0] and y >= c_bl[1]:
                c_bl = (x, y)  # bottom left corner
            if x >= c_br[0] and y >= c_br[1]:
                c_br = (x, y)  # bottom right corner
 
        row.append(char)
    matrix.append(row)
 
# perimeter by "top left -> bottom right"
p_tl_br = abs(c_tl[0] - c_br[0]) + abs(c_tl[1] - c_br[1])
 
# perimeter by "top right -> bottom left"
p_tr_bl = abs(c_tr[0] - c_bl[0]) + abs(c_tr[1] - c_bl[1])
 
# area start & end by tl -> br
if p_tl_br >= p_tr_bl:
    x_s, x_e = c_tl[0], c_br[0]
    y_s, y_e = c_tl[1], c_br[1]
 
# area start & end by tr -> bl
else:
    x_s, x_e = c_bl[0], c_tr[0]
    y_s, y_e = c_tr[1], c_bl[1]
 
# solidness
overall, top, left, right, bottom = [1] * 5
 
for y in range(y_s, y_e + 1):
    for x in range(x_s, x_e + 1):
        if matrix[y][x] == ".":
            overall = 0
 
            if y == y_s:
                top = 0  # top side
            if x == x_s:
                left = 0  # left side
            if x == x_e:
                right = 0  # right side
            if y == y_e:
                bottom = 0  # bottom side
 
template = f"{overall}{top}{left}{right}{bottom}"
figure = figures.get(template, "X")
 
print(figure)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2022, 00:23
Помогаю со студенческими работами здесь

Определите количество строк, в которых буква E встречается чаще, чем буква A
Доброго времени суток. Не могу найти ошибку в программе. Вот задание: Текстовый файл содержит строки различной длины. Общий объём...

Дано предложение, в котором имеются одна буква с и одна буква Т. Определить, какая из них встречается раньше
Дано предложение, в котором имеются одна буква с и одна буква Т. Определить, какая из них встречается раньше.

Напишите программу, которая по описанию табло и заставки определяет: возможно ли на табло отобразить эту заставку
На хоккейном стадионе в одном большом городе расположено большое прямоугольное табло. Оно имеет n строк и m столбцов (то есть состоит из n...

Определите материнскую плату по внешнему виду!
Помогите определить материнскую плату по внешнему виду!!!! Нужна прошивка BIOS к ней.

Какая буква соответствует дисководу?
Как определить какие имена дисков в ОС соответствуют дискетам. По умолчанию это A и B, но ведь это можно менять. А мне в программе нужно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru