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

Оттепель

19.01.2021, 15:49. Показов 1876. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю, как вы, а я всегда очень жду, когда пойдёт снег. Все вокруг сразу становится таким чистым и немного волшебным. Правда, в наших краях часто бывают оттепели, и снежинки тают, едва коснувшись земли. Давайте нарисуем этот процесс.

Напишите программу, которая выводит несколько последовательных стадий таяния снежинки.

Сначала снежинка целая, изобразим ее звездочками по диагоналям и осям симметрии квадрата, сторону которого вводит пользователь. Пустые места изобразим нижними подчеркиваниями. Потом выводим пустую строку.

Затем снежинка начинает таять, то есть пропадают самые крайние звездочки со всех сторон. Опять пустая строка, и так до тех пор, пока не останется одна звездочка в центре.

Формат ввода
Вводится целое нечетное число – сторона квадрата.

Формат вывода
Вывести квадраты, заполненные звездочками и нижними подчеркиваниями по указанному правилу, разделенные пустой строкой. В конце так же пустая строка.

Пример
Ввод Вывод
9
*___*___*
_*__*__*_
__*_*_*__
___***___
*********
___***___
__*_*_*__
_*__*__*_
*___*___*

_________
_*__*__*_
__*_*_*__
___***___
_*******_
___***___
__*_*_*__
_*__*__*_
_________

_________
_________
__*_*_*__
___***___
__*****__
___***___
__*_*_*__
_________
_________

_________
_________
_________
___***___
___***___
___***___
_________
_________
_________

_________
_________
_________
_________
____*____
_________
_________
_________
_________
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2021, 15:49
Ответы с готовыми решениями:

Оттепель
Никак не могу понять что у меня неправильно Вот задача Уставшие от необычно теплой зимы, жители решили узнать, действительно ли это...

Оттепель
Уже час бьюсь с простой задачей и никак не могу понять что у меня неправильно Вот задача ЗАДАЧА Вот моё решение Var n,c,d:integer;...

Оттепель
Здравствуйте! Помогите пожалуйста решить задачу Вот условие: Уставшие от необычно теплой зимы, жители решили узнать,...

8
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
19.01.2021, 17:06
LevL123,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def fun(n):
    snow = [''.join(['*' if i == j or 
                    n-i-1 == j or 
                    i == n//2 or 
                    j == n//2  else '_' 
        for j in range(n)]) for i in range(n)]
    for k in range(0, n//2 + 1) :
        for i, row in enumerate(snow) :
            print(row)
            if i == k or i == n - k - 1 :
                snow[i] = snow[i].replace('*', '_')
            if i == n // 2 :
                snow[i] = snow[i].replace('*','_',1)[::-1].replace('*','_',1)
        print()
fun(int(input()))
2
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
19.01.2021, 19:03
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
In [1]: def solution():
    ...:     n = int(input())
    ...:     mid = n // 2
    ...:     a = [["*" if i == j or i == n - j - 1 or i == mid or j == mid else "_" for j in range(n)] for i in range(n)]
    ...:     for i in range(mid + 1):
    ...:         for row in a:
    ...:             print(*row, sep="")
    ...:         print()
    ...:         end = -i - 1
    ...:         a[i][i], a[i][mid], a[i][end], a[mid][end], a[end][end], a[end][mid], a[end][i], a[mid][i] = "_" * 8
    ...:
 
In [2]: solution()
9
*___*___*
_*__*__*_
__*_*_*__
___***___
*********
___***___
__*_*_*__
_*__*__*_
*___*___*
 
_________
_*__*__*_
__*_*_*__
___***___
_*******_
___***___
__*_*_*__
_*__*__*_
_________
 
_________
_________
__*_*_*__
___***___
__*****__
___***___
__*_*_*__
_________
_________
 
_________
_________
_________
___***___
___***___
___***___
_________
_________
_________
 
_________
_________
_________
_________
____*____
_________
_________
_________
_________
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
21.01.2021, 17:12
Цитата Сообщение от Gdez Посмотреть сообщение
def fun(n):
    snow = [''.join(['*' if i == j or
                    n-i-1 == j or
                    i == n//2 or
                    j == n//2  else '_'
        for j in range(n)]) for i in range(n)]
    for k in range(0, n//2 + 1) :
        for i, row in enumerate(snow) :
            print(row)
            if i == k or i == n - k - 1 :
                snow[i] = snow[i].replace('*', '_')
            if i == n // 2 :
                snow[i] = snow[i].replace('*','_',1)[::-1].replace('*','_',1)
        print()
fun(int(input()))
Объясните, пожалуйста, как работает условие if i == j or n - i - 1 == j or i == n // 2 or j == n // 2
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
21.01.2021, 20:06
gray621, 1 условие -> главная диагональ матрицы
2 условие -> побочная диагональ матрицы
3 условие -> средняя строка матрицы
4 условие -> средний столбец матрицы
Если индексы элемента матрицы удовлетворяет одному из условий, то его значение равно '*' ; иначе '_'
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
21.01.2021, 20:23
Python
1
2
3
4
5
['*' if i == j or 
                    n-i-1 == j or 
                    i == n//2 or 
                    j == n//2  else '_' 
        for j in range(n)]
здесь зачем [] скобочки?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
21.01.2021, 20:46
gray621, двумерный массив
Конкретно эти -> строка матрицы
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
21.01.2021, 22:48
Цитата Сообщение от Gdez Посмотреть сообщение
двумерный массив
Я убрал и всё равно работает

Добавлено через 10 минут
Цитата Сообщение от Gdez Посмотреть сообщение
3 условие -> средняя строка матрицы
4 условие -> средний столбец матрицы
Что вы имеете ввиду под средней строкой и средним столбцом?

Добавлено через 8 минут
Gdez,

Python
1
2
if i == n // 2 :
                snow[i] = snow[i].replace('*','_',1)[::-1].replace('*','_',1)
Как работает этот код? Он переставляет * на _ в средних строках и столбцах, но как?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
21.01.2021, 22:58
gray621, заменяет первый символ * в строке на _ затем разворачивает строку и тоже заменяет первую * на _
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2021, 22:58
Помогаю со студенческими работами здесь

Определить самую продолжительную оттепель
Здравствуйте! Помогите пожалуйста решить задачу Вот условие: Уставшие от необычно теплой зимы, жители решили узнать,...

Определить сколько дней длилась самая длинная оттепель
Уставшие от необычно теплой зимы, москвичи решили узнать, действительно ли это самая длинная оттепель за всю историю наблюдений за погодой....

Найти среднюю температуру по всем дням, когда была оттепель
Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать значения...

Найти среднюю температуру по всем дням, когда была оттепель
Составить блок-схему алгоритма и программу на С# для решения задачи Дан целочисленный массив из 31 элемента, в котором записаны...

Посчитать и вывести среднюю температуру по всем дням, когда была оттепель
1. Дан целочисленный массив из 31 элемента, в котором записаны значения температуры воздуха в марте. Элементы массива могут принимать...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru