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

ASCII графика

07.04.2022, 16:33. Показов 4032. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вам дан многоугольник, нарисованный с помощью ASCII-графики. Ваша задача — найти его площадь.

Картинка состоит из символов «.», «\» и «/». Каждый символ изображает единичный квадрат картинки. Символ «.» обозначает пустой квадрат, символ «/» — квадрат с отрезком из левого нижнего угла в правый верхний, а символ «\» — квадрат с отрезком из левого верхнего угла в правый нижний.




Входные данные:
Первая строка входных данных содержит два числа h и w — высота и ширина изображения (2≤h,w≤100). Следующие h строк, по w символов в каждой, содержат описание многоугольника, нарисованного с помощью ASCII-графики.

Гарантируется, что картинка содержит ровно один многоугольник, не имеющий самопересечений и самокасаний.




Выходные данные:
Выведите одно целое число — площадь многоугольника (можно показать, что площадь всегда будет целым числом).



Пример:
входные данные
4 4
/\/\
\../
.\.\
..\/
выходные данные
8
Миниатюры
ASCII графика  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2022, 16:33
Ответы с готовыми решениями:

При построении графика точки выстраиваются в прямую линию, хотя должны быть распределены по всей площади графика
Хочу построить график по значения x и y, которые рандомно генерируются и записываются в два файла x_val и y_val соответственно. При...

ASCII-графика
Привет,программисты.Помогите пожалуйста с заданием на фото.Снимок.PNG .Сложный рисунок не нужно.Там делов на 2минуты,разумеется для тех кто...

ASCII графика в консоли VS
Есть интересная, ну или не очень, задачка, нужно вывести в консольном приложении VS, графику из ASCII символов, с помощью прогрессивной ТВ...

12
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.04.2022, 17:57
Формула Пика
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
07.04.2022, 18:09  [ТС]
Ого

S=B+Г/2-1

Для примера:
Внутри 2 узла
на границе 6 углов
S = 2+6/2 - 1 = 2+3 - 1 = 4

но в примере указано что 8

Добавлено через 5 минут
Чето я не очень понимаю сколько в примере внутри и на границе вершин
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.04.2022, 18:38
дальше сам думай или "жди у моря погоды".
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
07.04.2022, 19:28  [ТС]
и как сделать чтобы программа находила количество точек внутри? ну здесь 4 точки внутри и 10 на границе
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
07.04.2022, 20:42
Лучший ответ Сообщение было отмечено shinzin как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
polygon = ['/\/\\',
           '\../',
           '.\.\\',
           '..\/', ]
h = 4
w = 4
 
dot_inside = False
square = 0
for line in polygon:
    for char in line:
        if char in ('\\', '/'):
            square += .5
            flag = not dot_inside
        if char == '.' and dot_inside:
            square += 1
print(int(square))
1
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
07.04.2022, 23:29  [ТС]
polygon это какой тип данных?

Добавлено через 4 минуты
неверно тут, когда пример то выводит 5 вместо 8
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
08.04.2022, 00:08
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def get_square(row):
    # ==========================================================================
    def symb_square(symb):
        if symb in '\/':
            return 0.5
        elif symb == '.':
            return 1
        else: 
            return 0
    #==========================================================================
    row = row.strip('.')
    return sum( map( symb_square, row ) )
#==============================================================================
h, w = map( int, input('h, w = ').split() )
res = 0
for i in range(h):
    res += get_square( input('-> ') )
print(res)
0
0 / 0 / 0
Регистрация: 20.02.2022
Сообщений: 22
Записей в блоге: 4
10.04.2022, 14:40
ломается на 7 тесте
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
10.04.2022, 16:26  [ТС]
Потому что в этом решении не формула пика
Надо узнаьт сколько на границе вершин и сколько внутри
Вот в примере на границе 10, внутри 4
Получаем
4 + (10/2) - 1 = 4 + 5 - 1 = 8
Но чтобы программа посчитала сколько на границе и внутри тут надо уже подумать как это реализовать

((В + (Г / 2) − 1), где В — количество целочисленных точек внутри многоугольника, а Г — количество целочисленных точек на границе многоугольника.)
0
1 / 0 / 1
Регистрация: 10.04.2022
Сообщений: 1
10.04.2022, 17:09
Лучший ответ Сообщение было отмечено shinzin как решение

Решение

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
a=[int(i) for i in input().split()]
counter=0
point=0
z=0
x=0
c=0
f=['\\','/','|']
for i in range(a[0]):
    q=list(input())
    last=q[0]
    for j in range(1,len(q)):
        z=0
        x=0
        c=0
        if q[j]=="." and last in f:
            point+=1
        if q[j]=="" and last=="/":
            point+=1
        if q[j]=="/" and last=="":
            point+=1
    z=q.count('/')
    x=q.count('\\')
    c=q.count('|')
    counter+=z+x+c
print((point-1)+(counter/2)-1)
Подскажите как улучшить, делал через формулу Пика на 4 тесте беда.
0
4 / 3 / 1
Регистрация: 24.03.2021
Сообщений: 71
10.04.2022, 17:55
zykineg, решил? Если да, то скинь скорее пожалуйста.Либо снос стен

Добавлено через 2 минуты
Lama11007, а ты решил? Скинь пожалуйста трже или снос стен.
0
-2 / 6 / 5
Регистрация: 19.01.2022
Сообщений: 201
10.04.2022, 20:28  [ТС]
Задача не закрыта

Добавлено через 1 час 44 минуты
Помогите решить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2022, 20:28
Помогаю со студенческими работами здесь

Как использовать charsToTrim с ASCII кодом? или как удалить множество символов из строки используя код ASCII
Как использовать charsToTrim с ASCII кодом? или как удалить множество символов из строки используя код ASCII

Автозамена ASCII->Unicode при наборе и Unicode->ASCII при сохранении
Кто-нибудь видел хоть в одном редакторе (желательно "программистский") способность отображать одни символы вместо других? Например,...

Chart - диаграмма: изменить точность делений графика, установить центр графика в (0,0)
Создал диаграмму (все прекрасно считается точки расставляются), но есть проблемыЖ 1. В случае диаграммы - "Спектр амплитуд",...

Рисование графика: обработка новых входящих данных и движение графика на форме
Подскажите каким способом можно вывести график частью главного окна программы, при чем график получает данные *в живую* с устройства по...

Реализация загрузки данных графика, а затем построение этого графика
Добрый день! Есть окно в GUIDE, в нем кнопка Загрузить данные. По нажатию на эту кнопку, она обрабатывает данные и сразу строит график в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru