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

Стековая гистограмма

26.10.2021, 10:50. Показов 7776. Ответов 12

Студворк — интернет-сервис помощи студентам
Название: gist.png
Просмотров: 114

Размер: 2.2 Кб
По определению Википедии, стековая гистограмма отображает зоны, представляющие свойства одной категории, друг поверх друга. Имеется n категорий с двумя свойствами. Требуется нарисовать стековую гистограмму без подписей в консоли с использованием символов ".*#", как показано в примере.

Формат входных данных
В первой строке на вход подается одно натуральное число n — количество категорий в гистограмме. 2≤n≤50. Во второй строке через пробел записано n натуральных чисел a1,...,an — значения первого свойства для каждой категории. В третьей строке аналогично записаны натуральные числа b1, ... bn — значения второго свойства. 1≤ai, ​bi≤20.

Формат выходных данных
Требуется вывести в консоль текстовое представление гистограммы. Текст должен содержать ровно max(ai+bi) строк, каждая строка должна содержать ровно n символов и завершаться переводом строки. Если рассматривать текст по столбцам, то i-тый столбец должен содержать снизу ровно ai далее bi вездочек, а еще выше — точки.

Методика проверки и пояснение к тесту
Программа проверяется на 5 тестах. Прохождение каждого теста оценивается в 4 балла. Тест из условия задачи при проверке не используется.

На картинке изображена гистограмма из примера. Синие квадратики соответствуют решеткам, зеленые — звездочкам, белые — точкам. Количество строк равно высоте самого высокого столбика.

Sample Input:
5
3 2 1 5 2
1 6 1 2 2

Sample Output:
Code
1
2
3
4
5
6
7
8
.*...
.*.*.
.*.*.
.*.#.
**.#*
#*.#*
##*##
#####
Пожалуйста, помогите, очень прошу!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2021, 10:50
Ответы с готовыми решениями:

Гистограмма
написать программу, которая будет отображать гистограммы атрибута длины чашелистика отдельно для каждого жанра

Гистограмма
Диаграмма, в которой значения отображаются в виде разных по высоте столбиков, называется вертикальной гистограммой. А если к имеющимся...

Гистограмма с накоплением
Диаграмма, в которой значения отображаются в виде разных по высоте столбиков, называется вертикальной гистограммой. А если к имеющимся...

12
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
26.10.2021, 11:31
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
stack_histo([3,2,1,5,2],[1,6,1,2,2])
0
1 / 1 / 1
Регистрация: 08.04.2020
Сообщений: 35
26.10.2021, 12:03  [ТС]
Catstail, Большое спасибо!
На тестах в редакторе кода всё работает, но сайт выдаёт ошибку. 0 из 5 тестов пройдено.
Что не так и что делать, скажите пожалуйста?!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
26.10.2021, 12:57
Gleb-sirius-pro, ты сам хоть строку кода писал? Или только списываешь то, что пишут другие? Конечно, если мой код тупо "сунуть на вход" тестирующей системе, то будет нехорошо... Попробуй это:

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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
_=input()
a=list(map(int,input().split())
b=list(map(int,input().split())
 
stack_histo(a,b)
Добавлено через 3 минуты
Gleb-sirius-pro, и еще: программировать "учишься", а даже метки выбираешь дурацкие ( "python, python 3, python 3.7, python 3.x, Задачи, информатика") Ты понимаешь, для чего нужны метки? Для быстрого поиска. И что найдут по твоим меткам?
1
0 / 0 / 0
Регистрация: 26.10.2021
Сообщений: 1
26.10.2021, 17:17
Программа не проходит на платформе. Ответы совпадают только на представленном в описании примере. +скобки не закрыты
0
26.10.2021, 17:25

Не по теме:

Catstail, школьная олимпиада началась. ждем наплыв, еще три дня будет в других регионах)))

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
26.10.2021, 17:59
boat_CheRChill, я плАчу!

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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row)
        
_=input()
a=list(map(int,input().split()))
b=list(map(int,input().split()))
 
stack_histo(a,b)
Code
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
5
1 2 3 4 5
5 4 3 2 1
 
* * * * *
* * * * #
* * * # #
* * # # #
* # # # #
# # # # #
 
6
2 7 11 9 3 4  
0 2 8 13 6 5
. . . * . .
. . . * . .
. . . * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . * * . .
. . # * . .
. . # * . .
. * # # * *
. * # # * *
. # # # * *
. # # # * *
. # # # * *
. # # # * #
. # # # # #
# # # # # #
# # # # # #
0
0 / 0 / 0
Регистрация: 26.10.2021
Сообщений: 1
26.10.2021, 19:14
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
n, m = map(int, input().split())
out = []
if m > n:
    for i in range(m):
        out.append(n*m-i-1)
    for i in range(n):
        out.append(n*m-(i+1)*(i+1))
    for i in range(n-1):
        out.append(n*m - (n-i-1)*(m-i-1))
    
        
if m < n:
    for i in range(n):
        out.append(n*m-i-1)
    for i in range(m):
        out.append(n*m-(i+1)*(i+1))
    for i in range(m-1):
        out.append(n*m -(n-i-1)*(m-i-1))
        
if m == n:
    for i in range(m+1):
        out.append(n*m-i-1)
    for i in range(n-1):
        out.append(n*m - (n-i-1)*(m-i-1))
 
for i in range(m-1):
    out.append(n*m-n*(i+1))
for i in range(n-1):
    out.append(n*m-m*(i+1))
 
new_out = list(set(out))
new_out.sort()
for el in new_out:
    print(el,'', end='')
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
27.10.2021, 08:08
Alexander_2157, что это?
0
1 / 1 / 1
Регистрация: 08.04.2020
Сообщений: 35
27.10.2021, 11:27  [ТС]
Catstail, Я хорошо знаю Python, поэтому ввод я написал сам. Я умею читать код.
Но ваше решение не принимается платформой, хотя работает в редакторе кода!
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
27.10.2021, 11:52
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Я хорошо знаю Python
- тогда покажи свое решение.
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Я умею читать код.
- молодец!
Цитата Сообщение от Gleb-sirius-pro Посмотреть сообщение
Но ваше решение не принимается платформой
- я не знаю требований этой платформы. А ты знаешь. Питон знаешь хорошо. Бери мое решение и подгоняй под "требования"!
0
0 / 0 / 0
Регистрация: 03.04.2020
Сообщений: 9
27.10.2021, 14:47
Я знаю в чём проблема. Проблема в том что в требованиях указано что должно быть без пробелов, а тут получается с пробелами.
0
1 / 1 / 0
Регистрация: 27.10.2021
Сообщений: 1
27.10.2021, 14:55
Конечно у тебя не будет работать, если ты не уберешь пробелы...., так элементарно...(специально для тебя убрал, используя программу человека сверху, так как она отличная)


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
def stack_histo(a,b):
    n=len(a)
    hmax=0
    
    for i in range(n):
        h=a[i]+b[i]
        if h>hmax:
            hmax=h
    vscr=[["." for _ in range(n)] for _ in range(hmax)]
    
    for i in range(n):
        aa=a[i]
        bb=b[i]
        
        for k in range(aa):
            vscr[k][i]="#"
        for k in range(aa,aa+bb):
            vscr[k][i]="*"
    
    for row in vscr[-1::-1]:
        print(*row, sep = '')
        
_=input()
a=list(map(int,input().split()))
b=list(map(int,input().split()))
 
stack_histo(a,b)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2021, 14:55
Помогаю со студенческими работами здесь

Гистограмма
Здравствуйте, моя программа выполняет 59 из 66 тестов. Подскажите, как её изменить. Гистограмма является многоугольником, сформированным...

Гистограмма
Пожалуйста помогите! Мне срочно нужно написать программу которая считывает числа в входном файле и строит гистограмму в выходном. ...

Гистограмма
Всем доброго времени суток, подскажите есть ли в питоне средства для создания гистограммы изображения? если нет, то может быть формулы...

Гистограмма в python
Доброго времени суток! подскажите пожалуйста как быть. Есть данные получаемые из таблицы excel по которым я строю гистограмму с помощью...

Гистограмма matplotlib
привет. нигде не найду русскую доку мо данной библиотеке. есть у меня такие данные. телефон, время в сек +71, 1 +72, 1534 ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
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
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru