Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
dezder
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 42
1

Как сделать консольную программу, которая выводит пирамиду чисел

15.04.2012, 19:46. Просмотров 2608. Ответов 14
Метки нет (Все метки)

что бы результат был такой
Код
55
555
5555
55555
555555
55555
5555
555
55
ну пирамида вершиной в право должна смотреть.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 19:46
Ответы с готовыми решениями:

Как можно создать консольную программу которая бы могла узнать все про пользователя компьютера?
Напр. Имя, Пароль и.т.д. И еще можно была бы изменит их. Можно ли такую создать?

Сделать консольную программу парковки автомобилей используя класс Semaphore
Никак немогу совсем разобратсья c задачей .Нужно сделать консольную программу...

Написать консольную программу, реализующую арифметику комплексных чисел
Написать консольную программу на C#, реализующую арифметику комплексных чисел....

Написать программу, которая задает массив целых чисел, а затем выводит массив на экран
1. Написать программу, которая задает массив целых чисел (можно без ввода их с...

Как сделать консольную командную строку в С#
Здравствуйте киберформучане, я новичок и поэтому скорее всего будут глупые...

14
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
15.04.2012, 21:53 2
Лучший ответ Сообщение было отмечено как решение

Решение

Вам решение в лоб?)
Вот пожалуйста)

C#
1
2
3
4
5
6
7
8
9
10
Console.WriteLine("55");
Console.WriteLine("55");
Console.WriteLine("555");
Console.WriteLine("5555");
Console.WriteLine("55555");
Console.WriteLine("555555");
Console.WriteLine("55555");
Console.WriteLine("5555");
Console.WriteLine("555");
Console.WriteLine("55");
3
nio
5959 / 3365 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.04.2012, 12:09 3
NowMatrix, методология поднебесной рулит
1
NowMatrix
16.04.2012, 14:34
  #4

Не по теме:

Ага:)

0
turbanoff
Эксперт Java
4020 / 3755 / 742
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
16.04.2012, 15:25 5
По мотивам недавнего топика на хабре.
"Правильный способ"
Показать
C#
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
76
77
78
79
        public interface IPyramyd
        {
            void print();
        }
        public interface IPyramydBuilder
        {
            IPyramydBuilder SetMinCount(int count);
            IPyramydBuilder SetMaxCount(int count);
            IPyramyd create();
        }
        public static void Main()
        {
            PyramydBuilderFactory.CreateFactory().CreateBuilder('5').SetMaxCount(6).SetMinCount(2).create().print();
            Console.ReadKey();
        }
 
        public class PyramydBuilderFactory
        {
            public static PyramydBuilderFactory CreateFactory()
            {
                return new PyramydBuilderFactory();
            }
            private PyramydBuilderFactory()
            {
            }
            public IPyramydBuilder CreateBuilder(char c)
            {
                if (c == '5')
                    return new FifthPyrymidBuilder();
                throw new NotImplementedException();
            }
        }
 
        public class FifthPyrymidBuilder : IPyramydBuilder
        {
            private int minCount = 1;
            private int maxCount = 10;
 
            public IPyramydBuilder SetMinCount(int count)
            {
                minCount = count;
                return this;
            }
 
            public IPyramydBuilder SetMaxCount(int count)
            {
                maxCount = count;
                return this;
            }
 
            public IPyramyd create()
            {
                return new FifthPyrymid(minCount, maxCount);
            }
        }
 
        public class FifthPyrymid : IPyramyd
        {
            private int minCount;
            private int maxCount;
 
            public FifthPyrymid(int minCount, int maxCount)
            {
                this.minCount = minCount;
                this.maxCount = maxCount;
            }
 
            public void print()
            {
                for (int i = minCount; i <= maxCount; i++)
                {
                    Console.WriteLine("5".PadRight(i, '5'));
                }
                for (int i = maxCount - 1; i >= minCount; i--)
                {
                    Console.WriteLine("5".PadRight(i, '5'));
                }
            }
        }


Доработать напильником при желании не должно составить никакого труда.
2
kolorotur
Эксперт .NET
10719 / 8878 / 2222
Регистрация: 17.09.2011
Сообщений: 15,266
Завершенные тесты: 1
16.04.2012, 15:40 6
Цитата Сообщение от turbanoff Посмотреть сообщение
Правильный способ
Я бы сказал, слишком переинженеренный способ для такой задачи.
1
dezder
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 42
16.04.2012, 21:16  [ТС] 7
Цитата Сообщение от NowMatrix Посмотреть сообщение
Вам решение в лоб?)
Вот пожалуйста)

C#
1
2
3
4
5
6
7
8
9
10
Console.WriteLine("55");
Console.WriteLine("55");
Console.WriteLine("555");
Console.WriteLine("5555");
Console.WriteLine("55555");
Console.WriteLine("555555");
Console.WriteLine("55555");
Console.WriteLine("5555");
Console.WriteLine("555");
Console.WriteLine("55");
ну как бы надо было через цикл, точнее у меня такая фишка была что я строил такую шняжку
123456789
123456789
123456789
123456789
и ее как то можно было разделить.
а ваш способ даже в голову не приходил СПС.
0
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
16.04.2012, 21:43 8
dezder, Ну из всего кода turbanoff, для вас можно выделить один метод и использовать его. Это как раз через цикл.
C#
1
2
3
4
5
6
7
8
9
10
11
public void print()
        {
            for (int i = minCount; i <= maxCount ; i++) //тут "вершина" пирамиды maxCount
            {
                Console.WriteLine("5".PadRight(i, '5'));
            }
            for (int i = maxCount - 1; i >= minCount; i--)
            {
                Console.WriteLine("5".PadRight(i, '5'));
            }
        }
0
kolorotur
Эксперт .NET
10719 / 8878 / 2222
Регистрация: 17.09.2011
Сообщений: 15,266
Завершенные тесты: 1
16.04.2012, 22:15 9
Только вместо страшненькой конструкции "x".PadRight(i, 'x') я бы использовал new string('x' i);
1
SlavAz
ѪѦѢ
596 / 165 / 5
Регистрация: 19.08.2011
Сообщений: 666
Записей в блоге: 3
17.04.2012, 00:11 10
А вот индийский вариант:
C#
1
2
3
4
5
6
7
8
9
10
int[] array = new int[] {55,555,5555,55555,555555,55555,5555,555,55};
Console.WriteLine(array[0]);
Console.WriteLine(array[1]);
Console.WriteLine(array[2]);
Console.WriteLine(array[3]);
Console.WriteLine(array[4]);
Console.WriteLine(array[5]);
Console.WriteLine(array[6]);
Console.WriteLine(array[7]);
Console.WriteLine(array[8]);
0
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.04.2012, 00:17 11
SlavAz, Ну тогда уж так
C#
1
2
int[] array = new int[] {55,555,5555,55555,555555,55555,5555,555,55};
for (int i=0;i<array.Length;i++) Console.WriteLine(array[i]);
0
SlavAz
ѪѦѢ
596 / 165 / 5
Регистрация: 19.08.2011
Сообщений: 666
Записей в блоге: 3
17.04.2012, 00:27 12
NowMatrix,
Индус из моего примера живет на границе с Китаем, а твой - его шеф из Мумбая )
0
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.04.2012, 00:45 13

Не по теме:

SlavAz, :D



Добавлено через 2 минуты
Я кстати не понял,зачем в методе CreateBuilder параметр нужен? Можно же просто так сделать:

C#
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication3
{
    public interface IPyramyd
    {
        void print();
    }
    public interface IPyramydBuilder
    {
        IPyramydBuilder SetMinCount(int count);
        IPyramydBuilder SetMaxCount(int count);
        IPyramyd create();
    }
 
    public class PyramydBuilderFactory
    {
        public static PyramydBuilderFactory CreateFactory()
        {
            return new PyramydBuilderFactory();
        }
        private PyramydBuilderFactory()
        {
        }
        public IPyramydBuilder CreateBuilder()
        {
            return new FifthPyrymidBuilder();
        }
    }
 
    public class FifthPyrymidBuilder : IPyramydBuilder
    {
        private int minCount = 1;
        private int maxCount = 10;
 
        public IPyramydBuilder SetMinCount(int count)
        {
            minCount = count;
            return this;
        }
 
        public IPyramydBuilder SetMaxCount(int count)
        {
            maxCount = count;
            return this;
        }
 
        public IPyramyd create()
        {
            return new FifthPyrymid(minCount, maxCount);
        }
    }
 
    public class FifthPyrymid : IPyramyd
    {
        private int minCount;
        private int maxCount;
 
        public FifthPyrymid(int minCount, int maxCount)
        {
            this.minCount = minCount;
            this.maxCount = maxCount;
        }
 
        public void print()
        {
            for (int i = minCount; i <= maxCount; i++)
            {
                Console.WriteLine("5".PadRight(i, '5'));
            }
            for (int i = maxCount - 1; i >= minCount; i--)
            {
                Console.WriteLine("5".PadRight(i, '5'));
            }
        }
    }
 
    class Program
    {
        public static void Main()
        {
            PyramydBuilderFactory.CreateFactory().CreateBuilder().SetMaxCount(6).SetMinCount(2).create().print();
            
            Console.ReadKey();
        }
    }
}
Добавлено через 11 минут
А лучше так,в метод CreateBuilder в параметр ставим любое число,из которого хотим строить пирамиду и далее передавать его в класс FifthPyrymid. Немного переделал.
C#
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication3
{
    public interface IPyramyd
    {
        void print();
    }
    public interface IPyramydBuilder
    {
        IPyramydBuilder SetMinCount(int count);
        IPyramydBuilder SetMaxCount(int count);
        IPyramyd create();
    }
 
    public class PyramydBuilderFactory
    {
        public static PyramydBuilderFactory CreateFactory()
        {
            return new PyramydBuilderFactory();
        }
        private PyramydBuilderFactory()
        {
        }
        public IPyramydBuilder CreateBuilder(char c)
        {
            return new FifthPyrymidBuilder(c);
        }
    }
 
    public class FifthPyrymidBuilder : IPyramydBuilder
    {
        private int minCount = 1;
        private int maxCount = 10;
        private char value = '0';
 
        public FifthPyrymidBuilder(char val)
        {
            value = val;
        }
 
        public IPyramydBuilder SetMinCount(int count)
        {
            minCount = count;
            return this;
        }
 
        public IPyramydBuilder SetMaxCount(int count)
        {
            maxCount = count;
            return this;
        }
 
        public IPyramyd create()
        {
            return new FifthPyrymid(minCount, maxCount,value);
        }
    }
 
    public class FifthPyrymid : IPyramyd
    {
        private int minCount;
        private int maxCount;
        private char value;
 
        public FifthPyrymid(int minCount, int maxCount,char val)
        {
            this.minCount = minCount;
            this.maxCount = maxCount;
            this.value = val;
        }
 
        public void print()
        {
            for (int i = minCount; i <= maxCount; i++)
            {
                Console.WriteLine(new string(value,i));
            }
            for (int i = maxCount - 1; i >= minCount; i--)
            {
                Console.WriteLine(new string(value,i));
            }
        }
    }
 
    class Program
    {
        public static void Main()
        {
            PyramydBuilderFactory.CreateFactory().CreateBuilder('6').SetMaxCount(6).SetMinCount(2).create().print();
            
            Console.ReadKey();
        }
    }
}
1
turbanoff
Эксперт Java
4020 / 3755 / 742
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
17.04.2012, 07:18 14
Цитата Сообщение от NowMatrix Посмотреть сообщение
Я кстати не понял,зачем в методе CreateBuilder параметр нужен
Потому что это фабрика. Можно добавить билдер, которые строит пирамиду не из одного символа, и из строк, или еще чего.

PS. Вы всерьез доработали тот код?
1
NowMatrix
96 / 79 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.04.2012, 10:02 15
turbanoff, ну так маленько,ради интереса. Ну посмотрите,я добавил переменную,которая передаётся в конечный класс. Теперь можно в метод CreateBuilder в аргументы ставить какой нибудь символ и он будет его печатать)).
0
17.04.2012, 10:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2012, 10:02

Написать программу, которая загружает html код страницы и выводит его в listBox как текст
Помогите написать программу которая загружает html код страницы и выводит его...

Подскажите пожалуйста как программу с формой переделать в консольную?
Здравствуйте! Столкнулся с такой проблемой, есть программа public partial...

Как спрятать консольную программу в трее при запуске и открыть в определённое время ?
Есть ли такой код,который спрячет консольную программу в трее при запуске и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru