0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 20
1

Консольная графика. Наривовать елки по заданным параметрам

21.11.2013, 21:31. Показов 3807. Ответов 17
Метки нет (Все метки)

Входные данные - целые числа M, N, K (диапазон в пределах от 1 до 5, проверка корректности типа не требуется). Действие программ ясно из результатов выполнения. ( Вот суть задание) Хочу попросить у вас помощи, если кто знает решение не могли бы вы написать оптимальную прогу, спасибо.
Консольная графика. Наривовать елки по заданным параметрам
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2013, 21:31
Ответы с готовыми решениями:

Построение графика функции по заданным параметрам
Необходимо построить график любой непрерывной функции на отрезке и шагом shag, всё вводится в...

Графика: рисование елки
Здравствуйте. читал много тем на форуме, однако не нашел).... собственно. не могу разобраться в...

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

Консольная графика
Здравствуйте, я написал этот код в Борланд С++ (пример нашел в книге): #include <graphics.h>...

17
5557 / 1363 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
21.11.2013, 21:38 2
ВБА с консолью как-то смешно стыковать. А Word или Excel что, не подойдёт?

Кстати, а вам зачем — мозги тренируете?
1
Заблокирован
21.11.2013, 21:40 3
Caxar,
1 - где суть задания?
Цитата Сообщение от Caxar Посмотреть сообщение
X = Console.ReadLine
2 - при чем здесь VBA, если кодите в VB.NET?
0
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 20
21.11.2013, 23:47  [ТС] 4
Цитата Сообщение от Апострофф Посмотреть сообщение
Caxar,
1 - где суть задания?

2 - при чем здесь VBA, если кодите в VB.NET?
Суть задания написать программу которая выводит всё это дело, но сразу поправка, кажется я вообще не в ту тему зашел так как мне надо всё это дело писать в VВ, а я забрел не туда, прошу извинения. Возможно ли тему перенести в нужный мне раздел?

Добавлено через 28 секунд
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
ВБА с консолью как-то смешно стыковать. А Word или Excel что, не подойдёт?

Кстати, а вам зачем — мозги тренируете?
Наверно тренирую себя, чтобы потом уже мозг тренировать)

Добавлено через 1 час 0 минут
Ребят хоть кто нибудь помогите написать готовую программу, с прошлой задачей с горем по полам справился, с этой трудно. Спасибо)
0
Форумчанин.NET
555 / 426 / 64
Регистрация: 12.02.2013
Сообщений: 834
21.11.2013, 23:51 5
Ну вот 3, 4 понятно, а что 5 дает?
0
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 20
21.11.2013, 23:57  [ТС] 6
Цитата Сообщение от AeroWhite Посмотреть сообщение
Ну вот 3, 4 понятно, а что 5 дает?
Как я понял, строки с ветками ёлки.
т.е. кол-во строк - 1 в одной ёлке.
0
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 01:58 7
Хороший урок для изучения функций PadLeft, PadRight
С Новым Годом!
VB.NET
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
Module Module1
 
    Sub Main()
        Dim M, N, K As Integer
        Console.Write("Введите количество строк: ")
        M = Integer.Parse(Console.ReadLine())
        Console.Write("Введите количество столбцов: ")
        N = Integer.Parse(Console.ReadLine())
        Console.Write("Введите количество строк в ёлке: ")
        K = Integer.Parse(Console.ReadLine())
        Console.Clear()
        Console.WriteLine("======= {0} =======", "Программа ЁЛЫ")
        Console.WriteLine("M={0}{3}N={1}{3}K={2}", M, N, K, vbNewLine)
        For i As Integer = 1 To M
            Console.ForegroundColor = ConsoleColor.DarkGreen
            Console.WriteLine(DrawTrees(N, K))
            Console.ForegroundColor = ConsoleColor.Gray
            Console.WriteLine(DrawTrunks(N, K))
            Console.WriteLine()
        Next
        Console.ReadLine()
 
    End Sub
 
    ''' <summary>
    ''' Рисование дерева
    ''' </summary>
    ''' <param name="N">Количество деревьев</param>
    ''' <param name="K">Количество "веток" в дереве</param>
    Private Function DrawTrees(ByVal N As Integer, ByVal K As Integer) As String
        Dim result As New System.Text.StringBuilder
        Dim row As String
        For i As Integer = 1 To K
            row = New String("#", 2 * i - 1)
            For j As Integer = 1 To N
                result.Append(row.PadLeft(K + i - 1).PadRight(2 * K))
            Next
            If i <> K Then result.AppendLine()
        Next
        Return result.ToString()
    End Function
 
    ''' <summary>
    ''' Рисование ствола
    ''' </summary>
    ''' <param name="N">Количество стволов</param>
    ''' <param name="K">Количество "веток" у дерева</param>
    Private Function DrawTrunks(ByVal N As Integer, ByVal K As Integer) As String
        Dim result As New System.Text.StringBuilder
        For j As Integer = 1 To N
            result.Append("#".PadLeft(K).PadRight(2 * K))
        Next
        Return result.ToString()
    End Function
End Module
1
5557 / 1363 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
22.11.2013, 03:07 8
ViterAlex, я уже было начал мучить мой Word равноширинным шрифтом и кучей пробелов... но как можно под Windows испытать код VB.Net?
0
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 03:30 9
Запустить этот экзешник. Ну а если хочется самому код пощупать, то нужно поставить Visual Studio Express Edition, создать новый проект консольного приложения на VB.Net, вставить туда мой код и нажать F5
Вложения
Тип файла: zip NewYearTree.zip (5.1 Кб, 43 просмотров)
1
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 03:31 10
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
равноширинным
Шрифт моноширинный
1
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 20
22.11.2013, 15:36  [ТС] 11
Цитата Сообщение от ViterAlex Посмотреть сообщение
Запустить этот экзешник. Ну а если хочется самому код пощупать, то нужно поставить Visual Studio Express Edition, создать новый проект консольного приложения на VB.Net, вставить туда мой код и нажать F5
Начнём с того что на экран мне надо выводи только ёлочки, никаких посторонних записей + использовать for и space(для пропусков) ваше программа хороша, но она слишком хороша, мне нужна простая и с использованием того что я указал чуть ранее.
0
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 15:51 12
Цитата Сообщение от Caxar Посмотреть сообщение
использовать for и space(для пропусков)
Именно это и используется. Всё выравнивание в программе сделано пробелами. Раскраску и лишние надписи можно легко убрать, просто их закомментировав
0
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 20
22.11.2013, 15:57  [ТС] 13
Цитата Сообщение от ViterAlex Посмотреть сообщение
Именно это и используется. Всё выравнивание в программе сделано пробелами. Раскраску и лишние надписи можно легко убрать, просто их закомментировав
А не могли бы вы написать в обычном виде, если вам не трудно, без цветов, надписей. Буду благодарен)
0
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 17:08 14
Цитата Сообщение от Caxar Посмотреть сообщение
А не могли бы вы написать в обычном виде, если вам не трудно, без цветов, надписей. Буду благодарен)
Я написал. В нормальном виде. Закомментировать пару строк, отвечающих за цвета и надписи, ты можешь и сам.
0
829 / 637 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
22.11.2013, 18:35 15
Лучший ответ Сообщение было отмечено как решение

Решение

VB.NET
1
2
3
4
5
6
7
Module All
  Sub Main()
    Dim Rows As Integer = 3, Cols As Integer = 4, Lines As Integer = 5
    Console.WriteLine(String.Join(vbCrLf & vbCrLf, Enumerable.Repeat(String.Join(vbCrLf, From Q0 In Enumerable.Range(1, Lines + 1) Let Q = If(Q0 > Lines, 1, Q0), K2 = Lines << 1 Select New String((From W In Enumerable.Range(1, K2 * Cols - 1) Select If(Math.Abs(W Mod K2 - Lines) < Q, "#"c, " "c)).ToArray())), Rows)))
    Console.ReadKey()
  End Sub
End Module
PS: Не удержался
5
5557 / 1363 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
22.11.2013, 22:10 16
В отличие от Caxar, цитировать не вижу смысла, но очень хочется посмотреть, что там смешного!
Цитата Сообщение от Caxar Посмотреть сообщение
А не могли бы вы написать в обычном виде...
Классно сформулировал!!!
0
8906 / 4819 / 1884
Регистрация: 11.02.2013
Сообщений: 10,246
22.11.2013, 22:21 17
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
очень хочется посмотреть, что там смешного!
Смешно там то, что Caxar просил попроще, а Qwertiy дал такой головоломный LINQ-запрос, что мама не горюй
0
5557 / 1363 / 150
Регистрация: 08.02.2009
Сообщений: 4,106
Записей в блоге: 30
23.11.2013, 12:04 18
Зато красивый и изящный — видно даже без запуска! На факультативе бы оценили! А в платном вузе...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2013, 12:04
Помогаю со студенческими работами здесь

Консольная графика С++
Сейчас пишу для экзамена покер на одного игрока. И столкнулся проблемой, при рисовании карт, они у...

консольная графика
Помогите, пожалуйста, с графикой. Не выводит на экран рисунок. # include &lt;graphics.h&gt; #...

Консольная графика
консольная графика,дайте ссылку на статью илт еще че...

Консольная графика
Доброго времени суток!!! Как под DOS рисовать примитивные обьекты линии, квадраты, круги? Для...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru